From c57860db4e702604b60350f4f18b3303acdd0647 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Tue, 4 Aug 2026 18:46:30 -0600 Subject: [PATCH] =?UTF-8?q?feat(phase-30=20S38/S1a):=20lift=20895=20local?= =?UTF-8?q?=20types=20to=20engine=5Ftypes.h=20=E2=80=94=20kills=20the=20ty?= =?UTF-8?q?pe-scope=20sweep=20class?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The free-sweep "wall" was a C parse error: a remapped member body names the EXEMPLAR's TU-local types, which are undeclared in the sibling's TU, so gcc-2.7.2 parses the declarator as an expression and dies before ever reaching codegen. extract_unit does carry typedefs, but only ones immediately preceding the function in the preamble — types declared elsewhere in the exemplar's TU are missed. Rather than patch the scanner per-family, remove the class: lift every liftable local type into the shared header once. 895 types lifted, 6,196 local definitions stripped across 1,259 files. R22 clean-fleet 140/140. EXCLUDED s8/s16/s32/u8/u16/u32/f32/s64/u64/f64 — lift_types classified those common.h scalars as liftable and lifting them would have been actively harmful. The tool's own visibility guard kept 8 local defs in src/ov_SC01_077/ov_SC01_077_o0.c, which does not include engine_types.h (stripping a type out of a TU that cannot see the replacement DELETES it, and the link error that follows names an unrelated data symbol). Mechanism proven before scaling: lifting just 3 types took 0x801833f0's family from 0/6 to 6/6. --- src/ov_SC01_000/ov_SC01_000.c | 10 - src/ov_SC01_000/ov_SC01_000_after.c | 31 +- src/ov_SC01_000/ov_SC01_000_jr_8012ACE0.c | 7 - src/ov_SC01_000/ov_SC01_000_jr_801380E0.c | 6 - src/ov_SC01_000/ov_SC01_000_jr_80140608.c | 12 +- src/ov_SC01_000/ov_SC01_000_jr_8016AB6C.c | 17 +- src/ov_SC01_000/ov_SC01_000_jr_801734BC.c | 26 +- src/ov_SC01_000/ov_SC01_000_jr_8017BEBC.c | 3 - src/ov_SC01_000/ov_SC01_000_o0c.c | 46 +- src/ov_SC01_001/ov_SC01_001.c | 10 - src/ov_SC01_001/ov_SC01_001_after.c | 31 +- src/ov_SC01_001/ov_SC01_001_jr_8012ACE0.c | 7 - src/ov_SC01_001/ov_SC01_001_jr_801380E0.c | 6 - src/ov_SC01_001/ov_SC01_001_jr_80140608.c | 12 +- src/ov_SC01_001/ov_SC01_001_jr_8016AB6C.c | 17 +- src/ov_SC01_001/ov_SC01_001_jr_801734BC.c | 22 +- src/ov_SC01_001/ov_SC01_001_jr_8017BEBC.c | 3 - src/ov_SC01_001/ov_SC01_001_o0c.c | 46 +- src/ov_SC01_004/ov_SC01_004.c | 10 - src/ov_SC01_004/ov_SC01_004_after.c | 31 +- src/ov_SC01_004/ov_SC01_004_jr_8012ACE0.c | 7 - src/ov_SC01_004/ov_SC01_004_jr_801380E0.c | 6 - src/ov_SC01_004/ov_SC01_004_jr_80140608.c | 12 +- src/ov_SC01_004/ov_SC01_004_jr_8016AB6C.c | 17 +- src/ov_SC01_004/ov_SC01_004_jr_801734BC.c | 22 +- src/ov_SC01_004/ov_SC01_004_jr_8017BE9C.c | 31 +- src/ov_SC01_004/ov_SC01_004_o0c.c | 46 +- src/ov_SC01_005/ov_SC01_005.c | 10 - src/ov_SC01_005/ov_SC01_005_after.c | 31 +- src/ov_SC01_005/ov_SC01_005_jr_8012ACE0.c | 7 - src/ov_SC01_005/ov_SC01_005_jr_801380E0.c | 6 - src/ov_SC01_005/ov_SC01_005_jr_80140608.c | 12 +- src/ov_SC01_005/ov_SC01_005_jr_8016AB6C.c | 17 +- src/ov_SC01_005/ov_SC01_005_jr_801734BC.c | 22 +- src/ov_SC01_005/ov_SC01_005_jr_8017C340.c | 31 +- src/ov_SC01_005/ov_SC01_005_o0c.c | 46 +- src/ov_SC01_006/ov_SC01_006.c | 10 - src/ov_SC01_006/ov_SC01_006_after.c | 31 +- src/ov_SC01_006/ov_SC01_006_jr_8012ACE0.c | 7 - src/ov_SC01_006/ov_SC01_006_jr_801380E0.c | 6 - src/ov_SC01_006/ov_SC01_006_jr_80140608.c | 12 +- src/ov_SC01_006/ov_SC01_006_jr_8016AB6C.c | 17 +- src/ov_SC01_006/ov_SC01_006_jr_801734BC.c | 22 +- src/ov_SC01_006/ov_SC01_006_jr_8017C340.c | 31 +- src/ov_SC01_006/ov_SC01_006_o0c.c | 46 +- src/ov_SC01_008/ov_SC01_008.c | 10 - src/ov_SC01_008/ov_SC01_008_after.c | 31 +- src/ov_SC01_008/ov_SC01_008_jr_8012ACE0.c | 7 - src/ov_SC01_008/ov_SC01_008_jr_801380E0.c | 6 - src/ov_SC01_008/ov_SC01_008_jr_80140608.c | 12 +- src/ov_SC01_008/ov_SC01_008_jr_8016AB6C.c | 17 +- src/ov_SC01_008/ov_SC01_008_jr_801734BC.c | 22 +- src/ov_SC01_008/ov_SC01_008_jr_8017BE9C.c | 31 +- src/ov_SC01_008/ov_SC01_008_o0c.c | 46 +- src/ov_SC01_009/ov_SC01_009.c | 10 - src/ov_SC01_009/ov_SC01_009_after.c | 31 +- src/ov_SC01_009/ov_SC01_009_jr_8012ACE0.c | 7 - src/ov_SC01_009/ov_SC01_009_jr_801380E0.c | 6 - src/ov_SC01_009/ov_SC01_009_jr_80140608.c | 12 +- src/ov_SC01_009/ov_SC01_009_jr_8016AB6C.c | 17 +- src/ov_SC01_009/ov_SC01_009_jr_801734BC.c | 22 +- src/ov_SC01_009/ov_SC01_009_jr_8017BE9C.c | 31 +- src/ov_SC01_009/ov_SC01_009_o0c.c | 46 +- src/ov_SC01_074/ov_SC01_074.c | 10 - src/ov_SC01_074/ov_SC01_074_after.c | 31 +- src/ov_SC01_074/ov_SC01_074_jr_8012ACE0.c | 7 - src/ov_SC01_074/ov_SC01_074_jr_801380E0.c | 6 - src/ov_SC01_074/ov_SC01_074_jr_80140608.c | 12 +- src/ov_SC01_074/ov_SC01_074_jr_8016AB6C.c | 17 +- src/ov_SC01_074/ov_SC01_074_jr_801734BC.c | 22 +- src/ov_SC01_074/ov_SC01_074_o0c.c | 46 +- src/ov_SC01_077/ov_SC01_077.c | 12 +- src/ov_SC01_077/ov_SC01_077_a.c | 10 - src/ov_SC01_077/ov_SC01_077_after.c | 31 +- src/ov_SC01_077/ov_SC01_077_jr_8012ACE0.c | 7 - src/ov_SC01_077/ov_SC01_077_jr_801380E0.c | 6 - src/ov_SC01_077/ov_SC01_077_jr_8016AB6C.c | 17 +- src/ov_SC01_077/ov_SC01_077_jr_801734BC.c | 22 +- src/ov_SC01_080/ov_SC01_080.c | 10 - src/ov_SC01_080/ov_SC01_080_after.c | 31 +- src/ov_SC01_080/ov_SC01_080_jr_8012ACE0.c | 7 - src/ov_SC01_080/ov_SC01_080_jr_801380E0.c | 6 - src/ov_SC01_080/ov_SC01_080_jr_80140608.c | 12 +- src/ov_SC01_080/ov_SC01_080_jr_8016AB6C.c | 17 +- src/ov_SC01_080/ov_SC01_080_jr_801734BC.c | 22 +- src/ov_SC01_080/ov_SC01_080_o0c.c | 46 +- src/ov_SC01_084/ov_SC01_084.c | 10 - src/ov_SC01_084/ov_SC01_084_after.c | 31 +- src/ov_SC01_084/ov_SC01_084_jr_8012ACE0.c | 7 - src/ov_SC01_084/ov_SC01_084_jr_801380E0.c | 6 - src/ov_SC01_084/ov_SC01_084_jr_80140608.c | 12 +- src/ov_SC01_084/ov_SC01_084_jr_8016AB6C.c | 17 +- src/ov_SC01_084/ov_SC01_084_jr_801734BC.c | 22 +- src/ov_SC01_084/ov_SC01_084_jr_8017AE2C.c | 32 +- src/ov_SC01_084/ov_SC01_084_o0c.c | 46 +- src/ov_SC02_000/ov_SC02_000.c | 10 - src/ov_SC02_000/ov_SC02_000_after.c | 31 +- src/ov_SC02_000/ov_SC02_000_jr_8012ACE0.c | 7 - src/ov_SC02_000/ov_SC02_000_jr_801380E0.c | 6 - src/ov_SC02_000/ov_SC02_000_jr_80140608.c | 12 +- src/ov_SC02_000/ov_SC02_000_jr_8016AB6C.c | 17 +- src/ov_SC02_000/ov_SC02_000_jr_801734BC.c | 22 +- src/ov_SC02_000/ov_SC02_000_jr_8017AE2C.c | 32 +- src/ov_SC02_000/ov_SC02_000_jr_8017EA84.c | 28 +- src/ov_SC02_000/ov_SC02_000_jr_8017FCB0.c | 25 - src/ov_SC02_000/ov_SC02_000_o0c.c | 46 +- src/ov_SC02_003/ov_SC02_003.c | 10 - src/ov_SC02_003/ov_SC02_003_after.c | 31 +- src/ov_SC02_003/ov_SC02_003_jr_8012ACE0.c | 7 - src/ov_SC02_003/ov_SC02_003_jr_801380E0.c | 6 - src/ov_SC02_003/ov_SC02_003_jr_80140608.c | 12 +- src/ov_SC02_003/ov_SC02_003_jr_8016AB6C.c | 17 +- src/ov_SC02_003/ov_SC02_003_jr_801734BC.c | 22 +- src/ov_SC02_003/ov_SC02_003_jr_8017AE2C.c | 32 +- src/ov_SC02_003/ov_SC02_003_jr_8017EA84.c | 28 +- src/ov_SC02_003/ov_SC02_003_jr_8017FCB0.c | 25 - src/ov_SC02_003/ov_SC02_003_o0c.c | 46 +- src/ov_SC02_004/ov_SC02_004.c | 10 - src/ov_SC02_004/ov_SC02_004_after.c | 31 +- src/ov_SC02_004/ov_SC02_004_jr_8012ACE0.c | 7 - src/ov_SC02_004/ov_SC02_004_jr_801380E0.c | 6 - src/ov_SC02_004/ov_SC02_004_jr_80140608.c | 12 +- src/ov_SC02_004/ov_SC02_004_jr_8016AB6C.c | 17 +- src/ov_SC02_004/ov_SC02_004_jr_801734BC.c | 22 +- src/ov_SC02_004/ov_SC02_004_o0c.c | 46 +- src/ov_SC02_005/ov_SC02_005.c | 10 - src/ov_SC02_005/ov_SC02_005_after.c | 31 +- src/ov_SC02_005/ov_SC02_005_jr_8012ACE0.c | 7 - src/ov_SC02_005/ov_SC02_005_jr_801380E0.c | 6 - src/ov_SC02_005/ov_SC02_005_jr_80140608.c | 12 +- src/ov_SC02_005/ov_SC02_005_jr_8016AB6C.c | 17 +- src/ov_SC02_005/ov_SC02_005_jr_801734BC.c | 22 +- src/ov_SC02_005/ov_SC02_005_jr_8017AE2C.c | 24 - src/ov_SC02_005/ov_SC02_005_o0c.c | 46 +- src/ov_SC02_011/ov_SC02_011.c | 10 - src/ov_SC02_011/ov_SC02_011_after.c | 31 +- src/ov_SC02_011/ov_SC02_011_jr_8012ACE0.c | 7 - src/ov_SC02_011/ov_SC02_011_jr_801380E0.c | 6 - src/ov_SC02_011/ov_SC02_011_jr_80140608.c | 12 +- src/ov_SC02_011/ov_SC02_011_jr_8016AB6C.c | 17 +- src/ov_SC02_011/ov_SC02_011_jr_801734BC.c | 22 +- src/ov_SC02_011/ov_SC02_011_jr_8017AE2C.c | 100 +- src/ov_SC02_011/ov_SC02_011_o0c.c | 46 +- src/ov_SC02_015/ov_SC02_015.c | 10 - src/ov_SC02_015/ov_SC02_015_after.c | 31 +- src/ov_SC02_015/ov_SC02_015_jr_8012ACE0.c | 7 - src/ov_SC02_015/ov_SC02_015_jr_801380E0.c | 6 - src/ov_SC02_015/ov_SC02_015_jr_80140608.c | 12 +- src/ov_SC02_015/ov_SC02_015_jr_8016AB6C.c | 17 +- src/ov_SC02_015/ov_SC02_015_jr_801734BC.c | 22 +- src/ov_SC02_015/ov_SC02_015_o0c.c | 46 +- src/ov_SC02_016/ov_SC02_016.c | 10 - src/ov_SC02_016/ov_SC02_016_after.c | 31 +- src/ov_SC02_016/ov_SC02_016_jr_8012ACE0.c | 7 - src/ov_SC02_016/ov_SC02_016_jr_801380E0.c | 6 - src/ov_SC02_016/ov_SC02_016_jr_80140608.c | 12 +- src/ov_SC02_016/ov_SC02_016_jr_8016AB6C.c | 17 +- src/ov_SC02_016/ov_SC02_016_jr_801734BC.c | 22 +- src/ov_SC02_016/ov_SC02_016_jr_8017AE2C.c | 44 +- src/ov_SC02_016/ov_SC02_016_jr_8017DC70.c | 3 - src/ov_SC02_016/ov_SC02_016_o0c.c | 46 +- src/ov_SC02_017/ov_SC02_017.c | 10 - src/ov_SC02_017/ov_SC02_017_after.c | 31 +- src/ov_SC02_017/ov_SC02_017_jr_8012ACE0.c | 7 - src/ov_SC02_017/ov_SC02_017_jr_801380E0.c | 6 - src/ov_SC02_017/ov_SC02_017_jr_80140608.c | 12 +- src/ov_SC02_017/ov_SC02_017_jr_8016AB6C.c | 17 +- src/ov_SC02_017/ov_SC02_017_jr_801734BC.c | 22 +- src/ov_SC02_017/ov_SC02_017_jr_8017AE2C.c | 44 +- src/ov_SC02_017/ov_SC02_017_jr_8017DF34.c | 3 - src/ov_SC02_017/ov_SC02_017_o0c.c | 46 +- src/ov_SC02_021/ov_SC02_021.c | 10 - src/ov_SC02_021/ov_SC02_021_after.c | 31 +- src/ov_SC02_021/ov_SC02_021_jr_8012ACE0.c | 7 - src/ov_SC02_021/ov_SC02_021_jr_801380E0.c | 6 - src/ov_SC02_021/ov_SC02_021_jr_80140608.c | 12 +- src/ov_SC02_021/ov_SC02_021_jr_8016AB6C.c | 17 +- src/ov_SC02_021/ov_SC02_021_jr_801734BC.c | 22 +- src/ov_SC02_021/ov_SC02_021_o0c.c | 46 +- src/ov_SC02_026/ov_SC02_026.c | 10 - src/ov_SC02_026/ov_SC02_026_after.c | 31 +- src/ov_SC02_026/ov_SC02_026_jr_8012ACE0.c | 7 - src/ov_SC02_026/ov_SC02_026_jr_801380E0.c | 6 - src/ov_SC02_026/ov_SC02_026_jr_80140608.c | 12 +- src/ov_SC02_026/ov_SC02_026_jr_8016AB6C.c | 17 +- src/ov_SC02_026/ov_SC02_026_jr_801734BC.c | 22 +- src/ov_SC02_026/ov_SC02_026_jr_8017C180.c | 43 +- src/ov_SC02_026/ov_SC02_026_o0c.c | 46 +- src/ov_SC02_027/ov_SC02_027.c | 10 - src/ov_SC02_027/ov_SC02_027_after.c | 31 +- src/ov_SC02_027/ov_SC02_027_jr_8012ACE0.c | 7 - src/ov_SC02_027/ov_SC02_027_jr_801380E0.c | 6 - src/ov_SC02_027/ov_SC02_027_jr_80140608.c | 12 +- src/ov_SC02_027/ov_SC02_027_jr_8016AB6C.c | 17 +- src/ov_SC02_027/ov_SC02_027_jr_801734BC.c | 22 +- src/ov_SC02_027/ov_SC02_027_jr_8017AE2C.c | 44 +- src/ov_SC02_027/ov_SC02_027_jr_8017D898.c | 54 +- src/ov_SC02_027/ov_SC02_027_o0c.c | 46 +- src/ov_SC02_028/ov_SC02_028.c | 10 - src/ov_SC02_028/ov_SC02_028_after.c | 31 +- src/ov_SC02_028/ov_SC02_028_jr_8012ACE0.c | 7 - src/ov_SC02_028/ov_SC02_028_jr_801380E0.c | 6 - src/ov_SC02_028/ov_SC02_028_jr_80140608.c | 12 +- src/ov_SC02_028/ov_SC02_028_jr_8016AB6C.c | 17 +- src/ov_SC02_028/ov_SC02_028_jr_801734BC.c | 22 +- src/ov_SC02_028/ov_SC02_028_jr_8017AE2C.c | 44 +- src/ov_SC02_028/ov_SC02_028_jr_8017D898.c | 82 +- src/ov_SC02_028/ov_SC02_028_jr_801884D8.c | 49 +- src/ov_SC02_028/ov_SC02_028_o0c.c | 46 +- src/ov_SC02_031/ov_SC02_031.c | 10 - src/ov_SC02_031/ov_SC02_031_after.c | 31 +- src/ov_SC02_031/ov_SC02_031_jr_8012ACE0.c | 7 - src/ov_SC02_031/ov_SC02_031_jr_801380E0.c | 6 - src/ov_SC02_031/ov_SC02_031_jr_80140608.c | 12 +- src/ov_SC02_031/ov_SC02_031_jr_8016AB6C.c | 17 +- src/ov_SC02_031/ov_SC02_031_jr_801734BC.c | 22 +- src/ov_SC02_031/ov_SC02_031_jr_8017AE2C.c | 60 +- src/ov_SC02_031/ov_SC02_031_o0c.c | 46 +- src/ov_SC02_035/ov_SC02_035.c | 10 - src/ov_SC02_035/ov_SC02_035_after.c | 31 +- src/ov_SC02_035/ov_SC02_035_jr_8012ACE0.c | 7 - src/ov_SC02_035/ov_SC02_035_jr_801380E0.c | 6 - src/ov_SC02_035/ov_SC02_035_jr_80140608.c | 12 +- src/ov_SC02_035/ov_SC02_035_jr_8016AB6C.c | 17 +- src/ov_SC02_035/ov_SC02_035_jr_801734BC.c | 22 +- src/ov_SC02_035/ov_SC02_035_jr_8017BEBC.c | 51 +- src/ov_SC02_035/ov_SC02_035_o0c.c | 46 +- src/ov_SC02_039/ov_SC02_039.c | 10 - src/ov_SC02_039/ov_SC02_039_after.c | 31 +- src/ov_SC02_039/ov_SC02_039_jr_8012ACE0.c | 7 - src/ov_SC02_039/ov_SC02_039_jr_801380E0.c | 6 - src/ov_SC02_039/ov_SC02_039_jr_80140608.c | 12 +- src/ov_SC02_039/ov_SC02_039_jr_8016AB6C.c | 17 +- src/ov_SC02_039/ov_SC02_039_jr_801734BC.c | 22 +- src/ov_SC02_039/ov_SC02_039_o0c.c | 46 +- src/ov_SC02_041/ov_SC02_041.c | 10 - src/ov_SC02_041/ov_SC02_041_after.c | 31 +- src/ov_SC02_041/ov_SC02_041_jr_8012ACE0.c | 7 - src/ov_SC02_041/ov_SC02_041_jr_801380E0.c | 6 - src/ov_SC02_041/ov_SC02_041_jr_80140608.c | 12 +- src/ov_SC02_041/ov_SC02_041_jr_8016AB6C.c | 17 +- src/ov_SC02_041/ov_SC02_041_jr_801734BC.c | 22 +- src/ov_SC02_041/ov_SC02_041_jr_8017BEBC.c | 17 +- src/ov_SC02_041/ov_SC02_041_o0c.c | 46 +- src/ov_SC03_001/ov_SC03_001.c | 10 - src/ov_SC03_001/ov_SC03_001_after.c | 31 +- src/ov_SC03_001/ov_SC03_001_jr_8012ACE0.c | 7 - src/ov_SC03_001/ov_SC03_001_jr_801380E0.c | 6 - src/ov_SC03_001/ov_SC03_001_jr_80140608.c | 12 +- src/ov_SC03_001/ov_SC03_001_jr_8016AB6C.c | 17 +- src/ov_SC03_001/ov_SC03_001_jr_801734BC.c | 22 +- src/ov_SC03_001/ov_SC03_001_jr_8017AE2C.c | 50 - src/ov_SC03_001/ov_SC03_001_o0c.c | 46 +- src/ov_SC03_002/ov_SC03_002.c | 10 - src/ov_SC03_002/ov_SC03_002_after.c | 31 +- src/ov_SC03_002/ov_SC03_002_jr_8012ACE0.c | 7 - src/ov_SC03_002/ov_SC03_002_jr_801380E0.c | 6 - src/ov_SC03_002/ov_SC03_002_jr_80140608.c | 12 +- src/ov_SC03_002/ov_SC03_002_jr_8016AB6C.c | 17 +- src/ov_SC03_002/ov_SC03_002_jr_801734BC.c | 22 +- src/ov_SC03_002/ov_SC03_002_jr_8017AE2C.c | 12 - src/ov_SC03_002/ov_SC03_002_jr_8017D604.c | 24 - src/ov_SC03_002/ov_SC03_002_o0c.c | 46 +- src/ov_SC03_003/ov_SC03_003.c | 10 - src/ov_SC03_003/ov_SC03_003_after.c | 31 +- src/ov_SC03_003/ov_SC03_003_jr_8012ACE0.c | 7 - src/ov_SC03_003/ov_SC03_003_jr_801380E0.c | 6 - src/ov_SC03_003/ov_SC03_003_jr_80140608.c | 12 +- src/ov_SC03_003/ov_SC03_003_jr_8016AB6C.c | 17 +- src/ov_SC03_003/ov_SC03_003_jr_801734BC.c | 22 +- src/ov_SC03_003/ov_SC03_003_o0c.c | 46 +- src/ov_SC03_006/ov_SC03_006.c | 10 - src/ov_SC03_006/ov_SC03_006_after.c | 31 +- src/ov_SC03_006/ov_SC03_006_jr_8012ACE0.c | 7 - src/ov_SC03_006/ov_SC03_006_jr_801380E0.c | 6 - src/ov_SC03_006/ov_SC03_006_jr_80140608.c | 12 +- src/ov_SC03_006/ov_SC03_006_jr_8016AB6C.c | 17 +- src/ov_SC03_006/ov_SC03_006_jr_801734BC.c | 22 +- src/ov_SC03_006/ov_SC03_006_jr_8017AE2C.c | 65 +- src/ov_SC03_006/ov_SC03_006_o0c.c | 46 +- src/ov_SC03_007/ov_SC03_007.c | 10 - src/ov_SC03_007/ov_SC03_007_after.c | 31 +- src/ov_SC03_007/ov_SC03_007_jr_8012ACE0.c | 7 - src/ov_SC03_007/ov_SC03_007_jr_801380E0.c | 6 - src/ov_SC03_007/ov_SC03_007_jr_80140608.c | 12 +- src/ov_SC03_007/ov_SC03_007_jr_8016AB6C.c | 17 +- src/ov_SC03_007/ov_SC03_007_jr_801734BC.c | 22 +- src/ov_SC03_007/ov_SC03_007_o0c.c | 46 +- src/ov_SC03_010/ov_SC03_010.c | 10 - src/ov_SC03_010/ov_SC03_010_after.c | 31 +- src/ov_SC03_010/ov_SC03_010_jr_8012ACE0.c | 7 - src/ov_SC03_010/ov_SC03_010_jr_801380E0.c | 6 - src/ov_SC03_010/ov_SC03_010_jr_80140608.c | 12 +- src/ov_SC03_010/ov_SC03_010_jr_8016AB6C.c | 17 +- src/ov_SC03_010/ov_SC03_010_jr_801734BC.c | 22 +- src/ov_SC03_010/ov_SC03_010_o0c.c | 46 +- src/ov_SC03_011/ov_SC03_011.c | 10 - src/ov_SC03_011/ov_SC03_011_after.c | 31 +- src/ov_SC03_011/ov_SC03_011_jr_8012ACE0.c | 7 - src/ov_SC03_011/ov_SC03_011_jr_801380E0.c | 6 - src/ov_SC03_011/ov_SC03_011_jr_80140608.c | 12 +- src/ov_SC03_011/ov_SC03_011_jr_8016AB6C.c | 17 +- src/ov_SC03_011/ov_SC03_011_jr_801734BC.c | 22 +- src/ov_SC03_011/ov_SC03_011_o0c.c | 46 +- src/ov_SC03_012/ov_SC03_012.c | 10 - src/ov_SC03_012/ov_SC03_012_after.c | 31 +- src/ov_SC03_012/ov_SC03_012_jr_8012ACE0.c | 7 - src/ov_SC03_012/ov_SC03_012_jr_801380E0.c | 6 - src/ov_SC03_012/ov_SC03_012_jr_80140608.c | 12 +- src/ov_SC03_012/ov_SC03_012_jr_8016AB6C.c | 17 +- src/ov_SC03_012/ov_SC03_012_jr_801734BC.c | 22 +- src/ov_SC03_012/ov_SC03_012_o0c.c | 46 +- src/ov_SC03_013/ov_SC03_013.c | 10 - src/ov_SC03_013/ov_SC03_013_after.c | 31 +- src/ov_SC03_013/ov_SC03_013_jr_8012ACE0.c | 7 - src/ov_SC03_013/ov_SC03_013_jr_801380E0.c | 6 - src/ov_SC03_013/ov_SC03_013_jr_80140608.c | 12 +- src/ov_SC03_013/ov_SC03_013_jr_8016AB6C.c | 17 +- src/ov_SC03_013/ov_SC03_013_jr_801734BC.c | 22 +- src/ov_SC03_013/ov_SC03_013_o0c.c | 46 +- src/ov_SC03_014/ov_SC03_014.c | 10 - src/ov_SC03_014/ov_SC03_014_after.c | 31 +- src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.c | 7 - src/ov_SC03_014/ov_SC03_014_jr_801380E0.c | 6 - src/ov_SC03_014/ov_SC03_014_jr_80140608.c | 12 +- src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.c | 17 +- src/ov_SC03_014/ov_SC03_014_jr_801734BC.c | 22 +- src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.c | 7 +- src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.c | 55 +- src/ov_SC03_014/ov_SC03_014_jr_801848E4.c | 38 +- src/ov_SC03_014/ov_SC03_014_o0c.c | 38 - src/ov_SC03_014/ov_SC03_014_o0d.c | 11 +- src/ov_SC03_014/ov_SC03_014_o0e.c | 46 +- src/ov_SC03_015/ov_SC03_015.c | 10 - src/ov_SC03_015/ov_SC03_015_after.c | 31 +- src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.c | 7 - src/ov_SC03_015/ov_SC03_015_jr_801380E0.c | 6 - src/ov_SC03_015/ov_SC03_015_jr_80140608.c | 12 +- src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.c | 17 +- src/ov_SC03_015/ov_SC03_015_jr_801734BC.c | 22 +- src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.c | 9 +- src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.c | 57 +- src/ov_SC03_015/ov_SC03_015_jr_801848E4.c | 41 +- src/ov_SC03_015/ov_SC03_015_o0c.c | 38 - src/ov_SC03_015/ov_SC03_015_o0d.c | 11 +- src/ov_SC03_015/ov_SC03_015_o0e.c | 46 +- src/ov_SC03_023/ov_SC03_023.c | 10 - src/ov_SC03_023/ov_SC03_023_after.c | 31 +- src/ov_SC03_023/ov_SC03_023_jr_8012ACE0.c | 7 - src/ov_SC03_023/ov_SC03_023_jr_801380E0.c | 6 - src/ov_SC03_023/ov_SC03_023_jr_80140608.c | 12 +- src/ov_SC03_023/ov_SC03_023_jr_8016AB6C.c | 17 +- src/ov_SC03_023/ov_SC03_023_jr_801734BC.c | 22 +- src/ov_SC03_023/ov_SC03_023_o0c.c | 46 +- src/ov_SC03_024/ov_SC03_024.c | 10 - src/ov_SC03_024/ov_SC03_024_after.c | 31 +- src/ov_SC03_024/ov_SC03_024_jr_8012ACE0.c | 7 - src/ov_SC03_024/ov_SC03_024_jr_801380E0.c | 6 - src/ov_SC03_024/ov_SC03_024_jr_80140608.c | 12 +- src/ov_SC03_024/ov_SC03_024_jr_8016AB6C.c | 17 +- src/ov_SC03_024/ov_SC03_024_jr_801734BC.c | 22 +- src/ov_SC03_024/ov_SC03_024_jr_8017AE2C.c | 7 +- src/ov_SC03_024/ov_SC03_024_jr_8017DF84.c | 69 +- src/ov_SC03_024/ov_SC03_024_o0c.c | 46 +- src/ov_SC03_028/ov_SC03_028.c | 10 - src/ov_SC03_028/ov_SC03_028_after.c | 31 +- src/ov_SC03_028/ov_SC03_028_jr_8012ACE0.c | 7 - src/ov_SC03_028/ov_SC03_028_jr_801380E0.c | 6 - src/ov_SC03_028/ov_SC03_028_jr_80140608.c | 12 +- src/ov_SC03_028/ov_SC03_028_jr_8016AB6C.c | 17 +- src/ov_SC03_028/ov_SC03_028_jr_801734BC.c | 22 +- src/ov_SC03_028/ov_SC03_028_jr_8017AE2C.c | 28 - src/ov_SC03_028/ov_SC03_028_o0c.c | 46 +- src/ov_SC03_029/ov_SC03_029.c | 10 - src/ov_SC03_029/ov_SC03_029_after.c | 31 +- src/ov_SC03_029/ov_SC03_029_jr_8012ACE0.c | 7 - src/ov_SC03_029/ov_SC03_029_jr_801380E0.c | 6 - src/ov_SC03_029/ov_SC03_029_jr_80140608.c | 12 +- src/ov_SC03_029/ov_SC03_029_jr_8016AB6C.c | 17 +- src/ov_SC03_029/ov_SC03_029_jr_801734BC.c | 22 +- src/ov_SC03_029/ov_SC03_029_jr_8017AE2C.c | 44 +- src/ov_SC03_029/ov_SC03_029_jr_8017DC70.c | 3 - src/ov_SC03_029/ov_SC03_029_o0c.c | 46 +- src/ov_SC03_030/ov_SC03_030.c | 10 - src/ov_SC03_030/ov_SC03_030_after.c | 31 +- src/ov_SC03_030/ov_SC03_030_jr_8012ACE0.c | 7 - src/ov_SC03_030/ov_SC03_030_jr_801380E0.c | 6 - src/ov_SC03_030/ov_SC03_030_jr_80140608.c | 12 +- src/ov_SC03_030/ov_SC03_030_jr_8016AB6C.c | 17 +- src/ov_SC03_030/ov_SC03_030_jr_801734BC.c | 22 +- src/ov_SC03_030/ov_SC03_030_jr_8017AE2C.c | 3 - src/ov_SC03_030/ov_SC03_030_o0c.c | 46 +- src/ov_SC03_031/ov_SC03_031.c | 10 - src/ov_SC03_031/ov_SC03_031_after.c | 31 +- src/ov_SC03_031/ov_SC03_031_jr_8012ACE0.c | 7 - src/ov_SC03_031/ov_SC03_031_jr_801380E0.c | 6 - src/ov_SC03_031/ov_SC03_031_jr_80140608.c | 12 +- src/ov_SC03_031/ov_SC03_031_jr_8016AB6C.c | 17 +- src/ov_SC03_031/ov_SC03_031_jr_801734BC.c | 22 +- src/ov_SC03_031/ov_SC03_031_jr_8017AE2C.c | 44 +- src/ov_SC03_031/ov_SC03_031_o0c.c | 46 +- src/ov_SC03_089/ov_SC03_089.c | 10 - src/ov_SC03_089/ov_SC03_089_after.c | 31 +- src/ov_SC03_089/ov_SC03_089_jr_8012ACE0.c | 7 - src/ov_SC03_089/ov_SC03_089_jr_801380E0.c | 6 - src/ov_SC03_089/ov_SC03_089_jr_80140608.c | 12 +- src/ov_SC03_089/ov_SC03_089_jr_8016AB6C.c | 17 +- src/ov_SC03_089/ov_SC03_089_jr_801734BC.c | 22 +- src/ov_SC03_089/ov_SC03_089_jr_8017AE2C.c | 32 +- src/ov_SC03_089/ov_SC03_089_jr_8017CA80.c | 88 +- src/ov_SC03_089/ov_SC03_089_o0c.c | 46 +- src/ov_SC03_090/ov_SC03_090.c | 10 - src/ov_SC03_090/ov_SC03_090_after.c | 31 +- src/ov_SC03_090/ov_SC03_090_jr_8012ACE0.c | 7 - src/ov_SC03_090/ov_SC03_090_jr_801380E0.c | 6 - src/ov_SC03_090/ov_SC03_090_jr_80140608.c | 12 +- src/ov_SC03_090/ov_SC03_090_jr_8016AB6C.c | 17 +- src/ov_SC03_090/ov_SC03_090_jr_801734BC.c | 22 +- src/ov_SC03_090/ov_SC03_090_jr_8017AE2C.c | 32 +- src/ov_SC03_090/ov_SC03_090_jr_8017CA80.c | 94 +- src/ov_SC03_090/ov_SC03_090_o0c.c | 46 +- src/ov_SC03_091/ov_SC03_091.c | 10 - src/ov_SC03_091/ov_SC03_091_after.c | 31 +- src/ov_SC03_091/ov_SC03_091_jr_8012ACE0.c | 7 - src/ov_SC03_091/ov_SC03_091_jr_801380E0.c | 6 - src/ov_SC03_091/ov_SC03_091_jr_80140608.c | 12 +- src/ov_SC03_091/ov_SC03_091_jr_8016AB6C.c | 17 +- src/ov_SC03_091/ov_SC03_091_jr_801734BC.c | 22 +- src/ov_SC03_091/ov_SC03_091_jr_8017AE2C.c | 44 +- src/ov_SC03_091/ov_SC03_091_jr_8017D898.c | 15 +- src/ov_SC03_091/ov_SC03_091_jr_80182268.c | 79 +- src/ov_SC03_091/ov_SC03_091_o0c.c | 46 +- src/ov_SC03_092/ov_SC03_092.c | 10 - src/ov_SC03_092/ov_SC03_092_after.c | 31 +- src/ov_SC03_092/ov_SC03_092_jr_8012ACE0.c | 7 - src/ov_SC03_092/ov_SC03_092_jr_801380E0.c | 6 - src/ov_SC03_092/ov_SC03_092_jr_80140608.c | 12 +- src/ov_SC03_092/ov_SC03_092_jr_8016AB6C.c | 17 +- src/ov_SC03_092/ov_SC03_092_jr_801734BC.c | 22 +- src/ov_SC03_092/ov_SC03_092_jr_8017AE2C.c | 92 +- src/ov_SC03_092/ov_SC03_092_o0c.c | 46 +- src/ov_SC03_093/ov_SC03_093.c | 10 - src/ov_SC03_093/ov_SC03_093_after.c | 31 +- src/ov_SC03_093/ov_SC03_093_jr_8012ACE0.c | 7 - src/ov_SC03_093/ov_SC03_093_jr_801380E0.c | 6 - src/ov_SC03_093/ov_SC03_093_jr_80140608.c | 12 +- src/ov_SC03_093/ov_SC03_093_jr_8016AB6C.c | 17 +- src/ov_SC03_093/ov_SC03_093_jr_801734BC.c | 22 +- src/ov_SC03_093/ov_SC03_093_jr_8017AE2C.c | 44 +- src/ov_SC03_093/ov_SC03_093_jr_8017D898.c | 52 +- src/ov_SC03_093/ov_SC03_093_o0c.c | 46 +- src/ov_SC03_094/ov_SC03_094.c | 10 - src/ov_SC03_094/ov_SC03_094_after.c | 31 +- src/ov_SC03_094/ov_SC03_094_jr_8012ACE0.c | 7 - src/ov_SC03_094/ov_SC03_094_jr_801380E0.c | 6 - src/ov_SC03_094/ov_SC03_094_jr_80140608.c | 12 +- src/ov_SC03_094/ov_SC03_094_jr_8016AB6C.c | 17 +- src/ov_SC03_094/ov_SC03_094_jr_801734BC.c | 22 +- src/ov_SC03_094/ov_SC03_094_jr_8017BEBC.c | 52 +- src/ov_SC03_094/ov_SC03_094_o0c.c | 46 +- src/ov_SC03_095/ov_SC03_095.c | 10 - src/ov_SC03_095/ov_SC03_095_after.c | 31 +- src/ov_SC03_095/ov_SC03_095_jr_8012ACE0.c | 7 - src/ov_SC03_095/ov_SC03_095_jr_801380E0.c | 6 - src/ov_SC03_095/ov_SC03_095_jr_80140608.c | 12 +- src/ov_SC03_095/ov_SC03_095_jr_8016AB6C.c | 17 +- src/ov_SC03_095/ov_SC03_095_jr_801734BC.c | 22 +- src/ov_SC03_095/ov_SC03_095_jr_8017BEBC.c | 36 +- src/ov_SC03_095/ov_SC03_095_o0c.c | 46 +- src/ov_SC03_096/ov_SC03_096.c | 10 - src/ov_SC03_096/ov_SC03_096_after.c | 31 +- src/ov_SC03_096/ov_SC03_096_jr_8012ACE0.c | 7 - src/ov_SC03_096/ov_SC03_096_jr_801380E0.c | 6 - src/ov_SC03_096/ov_SC03_096_jr_80140608.c | 12 +- src/ov_SC03_096/ov_SC03_096_jr_8016AB6C.c | 17 +- src/ov_SC03_096/ov_SC03_096_jr_801734BC.c | 22 +- src/ov_SC03_096/ov_SC03_096_jr_8017BEBC.c | 33 +- src/ov_SC03_096/ov_SC03_096_o0c.c | 46 +- src/ov_SC03_097/ov_SC03_097.c | 10 - src/ov_SC03_097/ov_SC03_097_after.c | 31 +- src/ov_SC03_097/ov_SC03_097_jr_8012ACE0.c | 7 - src/ov_SC03_097/ov_SC03_097_jr_801380E0.c | 6 - src/ov_SC03_097/ov_SC03_097_jr_80140608.c | 12 +- src/ov_SC03_097/ov_SC03_097_jr_8016AB6C.c | 17 +- src/ov_SC03_097/ov_SC03_097_jr_801734BC.c | 22 +- src/ov_SC03_097/ov_SC03_097_jr_8017AE2C.c | 44 +- src/ov_SC03_097/ov_SC03_097_jr_8017D898.c | 76 +- src/ov_SC03_097/ov_SC03_097_o0c.c | 46 +- src/ov_SC03_098/ov_SC03_098.c | 10 - src/ov_SC03_098/ov_SC03_098_after.c | 31 +- src/ov_SC03_098/ov_SC03_098_jr_8012ACE0.c | 7 - src/ov_SC03_098/ov_SC03_098_jr_801380E0.c | 6 - src/ov_SC03_098/ov_SC03_098_jr_80140608.c | 12 +- src/ov_SC03_098/ov_SC03_098_jr_8016AB6C.c | 17 +- src/ov_SC03_098/ov_SC03_098_jr_801734BC.c | 22 +- src/ov_SC03_098/ov_SC03_098_jr_8017AE2C.c | 44 +- src/ov_SC03_098/ov_SC03_098_jr_8017D898.c | 52 +- src/ov_SC03_098/ov_SC03_098_o0c.c | 46 +- src/ov_SC03_099/ov_SC03_099.c | 10 - src/ov_SC03_099/ov_SC03_099_after.c | 31 +- src/ov_SC03_099/ov_SC03_099_jr_8012ACE0.c | 7 - src/ov_SC03_099/ov_SC03_099_jr_801380E0.c | 6 - src/ov_SC03_099/ov_SC03_099_jr_80140608.c | 12 +- src/ov_SC03_099/ov_SC03_099_jr_8016AB6C.c | 17 +- src/ov_SC03_099/ov_SC03_099_jr_801734BC.c | 22 +- src/ov_SC03_099/ov_SC03_099_jr_8017BEBC.c | 50 +- src/ov_SC03_099/ov_SC03_099_o0c.c | 46 +- src/ov_SC03_100/ov_SC03_100.c | 10 - src/ov_SC03_100/ov_SC03_100_after.c | 31 +- src/ov_SC03_100/ov_SC03_100_jr_8012ACE0.c | 7 - src/ov_SC03_100/ov_SC03_100_jr_801380E0.c | 6 - src/ov_SC03_100/ov_SC03_100_jr_80140608.c | 12 +- src/ov_SC03_100/ov_SC03_100_jr_8016AB6C.c | 17 +- src/ov_SC03_100/ov_SC03_100_jr_801734BC.c | 22 +- src/ov_SC03_100/ov_SC03_100_jr_8017AE2C.c | 44 +- src/ov_SC03_100/ov_SC03_100_jr_8017D898.c | 50 +- src/ov_SC03_100/ov_SC03_100_o0c.c | 46 +- src/ov_SC03_101/ov_SC03_101.c | 10 - src/ov_SC03_101/ov_SC03_101_after.c | 31 +- src/ov_SC03_101/ov_SC03_101_jr_8012ACE0.c | 7 - src/ov_SC03_101/ov_SC03_101_jr_801380E0.c | 6 - src/ov_SC03_101/ov_SC03_101_jr_80140608.c | 12 +- src/ov_SC03_101/ov_SC03_101_jr_8016AB6C.c | 17 +- src/ov_SC03_101/ov_SC03_101_jr_801734BC.c | 22 +- src/ov_SC03_101/ov_SC03_101_jr_8017AE2C.c | 32 +- src/ov_SC03_101/ov_SC03_101_jr_8017CA80.c | 74 +- src/ov_SC03_101/ov_SC03_101_o0c.c | 46 +- src/ov_SC03_102/ov_SC03_102.c | 10 - src/ov_SC03_102/ov_SC03_102_after.c | 31 +- src/ov_SC03_102/ov_SC03_102_jr_8012ACE0.c | 7 - src/ov_SC03_102/ov_SC03_102_jr_801380E0.c | 6 - src/ov_SC03_102/ov_SC03_102_jr_80140608.c | 12 +- src/ov_SC03_102/ov_SC03_102_jr_8016AB6C.c | 17 +- src/ov_SC03_102/ov_SC03_102_jr_801734BC.c | 22 +- src/ov_SC03_102/ov_SC03_102_jr_8017BEBC.c | 62 +- src/ov_SC03_102/ov_SC03_102_o0c.c | 46 +- src/ov_SC03_103/ov_SC03_103.c | 10 - src/ov_SC03_103/ov_SC03_103_after.c | 31 +- src/ov_SC03_103/ov_SC03_103_jr_8012ACE0.c | 7 - src/ov_SC03_103/ov_SC03_103_jr_801380E0.c | 6 - src/ov_SC03_103/ov_SC03_103_jr_80140608.c | 12 +- src/ov_SC03_103/ov_SC03_103_jr_8016AB6C.c | 17 +- src/ov_SC03_103/ov_SC03_103_jr_801734BC.c | 22 +- src/ov_SC03_103/ov_SC03_103_jr_8017C294.c | 53 +- src/ov_SC03_103/ov_SC03_103_o0c.c | 46 +- src/ov_SC03_104/ov_SC03_104.c | 10 - src/ov_SC03_104/ov_SC03_104_after.c | 31 +- src/ov_SC03_104/ov_SC03_104_jr_8012ACE0.c | 7 - src/ov_SC03_104/ov_SC03_104_jr_801380E0.c | 6 - src/ov_SC03_104/ov_SC03_104_jr_80140608.c | 12 +- src/ov_SC03_104/ov_SC03_104_jr_8016AB6C.c | 17 +- src/ov_SC03_104/ov_SC03_104_jr_801734BC.c | 22 +- src/ov_SC03_104/ov_SC03_104_jr_8017AE2C.c | 32 +- src/ov_SC03_104/ov_SC03_104_jr_8017CA80.c | 98 +- src/ov_SC03_104/ov_SC03_104_o0c.c | 46 +- src/ov_SC03_105/ov_SC03_105.c | 10 - src/ov_SC03_105/ov_SC03_105_after.c | 31 +- src/ov_SC03_105/ov_SC03_105_jr_8012ACE0.c | 7 - src/ov_SC03_105/ov_SC03_105_jr_801380E0.c | 6 - src/ov_SC03_105/ov_SC03_105_jr_80140608.c | 12 +- src/ov_SC03_105/ov_SC03_105_jr_8016AB6C.c | 17 +- src/ov_SC03_105/ov_SC03_105_jr_801734BC.c | 22 +- src/ov_SC03_105/ov_SC03_105_jr_8017AE2C.c | 11 - src/ov_SC03_105/ov_SC03_105_jr_8017C8D0.c | 17 - src/ov_SC03_105/ov_SC03_105_o0c.c | 46 +- src/ov_SC03_108/ov_SC03_108.c | 10 - src/ov_SC03_108/ov_SC03_108_after.c | 31 +- src/ov_SC03_108/ov_SC03_108_jr_8012ACE0.c | 7 - src/ov_SC03_108/ov_SC03_108_jr_801380E0.c | 6 - src/ov_SC03_108/ov_SC03_108_jr_80140608.c | 12 +- src/ov_SC03_108/ov_SC03_108_jr_8016AB6C.c | 17 +- src/ov_SC03_108/ov_SC03_108_jr_801734BC.c | 22 +- src/ov_SC03_108/ov_SC03_108_o0c.c | 46 +- src/ov_SC03_109/ov_SC03_109.c | 10 - src/ov_SC03_109/ov_SC03_109_after.c | 31 +- src/ov_SC03_109/ov_SC03_109_jr_8012ACE0.c | 7 - src/ov_SC03_109/ov_SC03_109_jr_801380E0.c | 6 - src/ov_SC03_109/ov_SC03_109_jr_80140608.c | 12 +- src/ov_SC03_109/ov_SC03_109_jr_8016AB6C.c | 17 +- src/ov_SC03_109/ov_SC03_109_jr_801734BC.c | 22 +- src/ov_SC03_109/ov_SC03_109_o0c.c | 46 +- src/ov_SC03_110/ov_SC03_110.c | 10 - src/ov_SC03_110/ov_SC03_110_after.c | 31 +- src/ov_SC03_110/ov_SC03_110_jr_8012ACE0.c | 7 - src/ov_SC03_110/ov_SC03_110_jr_801380E0.c | 6 - src/ov_SC03_110/ov_SC03_110_jr_80140608.c | 12 +- src/ov_SC03_110/ov_SC03_110_jr_8016AB6C.c | 17 +- src/ov_SC03_110/ov_SC03_110_jr_801734BC.c | 22 +- src/ov_SC03_110/ov_SC03_110_jr_8017AE2C.c | 44 +- src/ov_SC03_110/ov_SC03_110_o0c.c | 46 +- src/ov_SC03_111/ov_SC03_111.c | 10 - src/ov_SC03_111/ov_SC03_111_after.c | 31 +- src/ov_SC03_111/ov_SC03_111_jr_8012ACE0.c | 7 - src/ov_SC03_111/ov_SC03_111_jr_801380E0.c | 6 - src/ov_SC03_111/ov_SC03_111_jr_80140608.c | 12 +- src/ov_SC03_111/ov_SC03_111_jr_8016AB6C.c | 17 +- src/ov_SC03_111/ov_SC03_111_jr_801734BC.c | 22 +- src/ov_SC03_111/ov_SC03_111_jr_8017AE2C.c | 45 +- src/ov_SC03_111/ov_SC03_111_jr_8017EC58.c | 2 - src/ov_SC03_111/ov_SC03_111_o0c.c | 46 +- src/ov_SC03_112/ov_SC03_112.c | 10 - src/ov_SC03_112/ov_SC03_112_after.c | 31 +- src/ov_SC03_112/ov_SC03_112_jr_8012ACE0.c | 7 - src/ov_SC03_112/ov_SC03_112_jr_801380E0.c | 6 - src/ov_SC03_112/ov_SC03_112_jr_80140608.c | 12 +- src/ov_SC03_112/ov_SC03_112_jr_8016AB6C.c | 17 +- src/ov_SC03_112/ov_SC03_112_jr_801734BC.c | 22 +- src/ov_SC03_112/ov_SC03_112_jr_8017C294.c | 1 - src/ov_SC03_112/ov_SC03_112_o0c.c | 46 +- src/ov_SC03_113/ov_SC03_113.c | 10 - src/ov_SC03_113/ov_SC03_113_after.c | 31 +- src/ov_SC03_113/ov_SC03_113_jr_8012ACE0.c | 7 - src/ov_SC03_113/ov_SC03_113_jr_801380E0.c | 6 - src/ov_SC03_113/ov_SC03_113_jr_80140608.c | 12 +- src/ov_SC03_113/ov_SC03_113_jr_8016AB6C.c | 17 +- src/ov_SC03_113/ov_SC03_113_jr_801734BC.c | 22 +- src/ov_SC03_113/ov_SC03_113_jr_8017C294.c | 5 - src/ov_SC03_113/ov_SC03_113_o0c.c | 46 +- src/ov_SC03_114/ov_SC03_114.c | 10 - src/ov_SC03_114/ov_SC03_114_after.c | 31 +- src/ov_SC03_114/ov_SC03_114_jr_8012ACE0.c | 7 - src/ov_SC03_114/ov_SC03_114_jr_801380E0.c | 6 - src/ov_SC03_114/ov_SC03_114_jr_80140608.c | 12 +- src/ov_SC03_114/ov_SC03_114_jr_8016AB6C.c | 17 +- src/ov_SC03_114/ov_SC03_114_jr_801734BC.c | 22 +- src/ov_SC03_114/ov_SC03_114_jr_8017BEBC.c | 3 - src/ov_SC03_114/ov_SC03_114_o0c.c | 46 +- src/ov_SC03_115/ov_SC03_115.c | 10 - src/ov_SC03_115/ov_SC03_115_after.c | 31 +- src/ov_SC03_115/ov_SC03_115_jr_8012ACE0.c | 7 - src/ov_SC03_115/ov_SC03_115_jr_801380E0.c | 6 - src/ov_SC03_115/ov_SC03_115_jr_80140608.c | 12 +- src/ov_SC03_115/ov_SC03_115_jr_8016AB6C.c | 17 +- src/ov_SC03_115/ov_SC03_115_jr_801734BC.c | 22 +- src/ov_SC03_115/ov_SC03_115_o0c.c | 46 +- src/ov_SC03_116/ov_SC03_116.c | 10 - src/ov_SC03_116/ov_SC03_116_after.c | 31 +- src/ov_SC03_116/ov_SC03_116_jr_8012ACE0.c | 7 - src/ov_SC03_116/ov_SC03_116_jr_801380E0.c | 6 - src/ov_SC03_116/ov_SC03_116_jr_80140608.c | 12 +- src/ov_SC03_116/ov_SC03_116_jr_8016AB6C.c | 17 +- src/ov_SC03_116/ov_SC03_116_jr_801734BC.c | 22 +- src/ov_SC03_116/ov_SC03_116_jr_8017AE2C.c | 18 +- src/ov_SC03_116/ov_SC03_116_o0c.c | 46 +- src/ov_SC03_117/ov_SC03_117.c | 10 - src/ov_SC03_117/ov_SC03_117_after.c | 31 +- src/ov_SC03_117/ov_SC03_117_jr_8012ACE0.c | 7 - src/ov_SC03_117/ov_SC03_117_jr_801380E0.c | 6 - src/ov_SC03_117/ov_SC03_117_jr_80140608.c | 12 +- src/ov_SC03_117/ov_SC03_117_jr_8016AB6C.c | 17 +- src/ov_SC03_117/ov_SC03_117_jr_801734BC.c | 22 +- src/ov_SC03_117/ov_SC03_117_o0c.c | 46 +- src/ov_SC03_118/ov_SC03_118.c | 10 - src/ov_SC03_118/ov_SC03_118_after.c | 31 +- src/ov_SC03_118/ov_SC03_118_jr_8012ACE0.c | 7 - src/ov_SC03_118/ov_SC03_118_jr_801380E0.c | 6 - src/ov_SC03_118/ov_SC03_118_jr_80140608.c | 12 +- src/ov_SC03_118/ov_SC03_118_jr_8016AB6C.c | 17 +- src/ov_SC03_118/ov_SC03_118_jr_801734BC.c | 22 +- src/ov_SC03_118/ov_SC03_118_jr_8017AE2C.c | 5 +- src/ov_SC03_118/ov_SC03_118_jr_8017FB84.c | 43 +- src/ov_SC03_118/ov_SC03_118_o0c.c | 46 +- src/ov_SC03_119/ov_SC03_119.c | 10 - src/ov_SC03_119/ov_SC03_119_after.c | 31 +- src/ov_SC03_119/ov_SC03_119_jr_8012ACE0.c | 7 - src/ov_SC03_119/ov_SC03_119_jr_801380E0.c | 6 - src/ov_SC03_119/ov_SC03_119_jr_80140608.c | 12 +- src/ov_SC03_119/ov_SC03_119_jr_8016AB6C.c | 17 +- src/ov_SC03_119/ov_SC03_119_jr_801734BC.c | 22 +- src/ov_SC03_119/ov_SC03_119_jr_8017AE2C.c | 5 +- src/ov_SC03_119/ov_SC03_119_jr_8017FB84.c | 43 +- src/ov_SC03_119/ov_SC03_119_o0c.c | 46 +- src/ov_SC03_121/ov_SC03_121.c | 10 - src/ov_SC03_121/ov_SC03_121_after.c | 31 +- src/ov_SC03_121/ov_SC03_121_jr_8012ACE0.c | 7 - src/ov_SC03_121/ov_SC03_121_jr_801380E0.c | 6 - src/ov_SC03_121/ov_SC03_121_jr_80140608.c | 12 +- src/ov_SC03_121/ov_SC03_121_jr_8016AB6C.c | 17 +- src/ov_SC03_121/ov_SC03_121_jr_801734BC.c | 22 +- src/ov_SC03_121/ov_SC03_121_o0c.c | 46 +- src/ov_SC03_124/ov_SC03_124.c | 10 - src/ov_SC03_124/ov_SC03_124_after.c | 31 +- src/ov_SC03_124/ov_SC03_124_jr_8012ACE0.c | 7 - src/ov_SC03_124/ov_SC03_124_jr_801380E0.c | 6 - src/ov_SC03_124/ov_SC03_124_jr_80140608.c | 12 +- src/ov_SC03_124/ov_SC03_124_jr_8016AB6C.c | 17 +- src/ov_SC03_124/ov_SC03_124_jr_801734BC.c | 22 +- src/ov_SC03_124/ov_SC03_124_jr_8017AE2C.c | 50 - src/ov_SC03_124/ov_SC03_124_o0c.c | 46 +- src/ov_SC03_125/ov_SC03_125.c | 10 - src/ov_SC03_125/ov_SC03_125_after.c | 31 +- src/ov_SC03_125/ov_SC03_125_jr_8012ACE0.c | 7 - src/ov_SC03_125/ov_SC03_125_jr_801380E0.c | 6 - src/ov_SC03_125/ov_SC03_125_jr_80140608.c | 12 +- src/ov_SC03_125/ov_SC03_125_jr_8016AB6C.c | 17 +- src/ov_SC03_125/ov_SC03_125_jr_801734BC.c | 22 +- src/ov_SC03_125/ov_SC03_125_jr_8017AE2C.c | 12 - src/ov_SC03_125/ov_SC03_125_jr_8017D604.c | 17 - src/ov_SC03_125/ov_SC03_125_o0c.c | 46 +- src/ov_SC03_126/ov_SC03_126.c | 10 - src/ov_SC03_126/ov_SC03_126_after.c | 31 +- src/ov_SC03_126/ov_SC03_126_jr_8012ACE0.c | 7 - src/ov_SC03_126/ov_SC03_126_jr_801380E0.c | 6 - src/ov_SC03_126/ov_SC03_126_jr_80140608.c | 12 +- src/ov_SC03_126/ov_SC03_126_jr_8016AB6C.c | 17 +- src/ov_SC03_126/ov_SC03_126_jr_801734BC.c | 22 +- src/ov_SC03_126/ov_SC03_126_o0c.c | 46 +- src/ov_SC04_000/ov_SC04_000.c | 10 - src/ov_SC04_000/ov_SC04_000_after.c | 31 +- src/ov_SC04_000/ov_SC04_000_jr_8012ACE0.c | 7 - src/ov_SC04_000/ov_SC04_000_jr_801380E0.c | 6 - src/ov_SC04_000/ov_SC04_000_jr_80140608.c | 12 +- src/ov_SC04_000/ov_SC04_000_jr_8016AB6C.c | 17 +- src/ov_SC04_000/ov_SC04_000_jr_801734BC.c | 22 +- src/ov_SC04_000/ov_SC04_000_jr_8017BEBC.c | 47 +- src/ov_SC04_000/ov_SC04_000_o0c.c | 46 +- src/ov_SC04_002/ov_SC04_002.c | 10 - src/ov_SC04_002/ov_SC04_002_after.c | 31 +- src/ov_SC04_002/ov_SC04_002_jr_8012ACE0.c | 7 - src/ov_SC04_002/ov_SC04_002_jr_801380E0.c | 6 - src/ov_SC04_002/ov_SC04_002_jr_80140608.c | 12 +- src/ov_SC04_002/ov_SC04_002_jr_8016AB6C.c | 17 +- src/ov_SC04_002/ov_SC04_002_jr_801734BC.c | 22 +- src/ov_SC04_002/ov_SC04_002_jr_8017BEBC.c | 50 +- src/ov_SC04_002/ov_SC04_002_o0c.c | 46 +- src/ov_SC04_003/ov_SC04_003.c | 10 - src/ov_SC04_003/ov_SC04_003_after.c | 31 +- src/ov_SC04_003/ov_SC04_003_jr_8012ACE0.c | 7 - src/ov_SC04_003/ov_SC04_003_jr_801380E0.c | 6 - src/ov_SC04_003/ov_SC04_003_jr_80140608.c | 12 +- src/ov_SC04_003/ov_SC04_003_jr_8016AB6C.c | 17 +- src/ov_SC04_003/ov_SC04_003_jr_801734BC.c | 22 +- src/ov_SC04_003/ov_SC04_003_jr_8017BEBC.c | 10 - src/ov_SC04_003/ov_SC04_003_o0c.c | 46 +- src/ov_SC04_004/ov_SC04_004.c | 10 - src/ov_SC04_004/ov_SC04_004_after.c | 31 +- src/ov_SC04_004/ov_SC04_004_jr_8012ACE0.c | 7 - src/ov_SC04_004/ov_SC04_004_jr_801380E0.c | 6 - src/ov_SC04_004/ov_SC04_004_jr_80140608.c | 12 +- src/ov_SC04_004/ov_SC04_004_jr_8016AB6C.c | 17 +- src/ov_SC04_004/ov_SC04_004_jr_801734BC.c | 22 +- src/ov_SC04_004/ov_SC04_004_jr_8017AE2C.c | 53 +- src/ov_SC04_004/ov_SC04_004_o0c.c | 46 +- src/ov_SC04_005/ov_SC04_005.c | 10 - src/ov_SC04_005/ov_SC04_005_after.c | 31 +- src/ov_SC04_005/ov_SC04_005_jr_8012ACE0.c | 7 - src/ov_SC04_005/ov_SC04_005_jr_801380E0.c | 6 - src/ov_SC04_005/ov_SC04_005_jr_80140608.c | 12 +- src/ov_SC04_005/ov_SC04_005_jr_8016AB6C.c | 17 +- src/ov_SC04_005/ov_SC04_005_jr_801734BC.c | 22 +- src/ov_SC04_005/ov_SC04_005_jr_8017BEBC.c | 54 +- src/ov_SC04_005/ov_SC04_005_o0c.c | 46 +- src/ov_SC04_006/ov_SC04_006.c | 10 - src/ov_SC04_006/ov_SC04_006_after.c | 31 +- src/ov_SC04_006/ov_SC04_006_jr_8012ACE0.c | 7 - src/ov_SC04_006/ov_SC04_006_jr_801380E0.c | 6 - src/ov_SC04_006/ov_SC04_006_jr_80140608.c | 12 +- src/ov_SC04_006/ov_SC04_006_jr_8016AB6C.c | 17 +- src/ov_SC04_006/ov_SC04_006_jr_801734BC.c | 22 +- src/ov_SC04_006/ov_SC04_006_jr_8017BEBC.c | 6 - src/ov_SC04_006/ov_SC04_006_o0c.c | 46 +- src/ov_SC04_007/ov_SC04_007.c | 10 - src/ov_SC04_007/ov_SC04_007_after.c | 31 +- src/ov_SC04_007/ov_SC04_007_jr_8012ACE0.c | 7 - src/ov_SC04_007/ov_SC04_007_jr_801380E0.c | 6 - src/ov_SC04_007/ov_SC04_007_jr_80140608.c | 12 +- src/ov_SC04_007/ov_SC04_007_jr_8016AB6C.c | 17 +- src/ov_SC04_007/ov_SC04_007_jr_801734BC.c | 22 +- src/ov_SC04_007/ov_SC04_007_jr_8017BEBC.c | 54 +- src/ov_SC04_007/ov_SC04_007_o0c.c | 46 +- src/ov_SC04_008/ov_SC04_008.c | 10 - src/ov_SC04_008/ov_SC04_008_after.c | 31 +- src/ov_SC04_008/ov_SC04_008_jr_8012ACE0.c | 7 - src/ov_SC04_008/ov_SC04_008_jr_801380E0.c | 6 - src/ov_SC04_008/ov_SC04_008_jr_80140608.c | 12 +- src/ov_SC04_008/ov_SC04_008_jr_8016AB6C.c | 17 +- src/ov_SC04_008/ov_SC04_008_jr_801734BC.c | 22 +- src/ov_SC04_008/ov_SC04_008_jr_8017AE2C.c | 3 - src/ov_SC04_008/ov_SC04_008_o0c.c | 46 +- src/ov_SC04_009/ov_SC04_009.c | 10 - src/ov_SC04_009/ov_SC04_009_after.c | 31 +- src/ov_SC04_009/ov_SC04_009_jr_8012ACE0.c | 7 - src/ov_SC04_009/ov_SC04_009_jr_801380E0.c | 6 - src/ov_SC04_009/ov_SC04_009_jr_80140608.c | 12 +- src/ov_SC04_009/ov_SC04_009_jr_8016AB6C.c | 17 +- src/ov_SC04_009/ov_SC04_009_jr_801734BC.c | 22 +- src/ov_SC04_009/ov_SC04_009_jr_8017BEBC.c | 3 - src/ov_SC04_009/ov_SC04_009_o0c.c | 46 +- src/ov_SC04_010/ov_SC04_010.c | 10 - src/ov_SC04_010/ov_SC04_010_after.c | 31 +- src/ov_SC04_010/ov_SC04_010_jr_8012ACE0.c | 7 - src/ov_SC04_010/ov_SC04_010_jr_801380E0.c | 6 - src/ov_SC04_010/ov_SC04_010_jr_80140608.c | 12 +- src/ov_SC04_010/ov_SC04_010_jr_8016AB6C.c | 17 +- src/ov_SC04_010/ov_SC04_010_jr_801734BC.c | 22 +- src/ov_SC04_010/ov_SC04_010_jr_8017BEBC.c | 3 - src/ov_SC04_010/ov_SC04_010_o0c.c | 46 +- src/ov_SC04_011/ov_SC04_011.c | 10 - src/ov_SC04_011/ov_SC04_011_after.c | 31 +- src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.c | 7 - src/ov_SC04_011/ov_SC04_011_jr_801380E0.c | 6 - src/ov_SC04_011/ov_SC04_011_jr_80140608.c | 12 +- src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c | 17 +- src/ov_SC04_011/ov_SC04_011_jr_801734BC.c | 22 +- src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.c | 43 +- src/ov_SC04_011/ov_SC04_011_jr_8017D494.c | 57 +- src/ov_SC04_011/ov_SC04_011_o0c.c | 46 +- src/ov_SC04_012/ov_SC04_012.c | 10 - src/ov_SC04_012/ov_SC04_012_after.c | 31 +- src/ov_SC04_012/ov_SC04_012_jr_8012ACE0.c | 7 - src/ov_SC04_012/ov_SC04_012_jr_801380E0.c | 6 - src/ov_SC04_012/ov_SC04_012_jr_80140608.c | 12 +- src/ov_SC04_012/ov_SC04_012_jr_8016AB6C.c | 17 +- src/ov_SC04_012/ov_SC04_012_jr_801734BC.c | 22 +- src/ov_SC04_012/ov_SC04_012_jr_8017AE2C.c | 3 - src/ov_SC04_012/ov_SC04_012_o0c.c | 46 +- src/ov_SC04_015/ov_SC04_015.c | 10 - src/ov_SC04_015/ov_SC04_015_after.c | 31 +- src/ov_SC04_015/ov_SC04_015_jr_8012ACE0.c | 7 - src/ov_SC04_015/ov_SC04_015_jr_801380E0.c | 6 - src/ov_SC04_015/ov_SC04_015_jr_80140608.c | 12 +- src/ov_SC04_015/ov_SC04_015_jr_8016AB6C.c | 17 +- src/ov_SC04_015/ov_SC04_015_jr_801734BC.c | 22 +- src/ov_SC04_015/ov_SC04_015_jr_8017AE2C.c | 27 - src/ov_SC04_015/ov_SC04_015_o0c.c | 46 +- src/ov_SC04_016/ov_SC04_016.c | 10 - src/ov_SC04_016/ov_SC04_016_after.c | 31 +- src/ov_SC04_016/ov_SC04_016_jr_8012ACE0.c | 7 - src/ov_SC04_016/ov_SC04_016_jr_801380E0.c | 6 - src/ov_SC04_016/ov_SC04_016_jr_80140608.c | 12 +- src/ov_SC04_016/ov_SC04_016_jr_8016AB6C.c | 17 +- src/ov_SC04_016/ov_SC04_016_jr_801734BC.c | 22 +- src/ov_SC04_016/ov_SC04_016_jr_8017BEBC.c | 3 - src/ov_SC04_016/ov_SC04_016_o0c.c | 46 +- src/ov_SC04_018/ov_SC04_018.c | 10 - src/ov_SC04_018/ov_SC04_018_after.c | 31 +- src/ov_SC04_018/ov_SC04_018_jr_8012ACE0.c | 7 - src/ov_SC04_018/ov_SC04_018_jr_801380E0.c | 6 - src/ov_SC04_018/ov_SC04_018_jr_80140608.c | 12 +- src/ov_SC04_018/ov_SC04_018_jr_8016AB6C.c | 17 +- src/ov_SC04_018/ov_SC04_018_jr_801734BC.c | 22 +- src/ov_SC04_018/ov_SC04_018_jr_8017AE2C.c | 47 - src/ov_SC04_018/ov_SC04_018_o0c.c | 46 +- src/ov_SC04_019/ov_SC04_019.c | 10 - src/ov_SC04_019/ov_SC04_019_after.c | 31 +- src/ov_SC04_019/ov_SC04_019_jr_8012ACE0.c | 7 - src/ov_SC04_019/ov_SC04_019_jr_801380E0.c | 6 - src/ov_SC04_019/ov_SC04_019_jr_80140608.c | 12 +- src/ov_SC04_019/ov_SC04_019_jr_8016AB6C.c | 17 +- src/ov_SC04_019/ov_SC04_019_jr_801734BC.c | 22 +- src/ov_SC04_019/ov_SC04_019_jr_8017AE2C.c | 44 - src/ov_SC04_019/ov_SC04_019_o0c.c | 46 +- src/ov_SC04_020/ov_SC04_020.c | 10 - src/ov_SC04_020/ov_SC04_020_after.c | 31 +- src/ov_SC04_020/ov_SC04_020_jr_8012ACE0.c | 7 - src/ov_SC04_020/ov_SC04_020_jr_801380E0.c | 6 - src/ov_SC04_020/ov_SC04_020_jr_80140608.c | 12 +- src/ov_SC04_020/ov_SC04_020_jr_8016AB6C.c | 17 +- src/ov_SC04_020/ov_SC04_020_jr_801734BC.c | 22 +- src/ov_SC04_020/ov_SC04_020_jr_8017AE2C.c | 12 - src/ov_SC04_020/ov_SC04_020_jr_8017D604.c | 16 - src/ov_SC04_020/ov_SC04_020_o0c.c | 46 +- src/ov_SC04_021/ov_SC04_021.c | 10 - src/ov_SC04_021/ov_SC04_021_after.c | 31 +- src/ov_SC04_021/ov_SC04_021_jr_8012ACE0.c | 7 - src/ov_SC04_021/ov_SC04_021_jr_801380E0.c | 6 - src/ov_SC04_021/ov_SC04_021_jr_80140608.c | 12 +- src/ov_SC04_021/ov_SC04_021_jr_8016AB6C.c | 17 +- src/ov_SC04_021/ov_SC04_021_jr_801734BC.c | 22 +- src/ov_SC04_021/ov_SC04_021_o0c.c | 46 +- src/ov_SC05_000/ov_SC05_000.c | 10 - src/ov_SC05_000/ov_SC05_000_after.c | 31 +- src/ov_SC05_000/ov_SC05_000_jr_8012ACE0.c | 7 - src/ov_SC05_000/ov_SC05_000_jr_801380E0.c | 6 - src/ov_SC05_000/ov_SC05_000_jr_80140608.c | 12 +- src/ov_SC05_000/ov_SC05_000_jr_8016AB6C.c | 17 +- src/ov_SC05_000/ov_SC05_000_jr_801734BC.c | 22 +- src/ov_SC05_000/ov_SC05_000_o0c.c | 46 +- src/ov_SC05_001/ov_SC05_001.c | 10 - src/ov_SC05_001/ov_SC05_001_after.c | 31 +- src/ov_SC05_001/ov_SC05_001_jr_8012ACE0.c | 7 - src/ov_SC05_001/ov_SC05_001_jr_801380E0.c | 6 - src/ov_SC05_001/ov_SC05_001_jr_80140608.c | 12 +- src/ov_SC05_001/ov_SC05_001_jr_8016AB6C.c | 17 +- src/ov_SC05_001/ov_SC05_001_jr_801734BC.c | 22 +- src/ov_SC05_001/ov_SC05_001_jr_8017BEBC.c | 44 +- src/ov_SC05_001/ov_SC05_001_o0c.c | 46 +- src/ov_SC05_002/ov_SC05_002.c | 10 - src/ov_SC05_002/ov_SC05_002_after.c | 31 +- src/ov_SC05_002/ov_SC05_002_jr_8012ACE0.c | 7 - src/ov_SC05_002/ov_SC05_002_jr_801380E0.c | 6 - src/ov_SC05_002/ov_SC05_002_jr_80140608.c | 12 +- src/ov_SC05_002/ov_SC05_002_jr_8016AB6C.c | 17 +- src/ov_SC05_002/ov_SC05_002_jr_801734BC.c | 22 +- src/ov_SC05_002/ov_SC05_002_jr_8017BEBC.c | 4 - src/ov_SC05_002/ov_SC05_002_o0c.c | 46 +- src/ov_SC05_003/ov_SC05_003.c | 10 - src/ov_SC05_003/ov_SC05_003_after.c | 31 +- src/ov_SC05_003/ov_SC05_003_jr_8012ACE0.c | 7 - src/ov_SC05_003/ov_SC05_003_jr_801380E0.c | 6 - src/ov_SC05_003/ov_SC05_003_jr_80140608.c | 12 +- src/ov_SC05_003/ov_SC05_003_jr_8016AB6C.c | 17 +- src/ov_SC05_003/ov_SC05_003_jr_801734BC.c | 22 +- src/ov_SC05_003/ov_SC05_003_jr_8017BEBC.c | 2 - src/ov_SC05_003/ov_SC05_003_o0c.c | 46 +- src/ov_SC05_004/ov_SC05_004.c | 10 - src/ov_SC05_004/ov_SC05_004_after.c | 31 +- src/ov_SC05_004/ov_SC05_004_jr_8012ACE0.c | 7 - src/ov_SC05_004/ov_SC05_004_jr_801380E0.c | 6 - src/ov_SC05_004/ov_SC05_004_jr_80140608.c | 12 +- src/ov_SC05_004/ov_SC05_004_jr_8016AB6C.c | 17 +- src/ov_SC05_004/ov_SC05_004_jr_801734BC.c | 22 +- src/ov_SC05_004/ov_SC05_004_jr_8017BEBC.c | 1 - src/ov_SC05_004/ov_SC05_004_jr_8017F210.c | 1 - src/ov_SC05_004/ov_SC05_004_o0c.c | 46 +- src/ov_SC05_005/ov_SC05_005.c | 10 - src/ov_SC05_005/ov_SC05_005_after.c | 31 +- src/ov_SC05_005/ov_SC05_005_jr_8012ACE0.c | 7 - src/ov_SC05_005/ov_SC05_005_jr_801380E0.c | 6 - src/ov_SC05_005/ov_SC05_005_jr_80140608.c | 12 +- src/ov_SC05_005/ov_SC05_005_jr_8016AB6C.c | 17 +- src/ov_SC05_005/ov_SC05_005_jr_801734BC.c | 22 +- src/ov_SC05_005/ov_SC05_005_jr_8017AE2C.c | 44 +- src/ov_SC05_005/ov_SC05_005_jr_8017D898.c | 1 - src/ov_SC05_005/ov_SC05_005_o0c.c | 46 +- src/ov_SC05_006/ov_SC05_006.c | 10 - src/ov_SC05_006/ov_SC05_006_after.c | 31 +- src/ov_SC05_006/ov_SC05_006_jr_8012ACE0.c | 7 - src/ov_SC05_006/ov_SC05_006_jr_801380E0.c | 6 - src/ov_SC05_006/ov_SC05_006_jr_80140608.c | 12 +- src/ov_SC05_006/ov_SC05_006_jr_8016AB6C.c | 17 +- src/ov_SC05_006/ov_SC05_006_jr_801734BC.c | 22 +- src/ov_SC05_006/ov_SC05_006_jr_8017BEBC.c | 44 +- src/ov_SC05_006/ov_SC05_006_o0c.c | 46 +- src/ov_SC05_007/ov_SC05_007.c | 10 - src/ov_SC05_007/ov_SC05_007_after.c | 31 +- src/ov_SC05_007/ov_SC05_007_jr_8012ACE0.c | 7 - src/ov_SC05_007/ov_SC05_007_jr_801380E0.c | 6 - src/ov_SC05_007/ov_SC05_007_jr_80140608.c | 12 +- src/ov_SC05_007/ov_SC05_007_jr_8016AB6C.c | 17 +- src/ov_SC05_007/ov_SC05_007_jr_801734BC.c | 22 +- src/ov_SC05_007/ov_SC05_007_o0c.c | 46 +- src/ov_SC05_008/ov_SC05_008.c | 10 - src/ov_SC05_008/ov_SC05_008_after.c | 31 +- src/ov_SC05_008/ov_SC05_008_jr_8012ACE0.c | 7 - src/ov_SC05_008/ov_SC05_008_jr_801380E0.c | 6 - src/ov_SC05_008/ov_SC05_008_jr_80140608.c | 12 +- src/ov_SC05_008/ov_SC05_008_jr_8016AB6C.c | 17 +- src/ov_SC05_008/ov_SC05_008_jr_801734BC.c | 22 +- src/ov_SC05_008/ov_SC05_008_o0c.c | 46 +- src/ov_SC05_009/ov_SC05_009.c | 10 - src/ov_SC05_009/ov_SC05_009_after.c | 31 +- src/ov_SC05_009/ov_SC05_009_jr_8012ACE0.c | 7 - src/ov_SC05_009/ov_SC05_009_jr_801380E0.c | 6 - src/ov_SC05_009/ov_SC05_009_jr_80140608.c | 12 +- src/ov_SC05_009/ov_SC05_009_jr_8016AB6C.c | 17 +- src/ov_SC05_009/ov_SC05_009_jr_801734BC.c | 22 +- src/ov_SC05_009/ov_SC05_009_jr_8017BEBC.c | 9 - src/ov_SC05_009/ov_SC05_009_o0c.c | 46 +- src/ov_SC05_010/ov_SC05_010.c | 10 - src/ov_SC05_010/ov_SC05_010_after.c | 31 +- src/ov_SC05_010/ov_SC05_010_jr_8012ACE0.c | 7 - src/ov_SC05_010/ov_SC05_010_jr_801380E0.c | 6 - src/ov_SC05_010/ov_SC05_010_jr_80140608.c | 12 +- src/ov_SC05_010/ov_SC05_010_jr_8016AB6C.c | 17 +- src/ov_SC05_010/ov_SC05_010_jr_801734BC.c | 22 +- src/ov_SC05_010/ov_SC05_010_jr_8017AE2C.c | 11 - src/ov_SC05_010/ov_SC05_010_jr_8017C8D0.c | 12 - src/ov_SC05_010/ov_SC05_010_jr_80181CDC.c | 41 +- src/ov_SC05_010/ov_SC05_010_o0c.c | 46 +- src/ov_SC05_011/ov_SC05_011.c | 10 - src/ov_SC05_011/ov_SC05_011_after.c | 31 +- src/ov_SC05_011/ov_SC05_011_jr_8012ACE0.c | 7 - src/ov_SC05_011/ov_SC05_011_jr_801380E0.c | 6 - src/ov_SC05_011/ov_SC05_011_jr_80140608.c | 12 +- src/ov_SC05_011/ov_SC05_011_jr_8016AB6C.c | 17 +- src/ov_SC05_011/ov_SC05_011_jr_801734BC.c | 22 +- src/ov_SC05_011/ov_SC05_011_jr_8017BEBC.c | 3 - src/ov_SC05_011/ov_SC05_011_o0c.c | 46 +- src/ov_SC05_017/ov_SC05_017.c | 10 - src/ov_SC05_017/ov_SC05_017_after.c | 31 +- src/ov_SC05_017/ov_SC05_017_jr_8012ACE0.c | 7 - src/ov_SC05_017/ov_SC05_017_jr_801380E0.c | 6 - src/ov_SC05_017/ov_SC05_017_jr_80140608.c | 12 +- src/ov_SC05_017/ov_SC05_017_jr_8016AB6C.c | 17 +- src/ov_SC05_017/ov_SC05_017_jr_801734BC.c | 22 +- src/ov_SC05_017/ov_SC05_017_jr_8017AE2C.c | 44 - src/ov_SC05_017/ov_SC05_017_o0c.c | 46 +- src/ov_SC05_018/ov_SC05_018.c | 10 - src/ov_SC05_018/ov_SC05_018_after.c | 31 +- src/ov_SC05_018/ov_SC05_018_jr_8012ACE0.c | 7 - src/ov_SC05_018/ov_SC05_018_jr_801380E0.c | 6 - src/ov_SC05_018/ov_SC05_018_jr_80140608.c | 12 +- src/ov_SC05_018/ov_SC05_018_jr_8016AB6C.c | 17 +- src/ov_SC05_018/ov_SC05_018_jr_801734BC.c | 22 +- src/ov_SC05_018/ov_SC05_018_jr_8017AE2C.c | 12 - src/ov_SC05_018/ov_SC05_018_jr_8017D604.c | 16 - src/ov_SC05_018/ov_SC05_018_o0c.c | 46 +- src/ov_SC05_019/ov_SC05_019.c | 10 - src/ov_SC05_019/ov_SC05_019_after.c | 31 +- src/ov_SC05_019/ov_SC05_019_jr_8012ACE0.c | 7 - src/ov_SC05_019/ov_SC05_019_jr_801380E0.c | 6 - src/ov_SC05_019/ov_SC05_019_jr_80140608.c | 12 +- src/ov_SC05_019/ov_SC05_019_jr_8016AB6C.c | 17 +- src/ov_SC05_019/ov_SC05_019_jr_801734BC.c | 22 +- src/ov_SC05_019/ov_SC05_019_o0c.c | 46 +- src/ov_SC06_000/ov_SC06_000.c | 10 - src/ov_SC06_000/ov_SC06_000_after.c | 31 +- src/ov_SC06_000/ov_SC06_000_jr_8012ACE0.c | 7 - src/ov_SC06_000/ov_SC06_000_jr_801380E0.c | 6 - src/ov_SC06_000/ov_SC06_000_jr_80140608.c | 12 +- src/ov_SC06_000/ov_SC06_000_jr_8016AB6C.c | 17 +- src/ov_SC06_000/ov_SC06_000_jr_801734BC.c | 22 +- src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c | 110 +- src/ov_SC06_000/ov_SC06_000_o0c.c | 46 +- src/ov_SC06_006/ov_SC06_006.c | 10 - src/ov_SC06_006/ov_SC06_006_after.c | 31 +- src/ov_SC06_006/ov_SC06_006_jr_8012ACE0.c | 7 - src/ov_SC06_006/ov_SC06_006_jr_801380E0.c | 6 - src/ov_SC06_006/ov_SC06_006_jr_80140608.c | 12 +- src/ov_SC06_006/ov_SC06_006_jr_8016AB6C.c | 17 +- src/ov_SC06_006/ov_SC06_006_jr_801734BC.c | 22 +- src/ov_SC06_006/ov_SC06_006_jr_8017BEBC.c | 9 - src/ov_SC06_006/ov_SC06_006_o0c.c | 46 +- src/ov_SC06_008/ov_SC06_008.c | 10 - src/ov_SC06_008/ov_SC06_008_after.c | 31 +- src/ov_SC06_008/ov_SC06_008_jr_8012ACE0.c | 7 - src/ov_SC06_008/ov_SC06_008_jr_801380E0.c | 6 - src/ov_SC06_008/ov_SC06_008_jr_80140608.c | 12 +- src/ov_SC06_008/ov_SC06_008_jr_8016AB6C.c | 17 +- src/ov_SC06_008/ov_SC06_008_jr_801734BC.c | 22 +- src/ov_SC06_008/ov_SC06_008_o0c.c | 46 +- src/ov_SC06_010/ov_SC06_010.c | 10 - src/ov_SC06_010/ov_SC06_010_after.c | 31 +- src/ov_SC06_010/ov_SC06_010_jr_8012ACE0.c | 7 - src/ov_SC06_010/ov_SC06_010_jr_801380E0.c | 6 - src/ov_SC06_010/ov_SC06_010_jr_80140608.c | 12 +- src/ov_SC06_010/ov_SC06_010_jr_8016AB6C.c | 17 +- src/ov_SC06_010/ov_SC06_010_jr_801734BC.c | 22 +- src/ov_SC06_010/ov_SC06_010_jr_8017A4AC.c | 10 - src/ov_SC06_010/ov_SC06_010_o0c.c | 46 +- src/ov_SC06_011/ov_SC06_011.c | 10 - src/ov_SC06_011/ov_SC06_011_after.c | 31 +- src/ov_SC06_011/ov_SC06_011_jr_8012ACE0.c | 7 - src/ov_SC06_011/ov_SC06_011_jr_801380E0.c | 6 - src/ov_SC06_011/ov_SC06_011_jr_80140608.c | 12 +- src/ov_SC06_011/ov_SC06_011_jr_8016AB6C.c | 17 +- src/ov_SC06_011/ov_SC06_011_jr_801734BC.c | 22 +- src/ov_SC06_011/ov_SC06_011_jr_8017BEBC.c | 15 - src/ov_SC06_011/ov_SC06_011_o0c.c | 46 +- src/ov_SC06_013/ov_SC06_013.c | 10 - src/ov_SC06_013/ov_SC06_013_after.c | 31 +- src/ov_SC06_013/ov_SC06_013_jr_8012ACE0.c | 7 - src/ov_SC06_013/ov_SC06_013_jr_801380E0.c | 6 - src/ov_SC06_013/ov_SC06_013_jr_80140608.c | 12 +- src/ov_SC06_013/ov_SC06_013_jr_8016AB6C.c | 17 +- src/ov_SC06_013/ov_SC06_013_jr_801734BC.c | 22 +- src/ov_SC06_013/ov_SC06_013_jr_8017BEBC.c | 6 - src/ov_SC06_013/ov_SC06_013_o0c.c | 46 +- src/ov_SC06_014/ov_SC06_014.c | 10 - src/ov_SC06_014/ov_SC06_014_after.c | 31 +- src/ov_SC06_014/ov_SC06_014_jr_8012ACE0.c | 7 - src/ov_SC06_014/ov_SC06_014_jr_801380E0.c | 6 - src/ov_SC06_014/ov_SC06_014_jr_80140608.c | 12 +- src/ov_SC06_014/ov_SC06_014_jr_8016AB6C.c | 17 +- src/ov_SC06_014/ov_SC06_014_jr_801734BC.c | 22 +- src/ov_SC06_014/ov_SC06_014_jr_8017BEBC.c | 6 - src/ov_SC06_014/ov_SC06_014_o0c.c | 46 +- src/ov_SC06_015/ov_SC06_015.c | 10 - src/ov_SC06_015/ov_SC06_015_after.c | 31 +- src/ov_SC06_015/ov_SC06_015_jr_8012ACE0.c | 7 - src/ov_SC06_015/ov_SC06_015_jr_801380E0.c | 6 - src/ov_SC06_015/ov_SC06_015_jr_80140608.c | 12 +- src/ov_SC06_015/ov_SC06_015_jr_8016AB6C.c | 17 +- src/ov_SC06_015/ov_SC06_015_jr_801734BC.c | 22 +- src/ov_SC06_015/ov_SC06_015_jr_8017BEBC.c | 3 - src/ov_SC06_015/ov_SC06_015_o0c.c | 46 +- src/ov_SC06_016/ov_SC06_016.c | 10 - src/ov_SC06_016/ov_SC06_016_after.c | 31 +- src/ov_SC06_016/ov_SC06_016_jr_8012ACE0.c | 7 - src/ov_SC06_016/ov_SC06_016_jr_801380E0.c | 6 - src/ov_SC06_016/ov_SC06_016_jr_80140608.c | 12 +- src/ov_SC06_016/ov_SC06_016_jr_8016AB6C.c | 17 +- src/ov_SC06_016/ov_SC06_016_jr_801734BC.c | 22 +- src/ov_SC06_016/ov_SC06_016_jr_8017AE2C.c | 11 - src/ov_SC06_016/ov_SC06_016_jr_8017C8D0.c | 39 +- src/ov_SC06_016/ov_SC06_016_o0c.c | 46 +- src/ov_SC06_018/ov_SC06_018.c | 10 - src/ov_SC06_018/ov_SC06_018_after.c | 31 +- src/ov_SC06_018/ov_SC06_018_jr_8012ACE0.c | 7 - src/ov_SC06_018/ov_SC06_018_jr_801380E0.c | 6 - src/ov_SC06_018/ov_SC06_018_jr_80140608.c | 12 +- src/ov_SC06_018/ov_SC06_018_jr_8016AB6C.c | 17 +- src/ov_SC06_018/ov_SC06_018_jr_801734BC.c | 22 +- src/ov_SC06_018/ov_SC06_018_jr_8017C24C.c | 21 +- src/ov_SC06_018/ov_SC06_018_o0c.c | 46 +- src/ov_SC06_020/ov_SC06_020.c | 10 - src/ov_SC06_020/ov_SC06_020_after.c | 31 +- src/ov_SC06_020/ov_SC06_020_jr_8012ACE0.c | 7 - src/ov_SC06_020/ov_SC06_020_jr_801380E0.c | 6 - src/ov_SC06_020/ov_SC06_020_jr_80140608.c | 12 +- src/ov_SC06_020/ov_SC06_020_jr_8016AB6C.c | 17 +- src/ov_SC06_020/ov_SC06_020_jr_801734BC.c | 22 +- src/ov_SC06_020/ov_SC06_020_jr_8017C24C.c | 8 - src/ov_SC06_020/ov_SC06_020_jr_80180B04.c | 10 - src/ov_SC06_020/ov_SC06_020_o0c.c | 46 +- src/ov_SC06_022/ov_SC06_022.c | 10 - src/ov_SC06_022/ov_SC06_022_after.c | 31 +- src/ov_SC06_022/ov_SC06_022_jr_8012ACE0.c | 7 - src/ov_SC06_022/ov_SC06_022_jr_801380E0.c | 6 - src/ov_SC06_022/ov_SC06_022_jr_80140608.c | 12 +- src/ov_SC06_022/ov_SC06_022_jr_8016AB6C.c | 17 +- src/ov_SC06_022/ov_SC06_022_jr_801734BC.c | 22 +- src/ov_SC06_022/ov_SC06_022_jr_8017BEBC.c | 10 - src/ov_SC06_022/ov_SC06_022_o0c.c | 46 +- src/ov_SC06_024/ov_SC06_024.c | 10 - src/ov_SC06_024/ov_SC06_024_after.c | 31 +- src/ov_SC06_024/ov_SC06_024_jr_8012ACE0.c | 7 - src/ov_SC06_024/ov_SC06_024_jr_801380E0.c | 6 - src/ov_SC06_024/ov_SC06_024_jr_80140608.c | 12 +- src/ov_SC06_024/ov_SC06_024_jr_8016AB6C.c | 17 +- src/ov_SC06_024/ov_SC06_024_jr_801734BC.c | 22 +- src/ov_SC06_024/ov_SC06_024_jr_8017BEBC.c | 10 - src/ov_SC06_024/ov_SC06_024_o0c.c | 46 +- src/ov_SC06_025/ov_SC06_025.c | 10 - src/ov_SC06_025/ov_SC06_025_after.c | 31 +- src/ov_SC06_025/ov_SC06_025_jr_8012ACE0.c | 7 - src/ov_SC06_025/ov_SC06_025_jr_801380E0.c | 6 - src/ov_SC06_025/ov_SC06_025_jr_80140608.c | 12 +- src/ov_SC06_025/ov_SC06_025_jr_8016AB6C.c | 17 +- src/ov_SC06_025/ov_SC06_025_jr_801734BC.c | 22 +- src/ov_SC06_025/ov_SC06_025_o0c.c | 46 +- src/ov_SC06_027/ov_SC06_027.c | 10 - src/ov_SC06_027/ov_SC06_027_after.c | 31 +- src/ov_SC06_027/ov_SC06_027_jr_8012ACE0.c | 7 - src/ov_SC06_027/ov_SC06_027_jr_801380E0.c | 6 - src/ov_SC06_027/ov_SC06_027_jr_80140608.c | 12 +- src/ov_SC06_027/ov_SC06_027_jr_8016AB6C.c | 17 +- src/ov_SC06_027/ov_SC06_027_jr_801734BC.c | 22 +- src/ov_SC06_027/ov_SC06_027_o0c.c | 46 +- src/ov_SC06_029/ov_SC06_029.c | 10 - src/ov_SC06_029/ov_SC06_029_after.c | 31 +- src/ov_SC06_029/ov_SC06_029_jr_8012ACE0.c | 7 - src/ov_SC06_029/ov_SC06_029_jr_801380E0.c | 6 - src/ov_SC06_029/ov_SC06_029_jr_80140608.c | 12 +- src/ov_SC06_029/ov_SC06_029_jr_8016AB6C.c | 17 +- src/ov_SC06_029/ov_SC06_029_jr_801734BC.c | 22 +- src/ov_SC06_029/ov_SC06_029_jr_8017AE2C.c | 11 - src/ov_SC06_029/ov_SC06_029_jr_8017C954.c | 15 - src/ov_SC06_029/ov_SC06_029_o0c.c | 46 +- src/ov_SC06_030/ov_SC06_030.c | 10 - src/ov_SC06_030/ov_SC06_030_after.c | 31 +- src/ov_SC06_030/ov_SC06_030_jr_8012ACE0.c | 7 - src/ov_SC06_030/ov_SC06_030_jr_801380E0.c | 6 - src/ov_SC06_030/ov_SC06_030_jr_80140608.c | 12 +- src/ov_SC06_030/ov_SC06_030_jr_8016AB6C.c | 17 +- src/ov_SC06_030/ov_SC06_030_jr_801734BC.c | 22 +- src/ov_SC06_030/ov_SC06_030_jr_8017AE2C.c | 11 - src/ov_SC06_030/ov_SC06_030_o0c.c | 46 +- src/ov_SC06_032/ov_SC06_032.c | 10 - src/ov_SC06_032/ov_SC06_032_after.c | 31 +- src/ov_SC06_032/ov_SC06_032_jr_8012ACE0.c | 7 - src/ov_SC06_032/ov_SC06_032_jr_801380E0.c | 6 - src/ov_SC06_032/ov_SC06_032_jr_80140608.c | 12 +- src/ov_SC06_032/ov_SC06_032_jr_8016AB6C.c | 17 +- src/ov_SC06_032/ov_SC06_032_jr_801734BC.c | 22 +- src/ov_SC06_032/ov_SC06_032_jr_8017C24C.c | 21 +- src/ov_SC06_032/ov_SC06_032_o0c.c | 46 +- src/ov_SC06_033/ov_SC06_033.c | 10 - src/ov_SC06_033/ov_SC06_033_after.c | 31 +- src/ov_SC06_033/ov_SC06_033_jr_8012ACE0.c | 7 - src/ov_SC06_033/ov_SC06_033_jr_801380E0.c | 6 - src/ov_SC06_033/ov_SC06_033_jr_80140608.c | 12 +- src/ov_SC06_033/ov_SC06_033_jr_8016AB6C.c | 17 +- src/ov_SC06_033/ov_SC06_033_jr_801734BC.c | 22 +- src/ov_SC06_033/ov_SC06_033_jr_8017C24C.c | 10 - src/ov_SC06_033/ov_SC06_033_o0c.c | 46 +- src/ov_SC07_000/ov_SC07_000.c | 10 - src/ov_SC07_000/ov_SC07_000_after.c | 31 +- src/ov_SC07_000/ov_SC07_000_jr_8012ACE0.c | 7 - src/ov_SC07_000/ov_SC07_000_jr_801380E0.c | 6 - src/ov_SC07_000/ov_SC07_000_jr_80140608.c | 12 +- src/ov_SC07_000/ov_SC07_000_jr_8016AB6C.c | 17 +- src/ov_SC07_000/ov_SC07_000_jr_801734BC.c | 22 +- src/ov_SC07_000/ov_SC07_000_jr_8017BEBC.c | 37 +- src/ov_SC07_000/ov_SC07_000_o0c.c | 46 +- src/ov_SC07_001/ov_SC07_001.c | 10 - src/ov_SC07_001/ov_SC07_001_after.c | 31 +- src/ov_SC07_001/ov_SC07_001_jr_8012ACE0.c | 7 - src/ov_SC07_001/ov_SC07_001_jr_801380E0.c | 6 - src/ov_SC07_001/ov_SC07_001_jr_80140608.c | 12 +- src/ov_SC07_001/ov_SC07_001_jr_8016AB6C.c | 17 +- src/ov_SC07_001/ov_SC07_001_jr_801734BC.c | 22 +- src/ov_SC07_001/ov_SC07_001_jr_8017BEBC.c | 7 - src/ov_SC07_001/ov_SC07_001_o0c.c | 46 +- src/ov_SC07_002/ov_SC07_002.c | 10 - src/ov_SC07_002/ov_SC07_002_after.c | 31 +- src/ov_SC07_002/ov_SC07_002_jr_8012ACE0.c | 7 - src/ov_SC07_002/ov_SC07_002_jr_801380E0.c | 6 - src/ov_SC07_002/ov_SC07_002_jr_80140608.c | 12 +- src/ov_SC07_002/ov_SC07_002_jr_8016AB6C.c | 17 +- src/ov_SC07_002/ov_SC07_002_jr_801734BC.c | 22 +- src/ov_SC07_002/ov_SC07_002_jr_8017AE2C.c | 11 - src/ov_SC07_002/ov_SC07_002_jr_8017C8D0.c | 52 +- src/ov_SC07_002/ov_SC07_002_o0c.c | 46 +- src/ov_SC07_006/ov_SC07_006.c | 15 - src/ov_SC07_006/ov_SC07_006_jr_80131340.c | 2 - src/ov_SC07_006/ov_SC07_006_jr_801380E0.c | 6 - src/ov_SC07_006/ov_SC07_006_jr_80140608.c | 43 +- src/ov_SC07_006/ov_SC07_006_jr_8015444C.c | 4 +- src/ov_SC07_006/ov_SC07_006_jr_8016AE5C.c | 23 +- src/ov_SC07_006/ov_SC07_006_jr_80171B4C.c | 18 +- src/ov_SC07_006/ov_SC07_006_jr_801789AC.c | 4 +- src/ov_SC07_006/ov_SC07_006_jr_80179B74.c | 4 +- src/ov_SC07_006/ov_SC07_006_jr_8017BEBC.c | 10 - src/ov_SC07_006/ov_SC07_006_o0c.c | 46 +- src/ov_SC07_007/ov_SC07_007.c | 15 - src/ov_SC07_007/ov_SC07_007_jr_80131340.c | 2 - src/ov_SC07_007/ov_SC07_007_jr_80135D20.c | 6 - src/ov_SC07_007/ov_SC07_007_jr_80140608.c | 43 +- src/ov_SC07_007/ov_SC07_007_jr_8015444C.c | 4 +- src/ov_SC07_007/ov_SC07_007_jr_8016AE5C.c | 23 +- src/ov_SC07_007/ov_SC07_007_jr_80171B4C.c | 22 +- src/ov_SC07_007/ov_SC07_007_o0c.c | 46 +- src/ov_SC07_008/ov_SC07_008.c | 10 - src/ov_SC07_008/ov_SC07_008_after.c | 31 +- src/ov_SC07_008/ov_SC07_008_jr_8012ACE0.c | 7 - src/ov_SC07_008/ov_SC07_008_jr_801380E0.c | 6 - src/ov_SC07_008/ov_SC07_008_jr_80140608.c | 12 +- src/ov_SC07_008/ov_SC07_008_jr_8016AB6C.c | 17 +- src/ov_SC07_008/ov_SC07_008_jr_801734BC.c | 22 +- src/ov_SC07_008/ov_SC07_008_jr_8017BEBC.c | 3 - src/ov_SC07_008/ov_SC07_008_o0c.c | 46 +- src/ov_SC07_009/ov_SC07_009.c | 10 - src/ov_SC07_009/ov_SC07_009_after.c | 31 +- src/ov_SC07_009/ov_SC07_009_jr_8012ACE0.c | 7 - src/ov_SC07_009/ov_SC07_009_jr_801380E0.c | 6 - src/ov_SC07_009/ov_SC07_009_jr_80140608.c | 12 +- src/ov_SC07_009/ov_SC07_009_jr_8016AB6C.c | 17 +- src/ov_SC07_009/ov_SC07_009_jr_801734BC.c | 22 +- src/ov_SC07_009/ov_SC07_009_o0c.c | 46 +- src/ov_SC07_010/ov_SC07_010.c | 15 - src/ov_SC07_010/ov_SC07_010_jr_80131340.c | 2 - src/ov_SC07_010/ov_SC07_010_jr_80135D20.c | 6 - src/ov_SC07_010/ov_SC07_010_jr_80140608.c | 43 +- src/ov_SC07_010/ov_SC07_010_jr_8015444C.c | 4 +- src/ov_SC07_010/ov_SC07_010_jr_8016AE5C.c | 23 +- src/ov_SC07_010/ov_SC07_010_jr_80171B4C.c | 22 +- src/ov_SC07_010/ov_SC07_010_jr_8017AE2C.c | 3 - src/ov_SC07_010/ov_SC07_010_o0.c | 43 +- src/ov_SC07_011/ov_SC07_011.c | 15 - src/ov_SC07_011/ov_SC07_011_jr_80131340.c | 2 - src/ov_SC07_011/ov_SC07_011_jr_80135D20.c | 6 - src/ov_SC07_011/ov_SC07_011_jr_80140608.c | 43 +- src/ov_SC07_011/ov_SC07_011_jr_8015444C.c | 4 +- src/ov_SC07_011/ov_SC07_011_jr_8016AE5C.c | 23 +- src/ov_SC07_011/ov_SC07_011_jr_80171B4C.c | 22 +- src/ov_SC07_011/ov_SC07_011_jr_8017BEBC.c | 9 - src/ov_SC07_011/ov_SC07_011_o0c.c | 46 +- src/shared/engine_types.h | 3277 +++++++++++++++++++++ 1260 files changed, 5365 insertions(+), 23445 deletions(-) diff --git a/src/ov_SC01_000/ov_SC01_000.c b/src/ov_SC01_000/ov_SC01_000.c index c6302d951a..d620f93cd5 100644 --- a/src/ov_SC01_000/ov_SC01_000.c +++ b/src/ov_SC01_000/ov_SC01_000.c @@ -386,10 +386,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -756,12 +752,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC01_000/ov_SC01_000_after.c b/src/ov_SC01_000/ov_SC01_000_after.c index 5f24887c0b..6e507a34b2 100644 --- a/src/ov_SC01_000/ov_SC01_000_after.c +++ b/src/ov_SC01_000/ov_SC01_000_after.c @@ -338,7 +338,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1212,21 +1212,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1445,7 +1430,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1519,7 +1504,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2075,17 +2059,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC01_000/ov_SC01_000_jr_8012ACE0.c b/src/ov_SC01_000/ov_SC01_000_jr_8012ACE0.c index d7582d1dd7..e4d9dbc4a4 100644 --- a/src/ov_SC01_000/ov_SC01_000_jr_8012ACE0.c +++ b/src/ov_SC01_000/ov_SC01_000_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -596,7 +592,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2474,7 +2469,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2638,7 +2632,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC01_000/ov_SC01_000_jr_801380E0.c b/src/ov_SC01_000/ov_SC01_000_jr_801380E0.c index 86eb1f86cb..225da2bcbc 100644 --- a/src/ov_SC01_000/ov_SC01_000_jr_801380E0.c +++ b/src/ov_SC01_000/ov_SC01_000_jr_801380E0.c @@ -1048,12 +1048,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017F1D8[]; u16 t; u8 b; diff --git a/src/ov_SC01_000/ov_SC01_000_jr_80140608.c b/src/ov_SC01_000/ov_SC01_000_jr_80140608.c index 88b23e5c36..8c086971e9 100644 --- a/src/ov_SC01_000/ov_SC01_000_jr_80140608.c +++ b/src/ov_SC01_000/ov_SC01_000_jr_80140608.c @@ -1111,11 +1111,6 @@ s16 n; extern s16 D_8017FF98[]; extern u16 D_8017FAA8; extern u16 D_8017FAAA; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1254,13 +1249,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2590,7 +2581,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC01_000/ov_SC01_000_jr_8016AB6C.c b/src/ov_SC01_000/ov_SC01_000_jr_8016AB6C.c index a49319e9d0..d13123fab2 100644 --- a/src/ov_SC01_000/ov_SC01_000_jr_8016AB6C.c +++ b/src/ov_SC01_000/ov_SC01_000_jr_8016AB6C.c @@ -3786,22 +3786,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC01_000/ov_SC01_000_jr_801734BC.c b/src/ov_SC01_000/ov_SC01_000_jr_801734BC.c index 5462d82184..39e8a70a40 100644 --- a/src/ov_SC01_000/ov_SC01_000_jr_801734BC.c +++ b/src/ov_SC01_000/ov_SC01_000_jr_801734BC.c @@ -2908,8 +2908,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2954,8 +2954,8 @@ s32 func_80175820(void) * matching func_80175820 / func_801759D8 exactly (same idiom, different slot/offsets). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801758FC; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801758FC; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801758FC(void) { @@ -2990,8 +2990,8 @@ s32 func_801758FC(void) -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -3037,7 +3037,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3123,7 +3123,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3147,14 +3147,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3308,7 +3300,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC01_000/ov_SC01_000_jr_8017BEBC.c b/src/ov_SC01_000/ov_SC01_000_jr_8017BEBC.c index 4b3719d161..b6244a8d8a 100644 --- a/src/ov_SC01_000/ov_SC01_000_jr_8017BEBC.c +++ b/src/ov_SC01_000/ov_SC01_000_jr_8017BEBC.c @@ -3274,9 +3274,6 @@ void func_8017D1B4(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D1F0; extern u16 func_80148800(s32 *a0); extern void func_8017D290(s32 param_1, s16 *param_2); diff --git a/src/ov_SC01_000/ov_SC01_000_o0c.c b/src/ov_SC01_000/ov_SC01_000_o0c.c index 080f188a67..1a085af11c 100644 --- a/src/ov_SC01_000/ov_SC01_000_o0c.c +++ b/src/ov_SC01_000/ov_SC01_000_o0c.c @@ -783,8 +783,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801A57C0[]; D_801A57C0[a0].f0 = 1; @@ -799,20 +797,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801A57C0[]; D_801A57C0[idx].f0 = 1; @@ -823,7 +807,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801A57C0[]; D_801A57C0[a0].f0 = 0; } @@ -842,16 +826,7 @@ extern s32 D_801A5878; extern s32 D_801A58DC; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801A57C0"); extern s32 D_801A585C; extern s32 D_801A5860; @@ -941,7 +916,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -988,17 +962,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1064,11 +1027,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC01_001/ov_SC01_001.c b/src/ov_SC01_001/ov_SC01_001.c index 1b5d0fc835..bd3773717b 100644 --- a/src/ov_SC01_001/ov_SC01_001.c +++ b/src/ov_SC01_001/ov_SC01_001.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC01_001/ov_SC01_001_after.c b/src/ov_SC01_001/ov_SC01_001_after.c index 8c682cceff..ff166d4a82 100644 --- a/src/ov_SC01_001/ov_SC01_001_after.c +++ b/src/ov_SC01_001/ov_SC01_001_after.c @@ -338,7 +338,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1212,21 +1212,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1445,7 +1430,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1519,7 +1504,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2075,17 +2059,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC01_001/ov_SC01_001_jr_8012ACE0.c b/src/ov_SC01_001/ov_SC01_001_jr_8012ACE0.c index eade2cb556..d26c5a0797 100644 --- a/src/ov_SC01_001/ov_SC01_001_jr_8012ACE0.c +++ b/src/ov_SC01_001/ov_SC01_001_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2444,7 +2439,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2608,7 +2602,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC01_001/ov_SC01_001_jr_801380E0.c b/src/ov_SC01_001/ov_SC01_001_jr_801380E0.c index 8d8e3e34c2..32c33986ca 100644 --- a/src/ov_SC01_001/ov_SC01_001_jr_801380E0.c +++ b/src/ov_SC01_001/ov_SC01_001_jr_801380E0.c @@ -1048,12 +1048,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80183E28[]; u16 t; u8 b; diff --git a/src/ov_SC01_001/ov_SC01_001_jr_80140608.c b/src/ov_SC01_001/ov_SC01_001_jr_80140608.c index 38e2fe7406..d019460a31 100644 --- a/src/ov_SC01_001/ov_SC01_001_jr_80140608.c +++ b/src/ov_SC01_001/ov_SC01_001_jr_80140608.c @@ -1111,11 +1111,6 @@ s16 n; extern s16 D_80184BE8[]; extern u16 D_801846F8; extern u16 D_801846FA; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1254,13 +1249,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2603,7 +2594,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC01_001/ov_SC01_001_jr_8016AB6C.c b/src/ov_SC01_001/ov_SC01_001_jr_8016AB6C.c index d48a1157c6..77eae380f5 100644 --- a/src/ov_SC01_001/ov_SC01_001_jr_8016AB6C.c +++ b/src/ov_SC01_001/ov_SC01_001_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC01_001/ov_SC01_001_jr_801734BC.c b/src/ov_SC01_001/ov_SC01_001_jr_801734BC.c index a6d6ba458b..b3132639e5 100644 --- a/src/ov_SC01_001/ov_SC01_001_jr_801734BC.c +++ b/src/ov_SC01_001/ov_SC01_001_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC01_001/nonmatchings/ov_SC01_001_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC01_001/ov_SC01_001_jr_8017BEBC.c b/src/ov_SC01_001/ov_SC01_001_jr_8017BEBC.c index 89f58659c0..58c87a4b85 100644 --- a/src/ov_SC01_001/ov_SC01_001_jr_8017BEBC.c +++ b/src/ov_SC01_001/ov_SC01_001_jr_8017BEBC.c @@ -3277,9 +3277,6 @@ void func_8017D060(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D09C; extern u16 func_80148800(s32 *a0); extern void func_8017D13C(s32 param_1, s16 *param_2); diff --git a/src/ov_SC01_001/ov_SC01_001_o0c.c b/src/ov_SC01_001/ov_SC01_001_o0c.c index 0527817a57..d9826e486b 100644 --- a/src/ov_SC01_001/ov_SC01_001_o0c.c +++ b/src/ov_SC01_001/ov_SC01_001_o0c.c @@ -784,8 +784,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801F30A0[]; D_801F30A0[a0].f0 = 1; @@ -800,20 +798,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801F30A0[]; D_801F30A0[idx].f0 = 1; @@ -824,7 +808,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801F30A0[]; D_801F30A0[a0].f0 = 0; } @@ -843,16 +827,7 @@ extern s32 D_801F3158; extern s32 D_801F31BC; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801F30A0"); extern s32 D_801F313C; extern s32 D_801F3140; @@ -942,7 +917,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -989,17 +963,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1065,11 +1028,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC01_004/ov_SC01_004.c b/src/ov_SC01_004/ov_SC01_004.c index e59869a034..83acc776c2 100644 --- a/src/ov_SC01_004/ov_SC01_004.c +++ b/src/ov_SC01_004/ov_SC01_004.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -759,12 +755,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC01_004/ov_SC01_004_after.c b/src/ov_SC01_004/ov_SC01_004_after.c index 28d8c241a0..d9a9b4ee66 100644 --- a/src/ov_SC01_004/ov_SC01_004_after.c +++ b/src/ov_SC01_004/ov_SC01_004_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC01_004/ov_SC01_004_jr_8012ACE0.c b/src/ov_SC01_004/ov_SC01_004_jr_8012ACE0.c index 2d5356532b..82d9a682a7 100644 --- a/src/ov_SC01_004/ov_SC01_004_jr_8012ACE0.c +++ b/src/ov_SC01_004/ov_SC01_004_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2445,7 +2440,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2609,7 +2603,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC01_004/ov_SC01_004_jr_801380E0.c b/src/ov_SC01_004/ov_SC01_004_jr_801380E0.c index cb1884d952..4f62ef44ab 100644 --- a/src/ov_SC01_004/ov_SC01_004_jr_801380E0.c +++ b/src/ov_SC01_004/ov_SC01_004_jr_801380E0.c @@ -1056,12 +1056,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017F7EC[]; u16 t; u8 b; diff --git a/src/ov_SC01_004/ov_SC01_004_jr_80140608.c b/src/ov_SC01_004/ov_SC01_004_jr_80140608.c index c8012968ca..49ee48689d 100644 --- a/src/ov_SC01_004/ov_SC01_004_jr_80140608.c +++ b/src/ov_SC01_004/ov_SC01_004_jr_80140608.c @@ -1111,11 +1111,6 @@ s16 n; extern s16 D_801805AC[]; extern u16 D_801800BC; extern u16 D_801800BE; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1254,13 +1249,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2587,7 +2578,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC01_004/ov_SC01_004_jr_8016AB6C.c b/src/ov_SC01_004/ov_SC01_004_jr_8016AB6C.c index 11cc666873..97342a7a7c 100644 --- a/src/ov_SC01_004/ov_SC01_004_jr_8016AB6C.c +++ b/src/ov_SC01_004/ov_SC01_004_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC01_004/ov_SC01_004_jr_801734BC.c b/src/ov_SC01_004/ov_SC01_004_jr_801734BC.c index 6743fdc65d..31c1739c6e 100644 --- a/src/ov_SC01_004/ov_SC01_004_jr_801734BC.c +++ b/src/ov_SC01_004/ov_SC01_004_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC01_004/nonmatchings/ov_SC01_004_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC01_004/ov_SC01_004_jr_8017BE9C.c b/src/ov_SC01_004/ov_SC01_004_jr_8017BE9C.c index d021ecf31f..3e9406cb3c 100644 --- a/src/ov_SC01_004/ov_SC01_004_jr_8017BE9C.c +++ b/src/ov_SC01_004/ov_SC01_004_jr_8017BE9C.c @@ -3412,7 +3412,6 @@ void func_8017D4A4(void) { /* COMPONENT_REF -> unconditional MEM_IN_STRUCT_P on the base store, so the fixed-address D_80115126 load may hoist above it (sched.c true_dependence escape: /s + varying vs non-/s + fixed). */ - struct Hd4a4 { s16 h; }; u8 *base; u16 *q; @@ -3732,13 +3731,7 @@ s32 func_8017DC38(void) { void func_8017DF18(void) { - typedef struct { - s32 f0; /* 0x00 */ - u32 *f4; /* 0x04 == D_800AE7BC */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ - s32 f10; /* 0x10 */ - } Rec20_8017DF18; /* 0x14 stride */ + /* 0x14 stride */ extern s32 D_801151D0; extern s32 D_80115134; @@ -3870,24 +3863,7 @@ void func_8017DF18(void) { * through a local instead) were all tried and all leave the 22-diff swap. */ -typedef struct Prim4_8017E978_8017E1D4 { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ -} Prim4_8017E978_8017E1D4; -typedef struct Panel_8017E978_8017E1D4 { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - void *f4; /* 0x04 */ - void *f8; /* 0x08 */ - s16 fC; /* 0x0C */ - s16 fE; /* 0x0E */ - s16 f10; /* 0x10 */ - s16 f12; /* 0x12 */ - void *f14; /* 0x14 */ - Prim4_8017E978_8017E1D4 *f18; /* 0x18 */ - void *f1C; /* 0x1C */ -} Panel_8017E978_8017E1D4; extern void func_80024054(void *a0, void *a1); @@ -4058,10 +4034,7 @@ s32 *func_8017E804(s32 *ot, void *a1p, s32 idx, void *a3p, s32 tag) { extern u16 D_8011511A; extern u16 D_8018BE9A; extern u16 D_8018BEAE; - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_8017EFA8_8017E804; /* 0x14 stride */ + /* 0x14 stride */ extern Env_8017EFA8_8017E804 D_800AE7BC[]; register s32 zr __asm__("$0"); diff --git a/src/ov_SC01_004/ov_SC01_004_o0c.c b/src/ov_SC01_004/ov_SC01_004_o0c.c index 4778ce6094..26ba03bbb2 100644 --- a/src/ov_SC01_004/ov_SC01_004_o0c.c +++ b/src/ov_SC01_004/ov_SC01_004_o0c.c @@ -784,8 +784,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801902A8[]; D_801902A8[a0].f0 = 1; @@ -800,20 +798,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801902A8[]; D_801902A8[idx].f0 = 1; @@ -824,7 +808,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801902A8[]; D_801902A8[a0].f0 = 0; } @@ -843,16 +827,7 @@ extern s32 D_80190360; extern s32 D_801903C4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801902A8"); extern s32 D_80190344; extern s32 D_80190348; @@ -942,7 +917,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -989,17 +963,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1065,11 +1028,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC01_005/ov_SC01_005.c b/src/ov_SC01_005/ov_SC01_005.c index f267f59f2a..bb3c15be9d 100644 --- a/src/ov_SC01_005/ov_SC01_005.c +++ b/src/ov_SC01_005/ov_SC01_005.c @@ -389,10 +389,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -759,12 +755,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC01_005/ov_SC01_005_after.c b/src/ov_SC01_005/ov_SC01_005_after.c index a8090d4c02..507a746bb3 100644 --- a/src/ov_SC01_005/ov_SC01_005_after.c +++ b/src/ov_SC01_005/ov_SC01_005_after.c @@ -341,7 +341,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1215,21 +1215,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1448,7 +1433,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1522,7 +1507,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2078,17 +2062,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC01_005/ov_SC01_005_jr_8012ACE0.c b/src/ov_SC01_005/ov_SC01_005_jr_8012ACE0.c index 6c75f169b8..356150d946 100644 --- a/src/ov_SC01_005/ov_SC01_005_jr_8012ACE0.c +++ b/src/ov_SC01_005/ov_SC01_005_jr_8012ACE0.c @@ -338,10 +338,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -583,7 +579,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2436,7 +2431,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2600,7 +2594,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC01_005/ov_SC01_005_jr_801380E0.c b/src/ov_SC01_005/ov_SC01_005_jr_801380E0.c index c4f7ac516c..5475c51fc5 100644 --- a/src/ov_SC01_005/ov_SC01_005_jr_801380E0.c +++ b/src/ov_SC01_005/ov_SC01_005_jr_801380E0.c @@ -1049,12 +1049,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80182980[]; u16 t; u8 b; diff --git a/src/ov_SC01_005/ov_SC01_005_jr_80140608.c b/src/ov_SC01_005/ov_SC01_005_jr_80140608.c index 92b925d249..611e9c5b44 100644 --- a/src/ov_SC01_005/ov_SC01_005_jr_80140608.c +++ b/src/ov_SC01_005/ov_SC01_005_jr_80140608.c @@ -1112,11 +1112,6 @@ s16 n; extern s16 D_80183740[]; extern u16 D_80183250; extern u16 D_80183252; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1255,13 +1250,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2588,7 +2579,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC01_005/ov_SC01_005_jr_8016AB6C.c b/src/ov_SC01_005/ov_SC01_005_jr_8016AB6C.c index 7cf96b417d..764a37473a 100644 --- a/src/ov_SC01_005/ov_SC01_005_jr_8016AB6C.c +++ b/src/ov_SC01_005/ov_SC01_005_jr_8016AB6C.c @@ -3785,22 +3785,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC01_005/ov_SC01_005_jr_801734BC.c b/src/ov_SC01_005/ov_SC01_005_jr_801734BC.c index 251a75f04f..6cab52efd9 100644 --- a/src/ov_SC01_005/ov_SC01_005_jr_801734BC.c +++ b/src/ov_SC01_005/ov_SC01_005_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC01_005/ov_SC01_005_jr_8017C340.c b/src/ov_SC01_005/ov_SC01_005_jr_8017C340.c index e26c3b9f8c..19140e1173 100644 --- a/src/ov_SC01_005/ov_SC01_005_jr_8017C340.c +++ b/src/ov_SC01_005/ov_SC01_005_jr_8017C340.c @@ -3429,7 +3429,6 @@ void func_8017DC48(void) { /* COMPONENT_REF -> unconditional MEM_IN_STRUCT_P on the base store, so the fixed-address D_80115126 load may hoist above it (sched.c true_dependence escape: /s + varying vs non-/s + fixed). */ - struct Hd4a4_8017DC48 { s16 h; }; u8 *base; u16 *q; @@ -3743,13 +3742,7 @@ s32 func_8017E3DC(void) { void func_8017E6BC(void) { - typedef struct { - s32 f0; /* 0x00 */ - u32 *f4; /* 0x04 == D_800AE7BC */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ - s32 f10; /* 0x10 */ - } Rec20_8017DF18_8017E6BC; /* 0x14 stride */ + /* 0x14 stride */ extern s32 D_801151D0; extern s32 D_80115134; @@ -3881,24 +3874,7 @@ void func_8017E6BC(void) { * through a local instead) were all tried and all leave the 22-diff swap. */ -typedef struct Prim4_8017E978 { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ -} Prim4_8017E978; -typedef struct Panel_8017E978 { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - void *f4; /* 0x04 */ - void *f8; /* 0x08 */ - s16 fC; /* 0x0C */ - s16 fE; /* 0x0E */ - s16 f10; /* 0x10 */ - s16 f12; /* 0x12 */ - void *f14; /* 0x14 */ - Prim4_8017E978 *f18; /* 0x18 */ - void *f1C; /* 0x1C */ -} Panel_8017E978; extern u16 D_8011511A; @@ -4067,10 +4043,7 @@ extern s16 D_800B9A02; extern s16 func_8014168C(s16 a0); s32 *func_8017EFA8(s32 *ot, void *a1p, s32 idx, void *a3p, s32 tag) { - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_8017EFA8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_8017EFA8 D_800AE7BC[]; register s32 zr __asm__("$0"); diff --git a/src/ov_SC01_005/ov_SC01_005_o0c.c b/src/ov_SC01_005/ov_SC01_005_o0c.c index 44efde1750..ff701fddf4 100644 --- a/src/ov_SC01_005/ov_SC01_005_o0c.c +++ b/src/ov_SC01_005/ov_SC01_005_o0c.c @@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801CDF08[]; D_801CDF08[a0].f0 = 1; @@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801CDF08[]; D_801CDF08[idx].f0 = 1; @@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801CDF08[]; D_801CDF08[a0].f0 = 0; } @@ -844,16 +828,7 @@ extern s32 D_801CDFC0; extern s32 D_801CE024; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801CDF08"); extern s32 D_801CDFA4; extern s32 D_801CDFA8; @@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC01_006/ov_SC01_006.c b/src/ov_SC01_006/ov_SC01_006.c index d71550eb95..586cc9cd18 100644 --- a/src/ov_SC01_006/ov_SC01_006.c +++ b/src/ov_SC01_006/ov_SC01_006.c @@ -389,10 +389,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -759,12 +755,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC01_006/ov_SC01_006_after.c b/src/ov_SC01_006/ov_SC01_006_after.c index b67ed55009..87b2c49f1f 100644 --- a/src/ov_SC01_006/ov_SC01_006_after.c +++ b/src/ov_SC01_006/ov_SC01_006_after.c @@ -341,7 +341,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1215,21 +1215,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1448,7 +1433,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1522,7 +1507,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2078,17 +2062,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC01_006/ov_SC01_006_jr_8012ACE0.c b/src/ov_SC01_006/ov_SC01_006_jr_8012ACE0.c index b52e9f84e0..c0693b8fbf 100644 --- a/src/ov_SC01_006/ov_SC01_006_jr_8012ACE0.c +++ b/src/ov_SC01_006/ov_SC01_006_jr_8012ACE0.c @@ -338,10 +338,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -583,7 +579,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2436,7 +2431,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2600,7 +2594,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC01_006/ov_SC01_006_jr_801380E0.c b/src/ov_SC01_006/ov_SC01_006_jr_801380E0.c index c4f7ac516c..5475c51fc5 100644 --- a/src/ov_SC01_006/ov_SC01_006_jr_801380E0.c +++ b/src/ov_SC01_006/ov_SC01_006_jr_801380E0.c @@ -1049,12 +1049,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80182980[]; u16 t; u8 b; diff --git a/src/ov_SC01_006/ov_SC01_006_jr_80140608.c b/src/ov_SC01_006/ov_SC01_006_jr_80140608.c index f375dd9d84..8d88a70ebe 100644 --- a/src/ov_SC01_006/ov_SC01_006_jr_80140608.c +++ b/src/ov_SC01_006/ov_SC01_006_jr_80140608.c @@ -1112,11 +1112,6 @@ s16 n; extern s16 D_80183740[]; extern u16 D_80183250; extern u16 D_80183252; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1255,13 +1250,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2588,7 +2579,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC01_006/ov_SC01_006_jr_8016AB6C.c b/src/ov_SC01_006/ov_SC01_006_jr_8016AB6C.c index 7cf96b417d..764a37473a 100644 --- a/src/ov_SC01_006/ov_SC01_006_jr_8016AB6C.c +++ b/src/ov_SC01_006/ov_SC01_006_jr_8016AB6C.c @@ -3785,22 +3785,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC01_006/ov_SC01_006_jr_801734BC.c b/src/ov_SC01_006/ov_SC01_006_jr_801734BC.c index fa17d9fa4a..e70f00a0bd 100644 --- a/src/ov_SC01_006/ov_SC01_006_jr_801734BC.c +++ b/src/ov_SC01_006/ov_SC01_006_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC01_006/ov_SC01_006_jr_8017C340.c b/src/ov_SC01_006/ov_SC01_006_jr_8017C340.c index 6a269a5fcf..72b8d71761 100644 --- a/src/ov_SC01_006/ov_SC01_006_jr_8017C340.c +++ b/src/ov_SC01_006/ov_SC01_006_jr_8017C340.c @@ -3430,7 +3430,6 @@ void func_8017DC48(void) { /* COMPONENT_REF -> unconditional MEM_IN_STRUCT_P on the base store, so the fixed-address D_80115126 load may hoist above it (sched.c true_dependence escape: /s + varying vs non-/s + fixed). */ - struct Hd4a4_8017DC48 { s16 h; }; u8 *base; u16 *q; @@ -3744,13 +3743,7 @@ s32 func_8017E3DC(void) { void func_8017E6BC(void) { - typedef struct { - s32 f0; /* 0x00 */ - u32 *f4; /* 0x04 == D_800AE7BC */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ - s32 f10; /* 0x10 */ - } Rec20_8017DF18_8017E6BC; /* 0x14 stride */ + /* 0x14 stride */ extern s32 D_801151D0; extern s32 D_80115134; @@ -3881,24 +3874,7 @@ void func_8017E6BC(void) { * through a local instead) were all tried and all leave the 22-diff swap. */ -typedef struct Prim4_8017E978_8017E978 { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ -} Prim4_8017E978_8017E978; -typedef struct Panel_8017E978_8017E978 { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - void *f4; /* 0x04 */ - void *f8; /* 0x08 */ - s16 fC; /* 0x0C */ - s16 fE; /* 0x0E */ - s16 f10; /* 0x10 */ - s16 f12; /* 0x12 */ - void *f14; /* 0x14 */ - Prim4_8017E978_8017E978 *f18; /* 0x18 */ - void *f1C; /* 0x1C */ -} Panel_8017E978_8017E978; extern void func_80024054(void *a0, void *a1); @@ -4069,10 +4045,7 @@ s32 *func_8017EFA8(s32 *ot, void *a1p, s32 idx, void *a3p, s32 tag) { extern u16 D_8011511A; extern u16 D_801BB61E; extern u16 D_801BB632; - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_8017EFA8_8017EFA8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_8017EFA8_8017EFA8 D_800AE7BC[]; register s32 zr __asm__("$0"); diff --git a/src/ov_SC01_006/ov_SC01_006_o0c.c b/src/ov_SC01_006/ov_SC01_006_o0c.c index 44efde1750..ff701fddf4 100644 --- a/src/ov_SC01_006/ov_SC01_006_o0c.c +++ b/src/ov_SC01_006/ov_SC01_006_o0c.c @@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801CDF08[]; D_801CDF08[a0].f0 = 1; @@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801CDF08[]; D_801CDF08[idx].f0 = 1; @@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801CDF08[]; D_801CDF08[a0].f0 = 0; } @@ -844,16 +828,7 @@ extern s32 D_801CDFC0; extern s32 D_801CE024; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801CDF08"); extern s32 D_801CDFA4; extern s32 D_801CDFA8; @@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC01_008/ov_SC01_008.c b/src/ov_SC01_008/ov_SC01_008.c index db67b45ce5..9907cd2a72 100644 --- a/src/ov_SC01_008/ov_SC01_008.c +++ b/src/ov_SC01_008/ov_SC01_008.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -759,12 +755,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC01_008/ov_SC01_008_after.c b/src/ov_SC01_008/ov_SC01_008_after.c index 34134973a6..4c3694fc28 100644 --- a/src/ov_SC01_008/ov_SC01_008_after.c +++ b/src/ov_SC01_008/ov_SC01_008_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC01_008/ov_SC01_008_jr_8012ACE0.c b/src/ov_SC01_008/ov_SC01_008_jr_8012ACE0.c index a377741de3..6dae8f66a2 100644 --- a/src/ov_SC01_008/ov_SC01_008_jr_8012ACE0.c +++ b/src/ov_SC01_008/ov_SC01_008_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2445,7 +2440,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2609,7 +2603,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC01_008/ov_SC01_008_jr_801380E0.c b/src/ov_SC01_008/ov_SC01_008_jr_801380E0.c index f593210669..247e04f817 100644 --- a/src/ov_SC01_008/ov_SC01_008_jr_801380E0.c +++ b/src/ov_SC01_008/ov_SC01_008_jr_801380E0.c @@ -1056,12 +1056,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017FD60[]; u16 t; u8 b; diff --git a/src/ov_SC01_008/ov_SC01_008_jr_80140608.c b/src/ov_SC01_008/ov_SC01_008_jr_80140608.c index a9eacd6e2d..f05d526331 100644 --- a/src/ov_SC01_008/ov_SC01_008_jr_80140608.c +++ b/src/ov_SC01_008/ov_SC01_008_jr_80140608.c @@ -1111,11 +1111,6 @@ s16 n; extern s16 D_80180B20[]; extern u16 D_80180630; extern u16 D_80180632; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1254,13 +1249,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2587,7 +2578,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC01_008/ov_SC01_008_jr_8016AB6C.c b/src/ov_SC01_008/ov_SC01_008_jr_8016AB6C.c index 6b848d3142..bf939ad5cd 100644 --- a/src/ov_SC01_008/ov_SC01_008_jr_8016AB6C.c +++ b/src/ov_SC01_008/ov_SC01_008_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC01_008/ov_SC01_008_jr_801734BC.c b/src/ov_SC01_008/ov_SC01_008_jr_801734BC.c index 0967919bc5..6b32a36d20 100644 --- a/src/ov_SC01_008/ov_SC01_008_jr_801734BC.c +++ b/src/ov_SC01_008/ov_SC01_008_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC01_008/nonmatchings/ov_SC01_008_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC01_008/ov_SC01_008_jr_8017BE9C.c b/src/ov_SC01_008/ov_SC01_008_jr_8017BE9C.c index 8b461063d9..8fa86b2d52 100644 --- a/src/ov_SC01_008/ov_SC01_008_jr_8017BE9C.c +++ b/src/ov_SC01_008/ov_SC01_008_jr_8017BE9C.c @@ -3407,7 +3407,6 @@ void func_8017D5DC(void) { /* COMPONENT_REF -> unconditional MEM_IN_STRUCT_P on the base store, so the fixed-address D_80115126 load may hoist above it (sched.c true_dependence escape: /s + varying vs non-/s + fixed). */ - struct Hd4a4_8017D5DC { s16 h; }; u8 *base; u16 *q; @@ -3729,13 +3728,7 @@ s32 func_8017DD70(void) { void func_8017E050(void) { - typedef struct { - s32 f0; /* 0x00 */ - u32 *f4; /* 0x04 == D_800AE7BC */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ - s32 f10; /* 0x10 */ - } Rec20_8017DF18_8017E050; /* 0x14 stride */ + /* 0x14 stride */ extern s32 D_801151D0; extern s32 D_80115134; @@ -3866,24 +3859,7 @@ void func_8017E050(void) { * through a local instead) were all tried and all leave the 22-diff swap. */ -typedef struct Prim4_8017E978_8017E30C { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ -} Prim4_8017E978_8017E30C; -typedef struct Panel_8017E978_8017E30C { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - void *f4; /* 0x04 */ - void *f8; /* 0x08 */ - s16 fC; /* 0x0C */ - s16 fE; /* 0x0E */ - s16 f10; /* 0x10 */ - s16 f12; /* 0x12 */ - void *f14; /* 0x14 */ - Prim4_8017E978_8017E30C *f18; /* 0x18 */ - void *f1C; /* 0x1C */ -} Panel_8017E978_8017E30C; extern void func_80024054(void *a0, void *a1); @@ -4054,10 +4030,7 @@ s32 *func_8017E93C(s32 *ot, void *a1p, s32 idx, void *a3p, s32 tag) { extern u16 D_8011511A; extern u16 D_8019EBFA; extern u16 D_8019EC0E; - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_8017EFA8_8017E93C; /* 0x14 stride */ + /* 0x14 stride */ extern Env_8017EFA8_8017E93C D_800AE7BC[]; register s32 zr __asm__("$0"); diff --git a/src/ov_SC01_008/ov_SC01_008_o0c.c b/src/ov_SC01_008/ov_SC01_008_o0c.c index a38fb8930a..6c417c4090 100644 --- a/src/ov_SC01_008/ov_SC01_008_o0c.c +++ b/src/ov_SC01_008/ov_SC01_008_o0c.c @@ -784,8 +784,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801A34B8[]; D_801A34B8[a0].f0 = 1; @@ -800,20 +798,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801A34B8[]; D_801A34B8[idx].f0 = 1; @@ -824,7 +808,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801A34B8[]; D_801A34B8[a0].f0 = 0; } @@ -843,16 +827,7 @@ extern s32 D_801A3570; extern s32 D_801A35D4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801A34B8"); extern s32 D_801A3554; extern s32 D_801A3558; @@ -942,7 +917,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -989,17 +963,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1065,11 +1028,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC01_009/ov_SC01_009.c b/src/ov_SC01_009/ov_SC01_009.c index 4a5e4d2ad6..a8d017dfc1 100644 --- a/src/ov_SC01_009/ov_SC01_009.c +++ b/src/ov_SC01_009/ov_SC01_009.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -759,12 +755,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC01_009/ov_SC01_009_after.c b/src/ov_SC01_009/ov_SC01_009_after.c index 98285a5439..e718a3e0f8 100644 --- a/src/ov_SC01_009/ov_SC01_009_after.c +++ b/src/ov_SC01_009/ov_SC01_009_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC01_009/ov_SC01_009_jr_8012ACE0.c b/src/ov_SC01_009/ov_SC01_009_jr_8012ACE0.c index 98efe6f59d..70ce53dea6 100644 --- a/src/ov_SC01_009/ov_SC01_009_jr_8012ACE0.c +++ b/src/ov_SC01_009/ov_SC01_009_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2445,7 +2440,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2609,7 +2603,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC01_009/ov_SC01_009_jr_801380E0.c b/src/ov_SC01_009/ov_SC01_009_jr_801380E0.c index e7143dedd5..4ac4ea9288 100644 --- a/src/ov_SC01_009/ov_SC01_009_jr_801380E0.c +++ b/src/ov_SC01_009/ov_SC01_009_jr_801380E0.c @@ -1056,12 +1056,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80182F48[]; u16 t; u8 b; diff --git a/src/ov_SC01_009/ov_SC01_009_jr_80140608.c b/src/ov_SC01_009/ov_SC01_009_jr_80140608.c index cfaf44cf9a..fd390b45ae 100644 --- a/src/ov_SC01_009/ov_SC01_009_jr_80140608.c +++ b/src/ov_SC01_009/ov_SC01_009_jr_80140608.c @@ -1111,11 +1111,6 @@ s16 n; extern s16 D_80183D08[]; extern u16 D_80183818; extern u16 D_8018381A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1254,13 +1249,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2587,7 +2578,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC01_009/ov_SC01_009_jr_8016AB6C.c b/src/ov_SC01_009/ov_SC01_009_jr_8016AB6C.c index be95fa5824..b3bc33f4ca 100644 --- a/src/ov_SC01_009/ov_SC01_009_jr_8016AB6C.c +++ b/src/ov_SC01_009/ov_SC01_009_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC01_009/ov_SC01_009_jr_801734BC.c b/src/ov_SC01_009/ov_SC01_009_jr_801734BC.c index 6cd3f69ede..fa9767c8ae 100644 --- a/src/ov_SC01_009/ov_SC01_009_jr_801734BC.c +++ b/src/ov_SC01_009/ov_SC01_009_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC01_009/ov_SC01_009_jr_8017BE9C.c b/src/ov_SC01_009/ov_SC01_009_jr_8017BE9C.c index 91836638cb..9342d0b7da 100644 --- a/src/ov_SC01_009/ov_SC01_009_jr_8017BE9C.c +++ b/src/ov_SC01_009/ov_SC01_009_jr_8017BE9C.c @@ -3366,7 +3366,6 @@ void func_8017D47C(void) { /* COMPONENT_REF -> unconditional MEM_IN_STRUCT_P on the base store, so the fixed-address D_80115126 load may hoist above it (sched.c true_dependence escape: /s + varying vs non-/s + fixed). */ - struct Hd4a4_8017D47C { s16 h; }; u8 *base; u16 *q; @@ -3688,13 +3687,7 @@ s32 func_8017DC10(void) { void func_8017DEF0(void) { - typedef struct { - s32 f0; /* 0x00 */ - u32 *f4; /* 0x04 == D_800AE7BC */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ - s32 f10; /* 0x10 */ - } Rec20_8017DF18_8017DEF0; /* 0x14 stride */ + /* 0x14 stride */ extern s32 D_801151D0; extern s32 D_80115134; @@ -3825,24 +3818,7 @@ void func_8017DEF0(void) { * through a local instead) were all tried and all leave the 22-diff swap. */ -typedef struct Prim4_8017E978_8017E1AC { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ -} Prim4_8017E978_8017E1AC; -typedef struct Panel_8017E978_8017E1AC { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - void *f4; /* 0x04 */ - void *f8; /* 0x08 */ - s16 fC; /* 0x0C */ - s16 fE; /* 0x0E */ - s16 f10; /* 0x10 */ - s16 f12; /* 0x12 */ - void *f14; /* 0x14 */ - Prim4_8017E978_8017E1AC *f18; /* 0x18 */ - void *f1C; /* 0x1C */ -} Panel_8017E978_8017E1AC; extern void func_80024054(void *a0, void *a1); @@ -4013,10 +3989,7 @@ s32 *func_8017E7DC(s32 *ot, void *a1p, s32 idx, void *a3p, s32 tag) { extern u16 D_8011511A; extern u16 D_801E8C4E; extern u16 D_801E8C62; - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_8017EFA8_8017E7DC; /* 0x14 stride */ + /* 0x14 stride */ extern Env_8017EFA8_8017E7DC D_800AE7BC[]; register s32 zr __asm__("$0"); diff --git a/src/ov_SC01_009/ov_SC01_009_o0c.c b/src/ov_SC01_009/ov_SC01_009_o0c.c index 71d7fc166c..f11028a2c5 100644 --- a/src/ov_SC01_009/ov_SC01_009_o0c.c +++ b/src/ov_SC01_009/ov_SC01_009_o0c.c @@ -784,8 +784,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801F3338[]; D_801F3338[a0].f0 = 1; @@ -800,20 +798,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801F3338[]; D_801F3338[idx].f0 = 1; @@ -824,7 +808,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801F3338[]; D_801F3338[a0].f0 = 0; } @@ -843,16 +827,7 @@ extern s32 D_801F33F0; extern s32 D_801F3454; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801F3338"); extern s32 D_801F33D4; extern s32 D_801F33D8; @@ -942,7 +917,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -989,17 +963,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1065,11 +1028,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC01_074/ov_SC01_074.c b/src/ov_SC01_074/ov_SC01_074.c index 6128f26751..09dc9f5122 100644 --- a/src/ov_SC01_074/ov_SC01_074.c +++ b/src/ov_SC01_074/ov_SC01_074.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -759,12 +755,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC01_074/ov_SC01_074_after.c b/src/ov_SC01_074/ov_SC01_074_after.c index f9649563fc..00dab5466d 100644 --- a/src/ov_SC01_074/ov_SC01_074_after.c +++ b/src/ov_SC01_074/ov_SC01_074_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC01_074/ov_SC01_074_jr_8012ACE0.c b/src/ov_SC01_074/ov_SC01_074_jr_8012ACE0.c index 1071819b60..38105eecd5 100644 --- a/src/ov_SC01_074/ov_SC01_074_jr_8012ACE0.c +++ b/src/ov_SC01_074/ov_SC01_074_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2445,7 +2440,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2609,7 +2603,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC01_074/ov_SC01_074_jr_801380E0.c b/src/ov_SC01_074/ov_SC01_074_jr_801380E0.c index 9bac7cfffb..8539e94d36 100644 --- a/src/ov_SC01_074/ov_SC01_074_jr_801380E0.c +++ b/src/ov_SC01_074/ov_SC01_074_jr_801380E0.c @@ -1057,12 +1057,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017EBC8[]; u16 t; u8 b; diff --git a/src/ov_SC01_074/ov_SC01_074_jr_80140608.c b/src/ov_SC01_074/ov_SC01_074_jr_80140608.c index 58f6c28812..bc114692e0 100644 --- a/src/ov_SC01_074/ov_SC01_074_jr_80140608.c +++ b/src/ov_SC01_074/ov_SC01_074_jr_80140608.c @@ -1112,11 +1112,6 @@ s16 n; extern s16 D_8017F988[]; extern u16 D_8017F498; extern u16 D_8017F49A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1255,13 +1250,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2588,7 +2579,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC01_074/ov_SC01_074_jr_8016AB6C.c b/src/ov_SC01_074/ov_SC01_074_jr_8016AB6C.c index d048e3ab37..72e44a969c 100644 --- a/src/ov_SC01_074/ov_SC01_074_jr_8016AB6C.c +++ b/src/ov_SC01_074/ov_SC01_074_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC01_074/ov_SC01_074_jr_801734BC.c b/src/ov_SC01_074/ov_SC01_074_jr_801734BC.c index ca55a62ac4..4009984581 100644 --- a/src/ov_SC01_074/ov_SC01_074_jr_801734BC.c +++ b/src/ov_SC01_074/ov_SC01_074_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC01_074/nonmatchings/ov_SC01_074_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC01_074/ov_SC01_074_o0c.c b/src/ov_SC01_074/ov_SC01_074_o0c.c index c9446c4868..71e48ed416 100644 --- a/src/ov_SC01_074/ov_SC01_074_o0c.c +++ b/src/ov_SC01_074/ov_SC01_074_o0c.c @@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_8019BC48[]; D_8019BC48[a0].f0 = 1; @@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_8019BC48[]; D_8019BC48[idx].f0 = 1; @@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_8019BC48[]; D_8019BC48[a0].f0 = 0; } @@ -844,16 +828,7 @@ extern s32 D_8019BD00; extern s32 D_8019BD64; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_8019BC48"); extern s32 D_8019BCE4; extern s32 D_8019BCE8; @@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC01_077/ov_SC01_077.c b/src/ov_SC01_077/ov_SC01_077.c index 29904a5e37..66594ffe7c 100644 --- a/src/ov_SC01_077/ov_SC01_077.c +++ b/src/ov_SC01_077/ov_SC01_077.c @@ -2353,11 +2353,6 @@ s32 *ot; s16 i; s16 n; { - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -2577,13 +2572,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -3864,7 +3855,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC01_077/ov_SC01_077_a.c b/src/ov_SC01_077/ov_SC01_077_a.c index fe8f6a0066..d160788336 100644 --- a/src/ov_SC01_077/ov_SC01_077_a.c +++ b/src/ov_SC01_077/ov_SC01_077_a.c @@ -429,10 +429,6 @@ DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ #include "common.h" -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc; extern s16 D_80186DCC[]; extern CdFileLoc cdFileLocTable[]; @@ -845,12 +841,6 @@ extern s16 D_80126CAE; void func_8012A328(void) { - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC01_077/ov_SC01_077_after.c b/src/ov_SC01_077/ov_SC01_077_after.c index f1db647110..ddb35ffc2d 100644 --- a/src/ov_SC01_077/ov_SC01_077_after.c +++ b/src/ov_SC01_077/ov_SC01_077_after.c @@ -370,7 +370,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1345,21 +1345,6 @@ extern s32 func_80029178(s32); extern u8 D_801202A0[]; s32 func_8014A738(void *arg0) { - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1700,7 +1685,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1771,7 +1756,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2356,17 +2340,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC01_077/ov_SC01_077_jr_8012ACE0.c b/src/ov_SC01_077/ov_SC01_077_jr_8012ACE0.c index da09611f5c..1311e4e7cc 100644 --- a/src/ov_SC01_077/ov_SC01_077_jr_8012ACE0.c +++ b/src/ov_SC01_077/ov_SC01_077_jr_8012ACE0.c @@ -410,10 +410,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -707,7 +703,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2753,7 +2748,6 @@ extern u8 D_80126BE0[]; void func_80132F40(s32 arg0) { - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2902,7 +2896,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L; extern u8 D_80126B5C; /* canonical decl (engine_core.h DEFINE_func_8012BD14) */ extern s32 D_80126B5C_w __asm__("D_80126B5C"); /* same symbol, s32 view */ diff --git a/src/ov_SC01_077/ov_SC01_077_jr_801380E0.c b/src/ov_SC01_077/ov_SC01_077_jr_801380E0.c index 4561c61d96..9243c448bb 100644 --- a/src/ov_SC01_077/ov_SC01_077_jr_801380E0.c +++ b/src/ov_SC01_077/ov_SC01_077_jr_801380E0.c @@ -1135,12 +1135,6 @@ s32 func_8013A8FC(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_801870EC[]; u16 t; u8 b; diff --git a/src/ov_SC01_077/ov_SC01_077_jr_8016AB6C.c b/src/ov_SC01_077/ov_SC01_077_jr_8016AB6C.c index 58d275860a..c5797b56e5 100644 --- a/src/ov_SC01_077/ov_SC01_077_jr_8016AB6C.c +++ b/src/ov_SC01_077/ov_SC01_077_jr_8016AB6C.c @@ -3956,22 +3956,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC01_077/ov_SC01_077_jr_801734BC.c b/src/ov_SC01_077/ov_SC01_077_jr_801734BC.c index 39de0dee6e..a909bb91fa 100644 --- a/src/ov_SC01_077/ov_SC01_077_jr_801734BC.c +++ b/src/ov_SC01_077/ov_SC01_077_jr_801734BC.c @@ -3070,8 +3070,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -3111,8 +3111,8 @@ INCLUDE_ASM("asm/ov_SC01_077/nonmatchings/ov_SC01_077_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -3201,7 +3201,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3292,7 +3292,7 @@ void func_80175AB8(param_1) extern u8 D_8011F7F0; extern u8 D_800B9A13; -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; extern u16 D_8018A1DC[]; @@ -3313,14 +3313,6 @@ extern void func_800183E0(s32 a0); void func_80175DA8(param_1) u16 param_1; { - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3475,7 +3467,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634 aAF634[] __asm__("D_800AF634"); extern S_AF634 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC01_080/ov_SC01_080.c b/src/ov_SC01_080/ov_SC01_080.c index f0a3ccd26b..514286138a 100644 --- a/src/ov_SC01_080/ov_SC01_080.c +++ b/src/ov_SC01_080/ov_SC01_080.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -759,12 +755,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC01_080/ov_SC01_080_after.c b/src/ov_SC01_080/ov_SC01_080_after.c index bdc53757d0..9f172330f6 100644 --- a/src/ov_SC01_080/ov_SC01_080_after.c +++ b/src/ov_SC01_080/ov_SC01_080_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC01_080/ov_SC01_080_jr_8012ACE0.c b/src/ov_SC01_080/ov_SC01_080_jr_8012ACE0.c index 4b97bce1f4..8d2f008249 100644 --- a/src/ov_SC01_080/ov_SC01_080_jr_8012ACE0.c +++ b/src/ov_SC01_080/ov_SC01_080_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2445,7 +2440,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2609,7 +2603,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC01_080/ov_SC01_080_jr_801380E0.c b/src/ov_SC01_080/ov_SC01_080_jr_801380E0.c index 85fb4829c3..403091bad8 100644 --- a/src/ov_SC01_080/ov_SC01_080_jr_801380E0.c +++ b/src/ov_SC01_080/ov_SC01_080_jr_801380E0.c @@ -1057,12 +1057,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80183B28[]; u16 t; u8 b; diff --git a/src/ov_SC01_080/ov_SC01_080_jr_80140608.c b/src/ov_SC01_080/ov_SC01_080_jr_80140608.c index 529d85ba00..20718fe8cc 100644 --- a/src/ov_SC01_080/ov_SC01_080_jr_80140608.c +++ b/src/ov_SC01_080/ov_SC01_080_jr_80140608.c @@ -1112,11 +1112,6 @@ s16 n; extern s16 D_801848E8[]; extern u16 D_801843F8; extern u16 D_801843FA; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1255,13 +1250,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2604,7 +2595,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC01_080/ov_SC01_080_jr_8016AB6C.c b/src/ov_SC01_080/ov_SC01_080_jr_8016AB6C.c index b00a398443..a29357de7d 100644 --- a/src/ov_SC01_080/ov_SC01_080_jr_8016AB6C.c +++ b/src/ov_SC01_080/ov_SC01_080_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC01_080/ov_SC01_080_jr_801734BC.c b/src/ov_SC01_080/ov_SC01_080_jr_801734BC.c index 6daf51bfc6..918e504594 100644 --- a/src/ov_SC01_080/ov_SC01_080_jr_801734BC.c +++ b/src/ov_SC01_080/ov_SC01_080_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC01_080/ov_SC01_080_o0c.c b/src/ov_SC01_080/ov_SC01_080_o0c.c index 4d96e5b36d..946cb5959d 100644 --- a/src/ov_SC01_080/ov_SC01_080_o0c.c +++ b/src/ov_SC01_080/ov_SC01_080_o0c.c @@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801C7E28[]; D_801C7E28[a0].f0 = 1; @@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801C7E28[]; D_801C7E28[idx].f0 = 1; @@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801C7E28[]; D_801C7E28[a0].f0 = 0; } @@ -844,16 +828,7 @@ extern s32 D_801C7EE0; extern s32 D_801C7F44; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801C7E28"); extern s32 D_801C7EC8; extern s32 D_801C7ECC; @@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC01_084/ov_SC01_084.c b/src/ov_SC01_084/ov_SC01_084.c index 1c5c616e1c..640a79902a 100644 --- a/src/ov_SC01_084/ov_SC01_084.c +++ b/src/ov_SC01_084/ov_SC01_084.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -759,12 +755,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC01_084/ov_SC01_084_after.c b/src/ov_SC01_084/ov_SC01_084_after.c index 383729f144..51ea1dd158 100644 --- a/src/ov_SC01_084/ov_SC01_084_after.c +++ b/src/ov_SC01_084/ov_SC01_084_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC01_084/ov_SC01_084_jr_8012ACE0.c b/src/ov_SC01_084/ov_SC01_084_jr_8012ACE0.c index 516a79c59a..1abf8f0fc3 100644 --- a/src/ov_SC01_084/ov_SC01_084_jr_8012ACE0.c +++ b/src/ov_SC01_084/ov_SC01_084_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2445,7 +2440,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2609,7 +2603,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC01_084/ov_SC01_084_jr_801380E0.c b/src/ov_SC01_084/ov_SC01_084_jr_801380E0.c index 9f9472a8b4..275e17cfed 100644 --- a/src/ov_SC01_084/ov_SC01_084_jr_801380E0.c +++ b/src/ov_SC01_084/ov_SC01_084_jr_801380E0.c @@ -1057,12 +1057,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80186E1C[]; u16 t; u8 b; diff --git a/src/ov_SC01_084/ov_SC01_084_jr_80140608.c b/src/ov_SC01_084/ov_SC01_084_jr_80140608.c index 298345598e..1baa77a276 100644 --- a/src/ov_SC01_084/ov_SC01_084_jr_80140608.c +++ b/src/ov_SC01_084/ov_SC01_084_jr_80140608.c @@ -1112,11 +1112,6 @@ s16 n; extern s16 D_80187BDC[]; extern u16 D_801876EC; extern u16 D_801876EE; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1255,13 +1250,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2588,7 +2579,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC01_084/ov_SC01_084_jr_8016AB6C.c b/src/ov_SC01_084/ov_SC01_084_jr_8016AB6C.c index b0ea8f2503..3ea5104cb5 100644 --- a/src/ov_SC01_084/ov_SC01_084_jr_8016AB6C.c +++ b/src/ov_SC01_084/ov_SC01_084_jr_8016AB6C.c @@ -3785,22 +3785,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC01_084/ov_SC01_084_jr_801734BC.c b/src/ov_SC01_084/ov_SC01_084_jr_801734BC.c index cdd37b6055..aff4e1d4e4 100644 --- a/src/ov_SC01_084/ov_SC01_084_jr_801734BC.c +++ b/src/ov_SC01_084/ov_SC01_084_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC01_084/ov_SC01_084_jr_8017AE2C.c b/src/ov_SC01_084/ov_SC01_084_jr_8017AE2C.c index 8c66f62c2a..fa2da754c8 100644 --- a/src/ov_SC01_084/ov_SC01_084_jr_8017AE2C.c +++ b/src/ov_SC01_084/ov_SC01_084_jr_8017AE2C.c @@ -3389,17 +3389,6 @@ void func_8017BF84(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0; extern void func_80147324(s32 arg0); extern void func_8017C218(int); @@ -3506,24 +3495,11 @@ DEFINE_func_8017C1CC() /* dedup: shared engine-core @0x8017C1CC (src/shared) */ * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218; -typedef struct { - SVec8_8017C218 v[4]; /* 0x00 */ - CVec4_8017C218 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218; /* 0x20 */ + /* 0x20 */ extern u16 D_800B99DA; extern u8 D_8018A238[]; @@ -3853,10 +3829,6 @@ DEFINE_func_8017C8B4() /* dedup: shared engine-core @0x8017C8B4 (src/shared) */ void func_8017C910(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910; - typedef struct { SVec_8017C910 v[2]; Clr_8017C910 col[2]; s32 tag; s32 pad; } Prim_8017C910; - typedef struct { s32 w[8]; } Mtx8_8017C910; extern Mtx8_8017C910 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910 prim; diff --git a/src/ov_SC01_084/ov_SC01_084_o0c.c b/src/ov_SC01_084/ov_SC01_084_o0c.c index 0b3c7f49e8..a066736730 100644 --- a/src/ov_SC01_084/ov_SC01_084_o0c.c +++ b/src/ov_SC01_084/ov_SC01_084_o0c.c @@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801C7788[]; D_801C7788[a0].f0 = 1; @@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801C7788[]; D_801C7788[idx].f0 = 1; @@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801C7788[]; D_801C7788[a0].f0 = 0; } @@ -844,16 +828,7 @@ extern s32 D_801C7B88; extern s32 D_801C7BEC; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801C7788"); extern s32 D_801C7824; extern s32 D_801C7828; @@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC02_000/ov_SC02_000.c b/src/ov_SC02_000/ov_SC02_000.c index b6605f5393..f3f019f836 100644 --- a/src/ov_SC02_000/ov_SC02_000.c +++ b/src/ov_SC02_000/ov_SC02_000.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC02_000/ov_SC02_000_after.c b/src/ov_SC02_000/ov_SC02_000_after.c index fd018ae3a1..7a2250c9e9 100644 --- a/src/ov_SC02_000/ov_SC02_000_after.c +++ b/src/ov_SC02_000/ov_SC02_000_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC02_000/ov_SC02_000_jr_8012ACE0.c b/src/ov_SC02_000/ov_SC02_000_jr_8012ACE0.c index 269e7ccf5b..b20387f1a2 100644 --- a/src/ov_SC02_000/ov_SC02_000_jr_8012ACE0.c +++ b/src/ov_SC02_000/ov_SC02_000_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2444,7 +2439,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2608,7 +2602,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC02_000/ov_SC02_000_jr_801380E0.c b/src/ov_SC02_000/ov_SC02_000_jr_801380E0.c index 1591683875..5096fa3e10 100644 --- a/src/ov_SC02_000/ov_SC02_000_jr_801380E0.c +++ b/src/ov_SC02_000/ov_SC02_000_jr_801380E0.c @@ -1048,12 +1048,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018B1CC[]; u16 t; u8 b; diff --git a/src/ov_SC02_000/ov_SC02_000_jr_80140608.c b/src/ov_SC02_000/ov_SC02_000_jr_80140608.c index b397309b18..fb8a72cdd0 100644 --- a/src/ov_SC02_000/ov_SC02_000_jr_80140608.c +++ b/src/ov_SC02_000/ov_SC02_000_jr_80140608.c @@ -1111,11 +1111,6 @@ s16 n; extern s16 D_8018BF8C[]; extern u16 D_8018BA9C; extern u16 D_8018BA9E; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1254,13 +1249,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2603,7 +2594,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC02_000/ov_SC02_000_jr_8016AB6C.c b/src/ov_SC02_000/ov_SC02_000_jr_8016AB6C.c index 901f30dc3c..cda2344ecc 100644 --- a/src/ov_SC02_000/ov_SC02_000_jr_8016AB6C.c +++ b/src/ov_SC02_000/ov_SC02_000_jr_8016AB6C.c @@ -3782,22 +3782,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC02_000/ov_SC02_000_jr_801734BC.c b/src/ov_SC02_000/ov_SC02_000_jr_801734BC.c index d638d204a9..c9af9ea0df 100644 --- a/src/ov_SC02_000/ov_SC02_000_jr_801734BC.c +++ b/src/ov_SC02_000/ov_SC02_000_jr_801734BC.c @@ -2856,8 +2856,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2897,8 +2897,8 @@ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2944,7 +2944,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3030,7 +3030,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3054,14 +3054,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3215,7 +3207,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC02_000/ov_SC02_000_jr_8017AE2C.c b/src/ov_SC02_000/ov_SC02_000_jr_8017AE2C.c index 726c416627..d61b704700 100644 --- a/src/ov_SC02_000/ov_SC02_000_jr_8017AE2C.c +++ b/src/ov_SC02_000/ov_SC02_000_jr_8017AE2C.c @@ -3367,17 +3367,6 @@ void func_8017BF84(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017BFE0 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017BFE0; extern void func_80147324(s32 arg0); extern void func_8017C218(int); @@ -3478,24 +3467,11 @@ DEFINE_func_8017C1CC() /* dedup: shared engine-core @0x8017C1CC (src/shared) */ * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017C218; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017C218; -typedef struct { - SVec8_8017C218_8017C218 v[4]; /* 0x00 */ - CVec4_8017C218_8017C218 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017C218; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017C218; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -3777,10 +3753,6 @@ DEFINE_func_8017C8B4() /* dedup: shared engine-core @0x8017C8B4 (src/shared) */ void func_8017C910(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017C910; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017C910; - typedef struct { SVec_8017C910_8017C910 v[2]; Clr_8017C910_8017C910 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017C910; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017C910; extern Mtx8_8017C910_8017C910 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017C910 prim; diff --git a/src/ov_SC02_000/ov_SC02_000_jr_8017EA84.c b/src/ov_SC02_000/ov_SC02_000_jr_8017EA84.c index 73d18587b7..6db34da097 100644 --- a/src/ov_SC02_000/ov_SC02_000_jr_8017EA84.c +++ b/src/ov_SC02_000/ov_SC02_000_jr_8017EA84.c @@ -14,32 +14,8 @@ typedef struct { u8 pad[7]; /* -> 0x40 */ } Prim_8016E7C8; typedef void (*Handler)(struct Entry_8016E95C *); -typedef struct Ent_8017BFE0_8017BFE0 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017BFE0; -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017C218; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017C218; -typedef struct { - SVec8_8017C218_8017C218 v[4]; /* 0x00 */ - CVec4_8017C218_8017C218 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017C218; /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017C218; /* 0x20 */ + /* 0x34 */ + /* 0x20 */ extern void func_801458E0(void); extern s32 D_800AE6AC; extern s32 D_800AE6B0; diff --git a/src/ov_SC02_000/ov_SC02_000_jr_8017FCB0.c b/src/ov_SC02_000/ov_SC02_000_jr_8017FCB0.c index f61a4288fb..936f21c24d 100644 --- a/src/ov_SC02_000/ov_SC02_000_jr_8017FCB0.c +++ b/src/ov_SC02_000/ov_SC02_000_jr_8017FCB0.c @@ -4250,33 +4250,8 @@ INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000_jr_8017FCB0", func_8018A44 extern void func_8001D074(s32 a0, s32 a1); extern void func_8001CD04(s32 a0, s32 a1); -typedef struct Obj_8018A550 { - s32 f0; /* 0x00 */ - u32 f4; /* 0x04 */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ - s32 f10; /* 0x10 */ - s32 f14; /* 0x14 */ - s16 f18; /* 0x18 */ - s16 f1A; /* 0x1A */ - s16 f1C; /* 0x1C */ - s16 f1E; /* 0x1E */ -} Obj_8018A550; -typedef struct Rec_8018A550 { - u16 f0; /* 0x00 */ - u16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ -} Rec_8018A550; -typedef struct Ctl_8018A550 { - s32 f0; /* 0x00 */ - s16 ids[8]; /* 0x04 */ - Obj_8018A550 *slots[8]; /* 0x14 */ -} Ctl_8018A550; void func_8018A550(Ctl_8018A550 *ctl, Rec_8018A550 *rec) { diff --git a/src/ov_SC02_000/ov_SC02_000_o0c.c b/src/ov_SC02_000/ov_SC02_000_o0c.c index d54207066b..fba708a6d7 100644 --- a/src/ov_SC02_000/ov_SC02_000_o0c.c +++ b/src/ov_SC02_000/ov_SC02_000_o0c.c @@ -784,8 +784,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801E86C8[]; D_801E86C8[a0].f0 = 1; @@ -800,20 +798,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801E86C8[]; D_801E86C8[idx].f0 = 1; @@ -824,7 +808,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801E86C8[]; D_801E86C8[a0].f0 = 0; } @@ -843,16 +827,7 @@ extern s32 D_801E87C0; extern s32 D_801E8824; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801E86C8"); extern s32 D_801E8778; extern s32 D_801E877C; @@ -942,7 +917,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -989,17 +963,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1065,11 +1028,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC02_003/ov_SC02_003.c b/src/ov_SC02_003/ov_SC02_003.c index 21411ecad0..089d0e4937 100644 --- a/src/ov_SC02_003/ov_SC02_003.c +++ b/src/ov_SC02_003/ov_SC02_003.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC02_003/ov_SC02_003_after.c b/src/ov_SC02_003/ov_SC02_003_after.c index 59bf6b18b1..c29583b6b7 100644 --- a/src/ov_SC02_003/ov_SC02_003_after.c +++ b/src/ov_SC02_003/ov_SC02_003_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC02_003/ov_SC02_003_jr_8012ACE0.c b/src/ov_SC02_003/ov_SC02_003_jr_8012ACE0.c index d46cfdcd8b..4008aecea2 100644 --- a/src/ov_SC02_003/ov_SC02_003_jr_8012ACE0.c +++ b/src/ov_SC02_003/ov_SC02_003_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2444,7 +2439,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2608,7 +2602,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC02_003/ov_SC02_003_jr_801380E0.c b/src/ov_SC02_003/ov_SC02_003_jr_801380E0.c index 1591683875..5096fa3e10 100644 --- a/src/ov_SC02_003/ov_SC02_003_jr_801380E0.c +++ b/src/ov_SC02_003/ov_SC02_003_jr_801380E0.c @@ -1048,12 +1048,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018B1CC[]; u16 t; u8 b; diff --git a/src/ov_SC02_003/ov_SC02_003_jr_80140608.c b/src/ov_SC02_003/ov_SC02_003_jr_80140608.c index fe0131fc25..3a133b73f9 100644 --- a/src/ov_SC02_003/ov_SC02_003_jr_80140608.c +++ b/src/ov_SC02_003/ov_SC02_003_jr_80140608.c @@ -1111,11 +1111,6 @@ s16 n; extern s16 D_8018BF8C[]; extern u16 D_8018BA9C; extern u16 D_8018BA9E; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1254,13 +1249,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2603,7 +2594,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC02_003/ov_SC02_003_jr_8016AB6C.c b/src/ov_SC02_003/ov_SC02_003_jr_8016AB6C.c index 901f30dc3c..cda2344ecc 100644 --- a/src/ov_SC02_003/ov_SC02_003_jr_8016AB6C.c +++ b/src/ov_SC02_003/ov_SC02_003_jr_8016AB6C.c @@ -3782,22 +3782,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC02_003/ov_SC02_003_jr_801734BC.c b/src/ov_SC02_003/ov_SC02_003_jr_801734BC.c index 70bf498ca8..062015c9bd 100644 --- a/src/ov_SC02_003/ov_SC02_003_jr_801734BC.c +++ b/src/ov_SC02_003/ov_SC02_003_jr_801734BC.c @@ -2856,8 +2856,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2897,8 +2897,8 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2944,7 +2944,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3030,7 +3030,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3054,14 +3054,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3215,7 +3207,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC02_003/ov_SC02_003_jr_8017AE2C.c b/src/ov_SC02_003/ov_SC02_003_jr_8017AE2C.c index 378f63080f..d2b23ae225 100644 --- a/src/ov_SC02_003/ov_SC02_003_jr_8017AE2C.c +++ b/src/ov_SC02_003/ov_SC02_003_jr_8017AE2C.c @@ -3367,17 +3367,6 @@ void func_8017BF84(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017BFE0 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017BFE0; extern void func_80147324(s32 arg0); extern void func_8017C218(int); @@ -3478,24 +3467,11 @@ DEFINE_func_8017C1CC() /* dedup: shared engine-core @0x8017C1CC (src/shared) */ * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017C218; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017C218; -typedef struct { - SVec8_8017C218_8017C218 v[4]; /* 0x00 */ - CVec4_8017C218_8017C218 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017C218; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017C218; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -3777,10 +3753,6 @@ DEFINE_func_8017C8B4() /* dedup: shared engine-core @0x8017C8B4 (src/shared) */ void func_8017C910(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017C910; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017C910; - typedef struct { SVec_8017C910_8017C910 v[2]; Clr_8017C910_8017C910 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017C910; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017C910; extern Mtx8_8017C910_8017C910 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017C910 prim; diff --git a/src/ov_SC02_003/ov_SC02_003_jr_8017EA84.c b/src/ov_SC02_003/ov_SC02_003_jr_8017EA84.c index 056e235efa..9a2e5bbbea 100644 --- a/src/ov_SC02_003/ov_SC02_003_jr_8017EA84.c +++ b/src/ov_SC02_003/ov_SC02_003_jr_8017EA84.c @@ -14,32 +14,8 @@ typedef struct { u8 pad[7]; /* -> 0x40 */ } Prim_8016E7C8; typedef void (*Handler)(struct Entry_8016E95C *); -typedef struct Ent_8017BFE0_8017BFE0 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017BFE0; -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017C218; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017C218; -typedef struct { - SVec8_8017C218_8017C218 v[4]; /* 0x00 */ - CVec4_8017C218_8017C218 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017C218; /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017C218; /* 0x20 */ + /* 0x34 */ + /* 0x20 */ extern void func_801458E0(void); extern s32 D_800AE6AC; extern s32 D_800AE6B0; diff --git a/src/ov_SC02_003/ov_SC02_003_jr_8017FCB0.c b/src/ov_SC02_003/ov_SC02_003_jr_8017FCB0.c index 90c8073245..a62223d5dd 100644 --- a/src/ov_SC02_003/ov_SC02_003_jr_8017FCB0.c +++ b/src/ov_SC02_003/ov_SC02_003_jr_8017FCB0.c @@ -4224,33 +4224,8 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_8017FCB0", func_8018A44 extern void func_8001D074(s32 a0, s32 a1); extern void func_8001CD04(s32 a0, s32 a1); -typedef struct Obj_8018A550_8018A550 { - s32 f0; /* 0x00 */ - u32 f4; /* 0x04 */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ - s32 f10; /* 0x10 */ - s32 f14; /* 0x14 */ - s16 f18; /* 0x18 */ - s16 f1A; /* 0x1A */ - s16 f1C; /* 0x1C */ - s16 f1E; /* 0x1E */ -} Obj_8018A550_8018A550; -typedef struct Rec_8018A550_8018A550 { - u16 f0; /* 0x00 */ - u16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ -} Rec_8018A550_8018A550; -typedef struct Ctl_8018A550_8018A550 { - s32 f0; /* 0x00 */ - s16 ids[8]; /* 0x04 */ - Obj_8018A550_8018A550 *slots[8]; /* 0x14 */ -} Ctl_8018A550_8018A550; void func_8018A550(Ctl_8018A550_8018A550 *ctl, Rec_8018A550_8018A550 *rec) { diff --git a/src/ov_SC02_003/ov_SC02_003_o0c.c b/src/ov_SC02_003/ov_SC02_003_o0c.c index d54207066b..fba708a6d7 100644 --- a/src/ov_SC02_003/ov_SC02_003_o0c.c +++ b/src/ov_SC02_003/ov_SC02_003_o0c.c @@ -784,8 +784,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801E86C8[]; D_801E86C8[a0].f0 = 1; @@ -800,20 +798,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801E86C8[]; D_801E86C8[idx].f0 = 1; @@ -824,7 +808,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801E86C8[]; D_801E86C8[a0].f0 = 0; } @@ -843,16 +827,7 @@ extern s32 D_801E87C0; extern s32 D_801E8824; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801E86C8"); extern s32 D_801E8778; extern s32 D_801E877C; @@ -942,7 +917,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -989,17 +963,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1065,11 +1028,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC02_004/ov_SC02_004.c b/src/ov_SC02_004/ov_SC02_004.c index ceb143237d..40370805a8 100644 --- a/src/ov_SC02_004/ov_SC02_004.c +++ b/src/ov_SC02_004/ov_SC02_004.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -759,12 +755,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC02_004/ov_SC02_004_after.c b/src/ov_SC02_004/ov_SC02_004_after.c index 8778d77c8d..5bfccc3815 100644 --- a/src/ov_SC02_004/ov_SC02_004_after.c +++ b/src/ov_SC02_004/ov_SC02_004_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC02_004/ov_SC02_004_jr_8012ACE0.c b/src/ov_SC02_004/ov_SC02_004_jr_8012ACE0.c index f25e216655..4e969dd666 100644 --- a/src/ov_SC02_004/ov_SC02_004_jr_8012ACE0.c +++ b/src/ov_SC02_004/ov_SC02_004_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2445,7 +2440,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2609,7 +2603,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC02_004/ov_SC02_004_jr_801380E0.c b/src/ov_SC02_004/ov_SC02_004_jr_801380E0.c index c2c689dffa..4cab0da42b 100644 --- a/src/ov_SC02_004/ov_SC02_004_jr_801380E0.c +++ b/src/ov_SC02_004/ov_SC02_004_jr_801380E0.c @@ -1057,12 +1057,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017E2AC[]; u16 t; u8 b; diff --git a/src/ov_SC02_004/ov_SC02_004_jr_80140608.c b/src/ov_SC02_004/ov_SC02_004_jr_80140608.c index ee2e7b03b7..08d12899bb 100644 --- a/src/ov_SC02_004/ov_SC02_004_jr_80140608.c +++ b/src/ov_SC02_004/ov_SC02_004_jr_80140608.c @@ -1112,11 +1112,6 @@ s16 n; extern s16 D_8017F06C[]; extern u16 D_8017EB7C; extern u16 D_8017EB7E; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1255,13 +1250,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2588,7 +2579,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC02_004/ov_SC02_004_jr_8016AB6C.c b/src/ov_SC02_004/ov_SC02_004_jr_8016AB6C.c index e6597e884c..dfeb520f41 100644 --- a/src/ov_SC02_004/ov_SC02_004_jr_8016AB6C.c +++ b/src/ov_SC02_004/ov_SC02_004_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC02_004/ov_SC02_004_jr_801734BC.c b/src/ov_SC02_004/ov_SC02_004_jr_801734BC.c index 6257668058..cfde2d9d41 100644 --- a/src/ov_SC02_004/ov_SC02_004_jr_801734BC.c +++ b/src/ov_SC02_004/ov_SC02_004_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC02_004/nonmatchings/ov_SC02_004_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC02_004/ov_SC02_004_o0c.c b/src/ov_SC02_004/ov_SC02_004_o0c.c index 1b7d40c39a..85694d0536 100644 --- a/src/ov_SC02_004/ov_SC02_004_o0c.c +++ b/src/ov_SC02_004/ov_SC02_004_o0c.c @@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801962A0[]; D_801962A0[a0].f0 = 1; @@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801962A0[]; D_801962A0[idx].f0 = 1; @@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801962A0[]; D_801962A0[a0].f0 = 0; } @@ -844,16 +828,7 @@ extern s32 D_80196358; extern s32 D_801963BC; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801962A0"); extern s32 D_8019633C; extern s32 D_80196340; @@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC02_005/ov_SC02_005.c b/src/ov_SC02_005/ov_SC02_005.c index 2f55b90a99..cf908d524d 100644 --- a/src/ov_SC02_005/ov_SC02_005.c +++ b/src/ov_SC02_005/ov_SC02_005.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -759,12 +755,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC02_005/ov_SC02_005_after.c b/src/ov_SC02_005/ov_SC02_005_after.c index 7d8cd57b6d..edfb264050 100644 --- a/src/ov_SC02_005/ov_SC02_005_after.c +++ b/src/ov_SC02_005/ov_SC02_005_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC02_005/ov_SC02_005_jr_8012ACE0.c b/src/ov_SC02_005/ov_SC02_005_jr_8012ACE0.c index 4c94818bec..1bbbdaf7fb 100644 --- a/src/ov_SC02_005/ov_SC02_005_jr_8012ACE0.c +++ b/src/ov_SC02_005/ov_SC02_005_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2445,7 +2440,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2609,7 +2603,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC02_005/ov_SC02_005_jr_801380E0.c b/src/ov_SC02_005/ov_SC02_005_jr_801380E0.c index a68717d029..85d4319646 100644 --- a/src/ov_SC02_005/ov_SC02_005_jr_801380E0.c +++ b/src/ov_SC02_005/ov_SC02_005_jr_801380E0.c @@ -1057,12 +1057,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80190EB0[]; u16 t; u8 b; diff --git a/src/ov_SC02_005/ov_SC02_005_jr_80140608.c b/src/ov_SC02_005/ov_SC02_005_jr_80140608.c index 7c02cc0e68..ae0e73d159 100644 --- a/src/ov_SC02_005/ov_SC02_005_jr_80140608.c +++ b/src/ov_SC02_005/ov_SC02_005_jr_80140608.c @@ -1112,11 +1112,6 @@ s16 n; extern s16 D_80191C70[]; extern u16 D_80191780; extern u16 D_80191782; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1255,13 +1250,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2588,7 +2579,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC02_005/ov_SC02_005_jr_8016AB6C.c b/src/ov_SC02_005/ov_SC02_005_jr_8016AB6C.c index 7b8af75c6a..df8baad4e5 100644 --- a/src/ov_SC02_005/ov_SC02_005_jr_8016AB6C.c +++ b/src/ov_SC02_005/ov_SC02_005_jr_8016AB6C.c @@ -3786,22 +3786,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC02_005/ov_SC02_005_jr_801734BC.c b/src/ov_SC02_005/ov_SC02_005_jr_801734BC.c index 35145d124e..29da9894e2 100644 --- a/src/ov_SC02_005/ov_SC02_005_jr_801734BC.c +++ b/src/ov_SC02_005/ov_SC02_005_jr_801734BC.c @@ -2860,8 +2860,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2901,8 +2901,8 @@ INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2948,7 +2948,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3034,7 +3034,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3058,14 +3058,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3219,7 +3211,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC02_005/ov_SC02_005_jr_8017AE2C.c b/src/ov_SC02_005/ov_SC02_005_jr_8017AE2C.c index e9befe4774..4b5852f752 100644 --- a/src/ov_SC02_005/ov_SC02_005_jr_8017AE2C.c +++ b/src/ov_SC02_005/ov_SC02_005_jr_8017AE2C.c @@ -3323,17 +3323,6 @@ extern void func_8017BF14(s32 arg0, s32 arg1, s32 arg2, s32 arg3); extern s32 func_8012C750(s32 a0); -typedef struct { - s16 unk00; - s16 unk02; - s16 unk04; - s16 unk06; - s16 unk08; - s16 unk0A; - s16 unk0C; - s16 unk0E; - s32 unk10; -} Buf8017BF34_8017BF14; void func_8017BF14(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { @@ -3945,9 +3934,6 @@ INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017AE2C", func_8017E01 #include "common.h" -typedef struct { - s16 vx, vy, vz, pad; -} Vec8_8017E0B4; extern Vec8_8017E0B4 D_801E2D70; extern Vec8_8017E0B4 D_801E2D78; @@ -5434,9 +5420,6 @@ INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017AE2C", func_8018A3B /* 8-byte, alignment-1 blob: the target copies it with lwl/lwr + swl/swr, * which is gcc's emit_block_move for align < 4. */ -typedef struct { - char b[8]; -} Blob8_8018A47C; extern Blob8_8018A47C D_801E2F28; extern void func_8018A6A0(s32 a0, Blob8_8018A47C *a1); @@ -5816,7 +5799,6 @@ extern u8 D_801E2F64; /* align-1 4-byte block: lowers via emit_block_move (unaligned lwl/lwr + swl/swr) * with ZERO memcpy-symbol reference, so the TU's `extern memcpy` cannot turn * this into a CALL. (house idiom, cf. func_8017B238 / func_8017B614) */ -typedef struct { u8 b[4]; } Blk4_8018CE04; void func_8018CE04(s32 param_1) { @@ -6259,12 +6241,6 @@ void func_80190108(void *a0) { #include "common.h" -typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; -} EffectSlot4; extern void func_801465C0(void); extern void func_80146C3C(void); diff --git a/src/ov_SC02_005/ov_SC02_005_o0c.c b/src/ov_SC02_005/ov_SC02_005_o0c.c index 74e14fa195..58fb5c246b 100644 --- a/src/ov_SC02_005/ov_SC02_005_o0c.c +++ b/src/ov_SC02_005/ov_SC02_005_o0c.c @@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801E4B28[]; D_801E4B28[a0].f0 = 1; @@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801E4B28[]; D_801E4B28[idx].f0 = 1; @@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801E4B28[]; D_801E4B28[a0].f0 = 0; } @@ -844,16 +828,7 @@ extern s32 D_801E4BE0; extern s32 D_801E4C44; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801E4B28"); extern s32 D_801E4BC4; extern s32 D_801E4BC8; @@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC02_011/ov_SC02_011.c b/src/ov_SC02_011/ov_SC02_011.c index bf465e51cc..0d8b51e7bc 100644 --- a/src/ov_SC02_011/ov_SC02_011.c +++ b/src/ov_SC02_011/ov_SC02_011.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -759,12 +755,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC02_011/ov_SC02_011_after.c b/src/ov_SC02_011/ov_SC02_011_after.c index 39bf806df2..064242bf57 100644 --- a/src/ov_SC02_011/ov_SC02_011_after.c +++ b/src/ov_SC02_011/ov_SC02_011_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC02_011/ov_SC02_011_jr_8012ACE0.c b/src/ov_SC02_011/ov_SC02_011_jr_8012ACE0.c index 95ef5d8a0d..5675a63f22 100644 --- a/src/ov_SC02_011/ov_SC02_011_jr_8012ACE0.c +++ b/src/ov_SC02_011/ov_SC02_011_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2445,7 +2440,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2609,7 +2603,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC02_011/ov_SC02_011_jr_801380E0.c b/src/ov_SC02_011/ov_SC02_011_jr_801380E0.c index 3d6a305cb0..bf743dcb98 100644 --- a/src/ov_SC02_011/ov_SC02_011_jr_801380E0.c +++ b/src/ov_SC02_011/ov_SC02_011_jr_801380E0.c @@ -1057,12 +1057,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80191300[]; u16 t; u8 b; diff --git a/src/ov_SC02_011/ov_SC02_011_jr_80140608.c b/src/ov_SC02_011/ov_SC02_011_jr_80140608.c index 5546d44e99..21fb91dafe 100644 --- a/src/ov_SC02_011/ov_SC02_011_jr_80140608.c +++ b/src/ov_SC02_011/ov_SC02_011_jr_80140608.c @@ -1112,11 +1112,6 @@ s16 n; extern s16 D_801920C0[]; extern u16 D_80191BD0; extern u16 D_80191BD2; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1255,13 +1250,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2604,7 +2595,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC02_011/ov_SC02_011_jr_8016AB6C.c b/src/ov_SC02_011/ov_SC02_011_jr_8016AB6C.c index b022d9c04e..18b0614109 100644 --- a/src/ov_SC02_011/ov_SC02_011_jr_8016AB6C.c +++ b/src/ov_SC02_011/ov_SC02_011_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC02_011/ov_SC02_011_jr_801734BC.c b/src/ov_SC02_011/ov_SC02_011_jr_801734BC.c index 291aa2a060..dff0dd79e0 100644 --- a/src/ov_SC02_011/ov_SC02_011_jr_801734BC.c +++ b/src/ov_SC02_011/ov_SC02_011_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC02_011/ov_SC02_011_jr_8017AE2C.c b/src/ov_SC02_011/ov_SC02_011_jr_8017AE2C.c index aeac6fbd2d..df4183d511 100644 --- a/src/ov_SC02_011/ov_SC02_011_jr_8017AE2C.c +++ b/src/ov_SC02_011/ov_SC02_011_jr_8017AE2C.c @@ -3596,8 +3596,6 @@ void func_8017C558(s32 param_1, s32 param_2) extern s32 D_801EB1D4; extern s32 D_801EB1D8; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_8017C558; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017C558; SV4_L_8017C558 vec; /* sp+0x10 */ MTX_L_8017C558 mtx; /* sp+0x18 */ @@ -3753,8 +3751,6 @@ void func_8017C688(s32 a0) { extern u8 D_801EB1E6; extern u8 D_801EB1EC; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017C688; - typedef struct { Rec027_8017C688 r[9]; } Blk027_8017C688; extern Blk027_8017C688 D_801E5E30; extern Blk027_8017C688 D_801EB260[]; @@ -4029,14 +4025,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_8017C558(s32 a0, s32 a1); void func_8017CDD4(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_8017CDD4; extern Rec_8017C738_8017CDD4 D_801E5E30[]; Rec_8017C738_8017CDD4 *q = D_801E5E30; @@ -4842,7 +4830,6 @@ void func_8017DD34(s16 *a0) { * (instead of a fresh local) avoids stealing back the $v0 slot. */ -typedef struct { s32 w[8]; } Mtx8_8017DE10; void func_8017DE10(s32 a0) { extern void ApplyMatrixSV(void *a0, void *a1, void *a2); @@ -5182,9 +5169,6 @@ INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_8017E5F * declared here under a _8017E72C suffix. */ -typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MATRIX_8017E72C; -typedef struct { u16 vx, vy, vz, pad; } SVECTOR_8017E72C; -struct PW8017E72C { int w; } __attribute__((packed, aligned(1))); extern void func_80013F3C(s32 a0); extern void RotMatrixZ(s32, void *); @@ -5556,9 +5540,7 @@ INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_8017FD2 * lwl/lwr + swl/swr instead of a `jal memcpy` (cf. §38). */ -typedef struct { - u8 b0, b1, b2, b3; -} Quad_801EA880_8017FD9C; /* align 1 => movstrsi expands to lwl/lwr + swl/swr */ + /* align 1 => movstrsi expands to lwl/lwr + swl/swr */ extern s32 func_80012F74(s32 a0, s32 a1, s32 a2, s32 a3); @@ -5721,17 +5703,6 @@ void func_801804E8(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_80180544 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_80180544; extern void func_80147324(s32 arg0); extern void func_8018077C(int); @@ -5845,24 +5816,11 @@ void func_80180730(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8018077C; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8018077C; -typedef struct { - SVec8_8017C218_8018077C v[4]; /* 0x00 */ - CVec4_8017C218_8018077C c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8018077C; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8018077C; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -6182,10 +6140,6 @@ void func_80180E18(void *a0) void func_80180E74(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_80180E74; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_80180E74; - typedef struct { SVec_8017C910_80180E74 v[2]; Clr_8017C910_80180E74 col[2]; s32 tag; s32 pad; } Prim_8017C910_80180E74; - typedef struct { s32 w[8]; } Mtx8_8017C910_80180E74; extern Mtx8_8017C910_80180E74 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_80180E74 prim; @@ -7077,9 +7031,6 @@ extern s32 rand(void); extern u8 D_80195DD0[]; extern s32 D_80195EFC[]; -typedef struct { - s32 f0, f1, f2, f3; -} Quad_8018797C; void func_8018797C(s32 a0) { s32 effect; @@ -7457,12 +7408,6 @@ void func_8018A708(void) { * puts $s1's zero-init first, which is the target order. */ -typedef struct { - s16 unk0; - s16 unk2; - s16 unk4; - s16 unk6; -} Rec_8018A6A4_8018A72C; extern void func_8018A7CC(s32 arg0, s32 arg1, s32 arg2); extern void func_8018A8E8(s32 arg0, Rec_8018A6A4_8018A72C *arg1, s32 arg2, s32 arg3); @@ -7581,7 +7526,7 @@ void aF8018A860(s32 a0, s16 *a1, u8 *a2, u8 *a3) { extern s16 D_801EB6E4; /* TU L3637 / L3671, verbatim */ - typedef struct { u8 b0, b1, b2, b3; } B4_8018A8E8; /* align 1 — §48-C2 */ + /* align 1 — §48-C2 */ s16 *s1; u16 temp_u16; s16 temp_s16; @@ -7823,7 +7768,7 @@ void func_8018AA44(void) { void func_8018AB20(s32 arg0) { - typedef struct { s32 w[8]; } Blk32_8018AA98_8018AB20; /* 32 bytes, align 4 */ + /* 32 bytes, align 4 */ extern Blk32_8018AA98_8018AB20 D_800AE620; extern s32 D_800A5E60; @@ -7972,7 +7917,6 @@ extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3); extern void func_8018AEB8(void *arg0, void *arg1, s32 arg2, s32 arg3); void func_8018AE30(s32 a0) { - typedef struct { u8 a, b, c, d; } V4_8018AE30; extern u8 D_800AF648; extern V4_8018AE30 D_801E9E68; u16 sxy[4]; @@ -8101,14 +8045,6 @@ void aF8018AFD0(s32 a0, s32 a1, s32 a2) __asm__("func_8018B058"); void aF8018AFD0(s32 a0, s32 a1, s32 a2) { - typedef struct { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ - } P_8018B058; extern s16 D_801EB5DC; extern s16 D_801EB5D6[]; @@ -8277,21 +8213,11 @@ extern void func_80016638(void *a0, s32 a1, s32 a2); /* 0x10-byte-stride record table at D_801EB5DC (same table as func_8018AD5C) */ -typedef struct { - u16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s16 f8; /* 0x08 */ - u16 fA; /* 0x0A */ - s16 fC; /* 0x0C */ - u16 fE; /* 0x0E */ -} Rec_8018B23C_8018B2C4; -typedef struct { s32 w[8]; } Mat32_8018B23C_8018B2C4; /* the 0x20-byte matrix */ -typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_8018B2C4; /* == engine_types.h OtBlk */ -typedef struct { u16 f; } Bidx_8018B23C_8018B2C4; /* the D_800B9A02 buffer index */ -typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_8018B2C4; /* libgpu P_TAG */ + /* the 0x20-byte matrix */ + /* == engine_types.h OtBlk */ + /* the D_800B9A02 buffer index */ + /* libgpu P_TAG */ void func_8018B2C4(s32 a0) { @@ -10032,8 +9958,8 @@ INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_8018FE2 */ void func_8018FE94(void *a0) { - typedef struct { s32 w[8]; } Mat32_8018A390_8018FE94; /* 32B, align 4 */ - typedef struct { u16 x; u16 y; u16 z; s16 w; } Rec8_8018A390_8018FE94; /* 8B, align 2 */ + /* 32B, align 4 */ + /* 8B, align 2 */ extern Mat32_8018A390_8018FE94 D_800AE620; extern Rec8_8018A390_8018FE94 D_801E47C4[]; @@ -10469,10 +10395,6 @@ void func_80190C40(void *arg0) { extern s32 func_8012C51C(void *a0, s32 a1); -struct S80190C84 { - s16 f0, f2, f4, f6, f8, fA, fC, fE; - s32 f10; -}; void func_80190C84(s32 a0, u16 *a1, s16 a2) { struct S80190C84 sp; diff --git a/src/ov_SC02_011/ov_SC02_011_o0c.c b/src/ov_SC02_011/ov_SC02_011_o0c.c index 558c957416..de706d674f 100644 --- a/src/ov_SC02_011/ov_SC02_011_o0c.c +++ b/src/ov_SC02_011/ov_SC02_011_o0c.c @@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801EB958[]; D_801EB958[a0].f0 = 1; @@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801EB958[]; D_801EB958[idx].f0 = 1; @@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801EB958[]; D_801EB958[a0].f0 = 0; } @@ -844,16 +828,7 @@ extern s32 D_801EBA10; extern s32 D_801EBA74; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801EB958"); extern s32 D_801EB9F4; extern s32 D_801EB9F8; @@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC02_015/ov_SC02_015.c b/src/ov_SC02_015/ov_SC02_015.c index fda61cde62..62a64951d4 100644 --- a/src/ov_SC02_015/ov_SC02_015.c +++ b/src/ov_SC02_015/ov_SC02_015.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -759,12 +755,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC02_015/ov_SC02_015_after.c b/src/ov_SC02_015/ov_SC02_015_after.c index b7cac11000..7b5ec05a6f 100644 --- a/src/ov_SC02_015/ov_SC02_015_after.c +++ b/src/ov_SC02_015/ov_SC02_015_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC02_015/ov_SC02_015_jr_8012ACE0.c b/src/ov_SC02_015/ov_SC02_015_jr_8012ACE0.c index d1cb1f7feb..6fd4580e68 100644 --- a/src/ov_SC02_015/ov_SC02_015_jr_8012ACE0.c +++ b/src/ov_SC02_015/ov_SC02_015_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2445,7 +2440,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2609,7 +2603,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC02_015/ov_SC02_015_jr_801380E0.c b/src/ov_SC02_015/ov_SC02_015_jr_801380E0.c index 0db0f7dfed..8bf8b83a17 100644 --- a/src/ov_SC02_015/ov_SC02_015_jr_801380E0.c +++ b/src/ov_SC02_015/ov_SC02_015_jr_801380E0.c @@ -1057,12 +1057,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017E814[]; u16 t; u8 b; diff --git a/src/ov_SC02_015/ov_SC02_015_jr_80140608.c b/src/ov_SC02_015/ov_SC02_015_jr_80140608.c index 611d9ae1fb..d5014a5f63 100644 --- a/src/ov_SC02_015/ov_SC02_015_jr_80140608.c +++ b/src/ov_SC02_015/ov_SC02_015_jr_80140608.c @@ -1112,11 +1112,6 @@ s16 n; extern s16 D_8017F5D4[]; extern u16 D_8017F0E4; extern u16 D_8017F0E6; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1255,13 +1250,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2588,7 +2579,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC02_015/ov_SC02_015_jr_8016AB6C.c b/src/ov_SC02_015/ov_SC02_015_jr_8016AB6C.c index c613b6988e..7a8b646f40 100644 --- a/src/ov_SC02_015/ov_SC02_015_jr_8016AB6C.c +++ b/src/ov_SC02_015/ov_SC02_015_jr_8016AB6C.c @@ -3782,22 +3782,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC02_015/ov_SC02_015_jr_801734BC.c b/src/ov_SC02_015/ov_SC02_015_jr_801734BC.c index 2bdb58f1e6..29dc0e4735 100644 --- a/src/ov_SC02_015/ov_SC02_015_jr_801734BC.c +++ b/src/ov_SC02_015/ov_SC02_015_jr_801734BC.c @@ -2856,8 +2856,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2897,8 +2897,8 @@ INCLUDE_ASM("asm/ov_SC02_015/nonmatchings/ov_SC02_015_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2944,7 +2944,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3030,7 +3030,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3054,14 +3054,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3215,7 +3207,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC02_015/ov_SC02_015_o0c.c b/src/ov_SC02_015/ov_SC02_015_o0c.c index 9a6b71dbcc..fd7c881650 100644 --- a/src/ov_SC02_015/ov_SC02_015_o0c.c +++ b/src/ov_SC02_015/ov_SC02_015_o0c.c @@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_80190578[]; D_80190578[a0].f0 = 1; @@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_80190578[]; D_80190578[idx].f0 = 1; @@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_80190578[]; D_80190578[a0].f0 = 0; } @@ -844,16 +828,7 @@ extern s32 D_80190630; extern s32 D_80190694; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_80190578"); extern s32 D_80190614; extern s32 D_80190618; @@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC02_016/ov_SC02_016.c b/src/ov_SC02_016/ov_SC02_016.c index 09aae48068..9d78655f30 100644 --- a/src/ov_SC02_016/ov_SC02_016.c +++ b/src/ov_SC02_016/ov_SC02_016.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -759,12 +755,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC02_016/ov_SC02_016_after.c b/src/ov_SC02_016/ov_SC02_016_after.c index 81c75b1ccf..e35f200303 100644 --- a/src/ov_SC02_016/ov_SC02_016_after.c +++ b/src/ov_SC02_016/ov_SC02_016_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC02_016/ov_SC02_016_jr_8012ACE0.c b/src/ov_SC02_016/ov_SC02_016_jr_8012ACE0.c index 7d4b1bc740..29f3cde54e 100644 --- a/src/ov_SC02_016/ov_SC02_016_jr_8012ACE0.c +++ b/src/ov_SC02_016/ov_SC02_016_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2445,7 +2440,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2609,7 +2603,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC02_016/ov_SC02_016_jr_801380E0.c b/src/ov_SC02_016/ov_SC02_016_jr_801380E0.c index 30973f56f9..805c16a9b4 100644 --- a/src/ov_SC02_016/ov_SC02_016_jr_801380E0.c +++ b/src/ov_SC02_016/ov_SC02_016_jr_801380E0.c @@ -1057,12 +1057,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80184A4C[]; u16 t; u8 b; diff --git a/src/ov_SC02_016/ov_SC02_016_jr_80140608.c b/src/ov_SC02_016/ov_SC02_016_jr_80140608.c index dba4e8d2d1..a6cdb007fe 100644 --- a/src/ov_SC02_016/ov_SC02_016_jr_80140608.c +++ b/src/ov_SC02_016/ov_SC02_016_jr_80140608.c @@ -1112,11 +1112,6 @@ s16 n; extern s16 D_8018580C[]; extern u16 D_8018531C; extern u16 D_8018531E; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1255,13 +1250,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2604,7 +2595,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC02_016/ov_SC02_016_jr_8016AB6C.c b/src/ov_SC02_016/ov_SC02_016_jr_8016AB6C.c index e9491dcb24..ccb68e6a79 100644 --- a/src/ov_SC02_016/ov_SC02_016_jr_8016AB6C.c +++ b/src/ov_SC02_016/ov_SC02_016_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC02_016/ov_SC02_016_jr_801734BC.c b/src/ov_SC02_016/ov_SC02_016_jr_801734BC.c index 8f514608f4..2dc3748099 100644 --- a/src/ov_SC02_016/ov_SC02_016_jr_801734BC.c +++ b/src/ov_SC02_016/ov_SC02_016_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC02_016/nonmatchings/ov_SC02_016_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC02_016/ov_SC02_016_jr_8017AE2C.c b/src/ov_SC02_016/ov_SC02_016_jr_8017AE2C.c index 905fd3493c..189c664175 100644 --- a/src/ov_SC02_016/ov_SC02_016_jr_8017AE2C.c +++ b/src/ov_SC02_016/ov_SC02_016_jr_8017AE2C.c @@ -3462,8 +3462,6 @@ void func_8017C294(s32 param_1, s32 param_2) extern s32 D_801B3F6C; extern s32 D_801B3F70; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_8017C294; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017C294; SV4_L_8017C294 vec; /* sp+0x10 */ MTX_L_8017C294 mtx; /* sp+0x18 */ @@ -3619,8 +3617,6 @@ void func_8017C3C4(s32 a0) { extern u8 D_801B3F7E; extern u8 D_801B3F84; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017C3C4; - typedef struct { Rec027_8017C3C4 r[9]; } Blk027_8017C3C4; extern Blk027_8017C3C4 D_801B1448; extern Blk027_8017C3C4 D_801B3FF8[]; @@ -3896,14 +3892,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_8017C294(s32 a0, s32 a1); void func_8017CB10(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_8017CB10; extern Rec_8017C738_8017CB10 D_801B1448[]; Rec_8017C738_8017CB10 *q = D_801B1448; @@ -4212,17 +4200,6 @@ void func_8017D174(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017D1D0 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017D1D0; extern void func_80147324(s32 arg0); extern void func_8017D408(int); @@ -4336,24 +4313,11 @@ void func_8017D3BC(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017D408; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017D408; -typedef struct { - SVec8_8017C218_8017D408 v[4]; /* 0x00 */ - CVec4_8017C218_8017D408 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017D408; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017D408; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -4674,10 +4638,6 @@ void func_8017DAA4(void *a0) void func_8017DB00(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017DB00; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017DB00; - typedef struct { SVec_8017C910_8017DB00 v[2]; Clr_8017C910_8017DB00 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017DB00; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017DB00; extern Mtx8_8017C910_8017DB00 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017DB00 prim; diff --git a/src/ov_SC02_016/ov_SC02_016_jr_8017DC70.c b/src/ov_SC02_016/ov_SC02_016_jr_8017DC70.c index 017dc671cc..2b222f7976 100644 --- a/src/ov_SC02_016/ov_SC02_016_jr_8017DC70.c +++ b/src/ov_SC02_016/ov_SC02_016_jr_8017DC70.c @@ -3425,9 +3425,6 @@ extern void func_80128EA8(s32 a0, s32 a1, s32 a2); extern s32 rand(void); -typedef struct { - s32 f0, f1, f2, f3; -} Quad_8018797C_8017FCD0; void func_8017FCD0(s32 a0) { diff --git a/src/ov_SC02_016/ov_SC02_016_o0c.c b/src/ov_SC02_016/ov_SC02_016_o0c.c index 92585154c2..7bc683ae4a 100644 --- a/src/ov_SC02_016/ov_SC02_016_o0c.c +++ b/src/ov_SC02_016/ov_SC02_016_o0c.c @@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801B49B0[]; D_801B49B0[a0].f0 = 1; @@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801B49B0[]; D_801B49B0[idx].f0 = 1; @@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801B49B0[]; D_801B49B0[a0].f0 = 0; } @@ -844,16 +828,7 @@ extern s32 D_801B4A68; extern s32 D_801B4ACC; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801B49B0"); extern s32 D_801B4A4C; extern s32 D_801B4A50; @@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC02_017/ov_SC02_017.c b/src/ov_SC02_017/ov_SC02_017.c index 8a1d395878..61cd044303 100644 --- a/src/ov_SC02_017/ov_SC02_017.c +++ b/src/ov_SC02_017/ov_SC02_017.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -759,12 +755,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC02_017/ov_SC02_017_after.c b/src/ov_SC02_017/ov_SC02_017_after.c index 674d26305f..6c78f0964c 100644 --- a/src/ov_SC02_017/ov_SC02_017_after.c +++ b/src/ov_SC02_017/ov_SC02_017_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC02_017/ov_SC02_017_jr_8012ACE0.c b/src/ov_SC02_017/ov_SC02_017_jr_8012ACE0.c index 1d9e1ace2d..87c7c09ed6 100644 --- a/src/ov_SC02_017/ov_SC02_017_jr_8012ACE0.c +++ b/src/ov_SC02_017/ov_SC02_017_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2445,7 +2440,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2609,7 +2603,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC02_017/ov_SC02_017_jr_801380E0.c b/src/ov_SC02_017/ov_SC02_017_jr_801380E0.c index 93c981c83c..094d8dde91 100644 --- a/src/ov_SC02_017/ov_SC02_017_jr_801380E0.c +++ b/src/ov_SC02_017/ov_SC02_017_jr_801380E0.c @@ -1057,12 +1057,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018AAA4[]; u16 t; u8 b; diff --git a/src/ov_SC02_017/ov_SC02_017_jr_80140608.c b/src/ov_SC02_017/ov_SC02_017_jr_80140608.c index 8230adba17..9bb92304bb 100644 --- a/src/ov_SC02_017/ov_SC02_017_jr_80140608.c +++ b/src/ov_SC02_017/ov_SC02_017_jr_80140608.c @@ -1112,11 +1112,6 @@ s16 n; extern s16 D_8018B864[]; extern u16 D_8018B374; extern u16 D_8018B376; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1255,13 +1250,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2604,7 +2595,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC02_017/ov_SC02_017_jr_8016AB6C.c b/src/ov_SC02_017/ov_SC02_017_jr_8016AB6C.c index 4a47d34330..c230bd3c57 100644 --- a/src/ov_SC02_017/ov_SC02_017_jr_8016AB6C.c +++ b/src/ov_SC02_017/ov_SC02_017_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC02_017/ov_SC02_017_jr_801734BC.c b/src/ov_SC02_017/ov_SC02_017_jr_801734BC.c index c5cac5d2d6..00cd225554 100644 --- a/src/ov_SC02_017/ov_SC02_017_jr_801734BC.c +++ b/src/ov_SC02_017/ov_SC02_017_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC02_017/ov_SC02_017_jr_8017AE2C.c b/src/ov_SC02_017/ov_SC02_017_jr_8017AE2C.c index eb5dcaa989..847f076ac3 100644 --- a/src/ov_SC02_017/ov_SC02_017_jr_8017AE2C.c +++ b/src/ov_SC02_017/ov_SC02_017_jr_8017AE2C.c @@ -3456,8 +3456,6 @@ void func_8017C294(s32 param_1, s32 param_2) extern s32 D_801EF794; extern s32 D_801EF798; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_8017C294; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017C294; SV4_L_8017C294 vec; /* sp+0x10 */ MTX_L_8017C294 mtx; /* sp+0x18 */ @@ -3613,8 +3611,6 @@ void func_8017C3C4(s32 a0) { extern u8 D_801EF7A6; extern u8 D_801EF7AC; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017C3C4; - typedef struct { Rec027_8017C3C4 r[9]; } Blk027_8017C3C4; extern Blk027_8017C3C4 D_801ECC10; extern Blk027_8017C3C4 D_801EF820[]; @@ -3890,14 +3886,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_8017C294(s32 a0, s32 a1); void func_8017CB10(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_8017CB10; extern Rec_8017C738_8017CB10 D_801ECC10[]; Rec_8017C738_8017CB10 *q = D_801ECC10; @@ -4206,17 +4194,6 @@ void func_8017D174(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017D1D0 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017D1D0; extern void func_80147324(s32 arg0); extern void func_8017D408(int); @@ -4330,24 +4307,11 @@ void func_8017D3BC(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017D408; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017D408; -typedef struct { - SVec8_8017C218_8017D408 v[4]; /* 0x00 */ - CVec4_8017C218_8017D408 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017D408; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017D408; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -4668,10 +4632,6 @@ void func_8017DAA4(void *a0) void func_8017DB00(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017DB00; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017DB00; - typedef struct { SVec_8017C910_8017DB00 v[2]; Clr_8017C910_8017DB00 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017DB00; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017DB00; extern Mtx8_8017C910_8017DB00 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017DB00 prim; diff --git a/src/ov_SC02_017/ov_SC02_017_jr_8017DF34.c b/src/ov_SC02_017/ov_SC02_017_jr_8017DF34.c index 91165f69b0..74469c2d6a 100644 --- a/src/ov_SC02_017/ov_SC02_017_jr_8017DF34.c +++ b/src/ov_SC02_017/ov_SC02_017_jr_8017DF34.c @@ -3892,9 +3892,6 @@ extern void func_80128EA8(s32 a0, s32 a1, s32 a2); extern s32 rand(void); -typedef struct { - s32 f0, f1, f2, f3; -} Quad_8018797C_80182B44; void func_80182B44(s32 a0) { diff --git a/src/ov_SC02_017/ov_SC02_017_o0c.c b/src/ov_SC02_017/ov_SC02_017_o0c.c index 8e719983fb..e5e3ad0bad 100644 --- a/src/ov_SC02_017/ov_SC02_017_o0c.c +++ b/src/ov_SC02_017/ov_SC02_017_o0c.c @@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801EFC10[]; D_801EFC10[a0].f0 = 1; @@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801EFC10[]; D_801EFC10[idx].f0 = 1; @@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801EFC10[]; D_801EFC10[a0].f0 = 0; } @@ -844,16 +828,7 @@ extern s32 D_801EFCC8; extern s32 D_801EFD2C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801EFC10"); extern s32 D_801EFCAC; extern s32 D_801EFCB0; @@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC02_021/ov_SC02_021.c b/src/ov_SC02_021/ov_SC02_021.c index 4bdf149b8c..50a6cfe301 100644 --- a/src/ov_SC02_021/ov_SC02_021.c +++ b/src/ov_SC02_021/ov_SC02_021.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -759,12 +755,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC02_021/ov_SC02_021_after.c b/src/ov_SC02_021/ov_SC02_021_after.c index 07b9c7d959..d72fe52d6c 100644 --- a/src/ov_SC02_021/ov_SC02_021_after.c +++ b/src/ov_SC02_021/ov_SC02_021_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC02_021/ov_SC02_021_jr_8012ACE0.c b/src/ov_SC02_021/ov_SC02_021_jr_8012ACE0.c index c4e670879c..30d2ac2d7e 100644 --- a/src/ov_SC02_021/ov_SC02_021_jr_8012ACE0.c +++ b/src/ov_SC02_021/ov_SC02_021_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2445,7 +2440,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2609,7 +2603,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC02_021/ov_SC02_021_jr_801380E0.c b/src/ov_SC02_021/ov_SC02_021_jr_801380E0.c index 2721596ce1..576771ec1c 100644 --- a/src/ov_SC02_021/ov_SC02_021_jr_801380E0.c +++ b/src/ov_SC02_021/ov_SC02_021_jr_801380E0.c @@ -1057,12 +1057,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80180098[]; u16 t; u8 b; diff --git a/src/ov_SC02_021/ov_SC02_021_jr_80140608.c b/src/ov_SC02_021/ov_SC02_021_jr_80140608.c index 76c3ac7ad5..2cfadf3453 100644 --- a/src/ov_SC02_021/ov_SC02_021_jr_80140608.c +++ b/src/ov_SC02_021/ov_SC02_021_jr_80140608.c @@ -1112,11 +1112,6 @@ s16 n; extern s16 D_80180E58[]; extern u16 D_80180968; extern u16 D_8018096A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1255,13 +1250,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2588,7 +2579,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC02_021/ov_SC02_021_jr_8016AB6C.c b/src/ov_SC02_021/ov_SC02_021_jr_8016AB6C.c index 65f8f14193..81a4e2b290 100644 --- a/src/ov_SC02_021/ov_SC02_021_jr_8016AB6C.c +++ b/src/ov_SC02_021/ov_SC02_021_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC02_021/ov_SC02_021_jr_801734BC.c b/src/ov_SC02_021/ov_SC02_021_jr_801734BC.c index 02e193f876..304956381f 100644 --- a/src/ov_SC02_021/ov_SC02_021_jr_801734BC.c +++ b/src/ov_SC02_021/ov_SC02_021_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC02_021/nonmatchings/ov_SC02_021_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC02_021/ov_SC02_021_o0c.c b/src/ov_SC02_021/ov_SC02_021_o0c.c index c146a2d4de..151b30c3d5 100644 --- a/src/ov_SC02_021/ov_SC02_021_o0c.c +++ b/src/ov_SC02_021/ov_SC02_021_o0c.c @@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_80193778[]; D_80193778[a0].f0 = 1; @@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_80193778[]; D_80193778[idx].f0 = 1; @@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_80193778[]; D_80193778[a0].f0 = 0; } @@ -844,16 +828,7 @@ extern s32 D_80193830; extern s32 D_80193894; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_80193778"); extern s32 D_80193814; extern s32 D_80193818; @@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC02_026/ov_SC02_026.c b/src/ov_SC02_026/ov_SC02_026.c index 16b7ac21bc..1a473a99e4 100644 --- a/src/ov_SC02_026/ov_SC02_026.c +++ b/src/ov_SC02_026/ov_SC02_026.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -759,12 +755,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC02_026/ov_SC02_026_after.c b/src/ov_SC02_026/ov_SC02_026_after.c index e886fbedea..9ee966fb4b 100644 --- a/src/ov_SC02_026/ov_SC02_026_after.c +++ b/src/ov_SC02_026/ov_SC02_026_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC02_026/ov_SC02_026_jr_8012ACE0.c b/src/ov_SC02_026/ov_SC02_026_jr_8012ACE0.c index 05dcdc4f66..d34ecaf412 100644 --- a/src/ov_SC02_026/ov_SC02_026_jr_8012ACE0.c +++ b/src/ov_SC02_026/ov_SC02_026_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2445,7 +2440,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2609,7 +2603,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC02_026/ov_SC02_026_jr_801380E0.c b/src/ov_SC02_026/ov_SC02_026_jr_801380E0.c index 7c2c463641..e8f02d111f 100644 --- a/src/ov_SC02_026/ov_SC02_026_jr_801380E0.c +++ b/src/ov_SC02_026/ov_SC02_026_jr_801380E0.c @@ -1057,12 +1057,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_801866EC[]; u16 t; u8 b; diff --git a/src/ov_SC02_026/ov_SC02_026_jr_80140608.c b/src/ov_SC02_026/ov_SC02_026_jr_80140608.c index 1764f7b984..30fabe0505 100644 --- a/src/ov_SC02_026/ov_SC02_026_jr_80140608.c +++ b/src/ov_SC02_026/ov_SC02_026_jr_80140608.c @@ -1112,11 +1112,6 @@ s16 n; extern s16 D_801874AC[]; extern u16 D_80186FBC; extern u16 D_80186FBE; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1255,13 +1250,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2588,7 +2579,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC02_026/ov_SC02_026_jr_8016AB6C.c b/src/ov_SC02_026/ov_SC02_026_jr_8016AB6C.c index 4648d77390..2a5d0411fc 100644 --- a/src/ov_SC02_026/ov_SC02_026_jr_8016AB6C.c +++ b/src/ov_SC02_026/ov_SC02_026_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC02_026/ov_SC02_026_jr_801734BC.c b/src/ov_SC02_026/ov_SC02_026_jr_801734BC.c index f86b92684c..b61ae05a26 100644 --- a/src/ov_SC02_026/ov_SC02_026_jr_801734BC.c +++ b/src/ov_SC02_026/ov_SC02_026_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC02_026/nonmatchings/ov_SC02_026_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC02_026/ov_SC02_026_jr_8017C180.c b/src/ov_SC02_026/ov_SC02_026_jr_8017C180.c index 3df82f4e4c..237f006642 100644 --- a/src/ov_SC02_026/ov_SC02_026_jr_8017C180.c +++ b/src/ov_SC02_026/ov_SC02_026_jr_8017C180.c @@ -3383,9 +3383,6 @@ void func_8017D4CC(void *a0) { INCLUDE_ASM("asm/ov_SC02_026/nonmatchings/ov_SC02_026_jr_8017C180", func_8017D508); /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D6D0; extern u16 func_80148800(s32 *a0); extern void func_8017D780(s32 param_1, s16 *param_2); @@ -3658,12 +3655,7 @@ extern s32 func_8012BD14(s32 a0); extern void func_8002D59C(s32 a0, u16 a1, s32 a2); void func_8017FAC0(s32 a0) { - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FAC0; /* 8 bytes */ + /* 8 bytes */ V4_8017FAC0 p1; V4_8017FAC0 p2; @@ -3745,29 +3737,8 @@ extern s32 func_8012B6D4(s16 *a0, s16 *a1); extern void (*D_801A9EB8[])(void *); void func_8017FD58(void *arg0) { - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FD58; /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ - typedef struct { - u16 f0; /* 0x00 */ - u16 f2; /* 0x02 */ - u16 f4; /* 0x04 */ - u16 x; /* 0x06 */ - u16 f8; /* 0x08 */ - u16 y; /* 0x0A */ - u16 fC; /* 0x0C */ - u16 z; /* 0x0E */ - u8 p10[0x10]; - s32 f20; /* 0x20 */ - u8 p24[0x34]; - s32 f58; /* 0x58 */ - u8 p5C[8]; - s32 f64; /* 0x64 */ - u8 p68[0x10C - 0x68]; - } Ent_8017FD58; /* stride 0x10C, 0x60 entries (0x6480) */ + /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ + /* stride 0x10C, 0x60 entries (0x6480) */ /* Two further V4 slots the original body declared ahead of `pos` but that * this function never reads: the target frame is 0x50 with locals at @@ -4341,7 +4312,6 @@ extern void func_8012E688(void *a0, s32 a1, s32 a2); void func_80180E24(s32 a0) { s32 ret = func_8012BD14(a0); if (ret <= 0x64000) { - typedef struct { s32 f0; s32 f1; } Struct; Struct *ptr = *(Struct **)(a0 + 0x20); *(s16 *)(a0 + 0x2) = 1; ptr->f1 = ptr->f1 & 0x7FFFFFFF; @@ -6323,9 +6293,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); extern u8 D_801AF66C[]; void func_801848B0(s32 *s0) { - typedef struct { - u16 a, b, c, d; - } Data_t; Data_t buf_src, buf_dst; s32 v0; @@ -6871,7 +6838,6 @@ INCLUDE_ASM("asm/ov_SC02_026/nonmatchings/ov_SC02_026_jr_8017C180", func_8018544 #include "common.h" -struct B16_80185634 { s32 w[4]; }; extern struct B16_80185634 D_800A5EA8; extern struct B16_80185634 D_801CCBF8; @@ -6893,7 +6859,6 @@ void func_80185634(void *a0) { * above the splice point (func_80185634's block, same TU). Redeclaring the struct TAG body * verbatim would be a C89 duplicate-definition error there, so alias a private identifier * onto the same linker symbol -- zero blast radius, identical %hi/%lo(D_800A5EA8) codegen. */ -struct B16_801856E4 { s32 w[4]; }; extern struct B16_801856E4 aD800A5EA8 __asm__("D_800A5EA8"); extern struct B16_801856E4 D_801CCC30; @@ -6917,7 +6882,6 @@ void func_801856E4(void *a0) { * The scaled member (D_800A5E90) is record base +8, written as a DIRECT global so it * emits `lui $at; sw %lo(..)($at)` rather than folding onto the $s1 record base. */ -struct B16_80185794 { s32 w[4]; }; extern struct B16_80185794 D_800A5E88; extern struct B16_80185794 D_801CCC48; @@ -6944,7 +6908,6 @@ void func_80185844(void) { * identifier onto the same linker symbol sidesteps the collision at zero blast * radius and emits the identical %hi/%lo(D_800A5E88) pair. */ -struct B16_8018584C { s32 w[4]; }; extern struct B16_8018584C aD800A5E88 __asm__("D_800A5E88"); extern struct B16_8018584C D_801CCC80; diff --git a/src/ov_SC02_026/ov_SC02_026_o0c.c b/src/ov_SC02_026/ov_SC02_026_o0c.c index 1ab5cf3026..e0bca299f4 100644 --- a/src/ov_SC02_026/ov_SC02_026_o0c.c +++ b/src/ov_SC02_026/ov_SC02_026_o0c.c @@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801D0198[]; D_801D0198[a0].f0 = 1; @@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801D0198[]; D_801D0198[idx].f0 = 1; @@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801D0198[]; D_801D0198[a0].f0 = 0; } @@ -844,16 +828,7 @@ extern s32 D_801D0250; extern s32 D_801D02B4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801D0198"); extern s32 D_801D0234; extern s32 D_801D0238; @@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC02_027/ov_SC02_027.c b/src/ov_SC02_027/ov_SC02_027.c index cf5fe549be..6255a25a13 100644 --- a/src/ov_SC02_027/ov_SC02_027.c +++ b/src/ov_SC02_027/ov_SC02_027.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -759,12 +755,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC02_027/ov_SC02_027_after.c b/src/ov_SC02_027/ov_SC02_027_after.c index 6f4876b4bc..452bdb4450 100644 --- a/src/ov_SC02_027/ov_SC02_027_after.c +++ b/src/ov_SC02_027/ov_SC02_027_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC02_027/ov_SC02_027_jr_8012ACE0.c b/src/ov_SC02_027/ov_SC02_027_jr_8012ACE0.c index 2b9c6400e8..8b1ad49af9 100644 --- a/src/ov_SC02_027/ov_SC02_027_jr_8012ACE0.c +++ b/src/ov_SC02_027/ov_SC02_027_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2445,7 +2440,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2609,7 +2603,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC02_027/ov_SC02_027_jr_801380E0.c b/src/ov_SC02_027/ov_SC02_027_jr_801380E0.c index f6a0127334..9e406ef95f 100644 --- a/src/ov_SC02_027/ov_SC02_027_jr_801380E0.c +++ b/src/ov_SC02_027/ov_SC02_027_jr_801380E0.c @@ -1057,12 +1057,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018B810[]; u16 t; u8 b; diff --git a/src/ov_SC02_027/ov_SC02_027_jr_80140608.c b/src/ov_SC02_027/ov_SC02_027_jr_80140608.c index 7fa95384c7..de42877635 100644 --- a/src/ov_SC02_027/ov_SC02_027_jr_80140608.c +++ b/src/ov_SC02_027/ov_SC02_027_jr_80140608.c @@ -1112,11 +1112,6 @@ s16 n; extern s16 D_8018C5D0[]; extern u16 D_8018C0E0; extern u16 D_8018C0E2; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1255,13 +1250,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2588,7 +2579,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC02_027/ov_SC02_027_jr_8016AB6C.c b/src/ov_SC02_027/ov_SC02_027_jr_8016AB6C.c index 3f0d1df1e1..f42622dfbf 100644 --- a/src/ov_SC02_027/ov_SC02_027_jr_8016AB6C.c +++ b/src/ov_SC02_027/ov_SC02_027_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC02_027/ov_SC02_027_jr_801734BC.c b/src/ov_SC02_027/ov_SC02_027_jr_801734BC.c index f8d068a52f..3525ccb2ea 100644 --- a/src/ov_SC02_027/ov_SC02_027_jr_801734BC.c +++ b/src/ov_SC02_027/ov_SC02_027_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC02_027/ov_SC02_027_jr_8017AE2C.c b/src/ov_SC02_027/ov_SC02_027_jr_8017AE2C.c index dfaed2fecd..46af1c5d09 100644 --- a/src/ov_SC02_027/ov_SC02_027_jr_8017AE2C.c +++ b/src/ov_SC02_027/ov_SC02_027_jr_8017AE2C.c @@ -3343,8 +3343,6 @@ extern s32 D_801D9EB8; void func_8017BEBC(s32 param_1, s32 param_2) { /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L; SV4_L vec; /* sp+0x10 */ MTX_L mtx; /* sp+0x18 */ @@ -3500,8 +3498,6 @@ extern u8 D_801D9ECC; void func_8017BFEC(s32 a0) { /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027; - typedef struct { Rec027 r[9]; } Blk027; extern Blk027 D_801D3148; extern Blk027 D_801D9F40[]; @@ -3773,14 +3769,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_8017BEBC(s32 a0, s32 a1); void func_8017C738(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738; extern Rec_8017C738 D_801D3148[]; Rec_8017C738 *q = D_801D3148; @@ -4074,17 +4062,6 @@ void func_8017CD9C(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017CDF8 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017CDF8; extern void func_80147324(s32 arg0); extern void func_8017D030(int); @@ -4198,24 +4175,11 @@ void func_8017CFE4(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017D030; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017D030; -typedef struct { - SVec8_8017C218_8017D030 v[4]; /* 0x00 */ - CVec4_8017C218_8017D030 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017D030; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017D030; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -4536,10 +4500,6 @@ void func_8017D6CC(void *a0) void func_8017D728(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017D728; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017D728; - typedef struct { SVec_8017C910_8017D728 v[2]; Clr_8017C910_8017D728 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017D728; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017D728; extern Mtx8_8017C910_8017D728 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017D728 prim; diff --git a/src/ov_SC02_027/ov_SC02_027_jr_8017D898.c b/src/ov_SC02_027/ov_SC02_027_jr_8017D898.c index d6e9e9ad4b..e4d21fbbb7 100644 --- a/src/ov_SC02_027/ov_SC02_027_jr_8017D898.c +++ b/src/ov_SC02_027/ov_SC02_027_jr_8017D898.c @@ -3549,9 +3549,6 @@ INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_8017F2B /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D6D0_8017F3E8; extern u16 func_80148800(s32 *a0); extern void func_8017F918(s32 param_1, s16 *param_2); @@ -3579,9 +3576,6 @@ INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_8017F49 /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D6D0_8017F624; extern u16 func_80148800(s32 *a0); extern void func_8017F918(s32 param_1, s16 *param_2); @@ -4110,12 +4104,7 @@ void func_80183DD4(s32 a0) { extern u16 D_801AD33C[]; extern u16 D_801AD364[]; extern void (*D_801AD38C[])(s32); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FAC0_80183DD4; /* 8 bytes */ + /* 8 bytes */ V4_8017FAC0_80183DD4 p1; V4_8017FAC0_80183DD4 p2; @@ -4199,29 +4188,8 @@ void func_8018406C(void *arg0) { extern u8 D_801202A0[]; extern void (*D_801AD3D8[])(void *); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FD58_8018406C; /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ - typedef struct { - u16 f0; /* 0x00 */ - u16 f2; /* 0x02 */ - u16 f4; /* 0x04 */ - u16 x; /* 0x06 */ - u16 f8; /* 0x08 */ - u16 y; /* 0x0A */ - u16 fC; /* 0x0C */ - u16 z; /* 0x0E */ - u8 p10[0x10]; - s32 f20; /* 0x20 */ - u8 p24[0x34]; - s32 f58; /* 0x58 */ - u8 p5C[8]; - s32 f64; /* 0x64 */ - u8 p68[0x10C - 0x68]; - } Ent_8017FD58_8018406C; /* stride 0x10C, 0x60 entries (0x6480) */ + /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ + /* stride 0x10C, 0x60 entries (0x6480) */ /* Two further V4 slots the original body declared ahead of `pos` but that * this function never reads: the target frame is 0x50 with locals at @@ -4800,7 +4768,6 @@ extern void func_8012E688(void *a0, s32 a1, s32 a2); void func_80185138(s32 a0) { s32 ret = func_8012BD14(a0); if (ret <= 0x64000) { - typedef struct { s32 f0; s32 f1; } Struct_80185138; Struct_80185138 *ptr = *(Struct_80185138 **)(a0 + 0x20); *(s16 *)(a0 + 0x2) = 1; ptr->f1 = ptr->f1 & 0x7FFFFFFF; @@ -5383,9 +5350,6 @@ void func_80187D18(s32 a0) { extern u8 D_800AF648; extern u8 D_801C1FD4[]; extern u8 D_801C1944[]; - typedef struct { - u16 x, y, z, w; - } V8_80187D18; s32 mv[4]; /* sp+0x10 : the 4-word block handed to func_8012B1B4 */ V8_80187D18 pad[2]; /* sp+0x20 : gcc's own area (vars must be 0x48 for a 0x68 frame) */ V8_80187D18 sp30; /* sp+0x30 : func_80133784 arg1 */ @@ -5515,9 +5479,6 @@ void func_801880CC(s32 a0) { extern u8 D_801C28D4[]; extern u8 D_801C2254[]; extern u8 D_801C2ADC[]; - typedef struct { - u16 x, y, z, w; - } V8_801880CC; s32 sp10[4]; V8_801880CC pad[2]; V8_801880CC sp30; @@ -5751,9 +5712,6 @@ void func_80188574(s32 a0) { extern u8 D_801B588C[]; extern u8 D_801C2594[]; - typedef struct { - u16 x, y, z, w; - } V8_80188574; V8_80188574 pad[2]; V8_80188574 sp20; V8_80188574 sp28; @@ -6288,7 +6246,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_80189100(s32 a0) { extern u8 D_801B55A8[]; - typedef struct { u16 x, y, z, w; } V8_80189100; V8_80189100 sp10; V8_80189100 sp18; @@ -6406,9 +6363,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_80189320(s32 *s0) { extern u8 D_801B55A8[]; - typedef struct { - u16 a, b, c, d; - } Data_t_80189320; Data_t_80189320 buf_src, buf_dst; s32 v0; @@ -7214,7 +7168,6 @@ INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_8018A56 * exact template. Deltas: record source D_801D6964 (this overlay's own record) instead of * D_801CCBF8; same *10/4096-5 formula, same offset 0xFE, same slot 2. */ -struct B16_8018A758 { s32 w[4]; }; extern struct B16_8018A758 D_800A5EA8; extern struct B16_8018A758 D_801D6964; @@ -7254,7 +7207,6 @@ void func_8018A808(void *a0) { } -typedef struct { s32 w[4]; } Blk16_8018A8B8; extern s32 func_8004787C(s32 a0); extern void func_80028620(s32, void *); diff --git a/src/ov_SC02_027/ov_SC02_027_o0c.c b/src/ov_SC02_027/ov_SC02_027_o0c.c index 257936f4d0..358b5b1b6c 100644 --- a/src/ov_SC02_027/ov_SC02_027_o0c.c +++ b/src/ov_SC02_027/ov_SC02_027_o0c.c @@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801DA918[]; D_801DA918[a0].f0 = 1; @@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801DA918[]; D_801DA918[idx].f0 = 1; @@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801DA918[]; D_801DA918[a0].f0 = 0; } @@ -844,16 +828,7 @@ extern s32 D_801DA9D0; extern s32 D_801DAA34; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801DA918"); extern s32 D_801DA9B4; extern s32 D_801DA9B8; @@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC02_028/ov_SC02_028.c b/src/ov_SC02_028/ov_SC02_028.c index 5858ba6ae9..fecbfc6182 100644 --- a/src/ov_SC02_028/ov_SC02_028.c +++ b/src/ov_SC02_028/ov_SC02_028.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -759,12 +755,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC02_028/ov_SC02_028_after.c b/src/ov_SC02_028/ov_SC02_028_after.c index 5e48413cd3..c72cb30a46 100644 --- a/src/ov_SC02_028/ov_SC02_028_after.c +++ b/src/ov_SC02_028/ov_SC02_028_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC02_028/ov_SC02_028_jr_8012ACE0.c b/src/ov_SC02_028/ov_SC02_028_jr_8012ACE0.c index b4f621214e..ca279e416c 100644 --- a/src/ov_SC02_028/ov_SC02_028_jr_8012ACE0.c +++ b/src/ov_SC02_028/ov_SC02_028_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2445,7 +2440,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2609,7 +2603,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC02_028/ov_SC02_028_jr_801380E0.c b/src/ov_SC02_028/ov_SC02_028_jr_801380E0.c index 2fa8d49358..2076b29d22 100644 --- a/src/ov_SC02_028/ov_SC02_028_jr_801380E0.c +++ b/src/ov_SC02_028/ov_SC02_028_jr_801380E0.c @@ -1057,12 +1057,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018BA14[]; u16 t; u8 b; diff --git a/src/ov_SC02_028/ov_SC02_028_jr_80140608.c b/src/ov_SC02_028/ov_SC02_028_jr_80140608.c index b57a4b15df..dc23f2a73d 100644 --- a/src/ov_SC02_028/ov_SC02_028_jr_80140608.c +++ b/src/ov_SC02_028/ov_SC02_028_jr_80140608.c @@ -1112,11 +1112,6 @@ s16 n; extern s16 D_8018C7D4[]; extern u16 D_8018C2E4; extern u16 D_8018C2E6; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1255,13 +1250,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2588,7 +2579,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC02_028/ov_SC02_028_jr_8016AB6C.c b/src/ov_SC02_028/ov_SC02_028_jr_8016AB6C.c index cd3f1acb81..51ce4aecd5 100644 --- a/src/ov_SC02_028/ov_SC02_028_jr_8016AB6C.c +++ b/src/ov_SC02_028/ov_SC02_028_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC02_028/ov_SC02_028_jr_801734BC.c b/src/ov_SC02_028/ov_SC02_028_jr_801734BC.c index 234583428d..beff350128 100644 --- a/src/ov_SC02_028/ov_SC02_028_jr_801734BC.c +++ b/src/ov_SC02_028/ov_SC02_028_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC02_028/ov_SC02_028_jr_8017AE2C.c b/src/ov_SC02_028/ov_SC02_028_jr_8017AE2C.c index ec4eae7b30..0fda44a4cd 100644 --- a/src/ov_SC02_028/ov_SC02_028_jr_8017AE2C.c +++ b/src/ov_SC02_028/ov_SC02_028_jr_8017AE2C.c @@ -3347,8 +3347,6 @@ void func_8017BEBC(s32 param_1, s32 param_2) extern s32 D_801D2E54; extern s32 D_801D2E58; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_8017BEBC; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017BEBC; SV4_L_8017BEBC vec; /* sp+0x10 */ MTX_L_8017BEBC mtx; /* sp+0x18 */ @@ -3504,8 +3502,6 @@ void func_8017BFEC(s32 a0) { extern u8 D_801D2E66; extern u8 D_801D2E6C; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017BFEC; - typedef struct { Rec027_8017BFEC r[9]; } Blk027_8017BFEC; extern Blk027_8017BFEC D_801CCFA8; extern Blk027_8017BFEC D_801D2EE0[]; @@ -3781,14 +3777,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_8017BEBC(s32 a0, s32 a1); void func_8017C738(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_8017C738; extern Rec_8017C738_8017C738 D_801CCFA8[]; Rec_8017C738_8017C738 *q = D_801CCFA8; @@ -4097,17 +4085,6 @@ void func_8017CD9C(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017CDF8 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017CDF8; extern void func_80147324(s32 arg0); extern void func_8017D030(int); @@ -4221,24 +4198,11 @@ void func_8017CFE4(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017D030; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017D030; -typedef struct { - SVec8_8017C218_8017D030 v[4]; /* 0x00 */ - CVec4_8017C218_8017D030 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017D030; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017D030; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -4559,10 +4523,6 @@ void func_8017D6CC(void *a0) void func_8017D728(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017D728; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017D728; - typedef struct { SVec_8017C910_8017D728 v[2]; Clr_8017C910_8017D728 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017D728; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017D728; extern Mtx8_8017C910_8017D728 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017D728 prim; diff --git a/src/ov_SC02_028/ov_SC02_028_jr_8017D898.c b/src/ov_SC02_028/ov_SC02_028_jr_8017D898.c index 974381490d..a3c44fb75d 100644 --- a/src/ov_SC02_028/ov_SC02_028_jr_8017D898.c +++ b/src/ov_SC02_028/ov_SC02_028_jr_8017D898.c @@ -3489,9 +3489,6 @@ INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028_jr_8017D898", func_8017F42 /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D6D0_8017F558; extern u16 func_80148800(s32 *a0); extern void func_8017F9AC(s32 param_1, s16 *param_2); @@ -3520,9 +3517,6 @@ INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028_jr_8017D898", func_8017F60 /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D6D0_8017F794; extern u16 func_80148800(s32 *a0); extern void func_8017F9AC(s32 param_1, s16 *param_2); @@ -3549,9 +3543,6 @@ void func_8017F794(s32 a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D6D0_8017F844; extern u16 func_80148800(s32 *a0); extern void func_8017F9AC(s32 param_1, s16 *param_2); @@ -4183,9 +4174,6 @@ INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028_jr_8017D898", func_80182F8 void func_80182FD4(void *a0, void *a1) { - typedef struct { u16 vx, vy; } Pt2_80182FD4; - typedef struct { u8 pad[0x10]; Pt2_80182FD4 pt[12]; } Src_80182FD4; - typedef struct { u16 vx, vy, vz, pad; } Vec8_80182FD4; extern void func_8001E094(void); extern void func_8001E378(void *a0); @@ -4610,12 +4598,6 @@ void func_80183918(void) { * puts $s1's zero-init first, which is the target order. */ -typedef struct { - s16 unk0; - s16 unk2; - s16 unk4; - s16 unk6; -} Rec_8018A6A4_8018393C; extern void func_801839DC(s32 arg0, s32 arg1, s32 arg2); extern void func_80183AF8(s32 arg0, Rec_8018A6A4_8018393C *arg1, s32 arg2, s32 arg3); @@ -4732,7 +4714,7 @@ void aF8018A860(s32 a0, s16 *a1, u8 *a2, u8 *a3) { extern s16 D_801D3294; /* TU L3637 / L3671, verbatim */ - typedef struct { u8 b0, b1, b2, b3; } B4_80183AF8; /* align 1 — §48-C2 */ + /* align 1 — §48-C2 */ s16 *s1; u16 temp_u16; s16 temp_s16; @@ -4974,7 +4956,7 @@ void func_80183C54(void) { void func_80183D30(s32 arg0) { - typedef struct { s32 w[8]; } Blk32_8018AA98_80183D30; /* 32 bytes, align 4 */ + /* 32 bytes, align 4 */ extern Blk32_8018AA98_80183D30 D_800AE620; extern s32 D_800A5E60; @@ -5123,7 +5105,6 @@ extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3); extern void func_801840C8(void *arg0, void *arg1, s32 arg2, s32 arg3); void func_80184040(s32 a0) { - typedef struct { u8 a, b, c, d; } V4_80184040; extern u8 D_800AF648; extern V4_80184040 D_801D1AA4; u16 sxy[4]; @@ -5252,14 +5233,6 @@ void aF8018AFD0(s32 a0, s32 a1, s32 a2) __asm__("func_80184268"); void aF8018AFD0(s32 a0, s32 a1, s32 a2) { - typedef struct { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ - } P_80184268; extern s16 D_801D318C; extern s16 D_801D3186[]; @@ -5428,21 +5401,11 @@ extern void func_80016638(void *a0, s32 a1, s32 a2); /* 0x10-byte-stride record table at D_801D318C (same table as func_8018AD5C) */ -typedef struct { - u16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s16 f8; /* 0x08 */ - u16 fA; /* 0x0A */ - s16 fC; /* 0x0C */ - u16 fE; /* 0x0E */ -} Rec_8018B23C_801844D4; -typedef struct { s32 w[8]; } Mat32_8018B23C_801844D4; /* the 0x20-byte matrix */ -typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_801844D4; /* == engine_types.h OtBlk */ -typedef struct { u16 f; } Bidx_8018B23C_801844D4; /* the D_800B9A02 buffer index */ -typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_801844D4; /* libgpu P_TAG */ + /* the 0x20-byte matrix */ + /* == engine_types.h OtBlk */ + /* the D_800B9A02 buffer index */ + /* libgpu P_TAG */ void func_801844D4(s32 a0) { @@ -5562,12 +5525,7 @@ void func_801847B8(s32 a0) { extern u16 D_801A71DC[]; extern u16 D_801A7204[]; extern void (*D_801A722C[])(s32); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FAC0_801847B8; /* 8 bytes */ + /* 8 bytes */ V4_8017FAC0_801847B8 p1; V4_8017FAC0_801847B8 p2; @@ -5651,29 +5609,8 @@ void func_80184A50(void *arg0) { extern u8 D_801202A0[]; extern void (*D_801A7278[])(void *); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FD58_80184A50; /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ - typedef struct { - u16 f0; /* 0x00 */ - u16 f2; /* 0x02 */ - u16 f4; /* 0x04 */ - u16 x; /* 0x06 */ - u16 f8; /* 0x08 */ - u16 y; /* 0x0A */ - u16 fC; /* 0x0C */ - u16 z; /* 0x0E */ - u8 p10[0x10]; - s32 f20; /* 0x20 */ - u8 p24[0x34]; - s32 f58; /* 0x58 */ - u8 p5C[8]; - s32 f64; /* 0x64 */ - u8 p68[0x10C - 0x68]; - } Ent_8017FD58_80184A50; /* stride 0x10C, 0x60 entries (0x6480) */ + /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ + /* stride 0x10C, 0x60 entries (0x6480) */ /* Two further V4 slots the original body declared ahead of `pos` but that * this function never reads: the target frame is 0x50 with locals at @@ -6134,7 +6071,6 @@ extern void func_8012E688(void *a0, s32 a1, s32 a2); void func_80185B1C(s32 a0) { s32 ret = func_8012BD14(a0); if (ret <= 0x64000) { - typedef struct { s32 f0; s32 f1; } Struct_80185B1C; Struct_80185B1C *ptr = *(Struct_80185B1C **)(a0 + 0x20); *(s16 *)(a0 + 0x2) = 1; ptr->f1 = ptr->f1 & 0x7FFFFFFF; diff --git a/src/ov_SC02_028/ov_SC02_028_jr_801884D8.c b/src/ov_SC02_028/ov_SC02_028_jr_801884D8.c index 672d5db49f..01b4c2a1bc 100644 --- a/src/ov_SC02_028/ov_SC02_028_jr_801884D8.c +++ b/src/ov_SC02_028/ov_SC02_028_jr_801884D8.c @@ -14,35 +14,10 @@ typedef struct { u8 pad[7]; /* -> 0x40 */ } Prim_8016E7C8; typedef void (*Handler)(struct Entry_8016E95C *); -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D6D0_8017F558; -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D6D0_8017F794; -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D6D0_8017F844; -typedef struct { - s16 unk0; - s16 unk2; - s16 unk4; - s16 unk6; -} Rec_8018A6A4_8018393C; -typedef struct { - u16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s16 f8; /* 0x08 */ - u16 fA; /* 0x0A */ - s16 fC; /* 0x0C */ - u16 fE; /* 0x0E */ -} Rec_8018B23C_801844D4; -typedef struct { s32 w[8]; } Mat32_8018B23C_801844D4; /* the 0x20-byte matrix */ -typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_801844D4; /* == engine_types.h OtBlk */ -typedef struct { u16 f; } Bidx_8018B23C_801844D4; /* the D_800B9A02 buffer index */ -typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_801844D4; /* libgpu P_TAG */ + /* the 0x20-byte matrix */ + /* == engine_types.h OtBlk */ + /* the D_800B9A02 buffer index */ + /* libgpu P_TAG */ extern void func_801458E0(void); extern s32 D_800AE6AC; extern s32 D_800AE6B0; @@ -3081,9 +3056,6 @@ void func_801886FC(s32 a0) { extern u8 D_800AF648; extern u8 D_801BBE74[]; extern u8 D_801BB7E4[]; - typedef struct { - u16 x, y, z, w; - } V8_801886FC; s32 mv[4]; /* sp+0x10 : the 4-word block handed to func_8012B1B4 */ V8_801886FC pad[2]; /* sp+0x20 : gcc's own area (vars must be 0x48 for a 0x68 frame) */ V8_801886FC sp30; /* sp+0x30 : func_80133784 arg1 */ @@ -3213,9 +3185,6 @@ void func_80188AB0(s32 a0) { extern u8 D_801BC774[]; extern u8 D_801BC0F4[]; extern u8 D_801BC97C[]; - typedef struct { - u16 x, y, z, w; - } V8_80188AB0; s32 sp10[4]; V8_80188AB0 pad[2]; V8_80188AB0 sp30; @@ -3449,9 +3418,6 @@ void func_80188F58(s32 a0) { extern u8 D_801AF72C[]; extern u8 D_801BC434[]; - typedef struct { - u16 x, y, z, w; - } V8_80188F58; V8_80188F58 pad[2]; V8_80188F58 sp20; V8_80188F58 sp28; @@ -3986,7 +3952,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_80189AE4(s32 a0) { extern u8 D_801AF448[]; - typedef struct { u16 x, y, z, w; } V8_80189AE4; V8_80189AE4 sp10; V8_80189AE4 sp18; @@ -4103,9 +4068,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_80189D04(s32 *s0) { extern u8 D_801AF448[]; - typedef struct { - u16 a, b, c, d; - } Data_t_80189D04; Data_t_80189D04 buf_src, buf_dst; s32 v0; @@ -4843,7 +4805,6 @@ void func_8018AB34(void *a0) void func_8018AC00(void *a0) { - typedef struct { u8 b[8]; } Blk8_8018AC00; extern s32 func_80017DC4(void *a0, void *a1); extern s16 func_8012A758(void); extern void RotMatrixY(s32 a0, void *a1); @@ -4909,7 +4870,6 @@ void func_8018AF0C(void *a0) { INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028_jr_801884D8", func_8018AF48); -typedef struct { s32 w[4]; } Blk16_8018B13C; extern s32 func_8004787C(s32 a0); extern void func_80028620(s32, void *); @@ -4929,7 +4889,6 @@ void func_8018B13C(s32 a0) { INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028_jr_801884D8", func_8018B1EC); -typedef struct { s32 w[4]; } Blk16_8018B29C; extern s32 func_8004787C(s32 a0); extern void func_80028620(s32, void *); diff --git a/src/ov_SC02_028/ov_SC02_028_o0c.c b/src/ov_SC02_028/ov_SC02_028_o0c.c index 1ca4a196f1..8157ae280d 100644 --- a/src/ov_SC02_028/ov_SC02_028_o0c.c +++ b/src/ov_SC02_028/ov_SC02_028_o0c.c @@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801D3518[]; D_801D3518[a0].f0 = 1; @@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801D3518[]; D_801D3518[idx].f0 = 1; @@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801D3518[]; D_801D3518[a0].f0 = 0; } @@ -844,16 +828,7 @@ extern s32 D_801D35D0; extern s32 D_801D3634; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801D3518"); extern s32 D_801D35B4; extern s32 D_801D35B8; @@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC02_031/ov_SC02_031.c b/src/ov_SC02_031/ov_SC02_031.c index 239fc9e4d0..68076aabb9 100644 --- a/src/ov_SC02_031/ov_SC02_031.c +++ b/src/ov_SC02_031/ov_SC02_031.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -759,12 +755,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC02_031/ov_SC02_031_after.c b/src/ov_SC02_031/ov_SC02_031_after.c index 8fa281fc5e..ace8f31c6b 100644 --- a/src/ov_SC02_031/ov_SC02_031_after.c +++ b/src/ov_SC02_031/ov_SC02_031_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC02_031/ov_SC02_031_jr_8012ACE0.c b/src/ov_SC02_031/ov_SC02_031_jr_8012ACE0.c index 5d0367ddad..2a0f99755e 100644 --- a/src/ov_SC02_031/ov_SC02_031_jr_8012ACE0.c +++ b/src/ov_SC02_031/ov_SC02_031_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2445,7 +2440,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2609,7 +2603,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC02_031/ov_SC02_031_jr_801380E0.c b/src/ov_SC02_031/ov_SC02_031_jr_801380E0.c index cbf705762d..02f451ab3b 100644 --- a/src/ov_SC02_031/ov_SC02_031_jr_801380E0.c +++ b/src/ov_SC02_031/ov_SC02_031_jr_801380E0.c @@ -1057,12 +1057,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80185240[]; u16 t; u8 b; diff --git a/src/ov_SC02_031/ov_SC02_031_jr_80140608.c b/src/ov_SC02_031/ov_SC02_031_jr_80140608.c index 8983f075f6..4bf1b60165 100644 --- a/src/ov_SC02_031/ov_SC02_031_jr_80140608.c +++ b/src/ov_SC02_031/ov_SC02_031_jr_80140608.c @@ -1112,11 +1112,6 @@ s16 n; extern s16 D_80186000[]; extern u16 D_80185B10; extern u16 D_80185B12; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1255,13 +1250,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2588,7 +2579,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC02_031/ov_SC02_031_jr_8016AB6C.c b/src/ov_SC02_031/ov_SC02_031_jr_8016AB6C.c index c7c89f63fc..dbad270b1a 100644 --- a/src/ov_SC02_031/ov_SC02_031_jr_8016AB6C.c +++ b/src/ov_SC02_031/ov_SC02_031_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC02_031/ov_SC02_031_jr_801734BC.c b/src/ov_SC02_031/ov_SC02_031_jr_801734BC.c index e859d5662f..70e7ee323b 100644 --- a/src/ov_SC02_031/ov_SC02_031_jr_801734BC.c +++ b/src/ov_SC02_031/ov_SC02_031_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC02_031/nonmatchings/ov_SC02_031_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC02_031/ov_SC02_031_jr_8017AE2C.c b/src/ov_SC02_031/ov_SC02_031_jr_8017AE2C.c index 7a30fa43be..7ac4a4212c 100644 --- a/src/ov_SC02_031/ov_SC02_031_jr_8017AE2C.c +++ b/src/ov_SC02_031/ov_SC02_031_jr_8017AE2C.c @@ -3484,8 +3484,6 @@ void func_8017C180(s32 param_1, s32 param_2) extern s32 D_801B75CC; extern s32 D_801B75D0; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_8017C180; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017C180; SV4_L_8017C180 vec; /* sp+0x10 */ MTX_L_8017C180 mtx; /* sp+0x18 */ @@ -3641,8 +3639,6 @@ void func_8017C2B0(s32 a0) { extern u8 D_801B75DE; extern u8 D_801B75E4; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017C2B0; - typedef struct { Rec027_8017C2B0 r[9]; } Blk027_8017C2B0; extern Blk027_8017C2B0 D_801AC390; extern Blk027_8017C2B0 D_801B7658[]; @@ -3918,14 +3914,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_8017C180(s32 a0, s32 a1); void func_8017C9FC(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_8017C9FC; extern Rec_8017C738_8017C9FC D_801AC390[]; Rec_8017C738_8017C9FC *q = D_801AC390; @@ -4232,17 +4220,6 @@ void func_8017D060(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017D0BC { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017D0BC; extern void func_80147324(s32 arg0); extern void func_8017D2F4(int); @@ -4356,24 +4333,11 @@ void func_8017D2A8(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017D2F4; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017D2F4; -typedef struct { - SVec8_8017C218_8017D2F4 v[4]; /* 0x00 */ - CVec4_8017C218_8017D2F4 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017D2F4; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017D2F4; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -4694,10 +4658,6 @@ void func_8017D990(void *a0) void func_8017D9EC(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017D9EC; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017D9EC; - typedef struct { SVec_8017C910_8017D9EC v[2]; Clr_8017C910_8017D9EC col[2]; s32 tag; s32 pad; } Prim_8017C910_8017D9EC; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017D9EC; extern Mtx8_8017C910_8017D9EC aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017D9EC prim; @@ -5531,7 +5491,6 @@ void func_8017ED60(s16 *a0) { * (instead of a fresh local) avoids stealing back the $v0 slot. */ -typedef struct { s32 w[8]; } Mtx8_8017DE10_8017EE3C; void func_8017EE3C(s32 a0) { extern void ApplyMatrixSV(void *a0, void *a1, void *a2); @@ -5950,20 +5909,9 @@ INCLUDE_ASM("asm/ov_SC02_031/nonmatchings/ov_SC02_031_jr_8017AE2C", func_8017F59 /* ---- the two gouraud-textured packet layouts this function emits ---------- */ -typedef struct { - u32 tag; - u32 rgb0; s16 x0, y0; u32 uv0; - u32 rgb1; s16 x1, y1; u32 uv1; - u32 rgb2; s16 x2, y2; u16 uv2, p2; -} PolyGT3; /* 0x28 */ + /* 0x28 */ -typedef struct { - u32 tag; - u32 rgb0; s16 x0, y0; u32 uv0; - u32 rgb1; s16 x1, y1; u32 uv1; - u32 rgb2; s16 x2, y2; u16 uv2, p2; - u32 rgb3; s16 x3, y3; u16 uv3, p3; -} PolyGT4; /* 0x34 */ + /* 0x34 */ /* ---- the single light-volume descriptor ---------------------------------- */ extern s32 D_801B79E8; diff --git a/src/ov_SC02_031/ov_SC02_031_o0c.c b/src/ov_SC02_031/ov_SC02_031_o0c.c index eac514db59..07819a8f8a 100644 --- a/src/ov_SC02_031/ov_SC02_031_o0c.c +++ b/src/ov_SC02_031/ov_SC02_031_o0c.c @@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801B79E8[]; D_801B79E8[a0].f0 = 1; @@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801B79E8[]; D_801B79E8[idx].f0 = 1; @@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801B79E8[]; D_801B79E8[a0].f0 = 0; } @@ -844,16 +828,7 @@ extern s32 D_801B7AA0; extern s32 D_801B7B04; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801B79E8"); extern s32 D_801B7A84; extern s32 D_801B7A88; @@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC02_035/ov_SC02_035.c b/src/ov_SC02_035/ov_SC02_035.c index e3c582b2d1..0c4b357c5f 100644 --- a/src/ov_SC02_035/ov_SC02_035.c +++ b/src/ov_SC02_035/ov_SC02_035.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -759,12 +755,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC02_035/ov_SC02_035_after.c b/src/ov_SC02_035/ov_SC02_035_after.c index a844ca3e9c..d19259db86 100644 --- a/src/ov_SC02_035/ov_SC02_035_after.c +++ b/src/ov_SC02_035/ov_SC02_035_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC02_035/ov_SC02_035_jr_8012ACE0.c b/src/ov_SC02_035/ov_SC02_035_jr_8012ACE0.c index c22928fe5b..d9d7f91b33 100644 --- a/src/ov_SC02_035/ov_SC02_035_jr_8012ACE0.c +++ b/src/ov_SC02_035/ov_SC02_035_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2445,7 +2440,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2609,7 +2603,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC02_035/ov_SC02_035_jr_801380E0.c b/src/ov_SC02_035/ov_SC02_035_jr_801380E0.c index d2f9ffd52b..bb20f66eb5 100644 --- a/src/ov_SC02_035/ov_SC02_035_jr_801380E0.c +++ b/src/ov_SC02_035/ov_SC02_035_jr_801380E0.c @@ -1057,12 +1057,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80184AA0[]; u16 t; u8 b; diff --git a/src/ov_SC02_035/ov_SC02_035_jr_80140608.c b/src/ov_SC02_035/ov_SC02_035_jr_80140608.c index 7c0dd7f878..456fe8e8a4 100644 --- a/src/ov_SC02_035/ov_SC02_035_jr_80140608.c +++ b/src/ov_SC02_035/ov_SC02_035_jr_80140608.c @@ -1112,11 +1112,6 @@ s16 n; extern s16 D_80185860[]; extern u16 D_80185370; extern u16 D_80185372; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1255,13 +1250,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2588,7 +2579,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC02_035/ov_SC02_035_jr_8016AB6C.c b/src/ov_SC02_035/ov_SC02_035_jr_8016AB6C.c index daf53882d4..11057cdfa1 100644 --- a/src/ov_SC02_035/ov_SC02_035_jr_8016AB6C.c +++ b/src/ov_SC02_035/ov_SC02_035_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC02_035/ov_SC02_035_jr_801734BC.c b/src/ov_SC02_035/ov_SC02_035_jr_801734BC.c index 3692622949..cfbbc1f5d6 100644 --- a/src/ov_SC02_035/ov_SC02_035_jr_801734BC.c +++ b/src/ov_SC02_035/ov_SC02_035_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC02_035/nonmatchings/ov_SC02_035_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC02_035/ov_SC02_035_jr_8017BEBC.c b/src/ov_SC02_035/ov_SC02_035_jr_8017BEBC.c index 73ca5c82f0..596bac6b43 100644 --- a/src/ov_SC02_035/ov_SC02_035_jr_8017BEBC.c +++ b/src/ov_SC02_035/ov_SC02_035_jr_8017BEBC.c @@ -3325,9 +3325,6 @@ void func_8017D0F4(void *a0) { #include "common.h" /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940; extern s32 D_80126B58; extern u16 func_80148800(s32 *a0); @@ -3555,12 +3552,7 @@ void func_8017D914(s32 a0) { extern u16 D_8019694C[]; extern u16 D_80196974[]; extern void (*D_8019699C[])(s32); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FAC0_8017D914; /* 8 bytes */ + /* 8 bytes */ V4_8017FAC0_8017D914 p1; V4_8017FAC0_8017D914 p2; @@ -3644,29 +3636,8 @@ void func_8017DBAC(void *arg0) { extern u8 D_801202A0[]; extern void (*D_801969E8[])(void *); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FD58_8017DBAC; /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ - typedef struct { - u16 f0; /* 0x00 */ - u16 f2; /* 0x02 */ - u16 f4; /* 0x04 */ - u16 x; /* 0x06 */ - u16 f8; /* 0x08 */ - u16 y; /* 0x0A */ - u16 fC; /* 0x0C */ - u16 z; /* 0x0E */ - u8 p10[0x10]; - s32 f20; /* 0x20 */ - u8 p24[0x34]; - s32 f58; /* 0x58 */ - u8 p5C[8]; - s32 f64; /* 0x64 */ - u8 p68[0x10C - 0x68]; - } Ent_8017FD58_8017DBAC; /* stride 0x10C, 0x60 entries (0x6480) */ + /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ + /* stride 0x10C, 0x60 entries (0x6480) */ /* Two further V4 slots the original body declared ahead of `pos` but that * this function never reads: the target frame is 0x50 with locals at @@ -4245,7 +4216,6 @@ extern void func_8012E688(void *a0, s32 a1, s32 a2); void func_8017EC78(s32 a0) { s32 ret = func_8012BD14(a0); if (ret <= 0x64000) { - typedef struct { s32 f0; s32 f1; } Struct_8017EC78; Struct_8017EC78 *ptr = *(Struct_8017EC78 **)(a0 + 0x20); *(s16 *)(a0 + 0x2) = 1; ptr->f1 = ptr->f1 & 0x7FFFFFFF; @@ -5232,9 +5202,6 @@ void func_801810FC(s32 a0) { extern u8 D_800AF648; extern u8 D_801A8BC8[]; extern u8 D_801A8538[]; - typedef struct { - u16 x, y, z, w; - } V8_801810FC; s32 mv[4]; /* sp+0x10 : the 4-word block handed to func_8012B1B4 */ V8_801810FC pad[2]; /* sp+0x20 : gcc's own area (vars must be 0x48 for a 0x68 frame) */ V8_801810FC sp30; /* sp+0x30 : func_80133784 arg1 */ @@ -5364,9 +5331,6 @@ void func_801814B0(s32 a0) { extern u8 D_801A94C8[]; extern u8 D_801A8E48[]; extern u8 D_801A96D0[]; - typedef struct { - u16 x, y, z, w; - } V8_801814B0; s32 sp10[4]; V8_801814B0 pad[2]; V8_801814B0 sp30; @@ -5600,9 +5564,6 @@ void func_80181958(s32 a0) { extern u8 D_8019C480[]; extern u8 D_801A9188[]; - typedef struct { - u16 x, y, z, w; - } V8_80181958; V8_80181958 pad[2]; V8_80181958 sp20; V8_80181958 sp28; @@ -6137,7 +6098,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_801824E4(s32 a0) { extern u8 D_8019C19C[]; - typedef struct { u16 x, y, z, w; } V8_801824E4; V8_801824E4 sp10; V8_801824E4 sp18; @@ -6254,9 +6214,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_80182704(s32 *s0) { extern u8 D_8019C19C[]; - typedef struct { - u16 a, b, c, d; - } Data_t_80182704; Data_t_80182704 buf_src, buf_dst; s32 v0; @@ -7324,7 +7281,6 @@ void func_80183F98(void *a0) { INCLUDE_ASM("asm/ov_SC02_035/nonmatchings/ov_SC02_035_jr_8017BEBC", func_80183FD4); -struct B16_801841C8 { s32 w[4]; }; extern struct B16_801841C8 D_800A5EA8; extern struct B16_801841C8 D_801BBDE4; @@ -7342,7 +7298,6 @@ void func_801841C8(void *a0) { INCLUDE_ASM("asm/ov_SC02_035/nonmatchings/ov_SC02_035_jr_8017BEBC", func_80184278); -typedef struct { s32 w[4]; } Blk16_80184328; extern s32 func_8004787C(s32 a0); extern void func_80028620(s32, void *); diff --git a/src/ov_SC02_035/ov_SC02_035_o0c.c b/src/ov_SC02_035/ov_SC02_035_o0c.c index e8f1f03343..bf29c0ae6a 100644 --- a/src/ov_SC02_035/ov_SC02_035_o0c.c +++ b/src/ov_SC02_035/ov_SC02_035_o0c.c @@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801BE920[]; D_801BE920[a0].f0 = 1; @@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801BE920[]; D_801BE920[idx].f0 = 1; @@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801BE920[]; D_801BE920[a0].f0 = 0; } @@ -844,16 +828,7 @@ extern s32 D_801BE9D8; extern s32 D_801BEA3C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801BE920"); extern s32 D_801BE9BC; extern s32 D_801BE9C0; @@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC02_039/ov_SC02_039.c b/src/ov_SC02_039/ov_SC02_039.c index 983365dc40..296e63e70a 100644 --- a/src/ov_SC02_039/ov_SC02_039.c +++ b/src/ov_SC02_039/ov_SC02_039.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC02_039/ov_SC02_039_after.c b/src/ov_SC02_039/ov_SC02_039_after.c index b31ee3da90..382c84176a 100644 --- a/src/ov_SC02_039/ov_SC02_039_after.c +++ b/src/ov_SC02_039/ov_SC02_039_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC02_039/ov_SC02_039_jr_8012ACE0.c b/src/ov_SC02_039/ov_SC02_039_jr_8012ACE0.c index a509a1c3f6..f4d1d1111f 100644 --- a/src/ov_SC02_039/ov_SC02_039_jr_8012ACE0.c +++ b/src/ov_SC02_039/ov_SC02_039_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC02_039/ov_SC02_039_jr_801380E0.c b/src/ov_SC02_039/ov_SC02_039_jr_801380E0.c index cfc81c036d..a1a333f0ea 100644 --- a/src/ov_SC02_039/ov_SC02_039_jr_801380E0.c +++ b/src/ov_SC02_039/ov_SC02_039_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017F6CC[]; u16 t; u8 b; diff --git a/src/ov_SC02_039/ov_SC02_039_jr_80140608.c b/src/ov_SC02_039/ov_SC02_039_jr_80140608.c index 670e15c372..d73231333a 100644 --- a/src/ov_SC02_039/ov_SC02_039_jr_80140608.c +++ b/src/ov_SC02_039/ov_SC02_039_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8018048C[]; extern u16 D_8017FF9C; extern u16 D_8017FF9E; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC02_039/ov_SC02_039_jr_8016AB6C.c b/src/ov_SC02_039/ov_SC02_039_jr_8016AB6C.c index 208c09298d..60ee91bd45 100644 --- a/src/ov_SC02_039/ov_SC02_039_jr_8016AB6C.c +++ b/src/ov_SC02_039/ov_SC02_039_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC02_039/ov_SC02_039_jr_801734BC.c b/src/ov_SC02_039/ov_SC02_039_jr_801734BC.c index c0f814c822..97ff7ece9f 100644 --- a/src/ov_SC02_039/ov_SC02_039_jr_801734BC.c +++ b/src/ov_SC02_039/ov_SC02_039_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC02_039/nonmatchings/ov_SC02_039_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC02_039/ov_SC02_039_o0c.c b/src/ov_SC02_039/ov_SC02_039_o0c.c index d5b5404dbf..e98c31922c 100644 --- a/src/ov_SC02_039/ov_SC02_039_o0c.c +++ b/src/ov_SC02_039/ov_SC02_039_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801A0CD8[]; D_801A0CD8[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801A0CD8[]; D_801A0CD8[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801A0CD8[]; D_801A0CD8[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801A0D90; extern s32 D_801A0DF4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801A0CD8"); extern s32 D_801A0D74; extern s32 D_801A0D78; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC02_041/ov_SC02_041.c b/src/ov_SC02_041/ov_SC02_041.c index 2caf1af869..dc395bd3c3 100644 --- a/src/ov_SC02_041/ov_SC02_041.c +++ b/src/ov_SC02_041/ov_SC02_041.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC02_041/ov_SC02_041_after.c b/src/ov_SC02_041/ov_SC02_041_after.c index c31988f426..288acb59b5 100644 --- a/src/ov_SC02_041/ov_SC02_041_after.c +++ b/src/ov_SC02_041/ov_SC02_041_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC02_041/ov_SC02_041_jr_8012ACE0.c b/src/ov_SC02_041/ov_SC02_041_jr_8012ACE0.c index 5275024c40..7224891bc7 100644 --- a/src/ov_SC02_041/ov_SC02_041_jr_8012ACE0.c +++ b/src/ov_SC02_041/ov_SC02_041_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC02_041/ov_SC02_041_jr_801380E0.c b/src/ov_SC02_041/ov_SC02_041_jr_801380E0.c index 2a06a1a6a0..8b9e6bde03 100644 --- a/src/ov_SC02_041/ov_SC02_041_jr_801380E0.c +++ b/src/ov_SC02_041/ov_SC02_041_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018539C[]; u16 t; u8 b; diff --git a/src/ov_SC02_041/ov_SC02_041_jr_80140608.c b/src/ov_SC02_041/ov_SC02_041_jr_80140608.c index b832ea9737..1ea205b189 100644 --- a/src/ov_SC02_041/ov_SC02_041_jr_80140608.c +++ b/src/ov_SC02_041/ov_SC02_041_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8018615C[]; extern u16 D_80185C6C; extern u16 D_80185C6E; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC02_041/ov_SC02_041_jr_8016AB6C.c b/src/ov_SC02_041/ov_SC02_041_jr_8016AB6C.c index 4bc954988b..5d983d46b4 100644 --- a/src/ov_SC02_041/ov_SC02_041_jr_8016AB6C.c +++ b/src/ov_SC02_041/ov_SC02_041_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC02_041/ov_SC02_041_jr_801734BC.c b/src/ov_SC02_041/ov_SC02_041_jr_801734BC.c index a606d57654..beadeb70a7 100644 --- a/src/ov_SC02_041/ov_SC02_041_jr_801734BC.c +++ b/src/ov_SC02_041/ov_SC02_041_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC02_041/nonmatchings/ov_SC02_041_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC02_041/ov_SC02_041_jr_8017BEBC.c b/src/ov_SC02_041/ov_SC02_041_jr_8017BEBC.c index d9a3275cdb..12905f73a6 100644 --- a/src/ov_SC02_041/ov_SC02_041_jr_8017BEBC.c +++ b/src/ov_SC02_041/ov_SC02_041_jr_8017BEBC.c @@ -3555,9 +3555,6 @@ INCLUDE_ASM("asm/ov_SC02_041/nonmatchings/ov_SC02_041_jr_8017BEBC", func_8017E2B /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017E374; extern u16 func_80148800(s32 *a0); extern void func_8017E414(s32 param_1, s16 *param_2); @@ -3874,9 +3871,6 @@ void func_8017E9B0(s32 *a0) { * block, 26+ mismatches). */ -typedef struct { - unsigned short vx, vy, vz, pad; -} UVec_8017EA1C; extern s32 func_8004787C(s32 a0); extern void func_800139C8(s32 a0, void *a1, void *a2); @@ -5295,15 +5289,10 @@ void func_80183770(s32 a0) { extern u8 D_800AF630[]; extern void func_80017714(void *); -typedef struct { s16 vx, vy, vz, pad; } SV_801837B0; /* 8 bytes */ -typedef struct { u8 r, g, b, cd; } CV_801837B0; /* 4 bytes */ + /* 8 bytes */ + /* 4 bytes */ -typedef struct { - SV_801837B0 v[4]; /* +0x00 : sxy0..3 (v[0].vz doubles as the otz slot) */ - CV_801837B0 rgb[4]; /* +0x20 */ - u32 code; /* +0x30 */ - u32 pad; /* +0x34 */ -} PKT_801837B0; /* 0x38 */ + /* 0x38 */ #define gte_ldv0_801837B0(r0) __asm__ volatile ( \ "lwc2 $0, 0( %0 );" \ diff --git a/src/ov_SC02_041/ov_SC02_041_o0c.c b/src/ov_SC02_041/ov_SC02_041_o0c.c index 80c8676ee9..075c7a5a0e 100644 --- a/src/ov_SC02_041/ov_SC02_041_o0c.c +++ b/src/ov_SC02_041/ov_SC02_041_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801B95B0[]; D_801B95B0[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801B95B0[]; D_801B95B0[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801B95B0[]; D_801B95B0[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801B9668; extern s32 D_801B96CC; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801B95B0"); extern s32 D_801B964C; extern s32 D_801B9650; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_001/ov_SC03_001.c b/src/ov_SC03_001/ov_SC03_001.c index 874fa2f7e3..d949e4a494 100644 --- a/src/ov_SC03_001/ov_SC03_001.c +++ b/src/ov_SC03_001/ov_SC03_001.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_001/ov_SC03_001_after.c b/src/ov_SC03_001/ov_SC03_001_after.c index f4242cd47e..521e33d834 100644 --- a/src/ov_SC03_001/ov_SC03_001_after.c +++ b/src/ov_SC03_001/ov_SC03_001_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_001/ov_SC03_001_jr_8012ACE0.c b/src/ov_SC03_001/ov_SC03_001_jr_8012ACE0.c index 16fe45d747..9206563f9f 100644 --- a/src/ov_SC03_001/ov_SC03_001_jr_8012ACE0.c +++ b/src/ov_SC03_001/ov_SC03_001_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2444,7 +2439,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2608,7 +2602,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_001/ov_SC03_001_jr_801380E0.c b/src/ov_SC03_001/ov_SC03_001_jr_801380E0.c index 0736fe64cf..8e661f11db 100644 --- a/src/ov_SC03_001/ov_SC03_001_jr_801380E0.c +++ b/src/ov_SC03_001/ov_SC03_001_jr_801380E0.c @@ -1048,12 +1048,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018DADC[]; u16 t; u8 b; diff --git a/src/ov_SC03_001/ov_SC03_001_jr_80140608.c b/src/ov_SC03_001/ov_SC03_001_jr_80140608.c index 9e9d453306..2b719e88c3 100644 --- a/src/ov_SC03_001/ov_SC03_001_jr_80140608.c +++ b/src/ov_SC03_001/ov_SC03_001_jr_80140608.c @@ -1111,11 +1111,6 @@ s16 n; extern s16 D_8018E89C[]; extern u16 D_8018E3AC; extern u16 D_8018E3AE; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1254,13 +1249,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2603,7 +2594,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_001/ov_SC03_001_jr_8016AB6C.c b/src/ov_SC03_001/ov_SC03_001_jr_8016AB6C.c index 1cadf71f58..384a9ecf39 100644 --- a/src/ov_SC03_001/ov_SC03_001_jr_8016AB6C.c +++ b/src/ov_SC03_001/ov_SC03_001_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_001/ov_SC03_001_jr_801734BC.c b/src/ov_SC03_001/ov_SC03_001_jr_801734BC.c index 0a8499bd90..8a57e0e7e9 100644 --- a/src/ov_SC03_001/ov_SC03_001_jr_801734BC.c +++ b/src/ov_SC03_001/ov_SC03_001_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_001/ov_SC03_001_jr_8017AE2C.c b/src/ov_SC03_001/ov_SC03_001_jr_8017AE2C.c index 3ff00ae6d5..5fe5f2348a 100644 --- a/src/ov_SC03_001/ov_SC03_001_jr_8017AE2C.c +++ b/src/ov_SC03_001/ov_SC03_001_jr_8017AE2C.c @@ -3335,17 +3335,6 @@ extern u8 D_801EE680[]; extern u8 *func_8012913C(s32 a0); extern s32 func_8012C750(s32 a0); -typedef struct { - s16 unk00; - s16 unk02; - s16 unk04; - s16 unk06; - s16 unk08; - s16 unk0A; - s16 unk0C; - s16 unk0E; - s32 unk10; -} Buf8017BF50; /* $16-$19 are pinned: without them gcc's strength reduction splits the `s1` store * base into TWO induction variables (base+0x18 with offsets -4/0, plus base+0x1C), @@ -4245,13 +4234,6 @@ extern void func_8017E204(void *arg0); extern s32 func_8012AD50(void *arg0); /* 0x24-stride record at D_801EE888 (4 entries; asm/ov_SC04_018/data/tail18.data.s) */ -typedef struct { - u8 unk00[0x16]; - s16 unk16; - u8 unk18[4]; - s32 unk1C; - u8 unk20[4]; -} Ent_8017D6EC_8017DEE8; void func_8017DEE8(void *arg0) { @@ -4437,12 +4419,7 @@ void func_8017E204(void *arg0) { * so this body remaps to those overlays unchanged. */ -typedef struct { short vx, vy, vz, pad; } SV_8017DAC4_8017E2C0; -typedef struct { - SV_8017DAC4_8017E2C0 v[4]; /* 0x00 .. 0x20 */ - s32 f20, f24, f28, f2C, f30, f34; /* 0x20 .. 0x38 */ -} Prim_8017DAC4_8017E2C0; extern void func_80017714(void *); @@ -8018,9 +7995,6 @@ s32 func_80187690(u8 a0, u8 a1, u8 a2, u8 a3) { extern void func_8012F214(s32 a0, s32 a1, s32 a2); extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); -typedef struct { - s16 f0, f1, f2, f3; -} Vec4s_801876E8; void func_801876E8(void *a0, s32 a1) { @@ -8428,7 +8402,6 @@ extern void func_8018835C(s32 a0); extern void *func_8018872C(void *a0); -typedef struct { u8 b[12]; } Blk12_801854C4_80187F84; void func_80187F84(s32 a0) { @@ -9297,24 +9270,7 @@ INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001_jr_8017AE2C", func_8018B23 * through a local instead) were all tried and all leave the 22-diff swap. */ -typedef struct Prim4_8017E978_8018B478 { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ -} Prim4_8017E978_8018B478; -typedef struct Panel_8017E978_8018B478 { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - void *f4; /* 0x04 */ - void *f8; /* 0x08 */ - s16 fC; /* 0x0C */ - s16 fE; /* 0x0E */ - s16 f10; /* 0x10 */ - s16 f12; /* 0x12 */ - void *f14; /* 0x14 */ - Prim4_8017E978_8018B478 *f18; /* 0x18 */ - void *f1C; /* 0x1C */ -} Panel_8017E978_8018B478; extern void func_80024054(void *a0, void *a1); @@ -9407,13 +9363,8 @@ s32 *func_8018BCD4(out, src, idx, w, col) extern u16 D_801C11BA; extern u16 D_801C11CE; - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 -> 0x14 stride */ - } Env_8018BCD4; extern Env_8018BCD4 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_8018BCD4; /* §37 /s-DEP LATTICE: this store MUST be MEM_IN_STRUCT_P. `out[0] = k` folds `out + 0` * away and expands as a NON-/s mem, which keeps the true_dependence edge to the incoming @@ -9421,7 +9372,6 @@ s32 *func_8018BCD4(out, src, idx, w, col) * the out[0] store, i.e. the edge must be DROPPED — sched.c's drop clause needs the store * /s + varying and the load non-/s + fixed-address. A COMPONENT_REF at offset 0 supplies * the /s. (This single bit was the last 10 of 203 instructions.) */ - typedef struct { u32 w; } W_8018BCD4; s32 c; s16 t; diff --git a/src/ov_SC03_001/ov_SC03_001_o0c.c b/src/ov_SC03_001/ov_SC03_001_o0c.c index 138440f6e5..d0e52133f8 100644 --- a/src/ov_SC03_001/ov_SC03_001_o0c.c +++ b/src/ov_SC03_001/ov_SC03_001_o0c.c @@ -784,8 +784,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801EF328[]; D_801EF328[a0].f0 = 1; @@ -800,20 +798,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801EF328[]; D_801EF328[idx].f0 = 1; @@ -824,7 +808,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801EF328[]; D_801EF328[a0].f0 = 0; } @@ -843,16 +827,7 @@ extern s32 D_801EF3F8; extern s32 D_801EF45C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801EF328"); extern s32 D_801EF3DC; extern s32 D_801EF3E0; @@ -942,7 +917,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -989,17 +963,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1065,11 +1028,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_002/ov_SC03_002.c b/src/ov_SC03_002/ov_SC03_002.c index be1f29e545..2481f0b518 100644 --- a/src/ov_SC03_002/ov_SC03_002.c +++ b/src/ov_SC03_002/ov_SC03_002.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_002/ov_SC03_002_after.c b/src/ov_SC03_002/ov_SC03_002_after.c index 5ca5168c6f..4dd23e6eb3 100644 --- a/src/ov_SC03_002/ov_SC03_002_after.c +++ b/src/ov_SC03_002/ov_SC03_002_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_002/ov_SC03_002_jr_8012ACE0.c b/src/ov_SC03_002/ov_SC03_002_jr_8012ACE0.c index 26c24b1cad..57f92215e9 100644 --- a/src/ov_SC03_002/ov_SC03_002_jr_8012ACE0.c +++ b/src/ov_SC03_002/ov_SC03_002_jr_8012ACE0.c @@ -342,10 +342,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -591,7 +587,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2448,7 +2443,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2612,7 +2606,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_002/ov_SC03_002_jr_801380E0.c b/src/ov_SC03_002/ov_SC03_002_jr_801380E0.c index 5cfd9fc9e5..d5b012d23a 100644 --- a/src/ov_SC03_002/ov_SC03_002_jr_801380E0.c +++ b/src/ov_SC03_002/ov_SC03_002_jr_801380E0.c @@ -1048,12 +1048,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80185ACC[]; u16 t; u8 b; diff --git a/src/ov_SC03_002/ov_SC03_002_jr_80140608.c b/src/ov_SC03_002/ov_SC03_002_jr_80140608.c index f85dcfaedf..0b81f27c2b 100644 --- a/src/ov_SC03_002/ov_SC03_002_jr_80140608.c +++ b/src/ov_SC03_002/ov_SC03_002_jr_80140608.c @@ -1111,11 +1111,6 @@ s16 n; extern s16 D_8018688C[]; extern u16 D_8018639C; extern u16 D_8018639E; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1254,13 +1249,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2587,7 +2578,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_002/ov_SC03_002_jr_8016AB6C.c b/src/ov_SC03_002/ov_SC03_002_jr_8016AB6C.c index a21a71be8f..d3af937246 100644 --- a/src/ov_SC03_002/ov_SC03_002_jr_8016AB6C.c +++ b/src/ov_SC03_002/ov_SC03_002_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_002/ov_SC03_002_jr_801734BC.c b/src/ov_SC03_002/ov_SC03_002_jr_801734BC.c index 17f88b9d8c..eaded750cf 100644 --- a/src/ov_SC03_002/ov_SC03_002_jr_801734BC.c +++ b/src/ov_SC03_002/ov_SC03_002_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_002/ov_SC03_002_jr_8017AE2C.c b/src/ov_SC03_002/ov_SC03_002_jr_8017AE2C.c index 329de55b81..1b4ed14d51 100644 --- a/src/ov_SC03_002/ov_SC03_002_jr_8017AE2C.c +++ b/src/ov_SC03_002/ov_SC03_002_jr_8017AE2C.c @@ -3508,17 +3508,6 @@ void func_8017C1F8(void *a0) { extern u8 *func_8012913C(s32 a0); extern s32 func_8012C750(s32 a0); -typedef struct { - s16 unk00; - s16 unk02; - s16 unk04; - s16 unk06; - s16 unk08; - s16 unk0A; - s16 unk0C; - s16 unk0E; - s32 unk10; -} Buf8017BF50_8017C234; /* $16-$19 are pinned: without them gcc's strength reduction splits the `s1` store * base into TWO induction variables (base+0x18 with offsets -4/0, plus base+0x1C), @@ -4320,7 +4309,6 @@ void func_8017CFE0(s16 *a0) { /* 8-word matrix block. Uniquely named so it can never collide with the TU's own types; identical layout to engine_types.h's Blk20 / Mtx8_8016CBC0. */ -typedef struct { s32 w[8]; } Mtx8_8017D0BC; /* --- forms taken VERBATIM from the TU (src/ov_SC03_002/ov_SC03_002_jr_8017AE2C.c) --- */ extern void ApplyMatrixSV(void *a0, void *a1, void *a2); /* TU 168 / 3365 */ diff --git a/src/ov_SC03_002/ov_SC03_002_jr_8017D604.c b/src/ov_SC03_002/ov_SC03_002_jr_8017D604.c index 2c8bfb4497..98edd27fc5 100644 --- a/src/ov_SC03_002/ov_SC03_002_jr_8017D604.c +++ b/src/ov_SC03_002/ov_SC03_002_jr_8017D604.c @@ -3316,13 +3316,6 @@ extern void func_8017F914(void *arg0); extern s32 func_8012AD50(void *arg0); /* 0x24-stride record at D_801CB920 (4 entries; asm/ov_SC04_018/data/tail18.data.s) */ -typedef struct { - u8 unk00[0x16]; - s16 unk16; - u8 unk18[4]; - s32 unk1C; - u8 unk20[4]; -} Ent_8017D6EC_8017F5F8; void func_8017F5F8(void *arg0) { @@ -3376,13 +3369,6 @@ extern void func_8017F9D0(void *arg0); /* same shape as the TU's own Ent_8017D6EC_8017F5F8 (TU:3319-3325), own name to avoid * the C89 duplicate-typedef clash (S33); match_one compiles this file standalone (no * TU context), so the typedef must be repeated here regardless. */ -typedef struct { - u8 unk00[0x16]; - s16 unk16; - u8 unk18[4]; - s32 unk1C; - u8 unk20[4]; -} Ent_8017F688; extern Ent_8017F688 D_801CB920[]; @@ -3526,12 +3512,7 @@ void func_8017F914(void *arg0) { * so this body remaps to those overlays unchanged. */ -typedef struct { short vx, vy, vz, pad; } SV_8017DAC4_8017F9D0; -typedef struct { - SV_8017DAC4_8017F9D0 v[4]; /* 0x00 .. 0x20 */ - s32 f20, f24, f28, f2C, f30, f34; /* 0x20 .. 0x38 */ -} Prim_8017DAC4_8017F9D0; extern void func_80017714(void *); @@ -4214,7 +4195,6 @@ INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002_jr_8017D604", func_80182A3 #include "common.h" -typedef struct { s32 a; s32 b[4]; } Ot_80182A78; extern s32 func_8004787C(s32 a0); extern short D_800B9A02; @@ -4589,9 +4569,6 @@ s32 func_8018317C(u8 a0, u8 a1, u8 a2, u8 a3) { extern void func_8012F214(s32 a0, s32 a1, s32 a2); extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); -typedef struct { - s16 f0, f1, f2, f3; -} Vec4s_801831D4; void func_801831D4(void *a0, s32 a1) { @@ -5005,7 +4982,6 @@ extern void func_80183E48(s32 a0); extern void *func_80184218(void *a0); -typedef struct { u8 b[12]; } Blk12_801854C4_80183A70; void func_80183A70(s32 a0) { diff --git a/src/ov_SC03_002/ov_SC03_002_o0c.c b/src/ov_SC03_002/ov_SC03_002_o0c.c index 36feedaf05..17425603dc 100644 --- a/src/ov_SC03_002/ov_SC03_002_o0c.c +++ b/src/ov_SC03_002/ov_SC03_002_o0c.c @@ -784,8 +784,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801CBA10[]; D_801CBA10[a0].f0 = 1; @@ -800,20 +798,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801CBA10[]; D_801CBA10[idx].f0 = 1; @@ -824,7 +808,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801CBA10[]; D_801CBA10[a0].f0 = 0; } @@ -843,16 +827,7 @@ extern s32 D_801CBAE0; extern s32 D_801CBB44; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801CBA10"); extern s32 D_801CBAC4; extern s32 D_801CBAC8; @@ -942,7 +917,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -989,17 +963,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1065,11 +1028,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_003/ov_SC03_003.c b/src/ov_SC03_003/ov_SC03_003.c index b1a80ed22c..bf0448e6d3 100644 --- a/src/ov_SC03_003/ov_SC03_003.c +++ b/src/ov_SC03_003/ov_SC03_003.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_003/ov_SC03_003_after.c b/src/ov_SC03_003/ov_SC03_003_after.c index 669891255d..091ed91234 100644 --- a/src/ov_SC03_003/ov_SC03_003_after.c +++ b/src/ov_SC03_003/ov_SC03_003_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_003/ov_SC03_003_jr_8012ACE0.c b/src/ov_SC03_003/ov_SC03_003_jr_8012ACE0.c index c4e678b178..c0c797cac2 100644 --- a/src/ov_SC03_003/ov_SC03_003_jr_8012ACE0.c +++ b/src/ov_SC03_003/ov_SC03_003_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_003/ov_SC03_003_jr_801380E0.c b/src/ov_SC03_003/ov_SC03_003_jr_801380E0.c index 4eace59250..8b54ed6539 100644 --- a/src/ov_SC03_003/ov_SC03_003_jr_801380E0.c +++ b/src/ov_SC03_003/ov_SC03_003_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017F894[]; u16 t; u8 b; diff --git a/src/ov_SC03_003/ov_SC03_003_jr_80140608.c b/src/ov_SC03_003/ov_SC03_003_jr_80140608.c index 1b2e732b84..6abae66d9e 100644 --- a/src/ov_SC03_003/ov_SC03_003_jr_80140608.c +++ b/src/ov_SC03_003/ov_SC03_003_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80180654[]; extern u16 D_80180164; extern u16 D_80180166; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_003/ov_SC03_003_jr_8016AB6C.c b/src/ov_SC03_003/ov_SC03_003_jr_8016AB6C.c index 765bcd4d60..b00c13e8f1 100644 --- a/src/ov_SC03_003/ov_SC03_003_jr_8016AB6C.c +++ b/src/ov_SC03_003/ov_SC03_003_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_003/ov_SC03_003_jr_801734BC.c b/src/ov_SC03_003/ov_SC03_003_jr_801734BC.c index e5ab12ca2c..f09f7b8e46 100644 --- a/src/ov_SC03_003/ov_SC03_003_jr_801734BC.c +++ b/src/ov_SC03_003/ov_SC03_003_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_003/nonmatchings/ov_SC03_003_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_003/ov_SC03_003_o0c.c b/src/ov_SC03_003/ov_SC03_003_o0c.c index ba9d97ed4a..ecf40f41d0 100644 --- a/src/ov_SC03_003/ov_SC03_003_o0c.c +++ b/src/ov_SC03_003/ov_SC03_003_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_8018FA50[]; D_8018FA50[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_8018FA50[]; D_8018FA50[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_8018FA50[]; D_8018FA50[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_8018FB08; extern s32 D_8018FB6C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_8018FA50"); extern s32 D_8018FAEC; extern s32 D_8018FAF0; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_006/ov_SC03_006.c b/src/ov_SC03_006/ov_SC03_006.c index 0651a9cd10..f5baa58b47 100644 --- a/src/ov_SC03_006/ov_SC03_006.c +++ b/src/ov_SC03_006/ov_SC03_006.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_006/ov_SC03_006_after.c b/src/ov_SC03_006/ov_SC03_006_after.c index bc7b45d35e..b4ad3ce3cb 100644 --- a/src/ov_SC03_006/ov_SC03_006_after.c +++ b/src/ov_SC03_006/ov_SC03_006_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_006/ov_SC03_006_jr_8012ACE0.c b/src/ov_SC03_006/ov_SC03_006_jr_8012ACE0.c index 00f4d1eb6e..e376c56ef0 100644 --- a/src/ov_SC03_006/ov_SC03_006_jr_8012ACE0.c +++ b/src/ov_SC03_006/ov_SC03_006_jr_8012ACE0.c @@ -342,10 +342,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -591,7 +587,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2448,7 +2443,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2612,7 +2606,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_006/ov_SC03_006_jr_801380E0.c b/src/ov_SC03_006/ov_SC03_006_jr_801380E0.c index 20d0b5df8f..9b220a8c7c 100644 --- a/src/ov_SC03_006/ov_SC03_006_jr_801380E0.c +++ b/src/ov_SC03_006/ov_SC03_006_jr_801380E0.c @@ -1048,12 +1048,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018CBB0[]; u16 t; u8 b; diff --git a/src/ov_SC03_006/ov_SC03_006_jr_80140608.c b/src/ov_SC03_006/ov_SC03_006_jr_80140608.c index 0acd209621..de6f8fd327 100644 --- a/src/ov_SC03_006/ov_SC03_006_jr_80140608.c +++ b/src/ov_SC03_006/ov_SC03_006_jr_80140608.c @@ -1111,11 +1111,6 @@ s16 n; extern s16 D_8018D970[]; extern u16 D_8018D480; extern u16 D_8018D482; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1254,13 +1249,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2603,7 +2594,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_006/ov_SC03_006_jr_8016AB6C.c b/src/ov_SC03_006/ov_SC03_006_jr_8016AB6C.c index 387ae503c6..54e55ea878 100644 --- a/src/ov_SC03_006/ov_SC03_006_jr_8016AB6C.c +++ b/src/ov_SC03_006/ov_SC03_006_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_006/ov_SC03_006_jr_801734BC.c b/src/ov_SC03_006/ov_SC03_006_jr_801734BC.c index bccba7abfa..041e938ffe 100644 --- a/src/ov_SC03_006/ov_SC03_006_jr_801734BC.c +++ b/src/ov_SC03_006/ov_SC03_006_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_006/ov_SC03_006_jr_8017AE2C.c b/src/ov_SC03_006/ov_SC03_006_jr_8017AE2C.c index 8c4c31d9bc..90a9335ac1 100644 --- a/src/ov_SC03_006/ov_SC03_006_jr_8017AE2C.c +++ b/src/ov_SC03_006/ov_SC03_006_jr_8017AE2C.c @@ -3450,8 +3450,6 @@ void func_8017C294(s32 param_1, s32 param_2) extern s32 D_801F73A4; extern s32 D_801F73A8; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_8017C294; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017C294; SV4_L_8017C294 vec; /* sp+0x10 */ MTX_L_8017C294 mtx; /* sp+0x18 */ @@ -3607,8 +3605,6 @@ void func_8017C3C4(s32 a0) { extern u8 D_801F73B6; extern u8 D_801F73BC; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017C3C4; - typedef struct { Rec027_8017C3C4 r[9]; } Blk027_8017C3C4; extern Blk027_8017C3C4 D_801E91DC; extern Blk027_8017C3C4 D_801F7430[]; @@ -3884,14 +3880,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_8017C294(s32 a0, s32 a1); void func_8017CB10(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_8017CB10; extern Rec_8017C738_8017CB10 D_801E91DC[]; Rec_8017C738_8017CB10 *q = D_801E91DC; @@ -4198,17 +4186,6 @@ void func_8017D174(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017D1D0 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017D1D0; extern void func_80147324(s32 arg0); extern void func_8017D408(int); @@ -4322,24 +4299,11 @@ void func_8017D3BC(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017D408; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017D408; -typedef struct { - SVec8_8017C218_8017D408 v[4]; /* 0x00 */ - CVec4_8017C218_8017D408 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017D408; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017D408; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -4660,10 +4624,6 @@ void func_8017DAA4(void *a0) void func_8017DB00(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017DB00; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017DB00; - typedef struct { SVec_8017C910_8017DB00 v[2]; Clr_8017C910_8017DB00 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017DB00; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017DB00; extern Mtx8_8017C910_8017DB00 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017DB00 prim; @@ -5269,7 +5229,6 @@ void func_8017E634(s16 *a0) { * (instead of a fresh local) avoids stealing back the $v0 slot. */ -typedef struct { s32 w[8]; } Mtx8_8017DE10_8017E710; void func_8017E710(s32 a0) { extern void ApplyMatrixSV(void *a0, void *a1, void *a2); @@ -6011,20 +5970,9 @@ extern void func_8017F510(s32 arg0, s32 arg1, s32 arg2); : "memory" ) /* ---- the two gouraud-textured packet layouts this function emits ---------- */ -typedef struct { - u32 tag; - u32 rgb0; s16 x0, y0; u32 uv0; - u32 rgb1; s16 x1, y1; u32 uv1; - u32 rgb2; s16 x2, y2; u16 uv2, p2; -} PolyGT3; /* 0x28 */ + /* 0x28 */ -typedef struct { - u32 tag; - u32 rgb0; s16 x0, y0; u32 uv0; - u32 rgb1; s16 x1, y1; u32 uv1; - u32 rgb2; s16 x2, y2; u16 uv2, p2; - u32 rgb3; s16 x3, y3; u16 uv3, p3; -} PolyGT4; /* 0x34 */ + /* 0x34 */ /* ---- the single light-volume descriptor ---------------------------------- */ extern s32 D_801F7790; @@ -6707,11 +6655,6 @@ extern u8 D_80078E78[]; * same jr TU family) uses this exact shape for its D_801E6F58 table; only the fields this * function actually names differ (unk1C is the only member accessed via `.`, everything * else goes through raw casts, matching the sibling verbatim). */ -typedef struct { - u8 unk00[0x1C]; - s32 unk1C; - u8 unk20[4]; -} Ent_801F7618; extern Ent_801F7618 D_801F7618[]; diff --git a/src/ov_SC03_006/ov_SC03_006_o0c.c b/src/ov_SC03_006/ov_SC03_006_o0c.c index a9e042a061..ba71802e92 100644 --- a/src/ov_SC03_006/ov_SC03_006_o0c.c +++ b/src/ov_SC03_006/ov_SC03_006_o0c.c @@ -784,8 +784,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801F7790[]; D_801F7790[a0].f0 = 1; @@ -800,20 +798,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801F7790[]; D_801F7790[idx].f0 = 1; @@ -824,7 +808,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801F7790[]; D_801F7790[a0].f0 = 0; } @@ -843,16 +827,7 @@ extern s32 D_801F7848; extern s32 D_801F78AC; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801F7790"); extern s32 D_801F782C; extern s32 D_801F7830; @@ -942,7 +917,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -989,17 +963,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1065,11 +1028,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_007/ov_SC03_007.c b/src/ov_SC03_007/ov_SC03_007.c index 7b44e37c2e..7e38f9562c 100644 --- a/src/ov_SC03_007/ov_SC03_007.c +++ b/src/ov_SC03_007/ov_SC03_007.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_007/ov_SC03_007_after.c b/src/ov_SC03_007/ov_SC03_007_after.c index ed18df920b..d9552277c6 100644 --- a/src/ov_SC03_007/ov_SC03_007_after.c +++ b/src/ov_SC03_007/ov_SC03_007_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_007/ov_SC03_007_jr_8012ACE0.c b/src/ov_SC03_007/ov_SC03_007_jr_8012ACE0.c index 34ec3337d8..f966cd8ec3 100644 --- a/src/ov_SC03_007/ov_SC03_007_jr_8012ACE0.c +++ b/src/ov_SC03_007/ov_SC03_007_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_007/ov_SC03_007_jr_801380E0.c b/src/ov_SC03_007/ov_SC03_007_jr_801380E0.c index 109912cb0c..3cf82a865a 100644 --- a/src/ov_SC03_007/ov_SC03_007_jr_801380E0.c +++ b/src/ov_SC03_007/ov_SC03_007_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_801879A8[]; u16 t; u8 b; diff --git a/src/ov_SC03_007/ov_SC03_007_jr_80140608.c b/src/ov_SC03_007/ov_SC03_007_jr_80140608.c index 1800218e5f..18c0c723a8 100644 --- a/src/ov_SC03_007/ov_SC03_007_jr_80140608.c +++ b/src/ov_SC03_007/ov_SC03_007_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80188768[]; extern u16 D_80188278; extern u16 D_8018827A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2601,7 +2592,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_007/ov_SC03_007_jr_8016AB6C.c b/src/ov_SC03_007/ov_SC03_007_jr_8016AB6C.c index f752745265..6c18cd45a8 100644 --- a/src/ov_SC03_007/ov_SC03_007_jr_8016AB6C.c +++ b/src/ov_SC03_007/ov_SC03_007_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_007/ov_SC03_007_jr_801734BC.c b/src/ov_SC03_007/ov_SC03_007_jr_801734BC.c index fa2298835b..de0b68eb23 100644 --- a/src/ov_SC03_007/ov_SC03_007_jr_801734BC.c +++ b/src/ov_SC03_007/ov_SC03_007_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_007/ov_SC03_007_o0c.c b/src/ov_SC03_007/ov_SC03_007_o0c.c index 9c3a9b2ca9..94df4e80b3 100644 --- a/src/ov_SC03_007/ov_SC03_007_o0c.c +++ b/src/ov_SC03_007/ov_SC03_007_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801EB1A0[]; D_801EB1A0[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801EB1A0[]; D_801EB1A0[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801EB1A0[]; D_801EB1A0[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801EB258; extern s32 D_801EB2BC; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801EB1A0"); extern s32 D_801EB23C; extern s32 D_801EB240; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_010/ov_SC03_010.c b/src/ov_SC03_010/ov_SC03_010.c index aee19f50ba..6fb2579923 100644 --- a/src/ov_SC03_010/ov_SC03_010.c +++ b/src/ov_SC03_010/ov_SC03_010.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_010/ov_SC03_010_after.c b/src/ov_SC03_010/ov_SC03_010_after.c index c349055482..36205a196e 100644 --- a/src/ov_SC03_010/ov_SC03_010_after.c +++ b/src/ov_SC03_010/ov_SC03_010_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_010/ov_SC03_010_jr_8012ACE0.c b/src/ov_SC03_010/ov_SC03_010_jr_8012ACE0.c index dbf17012da..59ad6054f3 100644 --- a/src/ov_SC03_010/ov_SC03_010_jr_8012ACE0.c +++ b/src/ov_SC03_010/ov_SC03_010_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_010/ov_SC03_010_jr_801380E0.c b/src/ov_SC03_010/ov_SC03_010_jr_801380E0.c index 7ce7117326..7f8ab6414e 100644 --- a/src/ov_SC03_010/ov_SC03_010_jr_801380E0.c +++ b/src/ov_SC03_010/ov_SC03_010_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_801804C8[]; u16 t; u8 b; diff --git a/src/ov_SC03_010/ov_SC03_010_jr_80140608.c b/src/ov_SC03_010/ov_SC03_010_jr_80140608.c index ec18513016..fe8429f2bd 100644 --- a/src/ov_SC03_010/ov_SC03_010_jr_80140608.c +++ b/src/ov_SC03_010/ov_SC03_010_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80181288[]; extern u16 D_80180D98; extern u16 D_80180D9A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_010/ov_SC03_010_jr_8016AB6C.c b/src/ov_SC03_010/ov_SC03_010_jr_8016AB6C.c index 6ce69cd124..654d41b8e5 100644 --- a/src/ov_SC03_010/ov_SC03_010_jr_8016AB6C.c +++ b/src/ov_SC03_010/ov_SC03_010_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_010/ov_SC03_010_jr_801734BC.c b/src/ov_SC03_010/ov_SC03_010_jr_801734BC.c index ed848283c8..dbd2525d92 100644 --- a/src/ov_SC03_010/ov_SC03_010_jr_801734BC.c +++ b/src/ov_SC03_010/ov_SC03_010_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_010/nonmatchings/ov_SC03_010_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_010/ov_SC03_010_o0c.c b/src/ov_SC03_010/ov_SC03_010_o0c.c index 4b3fd90782..9da00a2530 100644 --- a/src/ov_SC03_010/ov_SC03_010_o0c.c +++ b/src/ov_SC03_010/ov_SC03_010_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801A00A8[]; D_801A00A8[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801A00A8[]; D_801A00A8[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801A00A8[]; D_801A00A8[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801A0160; extern s32 D_801A01C4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801A00A8"); extern s32 D_801A0144; extern s32 D_801A0148; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_011/ov_SC03_011.c b/src/ov_SC03_011/ov_SC03_011.c index d048a8ef4a..45bce18236 100644 --- a/src/ov_SC03_011/ov_SC03_011.c +++ b/src/ov_SC03_011/ov_SC03_011.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_011/ov_SC03_011_after.c b/src/ov_SC03_011/ov_SC03_011_after.c index 9c9f9bb2dc..4bb13aa264 100644 --- a/src/ov_SC03_011/ov_SC03_011_after.c +++ b/src/ov_SC03_011/ov_SC03_011_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_011/ov_SC03_011_jr_8012ACE0.c b/src/ov_SC03_011/ov_SC03_011_jr_8012ACE0.c index 47e5c8239f..0bd7fada35 100644 --- a/src/ov_SC03_011/ov_SC03_011_jr_8012ACE0.c +++ b/src/ov_SC03_011/ov_SC03_011_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_011/ov_SC03_011_jr_801380E0.c b/src/ov_SC03_011/ov_SC03_011_jr_801380E0.c index 94b99f48d1..a0a6fc9ca1 100644 --- a/src/ov_SC03_011/ov_SC03_011_jr_801380E0.c +++ b/src/ov_SC03_011/ov_SC03_011_jr_801380E0.c @@ -1056,12 +1056,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80181838[]; u16 t; u8 b; diff --git a/src/ov_SC03_011/ov_SC03_011_jr_80140608.c b/src/ov_SC03_011/ov_SC03_011_jr_80140608.c index 30cb715c3d..8eb5e07d72 100644 --- a/src/ov_SC03_011/ov_SC03_011_jr_80140608.c +++ b/src/ov_SC03_011/ov_SC03_011_jr_80140608.c @@ -1143,11 +1143,6 @@ s16 n; extern s16 D_801825F8[]; extern u16 D_80182108; extern u16 D_8018210A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1286,13 +1281,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2619,7 +2610,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_011/ov_SC03_011_jr_8016AB6C.c b/src/ov_SC03_011/ov_SC03_011_jr_8016AB6C.c index 7cce41fa2d..7cf9c14916 100644 --- a/src/ov_SC03_011/ov_SC03_011_jr_8016AB6C.c +++ b/src/ov_SC03_011/ov_SC03_011_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_011/ov_SC03_011_jr_801734BC.c b/src/ov_SC03_011/ov_SC03_011_jr_801734BC.c index 39e909c56b..b88ecf04f8 100644 --- a/src/ov_SC03_011/ov_SC03_011_jr_801734BC.c +++ b/src/ov_SC03_011/ov_SC03_011_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_011/ov_SC03_011_o0c.c b/src/ov_SC03_011/ov_SC03_011_o0c.c index 811580a75b..40a17aa62c 100644 --- a/src/ov_SC03_011/ov_SC03_011_o0c.c +++ b/src/ov_SC03_011/ov_SC03_011_o0c.c @@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801A22D8[]; D_801A22D8[a0].f0 = 1; @@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801A22D8[]; D_801A22D8[idx].f0 = 1; @@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801A22D8[]; D_801A22D8[a0].f0 = 0; } @@ -844,16 +828,7 @@ extern s32 D_801A2390; extern s32 D_801A23F4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801A22D8"); extern s32 D_801A2374; extern s32 D_801A2378; @@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_012/ov_SC03_012.c b/src/ov_SC03_012/ov_SC03_012.c index 22708af4df..d1f98b5be9 100644 --- a/src/ov_SC03_012/ov_SC03_012.c +++ b/src/ov_SC03_012/ov_SC03_012.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_012/ov_SC03_012_after.c b/src/ov_SC03_012/ov_SC03_012_after.c index cc0152de38..4131408f3b 100644 --- a/src/ov_SC03_012/ov_SC03_012_after.c +++ b/src/ov_SC03_012/ov_SC03_012_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_012/ov_SC03_012_jr_8012ACE0.c b/src/ov_SC03_012/ov_SC03_012_jr_8012ACE0.c index c793b359a6..3386e6459d 100644 --- a/src/ov_SC03_012/ov_SC03_012_jr_8012ACE0.c +++ b/src/ov_SC03_012/ov_SC03_012_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_012/ov_SC03_012_jr_801380E0.c b/src/ov_SC03_012/ov_SC03_012_jr_801380E0.c index 7e80d7bf03..412ddf1976 100644 --- a/src/ov_SC03_012/ov_SC03_012_jr_801380E0.c +++ b/src/ov_SC03_012/ov_SC03_012_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017E718[]; u16 t; u8 b; diff --git a/src/ov_SC03_012/ov_SC03_012_jr_80140608.c b/src/ov_SC03_012/ov_SC03_012_jr_80140608.c index c0d40e3bb9..fd0bcd0a26 100644 --- a/src/ov_SC03_012/ov_SC03_012_jr_80140608.c +++ b/src/ov_SC03_012/ov_SC03_012_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8017F4D8[]; extern u16 D_8017EFE8; extern u16 D_8017EFEA; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_012/ov_SC03_012_jr_8016AB6C.c b/src/ov_SC03_012/ov_SC03_012_jr_8016AB6C.c index bd585badbc..eb35d74af3 100644 --- a/src/ov_SC03_012/ov_SC03_012_jr_8016AB6C.c +++ b/src/ov_SC03_012/ov_SC03_012_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_012/ov_SC03_012_jr_801734BC.c b/src/ov_SC03_012/ov_SC03_012_jr_801734BC.c index 9f0691b105..36d4aae20d 100644 --- a/src/ov_SC03_012/ov_SC03_012_jr_801734BC.c +++ b/src/ov_SC03_012/ov_SC03_012_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_012/nonmatchings/ov_SC03_012_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_012/ov_SC03_012_o0c.c b/src/ov_SC03_012/ov_SC03_012_o0c.c index 47aab06dbf..5455628f68 100644 --- a/src/ov_SC03_012/ov_SC03_012_o0c.c +++ b/src/ov_SC03_012/ov_SC03_012_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_80195038[]; D_80195038[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_80195038[]; D_80195038[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_80195038[]; D_80195038[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801950F0; extern s32 D_80195154; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_80195038"); extern s32 D_801950D4; extern s32 D_801950D8; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_013/ov_SC03_013.c b/src/ov_SC03_013/ov_SC03_013.c index 2925aa6cbd..0a9d61bfda 100644 --- a/src/ov_SC03_013/ov_SC03_013.c +++ b/src/ov_SC03_013/ov_SC03_013.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_013/ov_SC03_013_after.c b/src/ov_SC03_013/ov_SC03_013_after.c index ce87ca4fc6..25f9b7fdef 100644 --- a/src/ov_SC03_013/ov_SC03_013_after.c +++ b/src/ov_SC03_013/ov_SC03_013_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_013/ov_SC03_013_jr_8012ACE0.c b/src/ov_SC03_013/ov_SC03_013_jr_8012ACE0.c index 319269fe12..2a1e2455b7 100644 --- a/src/ov_SC03_013/ov_SC03_013_jr_8012ACE0.c +++ b/src/ov_SC03_013/ov_SC03_013_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_013/ov_SC03_013_jr_801380E0.c b/src/ov_SC03_013/ov_SC03_013_jr_801380E0.c index e920d13428..e9dbc82275 100644 --- a/src/ov_SC03_013/ov_SC03_013_jr_801380E0.c +++ b/src/ov_SC03_013/ov_SC03_013_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80181500[]; u16 t; u8 b; diff --git a/src/ov_SC03_013/ov_SC03_013_jr_80140608.c b/src/ov_SC03_013/ov_SC03_013_jr_80140608.c index 930dc4b839..9b49d95573 100644 --- a/src/ov_SC03_013/ov_SC03_013_jr_80140608.c +++ b/src/ov_SC03_013/ov_SC03_013_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_801822C0[]; extern u16 D_80181DD0; extern u16 D_80181DD2; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_013/ov_SC03_013_jr_8016AB6C.c b/src/ov_SC03_013/ov_SC03_013_jr_8016AB6C.c index 5740950739..2a2a6bc3da 100644 --- a/src/ov_SC03_013/ov_SC03_013_jr_8016AB6C.c +++ b/src/ov_SC03_013/ov_SC03_013_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_013/ov_SC03_013_jr_801734BC.c b/src/ov_SC03_013/ov_SC03_013_jr_801734BC.c index 0b236012cd..61a4635937 100644 --- a/src/ov_SC03_013/ov_SC03_013_jr_801734BC.c +++ b/src/ov_SC03_013/ov_SC03_013_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_013/nonmatchings/ov_SC03_013_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_013/ov_SC03_013_o0c.c b/src/ov_SC03_013/ov_SC03_013_o0c.c index d2abd4676c..4c35337007 100644 --- a/src/ov_SC03_013/ov_SC03_013_o0c.c +++ b/src/ov_SC03_013/ov_SC03_013_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801AD430[]; D_801AD430[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801AD430[]; D_801AD430[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801AD430[]; D_801AD430[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801AD4E8; extern s32 D_801AD54C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801AD430"); extern s32 D_801AD4CC; extern s32 D_801AD4D0; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_014/ov_SC03_014.c b/src/ov_SC03_014/ov_SC03_014.c index 4747649481..11d94b7aad 100644 --- a/src/ov_SC03_014/ov_SC03_014.c +++ b/src/ov_SC03_014/ov_SC03_014.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_014/ov_SC03_014_after.c b/src/ov_SC03_014/ov_SC03_014_after.c index 684a20d81e..f2d8c385c8 100644 --- a/src/ov_SC03_014/ov_SC03_014_after.c +++ b/src/ov_SC03_014/ov_SC03_014_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.c b/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.c index ac04a0ca5b..3fdb1fbca5 100644 --- a/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.c +++ b/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_014/ov_SC03_014_jr_801380E0.c b/src/ov_SC03_014/ov_SC03_014_jr_801380E0.c index 108b5f8bb4..4ad0375365 100644 --- a/src/ov_SC03_014/ov_SC03_014_jr_801380E0.c +++ b/src/ov_SC03_014/ov_SC03_014_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018BB3C[]; u16 t; u8 b; diff --git a/src/ov_SC03_014/ov_SC03_014_jr_80140608.c b/src/ov_SC03_014/ov_SC03_014_jr_80140608.c index 9cc64e97d9..2906688ddf 100644 --- a/src/ov_SC03_014/ov_SC03_014_jr_80140608.c +++ b/src/ov_SC03_014/ov_SC03_014_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8018C8FC[]; extern u16 D_8018C40C; extern u16 D_8018C40E; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2586,7 +2577,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.c b/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.c index 751eaa3998..f62054e028 100644 --- a/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.c +++ b/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_014/ov_SC03_014_jr_801734BC.c b/src/ov_SC03_014/ov_SC03_014_jr_801734BC.c index 2586454302..951f64c91f 100644 --- a/src/ov_SC03_014/ov_SC03_014_jr_801734BC.c +++ b/src/ov_SC03_014/ov_SC03_014_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.c b/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.c index a0ae7c49ac..638e54f2f4 100644 --- a/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.c +++ b/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.c @@ -3407,11 +3407,8 @@ INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014_jr_8017AE2C", func_8017C15 // stealing a saved reg from the reused pSVar6. /* MATRIX 0x20: 3x3 short rotation + pad, t[] at 0x14 */ -typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MATRIX_8017C290; /* 8, align 2 -> lwl/lwr/swl/swr struct copy */ -typedef struct { u16 vx, vy, vz, pad; } SVECTOR_8017C290; /* 4, align 1 -> lwl/lwr/swl/swr */ -struct PW8017C290 { int w; } __attribute__((packed, aligned(1))); extern void func_80013F3C(s32 a0); extern void RotMatrixZ(s32, void *); @@ -3901,9 +3898,7 @@ INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014_jr_8017AE2C", func_8017D89 * lwl/lwr + swl/swr instead of a `jal memcpy` (cf. §38). */ -typedef struct { - u8 b0, b1, b2, b3; -} Quad_801EA880; /* align 1 => movstrsi expands to lwl/lwr + swl/swr */ + /* align 1 => movstrsi expands to lwl/lwr + swl/swr */ extern u8 D_801EA880; extern u8 D_801EA881; diff --git a/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.c b/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.c index 5dd9a434c5..558ddf1a85 100644 --- a/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.c +++ b/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.c @@ -4062,8 +4062,6 @@ void func_801811D4(s32 param_1, s32 param_2) extern s32 D_801EA91C; extern s32 D_801EA920; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_801811D4; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_801811D4; SV4_L_801811D4 vec; /* sp+0x10 */ MTX_L_801811D4 mtx; /* sp+0x18 */ @@ -4219,8 +4217,6 @@ void func_80181304(s32 a0) { extern u8 D_801EA92E; extern u8 D_801EA934; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_80181304; - typedef struct { Rec027_80181304 r[9]; } Blk027_80181304; extern Blk027_80181304 D_801CFE18; extern Blk027_80181304 D_801EA9A8[]; @@ -4496,14 +4492,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_801811D4(s32 a0, s32 a1); void func_80181A50(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_80181A50; extern Rec_8017C738_80181A50 D_801CFE18[]; Rec_8017C738_80181A50 *q = D_801CFE18; @@ -4830,17 +4818,6 @@ void func_801820B4(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_80182110 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_80182110; extern void func_80147324(s32 arg0); extern void func_80182348(int); @@ -4954,24 +4931,11 @@ void func_801822FC(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_80182348; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_80182348; -typedef struct { - SVec8_8017C218_80182348 v[4]; /* 0x00 */ - CVec4_8017C218_80182348 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_80182348; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_80182348; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -5292,10 +5256,6 @@ void func_801829E4(void *a0) void func_80182A40(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_80182A40; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_80182A40; - typedef struct { SVec_8017C910_80182A40 v[2]; Clr_8017C910_80182A40 col[2]; s32 tag; s32 pad; } Prim_8017C910_80182A40; - typedef struct { s32 w[8]; } Mtx8_8017C910_80182A40; extern Mtx8_8017C910_80182A40 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_80182A40 prim; @@ -5360,17 +5320,6 @@ extern void func_80182C28(s32 arg0, s32 arg1, s32 arg2, s32 arg3); extern s32 func_8012C750(s32 a0); -typedef struct { - s16 unk00; - s16 unk02; - s16 unk04; - s16 unk06; - s16 unk08; - s16 unk0A; - s16 unk0C; - s16 unk0E; - s32 unk10; -} Buf8017BF34_80182C28; void func_80182C28(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { diff --git a/src/ov_SC03_014/ov_SC03_014_jr_801848E4.c b/src/ov_SC03_014/ov_SC03_014_jr_801848E4.c index 404946ff06..3601974487 100644 --- a/src/ov_SC03_014/ov_SC03_014_jr_801848E4.c +++ b/src/ov_SC03_014/ov_SC03_014_jr_801848E4.c @@ -3655,8 +3655,8 @@ INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014_jr_801848E4", func_8018A31 */ void func_8018A390(void *a0) { - typedef struct { s32 w[8]; } Mat32_8018A390; /* 32B, align 4 */ - typedef struct { u16 x; u16 y; u16 z; s16 w; } Rec8_8018A390; /* 8B, align 2 */ + /* 32B, align 4 */ + /* 8B, align 2 */ extern Mat32_8018A390 D_800AE620; extern Rec8_8018A390 D_801E3990[]; @@ -3758,12 +3758,6 @@ void func_8018A680(void) { * puts $s1's zero-init first, which is the target order. */ -typedef struct { - s16 unk0; - s16 unk2; - s16 unk4; - s16 unk6; -} Rec_8018A6A4; extern void func_8018A744(s32 arg0, s32 arg1, s32 arg2); extern void func_8018A860(s32 arg0, Rec_8018A6A4 *arg1, s32 arg2, s32 arg3); @@ -4125,7 +4119,7 @@ void func_8018A9BC(void) { void func_8018AA98(s32 arg0) { - typedef struct { s32 w[8]; } Blk32_8018AA98; /* 32 bytes, align 4 */ + /* 32 bytes, align 4 */ extern Blk32_8018AA98 D_800AE620; extern s32 D_800A5E60; @@ -4397,14 +4391,6 @@ void aF8018AFD0(s32 a0, s32 a1, s32 a2) __asm__("func_8018AFD0"); void aF8018AFD0(s32 a0, s32 a1, s32 a2) { - typedef struct { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ - } P; extern s16 D_801EACE4; extern s16 D_801EACDE[]; @@ -4578,21 +4564,11 @@ extern u8 D_801EACE2; extern short D_800B9A02; /* 0x10-byte-stride record table at D_801EACE4 (same table as func_8018AD5C) */ -typedef struct { - u16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s16 f8; /* 0x08 */ - u16 fA; /* 0x0A */ - s16 fC; /* 0x0C */ - u16 fE; /* 0x0E */ -} Rec_8018B23C; -typedef struct { s32 w[8]; } Mat32_8018B23C; /* the 0x20-byte matrix */ -typedef struct { s32 a; s32 b[4]; } Ot_8018B23C; /* == engine_types.h OtBlk */ -typedef struct { u16 f; } Bidx_8018B23C; /* the D_800B9A02 buffer index */ -typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C; /* libgpu P_TAG */ + /* the 0x20-byte matrix */ + /* == engine_types.h OtBlk */ + /* the D_800B9A02 buffer index */ + /* libgpu P_TAG */ void func_8018B23C(s32 a0) { diff --git a/src/ov_SC03_014/ov_SC03_014_o0c.c b/src/ov_SC03_014/ov_SC03_014_o0c.c index dbab97c56e..cc555f459a 100644 --- a/src/ov_SC03_014/ov_SC03_014_o0c.c +++ b/src/ov_SC03_014/ov_SC03_014_o0c.c @@ -2753,10 +2753,6 @@ extern void func_80183B58(s32 param_1, s16 *param_2); #include "common.h" -typedef struct Ent_80183CF0 { - u8 unk0[2]; /* 0x00 */ - u16 unk2; /* 0x02 */ -} Ent_80183CF0; extern void (*D_8018FB30[])(Ent_80183CF0 *); @@ -2767,23 +2763,7 @@ void func_80183CF0(Ent_80183CF0 *arg) { #include "common.h" -typedef struct Ent_80183D50 { - u8 unk0[2]; /* 0x00 */ - u16 unk2; /* 0x02 */ - u8 unk4[0xD8]; /* 0x04 */ - s16 unkDC; /* 0xDC */ - u8 unkDE[4]; /* 0xDE */ - s16 unkE2; /* 0xE2 */ - s16 unkE4; /* 0xE4 */ - u8 unkE6[2]; /* 0xE6 */ - s16 unkE8; /* 0xE8 */ - s16 unkEA; /* 0xEA */ -} Ent_80183D50; -typedef struct Gs_80078E78 { - u8 pad0[0x37]; /* 0x00 */ - u8 unk37; /* 0x37 */ -} Gs_80078E78; extern u8 D_80078E78[]; extern u8 D_801B5864[]; @@ -2828,19 +2808,6 @@ void func_80183D50(Ent_80183D50 *arg) { #include "common.h" -typedef struct Ent80183F28 { - /* 0x00 */ s16 unk00; - /* 0x02 */ s16 unk02; - /* 0x04 */ u8 pad04[0xD8]; - /* 0xDC */ s16 unkDC; - /* 0xDE */ s16 unkDE; - /* 0xE0 */ s16 unkE0; - /* 0xE2 */ s16 unkE2; - /* 0xE4 */ s16 unkE4; - /* 0xE6 */ s16 unkE6; - /* 0xE8 */ s16 unkE8; - /* 0xEA */ s16 unkEA; -} Ent80183F28; extern s32 D_801270C8; extern s32 D_801EAFD0; @@ -2878,11 +2845,6 @@ extern s32 D_8018F858[]; extern void func_8017FA5C(s32 arg0, s32 arg1, s32 arg2); extern void func_80184474(void); -typedef struct Ent_80184264 { - u8 pad0[0xE2]; - s16 unkE2; - s16 unkE4; -} Ent_80184264; void func_80184264(Ent_80184264 *param_1) { func_8017FA5C((s32)&D_801EAFD0, D_8018F858[param_1->unkE4], param_1->unkE2); diff --git a/src/ov_SC03_014/ov_SC03_014_o0d.c b/src/ov_SC03_014/ov_SC03_014_o0d.c index 433e4a9301..67ac3bd46c 100644 --- a/src/ov_SC03_014/ov_SC03_014_o0d.c +++ b/src/ov_SC03_014/ov_SC03_014_o0d.c @@ -2777,16 +2777,7 @@ void func_80184474(void) { #include "common.h" -typedef struct { - s32 unk00; /* 0x00 */ - s32 unk04; /* 0x04 */ - u16 unk08; /* 0x08 */ - u16 unk0A; /* 0x0A */ - u16 unk0C; /* 0x0C */ - u16 unk0E; /* 0x0E */ - u16 unk10; /* 0x10 */ - u16 unk12; /* 0x12 */ -} Unk8018F8C4; /* sizeof == 0x14 */ + /* sizeof == 0x14 */ extern Unk8018F8C4 D_8018F8C4[]; diff --git a/src/ov_SC03_014/ov_SC03_014_o0e.c b/src/ov_SC03_014/ov_SC03_014_o0e.c index cb690f1838..b5304c6277 100644 --- a/src/ov_SC03_014/ov_SC03_014_o0e.c +++ b/src/ov_SC03_014/ov_SC03_014_o0e.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801EAF18[]; D_801EAF18[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801EAF18[]; D_801EAF18[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801EAF18[]; D_801EAF18[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801EAFD0; extern s32 D_801EB034; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801EAF18"); extern s32 D_801EAFB4; extern s32 D_801EAFB8; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_015/ov_SC03_015.c b/src/ov_SC03_015/ov_SC03_015.c index 41ce2001c2..c84f627bc2 100644 --- a/src/ov_SC03_015/ov_SC03_015.c +++ b/src/ov_SC03_015/ov_SC03_015.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_015/ov_SC03_015_after.c b/src/ov_SC03_015/ov_SC03_015_after.c index 38803169ab..da84a8420b 100644 --- a/src/ov_SC03_015/ov_SC03_015_after.c +++ b/src/ov_SC03_015/ov_SC03_015_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.c b/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.c index 1fbe964bca..e41377486d 100644 --- a/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.c +++ b/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_015/ov_SC03_015_jr_801380E0.c b/src/ov_SC03_015/ov_SC03_015_jr_801380E0.c index 108b5f8bb4..4ad0375365 100644 --- a/src/ov_SC03_015/ov_SC03_015_jr_801380E0.c +++ b/src/ov_SC03_015/ov_SC03_015_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018BB3C[]; u16 t; u8 b; diff --git a/src/ov_SC03_015/ov_SC03_015_jr_80140608.c b/src/ov_SC03_015/ov_SC03_015_jr_80140608.c index c12e9a92d5..ab42f7788c 100644 --- a/src/ov_SC03_015/ov_SC03_015_jr_80140608.c +++ b/src/ov_SC03_015/ov_SC03_015_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8018C8FC[]; extern u16 D_8018C40C; extern u16 D_8018C40E; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.c b/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.c index 751eaa3998..f62054e028 100644 --- a/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.c +++ b/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_015/ov_SC03_015_jr_801734BC.c b/src/ov_SC03_015/ov_SC03_015_jr_801734BC.c index dcfc9c2658..9cc5e8821d 100644 --- a/src/ov_SC03_015/ov_SC03_015_jr_801734BC.c +++ b/src/ov_SC03_015/ov_SC03_015_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.c b/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.c index baa441c009..8f083cd293 100644 --- a/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.c +++ b/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.c @@ -3412,11 +3412,8 @@ INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015_jr_8017AE2C", func_8017C15 */ /* MATRIX 0x20: 3x3 short rotation + pad, t[] at 0x14 */ -typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MATRIX_8017C290; /* 8, align 2 -> lwl/lwr/swl/swr struct copy */ -typedef struct { u16 vx, vy, vz, pad; } SVECTOR_8017C290; /* 4, align 1 -> lwl/lwr/swl/swr */ -struct PW8017C290 { int w; } __attribute__((packed, aligned(1))); extern void func_80013F3C(s32 a0); extern void RotMatrixZ(s32, void *); @@ -3788,9 +3785,7 @@ INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015_jr_8017AE2C", func_8017D89 * lwl/lwr + swl/swr instead of a `jal memcpy` (cf. §38). */ -typedef struct { - u8 b0, b1, b2, b3; -} Quad_801EA880_8017D900; /* align 1 => movstrsi expands to lwl/lwr + swl/swr */ + /* align 1 => movstrsi expands to lwl/lwr + swl/swr */ extern s32 func_80012F74(s32 a0, s32 a1, s32 a2, s32 a3); @@ -3982,9 +3977,7 @@ DEFINE_func_8017DF7C() /* dedup: shared engine-core @0x8017DF7C (src/shared) */ void func_8017DF84(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { - typedef struct { u32 w0, w1, w2; } Prim_8017DF84; /* vy UNSIGNED: the `+=` reads it with lhu, not lh. */ - typedef struct { s16 vx; u16 vy; s16 vz, pad; } SVec_8017DF84; extern s32 func_800491EC(void); extern void func_800547D8(s32, MATRIX2 *); diff --git a/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.c b/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.c index 6b056dc542..0e1e1f9398 100644 --- a/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.c +++ b/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.c @@ -3331,9 +3331,7 @@ void func_8017EB7C(s32 arg0) void func_8017FA5C(s32 arg0, s32 arg1, s32 arg2) { - typedef struct { u32 w0, w1, w2; } Prim_8017FA5C; /* vy UNSIGNED: the `+= xoff` reads it with lhu, not lh. */ - typedef struct { s16 vx; u16 vy; s16 vz, pad; } SVec_8017FA5C; extern s32 func_800491EC(void); extern void func_800547D8(s32, MATRIX2 *); @@ -3984,8 +3982,6 @@ void func_801811D4(s32 param_1, s32 param_2) extern s32 D_801EA91C; extern s32 D_801EA920; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_801811D4; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_801811D4; SV4_L_801811D4 vec; /* sp+0x10 */ MTX_L_801811D4 mtx; /* sp+0x18 */ @@ -4141,8 +4137,6 @@ void func_80181304(s32 a0) { extern u8 D_801EA92E; extern u8 D_801EA934; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_80181304; - typedef struct { Rec027_80181304 r[9]; } Blk027_80181304; extern Blk027_80181304 D_801CFE18; extern Blk027_80181304 D_801EA9A8[]; @@ -4418,14 +4412,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_801811D4(s32 a0, s32 a1); void func_80181A50(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_80181A50; extern Rec_8017C738_80181A50 D_801CFE18[]; Rec_8017C738_80181A50 *q = D_801CFE18; @@ -4734,17 +4720,6 @@ void func_801820B4(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_80182110 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_80182110; extern void func_80147324(s32 arg0); extern void func_80182348(int); @@ -4858,24 +4833,11 @@ void func_801822FC(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_80182348; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_80182348; -typedef struct { - SVec8_8017C218_80182348 v[4]; /* 0x00 */ - CVec4_8017C218_80182348 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_80182348; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_80182348; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -5196,10 +5158,6 @@ void func_801829E4(void *a0) void func_80182A40(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_80182A40; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_80182A40; - typedef struct { SVec_8017C910_80182A40 v[2]; Clr_8017C910_80182A40 col[2]; s32 tag; s32 pad; } Prim_8017C910_80182A40; - typedef struct { s32 w[8]; } Mtx8_8017C910_80182A40; extern Mtx8_8017C910_80182A40 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_80182A40 prim; @@ -5272,17 +5230,6 @@ extern void func_80182C28(s32 arg0, s32 arg1, s32 arg2, s32 arg3); extern s32 func_8012C750(s32 a0); -typedef struct { - s16 unk00; - s16 unk02; - s16 unk04; - s16 unk06; - s16 unk08; - s16 unk0A; - s16 unk0C; - s16 unk0E; - s32 unk10; -} Buf8017BF34_80182C28; void func_80182C28(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { diff --git a/src/ov_SC03_015/ov_SC03_015_jr_801848E4.c b/src/ov_SC03_015/ov_SC03_015_jr_801848E4.c index 91e863f07f..07e6844165 100644 --- a/src/ov_SC03_015/ov_SC03_015_jr_801848E4.c +++ b/src/ov_SC03_015/ov_SC03_015_jr_801848E4.c @@ -3662,8 +3662,8 @@ INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015_jr_801848E4", func_8018A31 */ void func_8018A390(void *a0) { - typedef struct { s32 w[8]; } Mat32_8018A390_8018A390; /* 32B, align 4 */ - typedef struct { u16 x; u16 y; u16 z; s16 w; } Rec8_8018A390_8018A390; /* 8B, align 2 */ + /* 32B, align 4 */ + /* 8B, align 2 */ extern Mat32_8018A390_8018A390 D_800AE620; extern Rec8_8018A390_8018A390 D_801E3990[]; @@ -3764,12 +3764,6 @@ void func_8018A680(void) { * puts $s1's zero-init first, which is the target order. */ -typedef struct { - s16 unk0; - s16 unk2; - s16 unk4; - s16 unk6; -} Rec_8018A6A4_8018A6A4; extern void func_8018A744(s32 arg0, s32 arg1, s32 arg2); extern void func_8018A860(s32 arg0, Rec_8018A6A4_8018A6A4 *arg1, s32 arg2, s32 arg3); @@ -3891,7 +3885,7 @@ void aF8018A860(s32 a0, s16 *a1, u8 *a2, u8 *a3) { extern s16 D_801EADEC; /* TU L3637 / L3671, verbatim */ - typedef struct { u8 b0, b1, b2, b3; } B4_8018A860; /* align 1 — §48-C2 */ + /* align 1 — §48-C2 */ s16 *s1; u16 temp_u16; s16 temp_s16; @@ -4133,7 +4127,7 @@ void func_8018A9BC(void) { void func_8018AA98(s32 arg0) { - typedef struct { s32 w[8]; } Blk32_8018AA98_8018AA98; /* 32 bytes, align 4 */ + /* 32 bytes, align 4 */ extern Blk32_8018AA98_8018AA98 D_800AE620; extern s32 D_800A5E60; @@ -4282,7 +4276,6 @@ extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3); extern void func_8018AE30(void *arg0, void *arg1, s32 arg2, s32 arg3); void func_8018ADA8(s32 a0) { - typedef struct { u8 a, b, c, d; } V4_8018ADA8; extern u8 D_800AF648; extern V4_8018ADA8 D_801E94F8; u16 sxy[4]; @@ -4414,14 +4407,6 @@ void aF8018AFD0(s32 a0, s32 a1, s32 a2) __asm__("func_8018AFD0"); void aF8018AFD0(s32 a0, s32 a1, s32 a2) { - typedef struct { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ - } P_8018AFD0; extern s16 D_801EACE4; extern s16 D_801EACDE[]; @@ -4590,21 +4575,11 @@ extern void func_80016638(void *a0, s32 a1, s32 a2); /* 0x10-byte-stride record table at D_801EACE4 (same table as func_8018AD5C) */ -typedef struct { - u16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s16 f8; /* 0x08 */ - u16 fA; /* 0x0A */ - s16 fC; /* 0x0C */ - u16 fE; /* 0x0E */ -} Rec_8018B23C_8018B23C; -typedef struct { s32 w[8]; } Mat32_8018B23C_8018B23C; /* the 0x20-byte matrix */ -typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_8018B23C; /* == engine_types.h OtBlk */ -typedef struct { u16 f; } Bidx_8018B23C_8018B23C; /* the D_800B9A02 buffer index */ -typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_8018B23C; /* libgpu P_TAG */ + /* the 0x20-byte matrix */ + /* == engine_types.h OtBlk */ + /* the D_800B9A02 buffer index */ + /* libgpu P_TAG */ void func_8018B23C(s32 a0) { diff --git a/src/ov_SC03_015/ov_SC03_015_o0c.c b/src/ov_SC03_015/ov_SC03_015_o0c.c index cbb1ef984d..5787555b0b 100644 --- a/src/ov_SC03_015/ov_SC03_015_o0c.c +++ b/src/ov_SC03_015/ov_SC03_015_o0c.c @@ -2750,10 +2750,6 @@ extern void func_80183B58(s32 param_1, s16 *param_2); -typedef struct Ent_80183CF0_80183CF0 { - u8 unk0[2]; /* 0x00 */ - u16 unk2; /* 0x02 */ -} Ent_80183CF0_80183CF0; void func_80183CF0(Ent_80183CF0_80183CF0 *arg) { @@ -2764,23 +2760,7 @@ void func_80183CF0(Ent_80183CF0_80183CF0 *arg) { -typedef struct Ent_80183D50_80183D50 { - u8 unk0[2]; /* 0x00 */ - u16 unk2; /* 0x02 */ - u8 unk4[0xD8]; /* 0x04 */ - s16 unkDC; /* 0xDC */ - u8 unkDE[4]; /* 0xDE */ - s16 unkE2; /* 0xE2 */ - s16 unkE4; /* 0xE4 */ - u8 unkE6[2]; /* 0xE6 */ - s16 unkE8; /* 0xE8 */ - s16 unkEA; /* 0xEA */ -} Ent_80183D50_80183D50; -typedef struct Gs_80078E78_80183D50 { - u8 pad0[0x37]; /* 0x00 */ - u8 unk37; /* 0x37 */ -} Gs_80078E78_80183D50; extern void func_8013C0F8(u8 *a0); extern void func_80184440(void); @@ -2825,19 +2805,6 @@ void func_80183D50(Ent_80183D50_80183D50 *arg) { -typedef struct Ent80183F28_80183F28 { - /* 0x00 */ s16 unk00; - /* 0x02 */ s16 unk02; - /* 0x04 */ u8 pad04[0xD8]; - /* 0xDC */ s16 unkDC; - /* 0xDE */ s16 unkDE; - /* 0xE0 */ s16 unkE0; - /* 0xE2 */ s16 unkE2; - /* 0xE4 */ s16 unkE4; - /* 0xE6 */ s16 unkE6; - /* 0xE8 */ s16 unkE8; - /* 0xEA */ s16 unkEA; -} Ent80183F28_80183F28; extern void func_8017DF84(void *a0, s32 a1, s32 a2, s32 a3); extern s32 func_80029178(s32 a0); @@ -2876,11 +2843,6 @@ INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015_o0c", func_80184058); extern void func_8017FA5C(s32 arg0, s32 arg1, s32 arg2); extern void func_80184474(void); -typedef struct Ent_80184264_80184264 { - u8 pad0[0xE2]; - s16 unkE2; - s16 unkE4; -} Ent_80184264_80184264; void func_80184264(Ent_80184264_80184264 *param_1) { diff --git a/src/ov_SC03_015/ov_SC03_015_o0d.c b/src/ov_SC03_015/ov_SC03_015_o0d.c index 7ebf6fc882..18a049dd53 100644 --- a/src/ov_SC03_015/ov_SC03_015_o0d.c +++ b/src/ov_SC03_015/ov_SC03_015_o0d.c @@ -2772,16 +2772,7 @@ void func_80184474(void) { -typedef struct { - s32 unk00; /* 0x00 */ - s32 unk04; /* 0x04 */ - u16 unk08; /* 0x08 */ - u16 unk0A; /* 0x0A */ - u16 unk0C; /* 0x0C */ - u16 unk0E; /* 0x0E */ - u16 unk10; /* 0x10 */ - u16 unk12; /* 0x12 */ -} Unk8018F8C4_80184538; /* sizeof == 0x14 */ + /* sizeof == 0x14 */ extern void MoveImage(void *a0, s32 a1, s32 a2); diff --git a/src/ov_SC03_015/ov_SC03_015_o0e.c b/src/ov_SC03_015/ov_SC03_015_o0e.c index cb690f1838..b5304c6277 100644 --- a/src/ov_SC03_015/ov_SC03_015_o0e.c +++ b/src/ov_SC03_015/ov_SC03_015_o0e.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801EAF18[]; D_801EAF18[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801EAF18[]; D_801EAF18[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801EAF18[]; D_801EAF18[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801EAFD0; extern s32 D_801EB034; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801EAF18"); extern s32 D_801EAFB4; extern s32 D_801EAFB8; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_023/ov_SC03_023.c b/src/ov_SC03_023/ov_SC03_023.c index 575e4c6ed1..b6cba60f2f 100644 --- a/src/ov_SC03_023/ov_SC03_023.c +++ b/src/ov_SC03_023/ov_SC03_023.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_023/ov_SC03_023_after.c b/src/ov_SC03_023/ov_SC03_023_after.c index d9a10581f5..b6d5ee9424 100644 --- a/src/ov_SC03_023/ov_SC03_023_after.c +++ b/src/ov_SC03_023/ov_SC03_023_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_023/ov_SC03_023_jr_8012ACE0.c b/src/ov_SC03_023/ov_SC03_023_jr_8012ACE0.c index da03317cc8..1b03e9491e 100644 --- a/src/ov_SC03_023/ov_SC03_023_jr_8012ACE0.c +++ b/src/ov_SC03_023/ov_SC03_023_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_023/ov_SC03_023_jr_801380E0.c b/src/ov_SC03_023/ov_SC03_023_jr_801380E0.c index 3be8de6c12..97059df685 100644 --- a/src/ov_SC03_023/ov_SC03_023_jr_801380E0.c +++ b/src/ov_SC03_023/ov_SC03_023_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017F4B8[]; u16 t; u8 b; diff --git a/src/ov_SC03_023/ov_SC03_023_jr_80140608.c b/src/ov_SC03_023/ov_SC03_023_jr_80140608.c index cff18d14b1..491636377a 100644 --- a/src/ov_SC03_023/ov_SC03_023_jr_80140608.c +++ b/src/ov_SC03_023/ov_SC03_023_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80180278[]; extern u16 D_8017FD88; extern u16 D_8017FD8A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_023/ov_SC03_023_jr_8016AB6C.c b/src/ov_SC03_023/ov_SC03_023_jr_8016AB6C.c index cee08a5ff0..113143e9ce 100644 --- a/src/ov_SC03_023/ov_SC03_023_jr_8016AB6C.c +++ b/src/ov_SC03_023/ov_SC03_023_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_023/ov_SC03_023_jr_801734BC.c b/src/ov_SC03_023/ov_SC03_023_jr_801734BC.c index 20f289c56b..3fa6e3b32b 100644 --- a/src/ov_SC03_023/ov_SC03_023_jr_801734BC.c +++ b/src/ov_SC03_023/ov_SC03_023_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_023/nonmatchings/ov_SC03_023_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_023/ov_SC03_023_o0c.c b/src/ov_SC03_023/ov_SC03_023_o0c.c index 7364fad54f..b861a39c68 100644 --- a/src/ov_SC03_023/ov_SC03_023_o0c.c +++ b/src/ov_SC03_023/ov_SC03_023_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_80198C60[]; D_80198C60[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_80198C60[]; D_80198C60[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_80198C60[]; D_80198C60[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_80198D18; extern s32 D_80198D7C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_80198C60"); extern s32 D_80198CFC; extern s32 D_80198D00; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_024/ov_SC03_024.c b/src/ov_SC03_024/ov_SC03_024.c index 21cf37372b..89c223de8a 100644 --- a/src/ov_SC03_024/ov_SC03_024.c +++ b/src/ov_SC03_024/ov_SC03_024.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_024/ov_SC03_024_after.c b/src/ov_SC03_024/ov_SC03_024_after.c index 7a25674623..aaa76110ee 100644 --- a/src/ov_SC03_024/ov_SC03_024_after.c +++ b/src/ov_SC03_024/ov_SC03_024_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_024/ov_SC03_024_jr_8012ACE0.c b/src/ov_SC03_024/ov_SC03_024_jr_8012ACE0.c index 0d836434da..f5298ba454 100644 --- a/src/ov_SC03_024/ov_SC03_024_jr_8012ACE0.c +++ b/src/ov_SC03_024/ov_SC03_024_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_024/ov_SC03_024_jr_801380E0.c b/src/ov_SC03_024/ov_SC03_024_jr_801380E0.c index c6a74af907..7ff29ff406 100644 --- a/src/ov_SC03_024/ov_SC03_024_jr_801380E0.c +++ b/src/ov_SC03_024/ov_SC03_024_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_801874DC[]; u16 t; u8 b; diff --git a/src/ov_SC03_024/ov_SC03_024_jr_80140608.c b/src/ov_SC03_024/ov_SC03_024_jr_80140608.c index a8c934dc06..8817004be4 100644 --- a/src/ov_SC03_024/ov_SC03_024_jr_80140608.c +++ b/src/ov_SC03_024/ov_SC03_024_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8018829C[]; extern u16 D_80187DAC; extern u16 D_80187DAE; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2601,7 +2592,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_024/ov_SC03_024_jr_8016AB6C.c b/src/ov_SC03_024/ov_SC03_024_jr_8016AB6C.c index 973ca29489..8f23401cbb 100644 --- a/src/ov_SC03_024/ov_SC03_024_jr_8016AB6C.c +++ b/src/ov_SC03_024/ov_SC03_024_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_024/ov_SC03_024_jr_801734BC.c b/src/ov_SC03_024/ov_SC03_024_jr_801734BC.c index d2fd1e9569..4ba456680a 100644 --- a/src/ov_SC03_024/ov_SC03_024_jr_801734BC.c +++ b/src/ov_SC03_024/ov_SC03_024_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_024/ov_SC03_024_jr_8017AE2C.c b/src/ov_SC03_024/ov_SC03_024_jr_8017AE2C.c index 6593a6b0a5..6b9412acca 100644 --- a/src/ov_SC03_024/ov_SC03_024_jr_8017AE2C.c +++ b/src/ov_SC03_024/ov_SC03_024_jr_8017AE2C.c @@ -3419,11 +3419,8 @@ INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024_jr_8017AE2C", func_8017C15 */ /* MATRIX 0x20: 3x3 short rotation + pad, t[] at 0x14 */ -typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MATRIX_8017C290; /* 8, align 2 -> lwl/lwr/swl/swr struct copy */ -typedef struct { u16 vx, vy, vz, pad; } SVECTOR_8017C290; /* 4, align 1 -> lwl/lwr/swl/swr */ -struct PW8017C290 { int w; } __attribute__((packed, aligned(1))); extern void func_80013F3C(s32 a0); extern void RotMatrixZ(s32, void *); @@ -3795,9 +3792,7 @@ INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024_jr_8017AE2C", func_8017D89 * lwl/lwr + swl/swr instead of a `jal memcpy` (cf. §38). */ -typedef struct { - u8 b0, b1, b2, b3; -} Quad_801EA880_8017D900; /* align 1 => movstrsi expands to lwl/lwr + swl/swr */ + /* align 1 => movstrsi expands to lwl/lwr + swl/swr */ extern s32 func_80012F74(s32 a0, s32 a1, s32 a2, s32 a3); diff --git a/src/ov_SC03_024/ov_SC03_024_jr_8017DF84.c b/src/ov_SC03_024/ov_SC03_024_jr_8017DF84.c index 543a0e10f9..fe8550d341 100644 --- a/src/ov_SC03_024/ov_SC03_024_jr_8017DF84.c +++ b/src/ov_SC03_024/ov_SC03_024_jr_8017DF84.c @@ -3875,7 +3875,6 @@ void func_8017FAEC(s16 *a0) { * (instead of a fresh local) avoids stealing back the $v0 slot. */ -typedef struct { s32 w[8]; } Mtx8_8017DE10_8017FBC8; void func_8017FBC8(s32 a0) { extern void ApplyMatrixSV(void *a0, void *a1, void *a2); @@ -4446,9 +4445,6 @@ void func_80180CCC(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_80180D08; extern u16 func_80148800(s32 *a0); extern void func_80180EA8(s32 param_1, s16 *param_2); @@ -4476,9 +4472,6 @@ INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024_jr_8017DF84", func_80180DA /* 8-byte, alignment-1 blob: the target copies it with lwl/lwr + swl/swr, * which is gcc's emit_block_move for align < 4. */ -typedef struct { - char b[8]; -} Blob8_8018A47C_80180E60; extern void func_80180EA8(s32, s16*); @@ -4630,13 +4623,6 @@ extern void func_80181BA0(void *arg0); extern s32 func_8012AD50(void *arg0); /* 0x24-stride record at D_801C12C0 (4 entries; asm/ov_SC04_018/data/tail18.data.s) */ -typedef struct { - u8 unk00[0x16]; - s16 unk16; - u8 unk18[4]; - s32 unk1C; - u8 unk20[4]; -} Ent_8017D6EC_80181884; void func_80181884(void *arg0) { @@ -4685,13 +4671,6 @@ extern void func_8012AD44(s32 *a0, s16 a1); extern void func_80181B50(void *arg0); extern void func_80181C5C(void *arg0); -typedef struct { - u8 unk00[0x16]; - s16 unk16; - u8 unk18[4]; - s32 unk1C; - u8 unk20[4]; -} Ent_80181914; extern Ent_80181914 D_801C12C0[]; @@ -4835,12 +4814,7 @@ void func_80181BA0(void *arg0) { * so this body remaps to those overlays unchanged. */ -typedef struct { short vx, vy, vz, pad; } SV_8017DAC4_80181C5C; -typedef struct { - SV_8017DAC4_80181C5C v[4]; /* 0x00 .. 0x20 */ - s32 f20, f24, f28, f2C, f30, f34; /* 0x20 .. 0x38 */ -} Prim_8017DAC4_80181C5C; extern void func_80017714(void *); @@ -5191,8 +5165,6 @@ void func_80184B80(s32 param_1, s32 param_2) extern s32 D_801C13CC; extern s32 D_801C13D0; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_80184B80; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_80184B80; SV4_L_80184B80 vec; /* sp+0x10 */ MTX_L_80184B80 mtx; /* sp+0x18 */ @@ -5370,8 +5342,8 @@ INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024_jr_8017DF84", func_801856B */ void func_80185730(void *a0) { - typedef struct { s32 w[8]; } Mat32_8018A390_80185730; /* 32B, align 4 */ - typedef struct { u16 x; u16 y; u16 z; s16 w; } Rec8_8018A390_80185730; /* 8B, align 2 */ + /* 32B, align 4 */ + /* 8B, align 2 */ extern Mat32_8018A390_80185730 D_800AE620; extern Rec8_8018A390_80185730 D_801B9330[]; @@ -5471,12 +5443,6 @@ void func_80185A20(void) { * puts $s1's zero-init first, which is the target order. */ -typedef struct { - s16 unk0; - s16 unk2; - s16 unk4; - s16 unk6; -} Rec_8018A6A4_80185A44; extern void func_80185AE4(s32 arg0, s32 arg1, s32 arg2); extern void func_80185C00(s32 arg0, Rec_8018A6A4_80185A44 *arg1, s32 arg2, s32 arg3); @@ -5597,7 +5563,7 @@ void aF8018A860(s32 a0, s16 *a1, u8 *a2, u8 *a3) { extern s16 D_801C15FC; /* TU L3637 / L3671, verbatim */ - typedef struct { u8 b0, b1, b2, b3; } B4_80185C00; /* align 1 — §48-C2 */ + /* align 1 — §48-C2 */ s16 *s1; u16 temp_u16; s16 temp_s16; @@ -5839,7 +5805,7 @@ void func_80185D5C(void) { void func_80185E38(s32 arg0) { - typedef struct { s32 w[8]; } Blk32_8018AA98_80185E38; /* 32 bytes, align 4 */ + /* 32 bytes, align 4 */ extern Blk32_8018AA98_80185E38 D_800AE620; extern s32 D_800A5E60; @@ -5988,7 +5954,6 @@ extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3); extern void func_801861D0(void *arg0, void *arg1, s32 arg2, s32 arg3); void func_80186148(s32 a0) { - typedef struct { u8 a, b, c, d; } V4_80186148; extern u8 D_800AF648; extern V4_80186148 D_801BFE6C; u16 sxy[4]; @@ -6120,14 +6085,6 @@ void aF8018AFD0(s32 a0, s32 a1, s32 a2) __asm__("func_80186370"); void aF8018AFD0(s32 a0, s32 a1, s32 a2) { - typedef struct { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ - } P_80186370; extern s16 D_801C14F4; extern s16 D_801C14EE[]; @@ -6296,21 +6253,11 @@ extern void func_80016638(void *a0, s32 a1, s32 a2); /* 0x10-byte-stride record table at D_801C14F4 (same table as func_8018AD5C) */ -typedef struct { - u16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s16 f8; /* 0x08 */ - u16 fA; /* 0x0A */ - s16 fC; /* 0x0C */ - u16 fE; /* 0x0E */ -} Rec_8018B23C_801865DC; -typedef struct { s32 w[8]; } Mat32_8018B23C_801865DC; /* the 0x20-byte matrix */ -typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_801865DC; /* == engine_types.h OtBlk */ -typedef struct { u16 f; } Bidx_8018B23C_801865DC; /* the D_800B9A02 buffer index */ -typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_801865DC; /* libgpu P_TAG */ + /* the 0x20-byte matrix */ + /* == engine_types.h OtBlk */ + /* the D_800B9A02 buffer index */ + /* libgpu P_TAG */ void func_801865DC(s32 a0) { diff --git a/src/ov_SC03_024/ov_SC03_024_o0c.c b/src/ov_SC03_024/ov_SC03_024_o0c.c index 3fca862edb..b60a4f0498 100644 --- a/src/ov_SC03_024/ov_SC03_024_o0c.c +++ b/src/ov_SC03_024/ov_SC03_024_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801C1728[]; D_801C1728[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801C1728[]; D_801C1728[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801C1728[]; D_801C1728[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801C17E0; extern s32 D_801C1844; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801C1728"); extern s32 D_801C17C4; extern s32 D_801C17C8; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_028/ov_SC03_028.c b/src/ov_SC03_028/ov_SC03_028.c index 48b224bc09..a5fcc2e1a2 100644 --- a/src/ov_SC03_028/ov_SC03_028.c +++ b/src/ov_SC03_028/ov_SC03_028.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_028/ov_SC03_028_after.c b/src/ov_SC03_028/ov_SC03_028_after.c index a60d788b1b..b515488f5a 100644 --- a/src/ov_SC03_028/ov_SC03_028_after.c +++ b/src/ov_SC03_028/ov_SC03_028_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_028/ov_SC03_028_jr_8012ACE0.c b/src/ov_SC03_028/ov_SC03_028_jr_8012ACE0.c index adb9132018..e38c528d53 100644 --- a/src/ov_SC03_028/ov_SC03_028_jr_8012ACE0.c +++ b/src/ov_SC03_028/ov_SC03_028_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_028/ov_SC03_028_jr_801380E0.c b/src/ov_SC03_028/ov_SC03_028_jr_801380E0.c index 0fb9ea0be9..2cfd2f5d8e 100644 --- a/src/ov_SC03_028/ov_SC03_028_jr_801380E0.c +++ b/src/ov_SC03_028/ov_SC03_028_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018BFA8[]; u16 t; u8 b; diff --git a/src/ov_SC03_028/ov_SC03_028_jr_80140608.c b/src/ov_SC03_028/ov_SC03_028_jr_80140608.c index 5775b41161..47a75973c7 100644 --- a/src/ov_SC03_028/ov_SC03_028_jr_80140608.c +++ b/src/ov_SC03_028/ov_SC03_028_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8018CD68[]; extern u16 D_8018C878; extern u16 D_8018C87A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_028/ov_SC03_028_jr_8016AB6C.c b/src/ov_SC03_028/ov_SC03_028_jr_8016AB6C.c index 5f9ac61e83..fd3c75159f 100644 --- a/src/ov_SC03_028/ov_SC03_028_jr_8016AB6C.c +++ b/src/ov_SC03_028/ov_SC03_028_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_028/ov_SC03_028_jr_801734BC.c b/src/ov_SC03_028/ov_SC03_028_jr_801734BC.c index d4f4a3bc6d..40a1d30435 100644 --- a/src/ov_SC03_028/ov_SC03_028_jr_801734BC.c +++ b/src/ov_SC03_028/ov_SC03_028_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_028/ov_SC03_028_jr_8017AE2C.c b/src/ov_SC03_028/ov_SC03_028_jr_8017AE2C.c index 214b016f89..ffe7d2315c 100644 --- a/src/ov_SC03_028/ov_SC03_028_jr_8017AE2C.c +++ b/src/ov_SC03_028/ov_SC03_028_jr_8017AE2C.c @@ -3336,17 +3336,6 @@ extern void func_8017BF34(s32 arg0, s32 arg1, s32 arg2, s32 arg3); extern s32 func_8012C750(s32 a0); extern s32 D_8018F3E8[]; -typedef struct { - s16 unk00; - s16 unk02; - s16 unk04; - s16 unk06; - s16 unk08; - s16 unk0A; - s16 unk0C; - s16 unk0E; - s32 unk10; -} Buf8017BF34; void func_8017BF34(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { Buf8017BF34 buf; @@ -4361,7 +4350,6 @@ void func_8017D294(s16 *a0) { * (instead of a fresh local) avoids stealing back the $v0 slot. */ -typedef struct { s32 w[8]; } Mtx8_8017DE10_8017D370; void func_8017D370(s32 a0) { extern void ApplyMatrixSV(void *a0, void *a1, void *a2); @@ -4747,18 +4735,9 @@ extern s32 func_80017DC4(void *a0, void *a1); extern s32 func_80017E30(void *a0, void *a1); extern void func_80016ED4(void *a0); -typedef struct { short vx, vy, vz, pad; } SVECTOR_8017F40C; extern SVECTOR_8017F40C D_8018F784[4]; -typedef struct { - SVECTOR_8017F40C v[4]; /* 0x00 */ - s16 k30, k32, k34, k36, k38, k3a, k3c, k3e; /* 0x20 */ - u32 bcast; /* 0x30 */ - s32 tag; /* 0x34 */ - u8 code; /* 0x38 */ - u8 pad39[7]; /* -> 0x40 */ -} Prim_8017F40C; void func_8017F40C(s32 a0, s32 a1) { Prim_8017F40C prim; @@ -5770,7 +5749,6 @@ extern void func_800233CC(void *a0, unsigned short a1); /* align-1 4-byte block: lowers via emit_block_move (unaligned lwl/lwr + swl/swr) * with ZERO memcpy-symbol reference, so the TU's `extern memcpy` cannot turn * this into a CALL. (house idiom, cf. func_8017B238 / func_8017B614) */ -typedef struct { u8 b[4]; } Blk4_8018CE04_8018A724; void func_8018A724(s32 param_1) { @@ -5904,12 +5882,6 @@ void func_8018AF60(void *a0) { -typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; -} EffectSlot4_8018AF9C; extern void func_801465C0(void); extern void func_80146C3C(void); diff --git a/src/ov_SC03_028/ov_SC03_028_o0c.c b/src/ov_SC03_028/ov_SC03_028_o0c.c index 3a465882e9..aa30ab69ad 100644 --- a/src/ov_SC03_028/ov_SC03_028_o0c.c +++ b/src/ov_SC03_028/ov_SC03_028_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801EC4E0[]; D_801EC4E0[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801EC4E0[]; D_801EC4E0[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801EC4E0[]; D_801EC4E0[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801EC598; extern s32 D_801EC5FC; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801EC4E0"); extern s32 D_801EC57C; extern s32 D_801EC580; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_029/ov_SC03_029.c b/src/ov_SC03_029/ov_SC03_029.c index d4f1aa0186..36b9aa90b5 100644 --- a/src/ov_SC03_029/ov_SC03_029.c +++ b/src/ov_SC03_029/ov_SC03_029.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_029/ov_SC03_029_after.c b/src/ov_SC03_029/ov_SC03_029_after.c index 00a9917037..ac5b044835 100644 --- a/src/ov_SC03_029/ov_SC03_029_after.c +++ b/src/ov_SC03_029/ov_SC03_029_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_029/ov_SC03_029_jr_8012ACE0.c b/src/ov_SC03_029/ov_SC03_029_jr_8012ACE0.c index 10b749cb32..f4fe5cbcb9 100644 --- a/src/ov_SC03_029/ov_SC03_029_jr_8012ACE0.c +++ b/src/ov_SC03_029/ov_SC03_029_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_029/ov_SC03_029_jr_801380E0.c b/src/ov_SC03_029/ov_SC03_029_jr_801380E0.c index d19a74479f..100db45f53 100644 --- a/src/ov_SC03_029/ov_SC03_029_jr_801380E0.c +++ b/src/ov_SC03_029/ov_SC03_029_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80187DE0[]; u16 t; u8 b; diff --git a/src/ov_SC03_029/ov_SC03_029_jr_80140608.c b/src/ov_SC03_029/ov_SC03_029_jr_80140608.c index 8b46708300..c96a2e6909 100644 --- a/src/ov_SC03_029/ov_SC03_029_jr_80140608.c +++ b/src/ov_SC03_029/ov_SC03_029_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80188BA0[]; extern u16 D_801886B0; extern u16 D_801886B2; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_029/ov_SC03_029_jr_8016AB6C.c b/src/ov_SC03_029/ov_SC03_029_jr_8016AB6C.c index d92fa793a8..b3ccc59e04 100644 --- a/src/ov_SC03_029/ov_SC03_029_jr_8016AB6C.c +++ b/src/ov_SC03_029/ov_SC03_029_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_029/ov_SC03_029_jr_801734BC.c b/src/ov_SC03_029/ov_SC03_029_jr_801734BC.c index f5d50dbbe9..371061ab04 100644 --- a/src/ov_SC03_029/ov_SC03_029_jr_801734BC.c +++ b/src/ov_SC03_029/ov_SC03_029_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_029/ov_SC03_029_jr_8017AE2C.c b/src/ov_SC03_029/ov_SC03_029_jr_8017AE2C.c index b8fbbe27f8..faaf8ff2ca 100644 --- a/src/ov_SC03_029/ov_SC03_029_jr_8017AE2C.c +++ b/src/ov_SC03_029/ov_SC03_029_jr_8017AE2C.c @@ -3456,8 +3456,6 @@ void func_8017C294(s32 param_1, s32 param_2) extern s32 D_801D94E4; extern s32 D_801D94E8; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_8017C294; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017C294; SV4_L_8017C294 vec; /* sp+0x10 */ MTX_L_8017C294 mtx; /* sp+0x18 */ @@ -3613,8 +3611,6 @@ void func_8017C3C4(s32 a0) { extern u8 D_801D94F6; extern u8 D_801D94FC; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017C3C4; - typedef struct { Rec027_8017C3C4 r[9]; } Blk027_8017C3C4; extern Blk027_8017C3C4 D_801D5FFC; extern Blk027_8017C3C4 D_801D9570[]; @@ -3890,14 +3886,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_8017C294(s32 a0, s32 a1); void func_8017CB10(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_8017CB10; extern Rec_8017C738_8017CB10 D_801D5FFC[]; Rec_8017C738_8017CB10 *q = D_801D5FFC; @@ -4206,17 +4194,6 @@ void func_8017D174(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017D1D0 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017D1D0; extern void func_80147324(s32 arg0); extern void func_8017D408(int); @@ -4330,24 +4307,11 @@ void func_8017D3BC(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017D408; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017D408; -typedef struct { - SVec8_8017C218_8017D408 v[4]; /* 0x00 */ - CVec4_8017C218_8017D408 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017D408; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017D408; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -4668,10 +4632,6 @@ void func_8017DAA4(void *a0) void func_8017DB00(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017DB00; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017DB00; - typedef struct { SVec_8017C910_8017DB00 v[2]; Clr_8017C910_8017DB00 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017DB00; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017DB00; extern Mtx8_8017C910_8017DB00 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017DB00 prim; diff --git a/src/ov_SC03_029/ov_SC03_029_jr_8017DC70.c b/src/ov_SC03_029/ov_SC03_029_jr_8017DC70.c index e8112ffa35..e5ad7f3564 100644 --- a/src/ov_SC03_029/ov_SC03_029_jr_8017DC70.c +++ b/src/ov_SC03_029/ov_SC03_029_jr_8017DC70.c @@ -3786,9 +3786,6 @@ extern void func_80128EA8(s32 a0, s32 a1, s32 a2); extern s32 rand(void); -typedef struct { - s32 f0, f1, f2, f3; -} Quad_8018797C_80181A30; void func_80181A30(s32 a0) { diff --git a/src/ov_SC03_029/ov_SC03_029_o0c.c b/src/ov_SC03_029/ov_SC03_029_o0c.c index 5985f1e9b2..a56fa98b03 100644 --- a/src/ov_SC03_029/ov_SC03_029_o0c.c +++ b/src/ov_SC03_029/ov_SC03_029_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801D9920[]; D_801D9920[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801D9920[]; D_801D9920[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801D9920[]; D_801D9920[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801D99D8; extern s32 D_801D9A3C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801D9920"); extern s32 D_801D99BC; extern s32 D_801D99C0; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_030/ov_SC03_030.c b/src/ov_SC03_030/ov_SC03_030.c index 5e5786fae0..d75092ee00 100644 --- a/src/ov_SC03_030/ov_SC03_030.c +++ b/src/ov_SC03_030/ov_SC03_030.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_030/ov_SC03_030_after.c b/src/ov_SC03_030/ov_SC03_030_after.c index d401732592..ec1732365d 100644 --- a/src/ov_SC03_030/ov_SC03_030_after.c +++ b/src/ov_SC03_030/ov_SC03_030_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_030/ov_SC03_030_jr_8012ACE0.c b/src/ov_SC03_030/ov_SC03_030_jr_8012ACE0.c index 7a1e56f627..f00012bc2d 100644 --- a/src/ov_SC03_030/ov_SC03_030_jr_8012ACE0.c +++ b/src/ov_SC03_030/ov_SC03_030_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_030/ov_SC03_030_jr_801380E0.c b/src/ov_SC03_030/ov_SC03_030_jr_801380E0.c index 96a8d1ff08..1eac7ea097 100644 --- a/src/ov_SC03_030/ov_SC03_030_jr_801380E0.c +++ b/src/ov_SC03_030/ov_SC03_030_jr_801380E0.c @@ -1056,12 +1056,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018241C[]; u16 t; u8 b; diff --git a/src/ov_SC03_030/ov_SC03_030_jr_80140608.c b/src/ov_SC03_030/ov_SC03_030_jr_80140608.c index 3ed8e1dfc3..5894fc4382 100644 --- a/src/ov_SC03_030/ov_SC03_030_jr_80140608.c +++ b/src/ov_SC03_030/ov_SC03_030_jr_80140608.c @@ -1143,11 +1143,6 @@ s16 n; extern s16 D_801831DC[]; extern u16 D_80182CEC; extern u16 D_80182CEE; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1286,13 +1281,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2635,7 +2626,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_030/ov_SC03_030_jr_8016AB6C.c b/src/ov_SC03_030/ov_SC03_030_jr_8016AB6C.c index 7a0b9e3097..5403b92161 100644 --- a/src/ov_SC03_030/ov_SC03_030_jr_8016AB6C.c +++ b/src/ov_SC03_030/ov_SC03_030_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_030/ov_SC03_030_jr_801734BC.c b/src/ov_SC03_030/ov_SC03_030_jr_801734BC.c index c913163e22..7b87981bbd 100644 --- a/src/ov_SC03_030/ov_SC03_030_jr_801734BC.c +++ b/src/ov_SC03_030/ov_SC03_030_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_030/nonmatchings/ov_SC03_030_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_030/ov_SC03_030_jr_8017AE2C.c b/src/ov_SC03_030/ov_SC03_030_jr_8017AE2C.c index efdf5f9fad..040dcd7d4a 100644 --- a/src/ov_SC03_030/ov_SC03_030_jr_8017AE2C.c +++ b/src/ov_SC03_030/ov_SC03_030_jr_8017AE2C.c @@ -3769,9 +3769,6 @@ extern void func_80128EA8(s32 a0, s32 a1, s32 a2); extern s32 rand(void); -typedef struct { - s32 f0, f1, f2, f3; -} Quad_8018797C_8017F26C; void func_8017F26C(s32 a0) { diff --git a/src/ov_SC03_030/ov_SC03_030_o0c.c b/src/ov_SC03_030/ov_SC03_030_o0c.c index b9fbe531ef..69fc847ad0 100644 --- a/src/ov_SC03_030/ov_SC03_030_o0c.c +++ b/src/ov_SC03_030/ov_SC03_030_o0c.c @@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801E1B18[]; D_801E1B18[a0].f0 = 1; @@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801E1B18[]; D_801E1B18[idx].f0 = 1; @@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801E1B18[]; D_801E1B18[a0].f0 = 0; } @@ -844,16 +828,7 @@ extern s32 D_801E1BD0; extern s32 D_801E1C34; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801E1B18"); extern s32 D_801E1BB4; extern s32 D_801E1BB8; @@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_031/ov_SC03_031.c b/src/ov_SC03_031/ov_SC03_031.c index 4f0d4aa49b..6e14c8257c 100644 --- a/src/ov_SC03_031/ov_SC03_031.c +++ b/src/ov_SC03_031/ov_SC03_031.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_031/ov_SC03_031_after.c b/src/ov_SC03_031/ov_SC03_031_after.c index 9e122bdabd..162c9b9920 100644 --- a/src/ov_SC03_031/ov_SC03_031_after.c +++ b/src/ov_SC03_031/ov_SC03_031_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_031/ov_SC03_031_jr_8012ACE0.c b/src/ov_SC03_031/ov_SC03_031_jr_8012ACE0.c index 7d92a35ffc..fa8da24a5d 100644 --- a/src/ov_SC03_031/ov_SC03_031_jr_8012ACE0.c +++ b/src/ov_SC03_031/ov_SC03_031_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_031/ov_SC03_031_jr_801380E0.c b/src/ov_SC03_031/ov_SC03_031_jr_801380E0.c index 2df0cf6fa6..b7dea1c533 100644 --- a/src/ov_SC03_031/ov_SC03_031_jr_801380E0.c +++ b/src/ov_SC03_031/ov_SC03_031_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80182938[]; u16 t; u8 b; diff --git a/src/ov_SC03_031/ov_SC03_031_jr_80140608.c b/src/ov_SC03_031/ov_SC03_031_jr_80140608.c index 8d7dd64a0b..7c4fbe3477 100644 --- a/src/ov_SC03_031/ov_SC03_031_jr_80140608.c +++ b/src/ov_SC03_031/ov_SC03_031_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_801836F8[]; extern u16 D_80183208; extern u16 D_8018320A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_031/ov_SC03_031_jr_8016AB6C.c b/src/ov_SC03_031/ov_SC03_031_jr_8016AB6C.c index 8bfcc791b3..3f023161c9 100644 --- a/src/ov_SC03_031/ov_SC03_031_jr_8016AB6C.c +++ b/src/ov_SC03_031/ov_SC03_031_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_031/ov_SC03_031_jr_801734BC.c b/src/ov_SC03_031/ov_SC03_031_jr_801734BC.c index da4cc8ed05..1edaa387e0 100644 --- a/src/ov_SC03_031/ov_SC03_031_jr_801734BC.c +++ b/src/ov_SC03_031/ov_SC03_031_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_031/nonmatchings/ov_SC03_031_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_031/ov_SC03_031_jr_8017AE2C.c b/src/ov_SC03_031/ov_SC03_031_jr_8017AE2C.c index 509449517b..1e534b5b4c 100644 --- a/src/ov_SC03_031/ov_SC03_031_jr_8017AE2C.c +++ b/src/ov_SC03_031/ov_SC03_031_jr_8017AE2C.c @@ -3488,8 +3488,6 @@ void func_8017C180(s32 param_1, s32 param_2) extern s32 D_801C5EDC; extern s32 D_801C5EE0; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_8017C180; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017C180; SV4_L_8017C180 vec; /* sp+0x10 */ MTX_L_8017C180 mtx; /* sp+0x18 */ @@ -3645,8 +3643,6 @@ void func_8017C2B0(s32 a0) { extern u8 D_801C5EEE; extern u8 D_801C5EF4; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017C2B0; - typedef struct { Rec027_8017C2B0 r[9]; } Blk027_8017C2B0; extern Blk027_8017C2B0 D_801C0814; extern Blk027_8017C2B0 D_801C5F68[]; @@ -3922,14 +3918,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_8017C180(s32 a0, s32 a1); void func_8017C9FC(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_8017C9FC; extern Rec_8017C738_8017C9FC D_801C0814[]; Rec_8017C738_8017C9FC *q = D_801C0814; @@ -4238,17 +4226,6 @@ void func_8017D060(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017D0BC { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017D0BC; extern void func_80147324(s32 arg0); extern void func_8017D2F4(int); @@ -4362,24 +4339,11 @@ void func_8017D2A8(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017D2F4; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017D2F4; -typedef struct { - SVec8_8017C218_8017D2F4 v[4]; /* 0x00 */ - CVec4_8017C218_8017D2F4 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017D2F4; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017D2F4; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -4700,10 +4664,6 @@ void func_8017D990(void *a0) void func_8017D9EC(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017D9EC; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017D9EC; - typedef struct { SVec_8017C910_8017D9EC v[2]; Clr_8017C910_8017D9EC col[2]; s32 tag; s32 pad; } Prim_8017C910_8017D9EC; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017D9EC; extern Mtx8_8017C910_8017D9EC aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017D9EC prim; diff --git a/src/ov_SC03_031/ov_SC03_031_o0c.c b/src/ov_SC03_031/ov_SC03_031_o0c.c index 74a978205b..73c658d8fc 100644 --- a/src/ov_SC03_031/ov_SC03_031_o0c.c +++ b/src/ov_SC03_031/ov_SC03_031_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801C6180[]; D_801C6180[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801C6180[]; D_801C6180[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801C6180[]; D_801C6180[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801C6238; extern s32 D_801C629C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801C6180"); extern s32 D_801C621C; extern s32 D_801C6220; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_089/ov_SC03_089.c b/src/ov_SC03_089/ov_SC03_089.c index f3ab8257b4..fbc7d640b8 100644 --- a/src/ov_SC03_089/ov_SC03_089.c +++ b/src/ov_SC03_089/ov_SC03_089.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_089/ov_SC03_089_after.c b/src/ov_SC03_089/ov_SC03_089_after.c index d4f173c445..bb492c81be 100644 --- a/src/ov_SC03_089/ov_SC03_089_after.c +++ b/src/ov_SC03_089/ov_SC03_089_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_089/ov_SC03_089_jr_8012ACE0.c b/src/ov_SC03_089/ov_SC03_089_jr_8012ACE0.c index 1c6274cd6a..c2b06dafc2 100644 --- a/src/ov_SC03_089/ov_SC03_089_jr_8012ACE0.c +++ b/src/ov_SC03_089/ov_SC03_089_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_089/ov_SC03_089_jr_801380E0.c b/src/ov_SC03_089/ov_SC03_089_jr_801380E0.c index df60bf288c..26811cab66 100644 --- a/src/ov_SC03_089/ov_SC03_089_jr_801380E0.c +++ b/src/ov_SC03_089/ov_SC03_089_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80189C34[]; u16 t; u8 b; diff --git a/src/ov_SC03_089/ov_SC03_089_jr_80140608.c b/src/ov_SC03_089/ov_SC03_089_jr_80140608.c index e6e4252264..91cf2d32b7 100644 --- a/src/ov_SC03_089/ov_SC03_089_jr_80140608.c +++ b/src/ov_SC03_089/ov_SC03_089_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8018A9F4[]; extern u16 D_8018A504; extern u16 D_8018A506; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_089/ov_SC03_089_jr_8016AB6C.c b/src/ov_SC03_089/ov_SC03_089_jr_8016AB6C.c index 685def8f7d..f85e28f128 100644 --- a/src/ov_SC03_089/ov_SC03_089_jr_8016AB6C.c +++ b/src/ov_SC03_089/ov_SC03_089_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_089/ov_SC03_089_jr_801734BC.c b/src/ov_SC03_089/ov_SC03_089_jr_801734BC.c index 064c0eef07..3649ecdb05 100644 --- a/src/ov_SC03_089/ov_SC03_089_jr_801734BC.c +++ b/src/ov_SC03_089/ov_SC03_089_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_089/nonmatchings/ov_SC03_089_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_089/ov_SC03_089_jr_8017AE2C.c b/src/ov_SC03_089/ov_SC03_089_jr_8017AE2C.c index 53d9be8749..08029f0535 100644 --- a/src/ov_SC03_089/ov_SC03_089_jr_8017AE2C.c +++ b/src/ov_SC03_089/ov_SC03_089_jr_8017AE2C.c @@ -3369,17 +3369,6 @@ void func_8017BF84(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017BFE0 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017BFE0; extern void func_80147324(s32 arg0); extern void func_8017C218(int); @@ -3480,24 +3469,11 @@ DEFINE_func_8017C1CC() /* dedup: shared engine-core @0x8017C1CC (src/shared) */ * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017C218; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017C218; -typedef struct { - SVec8_8017C218_8017C218 v[4]; /* 0x00 */ - CVec4_8017C218_8017C218 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017C218; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017C218; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -3779,10 +3755,6 @@ DEFINE_func_8017C8B4() /* dedup: shared engine-core @0x8017C8B4 (src/shared) */ void func_8017C910(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017C910; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017C910; - typedef struct { SVec_8017C910_8017C910 v[2]; Clr_8017C910_8017C910 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017C910; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017C910; extern Mtx8_8017C910_8017C910 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017C910 prim; diff --git a/src/ov_SC03_089/ov_SC03_089_jr_8017CA80.c b/src/ov_SC03_089/ov_SC03_089_jr_8017CA80.c index d7effe1289..a8e7a08094 100644 --- a/src/ov_SC03_089/ov_SC03_089_jr_8017CA80.c +++ b/src/ov_SC03_089/ov_SC03_089_jr_8017CA80.c @@ -3375,20 +3375,9 @@ void func_8017CA80(s32 arg0) : "memory" ) /* ---- the two gouraud-textured packet layouts this function emits ---------- */ -typedef struct { - u32 tag; - u32 rgb0; s16 x0, y0; u32 uv0; - u32 rgb1; s16 x1, y1; u32 uv1; - u32 rgb2; s16 x2, y2; u16 uv2, p2; -} PolyGT3; /* 0x28 */ + /* 0x28 */ -typedef struct { - u32 tag; - u32 rgb0; s16 x0, y0; u32 uv0; - u32 rgb1; s16 x1, y1; u32 uv1; - u32 rgb2; s16 x2, y2; u16 uv2, p2; - u32 rgb3; s16 x3, y3; u16 uv3, p3; -} PolyGT4; /* 0x34 */ + /* 0x34 */ /* ---- the three light-volume descriptors ---------------------------------- */ extern s32 D_801C67F8; @@ -4384,12 +4373,7 @@ void func_801822C8(s32 a0) { extern u16 D_801A16AC[]; extern u16 D_801A16D4[]; extern void (*D_801A16FC[])(s32); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FAC0_801822C8; /* 8 bytes */ + /* 8 bytes */ V4_8017FAC0_801822C8 p1; V4_8017FAC0_801822C8 p2; @@ -4473,29 +4457,8 @@ void func_80182560(void *arg0) { extern u8 D_801202A0[]; extern void (*D_801A1748[])(void *); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FD58_80182560; /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ - typedef struct { - u16 f0; /* 0x00 */ - u16 f2; /* 0x02 */ - u16 f4; /* 0x04 */ - u16 x; /* 0x06 */ - u16 f8; /* 0x08 */ - u16 y; /* 0x0A */ - u16 fC; /* 0x0C */ - u16 z; /* 0x0E */ - u8 p10[0x10]; - s32 f20; /* 0x20 */ - u8 p24[0x34]; - s32 f58; /* 0x58 */ - u8 p5C[8]; - s32 f64; /* 0x64 */ - u8 p68[0x10C - 0x68]; - } Ent_8017FD58_80182560; /* stride 0x10C, 0x60 entries (0x6480) */ + /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ + /* stride 0x10C, 0x60 entries (0x6480) */ /* Two further V4 slots the original body declared ahead of `pos` but that * this function never reads: the target frame is 0x50 with locals at @@ -5073,7 +5036,6 @@ extern void func_8012E688(void *a0, s32 a1, s32 a2); void func_8018362C(s32 a0) { s32 ret = func_8012BD14(a0); if (ret <= 0x64000) { - typedef struct { s32 f0; s32 f1; } Struct_8018362C; Struct_8018362C *ptr = *(Struct_8018362C **)(a0 + 0x20); *(s16 *)(a0 + 0x2) = 1; ptr->f1 = ptr->f1 & 0x7FFFFFFF; @@ -5871,9 +5833,6 @@ void func_80186074(s32 a0) { extern u8 D_800AF648; extern u8 D_801B3058[]; extern u8 D_801B29C8[]; - typedef struct { - u16 x, y, z, w; - } V8_80186074; s32 mv[4]; /* sp+0x10 : the 4-word block handed to func_8012B1B4 */ V8_80186074 pad[2]; /* sp+0x20 : gcc's own area (vars must be 0x48 for a 0x68 frame) */ V8_80186074 sp30; /* sp+0x30 : func_80133784 arg1 */ @@ -6003,9 +5962,6 @@ void func_80186428(s32 a0) { extern u8 D_801B3958[]; extern u8 D_801B32D8[]; extern u8 D_801B3B60[]; - typedef struct { - u16 x, y, z, w; - } V8_80186428; s32 sp10[4]; V8_80186428 pad[2]; V8_80186428 sp30; @@ -6239,9 +6195,6 @@ void func_801868D0(s32 a0) { extern u8 D_801A6910[]; extern u8 D_801B3618[]; - typedef struct { - u16 x, y, z, w; - } V8_801868D0; V8_801868D0 pad[2]; V8_801868D0 sp20; V8_801868D0 sp28; @@ -6776,7 +6729,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_8018745C(s32 a0) { extern u8 D_801A662C[]; - typedef struct { u16 x, y, z, w; } V8_8018745C; V8_8018745C sp10; V8_8018745C sp18; @@ -6893,9 +6845,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_8018767C(s32 *s0) { extern u8 D_801A662C[]; - typedef struct { - u16 a, b, c, d; - } Data_t_8018767C; Data_t_8018767C buf_src, buf_dst; s32 v0; @@ -7618,9 +7567,6 @@ INCLUDE_ASM("asm/ov_SC03_089/nonmatchings/ov_SC03_089_jr_8017CA80", func_8018879 void func_801887E8(void *a0, void *a1) { - typedef struct { u16 vx, vy; } Pt2_801887E8; - typedef struct { u8 pad[0x10]; Pt2_801887E8 pt[12]; } Src_801887E8; - typedef struct { u16 vx, vy, vz, pad; } Vec8_801887E8; extern void func_8001E094(void); extern void func_8001E378(void *a0); @@ -7810,32 +7756,8 @@ void func_801887E8(void *a0, void *a1) */ #include "common.h" -typedef struct { - u32 addr : 24; - u32 len : 8; -} PTag_80188C04; -typedef struct { - PTag_80188C04 tag; - u8 r0, g0, b0, code; - u16 x0, y0; - u8 u0, v0; - u16 clut; - u16 x1, y1; - u8 u1, v1; - u16 tpage; - u16 x2, y2; - u8 u2, v2; - u16 pad2; - u16 x3, y3; - u8 u3, v3; - u16 pad3; -} Ft4_80188C04; -typedef struct { - PTag_80188C04 tag; - u32 code0; -} Drm_80188C04; #define ADDPRIM_80188C04(o, p) \ (((PTag_80188C04 *)(p))->addr = ((PTag_80188C04 *)(o))->addr, \ diff --git a/src/ov_SC03_089/ov_SC03_089_o0c.c b/src/ov_SC03_089/ov_SC03_089_o0c.c index 7626c680eb..26ae2a961c 100644 --- a/src/ov_SC03_089/ov_SC03_089_o0c.c +++ b/src/ov_SC03_089/ov_SC03_089_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801C67F8[]; D_801C67F8[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801C67F8[]; D_801C67F8[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801C67F8[]; D_801C67F8[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801C68B0; extern s32 D_801C6914; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801C67F8"); extern s32 D_801C6894; extern s32 D_801C6898; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_090/ov_SC03_090.c b/src/ov_SC03_090/ov_SC03_090.c index 7a05f99f82..c71228d8e8 100644 --- a/src/ov_SC03_090/ov_SC03_090.c +++ b/src/ov_SC03_090/ov_SC03_090.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_090/ov_SC03_090_after.c b/src/ov_SC03_090/ov_SC03_090_after.c index 31614af4d2..b8ad37979a 100644 --- a/src/ov_SC03_090/ov_SC03_090_after.c +++ b/src/ov_SC03_090/ov_SC03_090_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_090/ov_SC03_090_jr_8012ACE0.c b/src/ov_SC03_090/ov_SC03_090_jr_8012ACE0.c index 88d43d6c34..8d847b5976 100644 --- a/src/ov_SC03_090/ov_SC03_090_jr_8012ACE0.c +++ b/src/ov_SC03_090/ov_SC03_090_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_090/ov_SC03_090_jr_801380E0.c b/src/ov_SC03_090/ov_SC03_090_jr_801380E0.c index 4d3a1f70a1..3cbf6011b5 100644 --- a/src/ov_SC03_090/ov_SC03_090_jr_801380E0.c +++ b/src/ov_SC03_090/ov_SC03_090_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018C058[]; u16 t; u8 b; diff --git a/src/ov_SC03_090/ov_SC03_090_jr_80140608.c b/src/ov_SC03_090/ov_SC03_090_jr_80140608.c index b7d344e30f..36aecb9e5a 100644 --- a/src/ov_SC03_090/ov_SC03_090_jr_80140608.c +++ b/src/ov_SC03_090/ov_SC03_090_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8018CE18[]; extern u16 D_8018C928; extern u16 D_8018C92A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_090/ov_SC03_090_jr_8016AB6C.c b/src/ov_SC03_090/ov_SC03_090_jr_8016AB6C.c index ec969c77ac..09f3669e5d 100644 --- a/src/ov_SC03_090/ov_SC03_090_jr_8016AB6C.c +++ b/src/ov_SC03_090/ov_SC03_090_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_090/ov_SC03_090_jr_801734BC.c b/src/ov_SC03_090/ov_SC03_090_jr_801734BC.c index 5ff2a545b1..e6bc5cb872 100644 --- a/src/ov_SC03_090/ov_SC03_090_jr_801734BC.c +++ b/src/ov_SC03_090/ov_SC03_090_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_090/nonmatchings/ov_SC03_090_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_090/ov_SC03_090_jr_8017AE2C.c b/src/ov_SC03_090/ov_SC03_090_jr_8017AE2C.c index ca01a6f5bb..47218b0562 100644 --- a/src/ov_SC03_090/ov_SC03_090_jr_8017AE2C.c +++ b/src/ov_SC03_090/ov_SC03_090_jr_8017AE2C.c @@ -3369,17 +3369,6 @@ void func_8017BF84(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017BFE0 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017BFE0; extern void func_80147324(s32 arg0); extern void func_8017C218(int); @@ -3480,24 +3469,11 @@ DEFINE_func_8017C1CC() /* dedup: shared engine-core @0x8017C1CC (src/shared) */ * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017C218; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017C218; -typedef struct { - SVec8_8017C218_8017C218 v[4]; /* 0x00 */ - CVec4_8017C218_8017C218 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017C218; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017C218; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -3779,10 +3755,6 @@ DEFINE_func_8017C8B4() /* dedup: shared engine-core @0x8017C8B4 (src/shared) */ void func_8017C910(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017C910; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017C910; - typedef struct { SVec_8017C910_8017C910 v[2]; Clr_8017C910_8017C910 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017C910; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017C910; extern Mtx8_8017C910_8017C910 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017C910 prim; diff --git a/src/ov_SC03_090/ov_SC03_090_jr_8017CA80.c b/src/ov_SC03_090/ov_SC03_090_jr_8017CA80.c index 3d5d74067f..90d2aa5f73 100644 --- a/src/ov_SC03_090/ov_SC03_090_jr_8017CA80.c +++ b/src/ov_SC03_090/ov_SC03_090_jr_8017CA80.c @@ -3373,20 +3373,9 @@ void func_8017CA80(s32 arg0) : "memory" ) /* ---- the two gouraud-textured packet layouts this function emits ---------- */ -typedef struct { - u32 tag; - u32 rgb0; s16 x0, y0; u32 uv0; - u32 rgb1; s16 x1, y1; u32 uv1; - u32 rgb2; s16 x2, y2; u16 uv2, p2; -} PolyGT3; /* 0x28 */ + /* 0x28 */ -typedef struct { - u32 tag; - u32 rgb0; s16 x0, y0; u32 uv0; - u32 rgb1; s16 x1, y1; u32 uv1; - u32 rgb2; s16 x2, y2; u16 uv2, p2; - u32 rgb3; s16 x3, y3; u16 uv3, p3; -} PolyGT4; /* 0x34 */ + /* 0x34 */ /* ---- the three light-volume descriptors ---------------------------------- */ extern s32 D_801CBC68; @@ -4348,9 +4337,6 @@ INCLUDE_ASM("asm/ov_SC03_090/nonmatchings/ov_SC03_090_jr_8017CA80", func_8018197 /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D6D0_80181AA0; extern u16 func_80148800(s32 *a0); extern void func_80181D30(s32 param_1, s16 *param_2); @@ -4379,9 +4365,6 @@ INCLUDE_ASM("asm/ov_SC03_090/nonmatchings/ov_SC03_090_jr_8017CA80", func_80181B5 /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D6D0_80181C80; extern u16 func_80148800(s32 *a0); extern void func_80181D30(s32 param_1, s16 *param_2); @@ -4506,12 +4489,7 @@ void func_80181FA4(s32 a0) { extern u16 D_801A0B54[]; extern u16 D_801A0B7C[]; extern void (*D_801A0BA4[])(s32); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FAC0_80181FA4; /* 8 bytes */ + /* 8 bytes */ V4_8017FAC0_80181FA4 p1; V4_8017FAC0_80181FA4 p2; @@ -4595,29 +4573,8 @@ void func_8018223C(void *arg0) { extern u8 D_801202A0[]; extern void (*D_801A0BF0[])(void *); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FD58_8018223C; /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ - typedef struct { - u16 f0; /* 0x00 */ - u16 f2; /* 0x02 */ - u16 f4; /* 0x04 */ - u16 x; /* 0x06 */ - u16 f8; /* 0x08 */ - u16 y; /* 0x0A */ - u16 fC; /* 0x0C */ - u16 z; /* 0x0E */ - u8 p10[0x10]; - s32 f20; /* 0x20 */ - u8 p24[0x34]; - s32 f58; /* 0x58 */ - u8 p5C[8]; - s32 f64; /* 0x64 */ - u8 p68[0x10C - 0x68]; - } Ent_8017FD58_8018223C; /* stride 0x10C, 0x60 entries (0x6480) */ + /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ + /* stride 0x10C, 0x60 entries (0x6480) */ /* Two further V4 slots the original body declared ahead of `pos` but that * this function never reads: the target frame is 0x50 with locals at @@ -5197,7 +5154,6 @@ extern void func_8012E688(void *a0, s32 a1, s32 a2); void func_80183308(s32 a0) { s32 ret = func_8012BD14(a0); if (ret <= 0x64000) { - typedef struct { s32 f0; s32 f1; } Struct_80183308; Struct_80183308 *ptr = *(Struct_80183308 **)(a0 + 0x20); *(s16 *)(a0 + 0x2) = 1; ptr->f1 = ptr->f1 & 0x7FFFFFFF; @@ -6574,9 +6530,6 @@ void func_80188498(s32 a0) { extern u8 D_800AF648; extern u8 D_801B84C4[]; extern u8 D_801B7E34[]; - typedef struct { - u16 x, y, z, w; - } V8_80188498; s32 mv[4]; /* sp+0x10 : the 4-word block handed to func_8012B1B4 */ V8_80188498 pad[2]; /* sp+0x20 : gcc's own area (vars must be 0x48 for a 0x68 frame) */ V8_80188498 sp30; /* sp+0x30 : func_80133784 arg1 */ @@ -6706,9 +6659,6 @@ void func_8018884C(s32 a0) { extern u8 D_801B8DC4[]; extern u8 D_801B8744[]; extern u8 D_801B8FCC[]; - typedef struct { - u16 x, y, z, w; - } V8_8018884C; s32 sp10[4]; V8_8018884C pad[2]; V8_8018884C sp30; @@ -6942,9 +6892,6 @@ void func_80188CF4(s32 a0) { extern u8 D_801ABD7C[]; extern u8 D_801B8A84[]; - typedef struct { - u16 x, y, z, w; - } V8_80188CF4; V8_80188CF4 pad[2]; V8_80188CF4 sp20; V8_80188CF4 sp28; @@ -7479,7 +7426,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_80189880(s32 a0) { extern u8 D_801ABA98[]; - typedef struct { u16 x, y, z, w; } V8_80189880; V8_80189880 sp10; V8_80189880 sp18; @@ -7596,9 +7542,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_80189AA0(s32 *s0) { extern u8 D_801ABA98[]; - typedef struct { - u16 a, b, c, d; - } Data_t_80189AA0; Data_t_80189AA0 buf_src, buf_dst; s32 v0; @@ -8328,9 +8271,6 @@ INCLUDE_ASM("asm/ov_SC03_090/nonmatchings/ov_SC03_090_jr_8017CA80", func_8018ABC * text is a harmless legal redefinition once spliced in. */ -typedef struct { u16 vx, vy; } Pt2_8018AC0C; -typedef struct { u8 pad[0x10]; Pt2_8018AC0C pt[12]; } Src_8018AC0C; -typedef struct { u16 vx, vy, vz, pad; } Vec8_8018AC0C; extern void func_8001E094(void); extern void func_8001E378(void *a0); @@ -8503,32 +8443,8 @@ void func_8018AC0C(void *a0, void *a1) * file-local type/macro suffixes renamed to _8018B028. */ -typedef struct { - u32 addr : 24; - u32 len : 8; -} PTag_8018B028; -typedef struct { - PTag_8018B028 tag; - u8 r0, g0, b0, code; - u16 x0, y0; - u8 u0, v0; - u16 clut; - u16 x1, y1; - u8 u1, v1; - u16 tpage; - u16 x2, y2; - u8 u2, v2; - u16 pad2; - u16 x3, y3; - u8 u3, v3; - u16 pad3; -} Ft4_8018B028; -typedef struct { - PTag_8018B028 tag; - u32 code0; -} Drm_8018B028; #define ADDPRIM_8018B028(o, p) \ (((PTag_8018B028 *)(p))->addr = ((PTag_8018B028 *)(o))->addr, \ diff --git a/src/ov_SC03_090/ov_SC03_090_o0c.c b/src/ov_SC03_090/ov_SC03_090_o0c.c index 075408f23c..e5e9e5c4e5 100644 --- a/src/ov_SC03_090/ov_SC03_090_o0c.c +++ b/src/ov_SC03_090/ov_SC03_090_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801CBC68[]; D_801CBC68[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801CBC68[]; D_801CBC68[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801CBC68[]; D_801CBC68[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801CBD20; extern s32 D_801CBD84; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801CBC68"); extern s32 D_801CBD04; extern s32 D_801CBD08; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_091/ov_SC03_091.c b/src/ov_SC03_091/ov_SC03_091.c index ae20000563..9f3bbcf54f 100644 --- a/src/ov_SC03_091/ov_SC03_091.c +++ b/src/ov_SC03_091/ov_SC03_091.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_091/ov_SC03_091_after.c b/src/ov_SC03_091/ov_SC03_091_after.c index c99de407e3..04e913748c 100644 --- a/src/ov_SC03_091/ov_SC03_091_after.c +++ b/src/ov_SC03_091/ov_SC03_091_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_091/ov_SC03_091_jr_8012ACE0.c b/src/ov_SC03_091/ov_SC03_091_jr_8012ACE0.c index ae3389ff76..2a29546db3 100644 --- a/src/ov_SC03_091/ov_SC03_091_jr_8012ACE0.c +++ b/src/ov_SC03_091/ov_SC03_091_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_091/ov_SC03_091_jr_801380E0.c b/src/ov_SC03_091/ov_SC03_091_jr_801380E0.c index 33e7758058..03b5561118 100644 --- a/src/ov_SC03_091/ov_SC03_091_jr_801380E0.c +++ b/src/ov_SC03_091/ov_SC03_091_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018CF00[]; u16 t; u8 b; diff --git a/src/ov_SC03_091/ov_SC03_091_jr_80140608.c b/src/ov_SC03_091/ov_SC03_091_jr_80140608.c index ca40b229ec..3ff3693e2c 100644 --- a/src/ov_SC03_091/ov_SC03_091_jr_80140608.c +++ b/src/ov_SC03_091/ov_SC03_091_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8018DCC0[]; extern u16 D_8018D7D0; extern u16 D_8018D7D2; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_091/ov_SC03_091_jr_8016AB6C.c b/src/ov_SC03_091/ov_SC03_091_jr_8016AB6C.c index ccc2481e42..1de2fb6650 100644 --- a/src/ov_SC03_091/ov_SC03_091_jr_8016AB6C.c +++ b/src/ov_SC03_091/ov_SC03_091_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_091/ov_SC03_091_jr_801734BC.c b/src/ov_SC03_091/ov_SC03_091_jr_801734BC.c index 65b9d38af9..411862c586 100644 --- a/src/ov_SC03_091/ov_SC03_091_jr_801734BC.c +++ b/src/ov_SC03_091/ov_SC03_091_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_091/ov_SC03_091_jr_8017AE2C.c b/src/ov_SC03_091/ov_SC03_091_jr_8017AE2C.c index e0d54920ce..455c73b162 100644 --- a/src/ov_SC03_091/ov_SC03_091_jr_8017AE2C.c +++ b/src/ov_SC03_091/ov_SC03_091_jr_8017AE2C.c @@ -3347,8 +3347,6 @@ void func_8017BEBC(s32 param_1, s32 param_2) extern s32 D_801D22CC; extern s32 D_801D22D0; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_8017BEBC; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017BEBC; SV4_L_8017BEBC vec; /* sp+0x10 */ MTX_L_8017BEBC mtx; /* sp+0x18 */ @@ -3504,8 +3502,6 @@ void func_8017BFEC(s32 a0) { extern u8 D_801D22DE; extern u8 D_801D22E4; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017BFEC; - typedef struct { Rec027_8017BFEC r[9]; } Blk027_8017BFEC; extern Blk027_8017BFEC D_801CC6A8; extern Blk027_8017BFEC D_801D2358[]; @@ -3781,14 +3777,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_8017BEBC(s32 a0, s32 a1); void func_8017C738(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_8017C738; extern Rec_8017C738_8017C738 D_801CC6A8[]; Rec_8017C738_8017C738 *q = D_801CC6A8; @@ -4097,17 +4085,6 @@ void func_8017CD9C(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017CDF8 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017CDF8; extern void func_80147324(s32 arg0); extern void func_8017D030(int); @@ -4221,24 +4198,11 @@ void func_8017CFE4(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017D030; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017D030; -typedef struct { - SVec8_8017C218_8017D030 v[4]; /* 0x00 */ - CVec4_8017C218_8017D030 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017D030; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017D030; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -4559,10 +4523,6 @@ void func_8017D6CC(void *a0) void func_8017D728(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017D728; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017D728; - typedef struct { SVec_8017C910_8017D728 v[2]; Clr_8017C910_8017D728 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017D728; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017D728; extern Mtx8_8017C910_8017D728 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017D728 prim; diff --git a/src/ov_SC03_091/ov_SC03_091_jr_8017D898.c b/src/ov_SC03_091/ov_SC03_091_jr_8017D898.c index 2058a6cb35..883576e006 100644 --- a/src/ov_SC03_091/ov_SC03_091_jr_8017D898.c +++ b/src/ov_SC03_091/ov_SC03_091_jr_8017D898.c @@ -3392,20 +3392,9 @@ void func_8017D898(s32 arg0) : "memory" ) /* ---- the two gouraud-textured packet layouts this function emits ---------- */ -typedef struct { - u32 tag; - u32 rgb0; s16 x0, y0; u32 uv0; - u32 rgb1; s16 x1, y1; u32 uv1; - u32 rgb2; s16 x2, y2; u16 uv2, p2; -} PolyGT3; /* 0x28 */ + /* 0x28 */ -typedef struct { - u32 tag; - u32 rgb0; s16 x0, y0; u32 uv0; - u32 rgb1; s16 x1, y1; u32 uv1; - u32 rgb2; s16 x2, y2; u16 uv2, p2; - u32 rgb3; s16 x3, y3; u16 uv3, p3; -} PolyGT4; /* 0x34 */ + /* 0x34 */ /* ---- the three light-volume descriptors ---------------------------------- */ extern s32 D_801D25B8; diff --git a/src/ov_SC03_091/ov_SC03_091_jr_80182268.c b/src/ov_SC03_091/ov_SC03_091_jr_80182268.c index 438c7c941b..1abaf679d5 100644 --- a/src/ov_SC03_091/ov_SC03_091_jr_80182268.c +++ b/src/ov_SC03_091/ov_SC03_091_jr_80182268.c @@ -2847,9 +2847,6 @@ INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091_jr_80182268", func_8018278 /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D6D0_801828B8; extern u16 func_80148800(s32 *a0); extern void func_80182B48(s32 param_1, s16 *param_2); @@ -2878,9 +2875,6 @@ INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091_jr_80182268", func_8018296 /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D6D0_80182A98; extern u16 func_80148800(s32 *a0); extern void func_80182B48(s32 param_1, s16 *param_2); @@ -3004,12 +2998,7 @@ void func_80182E4C(s32 a0) { extern u16 D_801A3B80[]; extern u16 D_801A3BA8[]; extern void (*D_801A3BD0[])(s32); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FAC0_80182E4C; /* 8 bytes */ + /* 8 bytes */ V4_8017FAC0_80182E4C p1; V4_8017FAC0_80182E4C p2; @@ -3093,29 +3082,8 @@ void func_801830E4(void *arg0) { extern u8 D_801202A0[]; extern void (*D_801A3C1C[])(void *); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FD58_801830E4; /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ - typedef struct { - u16 f0; /* 0x00 */ - u16 f2; /* 0x02 */ - u16 f4; /* 0x04 */ - u16 x; /* 0x06 */ - u16 f8; /* 0x08 */ - u16 y; /* 0x0A */ - u16 fC; /* 0x0C */ - u16 z; /* 0x0E */ - u8 p10[0x10]; - s32 f20; /* 0x20 */ - u8 p24[0x34]; - s32 f58; /* 0x58 */ - u8 p5C[8]; - s32 f64; /* 0x64 */ - u8 p68[0x10C - 0x68]; - } Ent_8017FD58_801830E4; /* stride 0x10C, 0x60 entries (0x6480) */ + /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ + /* stride 0x10C, 0x60 entries (0x6480) */ /* Two further V4 slots the original body declared ahead of `pos` but that * this function never reads: the target frame is 0x50 with locals at @@ -3695,7 +3663,6 @@ extern void func_8012E688(void *a0, s32 a1, s32 a2); void func_801841B0(s32 a0) { s32 ret = func_8012BD14(a0); if (ret <= 0x64000) { - typedef struct { s32 f0; s32 f1; } Struct_801841B0; Struct_801841B0 *ptr = *(Struct_801841B0 **)(a0 + 0x20); *(s16 *)(a0 + 0x2) = 1; ptr->f1 = ptr->f1 & 0x7FFFFFFF; @@ -5074,9 +5041,6 @@ void func_80189340(s32 a0) { extern u8 D_800AF648; extern u8 D_801BB4F0[]; extern u8 D_801BAE60[]; - typedef struct { - u16 x, y, z, w; - } V8_80189340; s32 mv[4]; /* sp+0x10 : the 4-word block handed to func_8012B1B4 */ V8_80189340 pad[2]; /* sp+0x20 : gcc's own area (vars must be 0x48 for a 0x68 frame) */ V8_80189340 sp30; /* sp+0x30 : func_80133784 arg1 */ @@ -5206,9 +5170,6 @@ void func_801896F4(s32 a0) { extern u8 D_801BBDF0[]; extern u8 D_801BB770[]; extern u8 D_801BBFF8[]; - typedef struct { - u16 x, y, z, w; - } V8_801896F4; s32 sp10[4]; V8_801896F4 pad[2]; V8_801896F4 sp30; @@ -5442,9 +5403,6 @@ void func_80189B9C(s32 a0) { extern u8 D_801AEDA8[]; extern u8 D_801BBAB0[]; - typedef struct { - u16 x, y, z, w; - } V8_80189B9C; V8_80189B9C pad[2]; V8_80189B9C sp20; V8_80189B9C sp28; @@ -5979,7 +5937,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_8018A728(s32 a0) { extern u8 D_801AEAC4[]; - typedef struct { u16 x, y, z, w; } V8_8018A728; V8_8018A728 sp10; V8_8018A728 sp18; @@ -6096,9 +6053,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_8018A948(s32 *s0) { extern u8 D_801AEAC4[]; - typedef struct { - u16 a, b, c, d; - } Data_t_8018A948; Data_t_8018A948 buf_src, buf_dst; s32 v0; @@ -6820,9 +6774,6 @@ INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091_jr_80182268", func_8018BA6 void func_8018BAB4(void *a0, void *a1) { - typedef struct { u16 vx, vy; } Pt2_8018BAB4; - typedef struct { u8 pad[0x10]; Pt2_8018BAB4 pt[12]; } Src_8018BAB4; - typedef struct { u16 vx, vy, vz, pad; } Vec8_8018BAB4; extern void func_8001E094(void); extern void func_8001E378(void *a0); @@ -6984,32 +6935,8 @@ void func_8018BAB4(void *a0, void *a1) #include "common.h" -typedef struct { - u32 addr : 24; - u32 len : 8; -} PTag_8018BED0; -typedef struct { - PTag_8018BED0 tag; - u8 r0, g0, b0, code; - u16 x0, y0; - u8 u0, v0; - u16 clut; - u16 x1, y1; - u8 u1, v1; - u16 tpage; - u16 x2, y2; - u8 u2, v2; - u16 pad2; - u16 x3, y3; - u8 u3, v3; - u16 pad3; -} Ft4_8018BED0; -typedef struct { - PTag_8018BED0 tag; - u32 code0; -} Drm_8018BED0; #define ADDPRIM_8018BED0(o, p) \ (((PTag_8018BED0 *)(p))->addr = ((PTag_8018BED0 *)(o))->addr, \ diff --git a/src/ov_SC03_091/ov_SC03_091_o0c.c b/src/ov_SC03_091/ov_SC03_091_o0c.c index 04fec29bb7..19c830f687 100644 --- a/src/ov_SC03_091/ov_SC03_091_o0c.c +++ b/src/ov_SC03_091/ov_SC03_091_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801D25B8[]; D_801D25B8[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801D25B8[]; D_801D25B8[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801D25B8[]; D_801D25B8[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801D2670; extern s32 D_801D26D4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801D25B8"); extern s32 D_801D2654; extern s32 D_801D2658; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_092/ov_SC03_092.c b/src/ov_SC03_092/ov_SC03_092.c index 3dbbd6aafc..e6b50e86a8 100644 --- a/src/ov_SC03_092/ov_SC03_092.c +++ b/src/ov_SC03_092/ov_SC03_092.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_092/ov_SC03_092_after.c b/src/ov_SC03_092/ov_SC03_092_after.c index 7cb07b96b9..89b38edd54 100644 --- a/src/ov_SC03_092/ov_SC03_092_after.c +++ b/src/ov_SC03_092/ov_SC03_092_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_092/ov_SC03_092_jr_8012ACE0.c b/src/ov_SC03_092/ov_SC03_092_jr_8012ACE0.c index bbec8b6593..8c9494f2d4 100644 --- a/src/ov_SC03_092/ov_SC03_092_jr_8012ACE0.c +++ b/src/ov_SC03_092/ov_SC03_092_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_092/ov_SC03_092_jr_801380E0.c b/src/ov_SC03_092/ov_SC03_092_jr_801380E0.c index 8472d2523c..6105578adf 100644 --- a/src/ov_SC03_092/ov_SC03_092_jr_801380E0.c +++ b/src/ov_SC03_092/ov_SC03_092_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_801852D0[]; u16 t; u8 b; diff --git a/src/ov_SC03_092/ov_SC03_092_jr_80140608.c b/src/ov_SC03_092/ov_SC03_092_jr_80140608.c index 746ff7b558..95dc702735 100644 --- a/src/ov_SC03_092/ov_SC03_092_jr_80140608.c +++ b/src/ov_SC03_092/ov_SC03_092_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80186090[]; extern u16 D_80185BA0; extern u16 D_80185BA2; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_092/ov_SC03_092_jr_8016AB6C.c b/src/ov_SC03_092/ov_SC03_092_jr_8016AB6C.c index a4fcf0803b..dba6e40807 100644 --- a/src/ov_SC03_092/ov_SC03_092_jr_8016AB6C.c +++ b/src/ov_SC03_092/ov_SC03_092_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_092/ov_SC03_092_jr_801734BC.c b/src/ov_SC03_092/ov_SC03_092_jr_801734BC.c index 7338f508fa..d871b80ee1 100644 --- a/src/ov_SC03_092/ov_SC03_092_jr_801734BC.c +++ b/src/ov_SC03_092/ov_SC03_092_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_092/nonmatchings/ov_SC03_092_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_092/ov_SC03_092_jr_8017AE2C.c b/src/ov_SC03_092/ov_SC03_092_jr_8017AE2C.c index cfc7b8dff2..fa64fa261e 100644 --- a/src/ov_SC03_092/ov_SC03_092_jr_8017AE2C.c +++ b/src/ov_SC03_092/ov_SC03_092_jr_8017AE2C.c @@ -3372,17 +3372,6 @@ void func_8017BF84(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017BFE0 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017BFE0; extern void func_80147324(s32 arg0); extern void func_8017C218(int); @@ -3483,24 +3472,11 @@ DEFINE_func_8017C1CC() /* dedup: shared engine-core @0x8017C1CC (src/shared) */ * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017C218; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017C218; -typedef struct { - SVec8_8017C218_8017C218 v[4]; /* 0x00 */ - CVec4_8017C218_8017C218 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017C218; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017C218; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -3782,10 +3758,6 @@ DEFINE_func_8017C8B4() /* dedup: shared engine-core @0x8017C8B4 (src/shared) */ void func_8017C910(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017C910; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017C910; - typedef struct { SVec_8017C910_8017C910 v[2]; Clr_8017C910_8017C910 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017C910; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017C910; extern Mtx8_8017C910_8017C910 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017C910 prim; @@ -4669,12 +4641,7 @@ void func_80181274(s32 a0) { extern u16 D_801AD358[]; extern u16 D_801AD380[]; extern void (*D_801AD3A8[])(s32); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FAC0_80181274; /* 8 bytes */ + /* 8 bytes */ V4_8017FAC0_80181274 p1; V4_8017FAC0_80181274 p2; @@ -4758,29 +4725,8 @@ void func_8018150C(void *arg0) { extern u8 D_801202A0[]; extern void (*D_801AD3F4[])(void *); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FD58_8018150C; /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ - typedef struct { - u16 f0; /* 0x00 */ - u16 f2; /* 0x02 */ - u16 f4; /* 0x04 */ - u16 x; /* 0x06 */ - u16 f8; /* 0x08 */ - u16 y; /* 0x0A */ - u16 fC; /* 0x0C */ - u16 z; /* 0x0E */ - u8 p10[0x10]; - s32 f20; /* 0x20 */ - u8 p24[0x34]; - s32 f58; /* 0x58 */ - u8 p5C[8]; - s32 f64; /* 0x64 */ - u8 p68[0x10C - 0x68]; - } Ent_8017FD58_8018150C; /* stride 0x10C, 0x60 entries (0x6480) */ + /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ + /* stride 0x10C, 0x60 entries (0x6480) */ /* Two further V4 slots the original body declared ahead of `pos` but that * this function never reads: the target frame is 0x50 with locals at @@ -5239,7 +5185,6 @@ extern void func_8012E688(void *a0, s32 a1, s32 a2); void func_801825D8(s32 a0) { s32 ret = func_8012BD14(a0); if (ret <= 0x64000) { - typedef struct { s32 f0; s32 f1; } Struct_801825D8; Struct_801825D8 *ptr = *(Struct_801825D8 **)(a0 + 0x20); *(s16 *)(a0 + 0x2) = 1; ptr->f1 = ptr->f1 & 0x7FFFFFFF; @@ -6257,9 +6202,6 @@ INCLUDE_ASM("asm/ov_SC03_092/nonmatchings/ov_SC03_092_jr_8017AE2C", func_8018432 void func_80184370(void *a0, void *a1) { - typedef struct { u16 vx, vy; } Pt2_80184370; - typedef struct { u8 pad[0x10]; Pt2_80184370 pt[12]; } Src_80184370; - typedef struct { u16 vx, vy, vz, pad; } Vec8_80184370; extern void func_8001E094(void); extern void func_8001E378(void *a0); @@ -6371,32 +6313,8 @@ void func_80184370(void *a0, void *a1) #include "common.h" -typedef struct { - u32 addr : 24; - u32 len : 8; -} PTag_8018478C; -typedef struct { - PTag_8018478C tag; - u8 r0, g0, b0, code; - u16 x0, y0; - u8 u0, v0; - u16 clut; - u16 x1, y1; - u8 u1, v1; - u16 tpage; - u16 x2, y2; - u8 u2, v2; - u16 pad2; - u16 x3, y3; - u8 u3, v3; - u16 pad3; -} Ft4_8018478C; -typedef struct { - PTag_8018478C tag; - u32 code0; -} Drm_8018478C; #define ADDPRIM_8018478C(o, p) \ (((PTag_8018478C *)(p))->addr = ((PTag_8018478C *)(o))->addr, \ diff --git a/src/ov_SC03_092/ov_SC03_092_o0c.c b/src/ov_SC03_092/ov_SC03_092_o0c.c index 0d928031a0..0e1d381316 100644 --- a/src/ov_SC03_092/ov_SC03_092_o0c.c +++ b/src/ov_SC03_092/ov_SC03_092_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801B2F60[]; D_801B2F60[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801B2F60[]; D_801B2F60[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801B2F60[]; D_801B2F60[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801B3018; extern s32 D_801B307C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801B2F60"); extern s32 D_801B2FFC; extern s32 D_801B3000; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_093/ov_SC03_093.c b/src/ov_SC03_093/ov_SC03_093.c index 74da318adb..fef1bbfd90 100644 --- a/src/ov_SC03_093/ov_SC03_093.c +++ b/src/ov_SC03_093/ov_SC03_093.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_093/ov_SC03_093_after.c b/src/ov_SC03_093/ov_SC03_093_after.c index c18c14410f..f0402a4422 100644 --- a/src/ov_SC03_093/ov_SC03_093_after.c +++ b/src/ov_SC03_093/ov_SC03_093_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_093/ov_SC03_093_jr_8012ACE0.c b/src/ov_SC03_093/ov_SC03_093_jr_8012ACE0.c index 5b00d9b12e..e4b8b32502 100644 --- a/src/ov_SC03_093/ov_SC03_093_jr_8012ACE0.c +++ b/src/ov_SC03_093/ov_SC03_093_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_093/ov_SC03_093_jr_801380E0.c b/src/ov_SC03_093/ov_SC03_093_jr_801380E0.c index 0a007a1d08..233982be9b 100644 --- a/src/ov_SC03_093/ov_SC03_093_jr_801380E0.c +++ b/src/ov_SC03_093/ov_SC03_093_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_801864A8[]; u16 t; u8 b; diff --git a/src/ov_SC03_093/ov_SC03_093_jr_80140608.c b/src/ov_SC03_093/ov_SC03_093_jr_80140608.c index a88e9d2a0a..ca747c6ef3 100644 --- a/src/ov_SC03_093/ov_SC03_093_jr_80140608.c +++ b/src/ov_SC03_093/ov_SC03_093_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80187268[]; extern u16 D_80186D78; extern u16 D_80186D7A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_093/ov_SC03_093_jr_8016AB6C.c b/src/ov_SC03_093/ov_SC03_093_jr_8016AB6C.c index dcd1221a76..d2f34ca909 100644 --- a/src/ov_SC03_093/ov_SC03_093_jr_8016AB6C.c +++ b/src/ov_SC03_093/ov_SC03_093_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_093/ov_SC03_093_jr_801734BC.c b/src/ov_SC03_093/ov_SC03_093_jr_801734BC.c index a89819fc80..cccb873cd3 100644 --- a/src/ov_SC03_093/ov_SC03_093_jr_801734BC.c +++ b/src/ov_SC03_093/ov_SC03_093_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_093/nonmatchings/ov_SC03_093_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_093/ov_SC03_093_jr_8017AE2C.c b/src/ov_SC03_093/ov_SC03_093_jr_8017AE2C.c index 1db1f11ec8..89fb18b902 100644 --- a/src/ov_SC03_093/ov_SC03_093_jr_8017AE2C.c +++ b/src/ov_SC03_093/ov_SC03_093_jr_8017AE2C.c @@ -3347,8 +3347,6 @@ void func_8017BEBC(s32 param_1, s32 param_2) extern s32 D_801CC304; extern s32 D_801CC308; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_8017BEBC; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017BEBC; SV4_L_8017BEBC vec; /* sp+0x10 */ MTX_L_8017BEBC mtx; /* sp+0x18 */ @@ -3504,8 +3502,6 @@ void func_8017BFEC(s32 a0) { extern u8 D_801CC316; extern u8 D_801CC31C; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017BFEC; - typedef struct { Rec027_8017BFEC r[9]; } Blk027_8017BFEC; extern Blk027_8017BFEC D_801C68BC; extern Blk027_8017BFEC D_801CC390[]; @@ -3781,14 +3777,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_8017BEBC(s32 a0, s32 a1); void func_8017C738(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_8017C738; extern Rec_8017C738_8017C738 D_801C68BC[]; Rec_8017C738_8017C738 *q = D_801C68BC; @@ -4097,17 +4085,6 @@ void func_8017CD9C(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017CDF8 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017CDF8; extern void func_80147324(s32 arg0); extern void func_8017D030(int); @@ -4221,24 +4198,11 @@ void func_8017CFE4(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017D030; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017D030; -typedef struct { - SVec8_8017C218_8017D030 v[4]; /* 0x00 */ - CVec4_8017C218_8017D030 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017D030; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017D030; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -4559,10 +4523,6 @@ void func_8017D6CC(void *a0) void func_8017D728(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017D728; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017D728; - typedef struct { SVec_8017C910_8017D728 v[2]; Clr_8017C910_8017D728 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017D728; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017D728; extern Mtx8_8017C910_8017D728 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017D728 prim; diff --git a/src/ov_SC03_093/ov_SC03_093_jr_8017D898.c b/src/ov_SC03_093/ov_SC03_093_jr_8017D898.c index ad6c98f85c..e496f23553 100644 --- a/src/ov_SC03_093/ov_SC03_093_jr_8017D898.c +++ b/src/ov_SC03_093/ov_SC03_093_jr_8017D898.c @@ -3437,9 +3437,6 @@ void func_8017ECBC(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017ECF8; extern u16 func_80148800(s32 *a0); extern void func_8017EF20(s32 param_1, s16 *param_2); @@ -3464,9 +3461,6 @@ void func_8017ECF8(s32 a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017ED98; extern u16 func_80148800(s32 *a0); extern void func_8017EF20(s32 param_1, s16 *param_2); @@ -3695,12 +3689,7 @@ void func_8017FA54(s32 a0) { extern u16 D_801A2198[]; extern u16 D_801A21C0[]; extern void (*D_801A21E8[])(s32); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FAC0_8017FA54; /* 8 bytes */ + /* 8 bytes */ V4_8017FAC0_8017FA54 p1; V4_8017FAC0_8017FA54 p2; @@ -3784,29 +3773,8 @@ void func_8017FCEC(void *arg0) { extern u8 D_801202A0[]; extern void (*D_801A2234[])(void *); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FD58_8017FCEC; /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ - typedef struct { - u16 f0; /* 0x00 */ - u16 f2; /* 0x02 */ - u16 f4; /* 0x04 */ - u16 x; /* 0x06 */ - u16 f8; /* 0x08 */ - u16 y; /* 0x0A */ - u16 fC; /* 0x0C */ - u16 z; /* 0x0E */ - u8 p10[0x10]; - s32 f20; /* 0x20 */ - u8 p24[0x34]; - s32 f58; /* 0x58 */ - u8 p5C[8]; - s32 f64; /* 0x64 */ - u8 p68[0x10C - 0x68]; - } Ent_8017FD58_8017FCEC; /* stride 0x10C, 0x60 entries (0x6480) */ + /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ + /* stride 0x10C, 0x60 entries (0x6480) */ /* Two further V4 slots the original body declared ahead of `pos` but that * this function never reads: the target frame is 0x50 with locals at @@ -4387,7 +4355,6 @@ extern void func_8012E688(void *a0, s32 a1, s32 a2); void func_80180DB8(s32 a0) { s32 ret = func_8012BD14(a0); if (ret <= 0x64000) { - typedef struct { s32 f0; s32 f1; } Struct_80180DB8; Struct_80180DB8 *ptr = *(Struct_80180DB8 **)(a0 + 0x20); *(s16 *)(a0 + 0x2) = 1; ptr->f1 = ptr->f1 & 0x7FFFFFFF; @@ -4940,9 +4907,6 @@ void func_801827DC(s32 a0) { extern u8 D_800AF648; extern u8 D_801B52EC[]; extern u8 D_801B4C5C[]; - typedef struct { - u16 x, y, z, w; - } V8_801827DC; s32 mv[4]; /* sp+0x10 : the 4-word block handed to func_8012B1B4 */ V8_801827DC pad[2]; /* sp+0x20 : gcc's own area (vars must be 0x48 for a 0x68 frame) */ V8_801827DC sp30; /* sp+0x30 : func_80133784 arg1 */ @@ -5072,9 +5036,6 @@ void func_80182B90(s32 a0) { extern u8 D_801B5BEC[]; extern u8 D_801B556C[]; extern u8 D_801B5DF4[]; - typedef struct { - u16 x, y, z, w; - } V8_80182B90; s32 sp10[4]; V8_80182B90 pad[2]; V8_80182B90 sp30; @@ -5308,9 +5269,6 @@ void func_80183038(s32 a0) { extern u8 D_801A8BA4[]; extern u8 D_801B58AC[]; - typedef struct { - u16 x, y, z, w; - } V8_80183038; V8_80183038 pad[2]; V8_80183038 sp20; V8_80183038 sp28; @@ -5845,7 +5803,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_80183BC4(s32 a0) { extern u8 D_801A88C0[]; - typedef struct { u16 x, y, z, w; } V8_80183BC4; V8_80183BC4 sp10; V8_80183BC4 sp18; @@ -5962,9 +5919,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_80183DE4(s32 *s0) { extern u8 D_801A88C0[]; - typedef struct { - u16 a, b, c, d; - } Data_t_80183DE4; Data_t_80183DE4 buf_src, buf_dst; s32 v0; diff --git a/src/ov_SC03_093/ov_SC03_093_o0c.c b/src/ov_SC03_093/ov_SC03_093_o0c.c index 3ab8fb6d8d..c089bf7d68 100644 --- a/src/ov_SC03_093/ov_SC03_093_o0c.c +++ b/src/ov_SC03_093/ov_SC03_093_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801CC5B8[]; D_801CC5B8[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801CC5B8[]; D_801CC5B8[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801CC5B8[]; D_801CC5B8[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801CC670; extern s32 D_801CC6D4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801CC5B8"); extern s32 D_801CC654; extern s32 D_801CC658; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_094/ov_SC03_094.c b/src/ov_SC03_094/ov_SC03_094.c index 0ac1d42ca5..39cbefc26a 100644 --- a/src/ov_SC03_094/ov_SC03_094.c +++ b/src/ov_SC03_094/ov_SC03_094.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_094/ov_SC03_094_after.c b/src/ov_SC03_094/ov_SC03_094_after.c index ec0f31234e..a9e4dbda93 100644 --- a/src/ov_SC03_094/ov_SC03_094_after.c +++ b/src/ov_SC03_094/ov_SC03_094_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_094/ov_SC03_094_jr_8012ACE0.c b/src/ov_SC03_094/ov_SC03_094_jr_8012ACE0.c index 252440c78a..2ada827104 100644 --- a/src/ov_SC03_094/ov_SC03_094_jr_8012ACE0.c +++ b/src/ov_SC03_094/ov_SC03_094_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_094/ov_SC03_094_jr_801380E0.c b/src/ov_SC03_094/ov_SC03_094_jr_801380E0.c index efb50ac36f..9d330ea54a 100644 --- a/src/ov_SC03_094/ov_SC03_094_jr_801380E0.c +++ b/src/ov_SC03_094/ov_SC03_094_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80187EA4[]; u16 t; u8 b; diff --git a/src/ov_SC03_094/ov_SC03_094_jr_80140608.c b/src/ov_SC03_094/ov_SC03_094_jr_80140608.c index 3d138d0afb..9f7742bba0 100644 --- a/src/ov_SC03_094/ov_SC03_094_jr_80140608.c +++ b/src/ov_SC03_094/ov_SC03_094_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80188C64[]; extern u16 D_80188774; extern u16 D_80188776; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_094/ov_SC03_094_jr_8016AB6C.c b/src/ov_SC03_094/ov_SC03_094_jr_8016AB6C.c index 39eec1a579..290c7cd65b 100644 --- a/src/ov_SC03_094/ov_SC03_094_jr_8016AB6C.c +++ b/src/ov_SC03_094/ov_SC03_094_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_094/ov_SC03_094_jr_801734BC.c b/src/ov_SC03_094/ov_SC03_094_jr_801734BC.c index deaf232928..48ab5ebfe7 100644 --- a/src/ov_SC03_094/ov_SC03_094_jr_801734BC.c +++ b/src/ov_SC03_094/ov_SC03_094_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_094/nonmatchings/ov_SC03_094_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_094/ov_SC03_094_jr_8017BEBC.c b/src/ov_SC03_094/ov_SC03_094_jr_8017BEBC.c index 3b417168f6..9555442a3c 100644 --- a/src/ov_SC03_094/ov_SC03_094_jr_8017BEBC.c +++ b/src/ov_SC03_094/ov_SC03_094_jr_8017BEBC.c @@ -3467,9 +3467,6 @@ void func_8017D37C(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D3B8; extern u16 func_80148800(s32 *a0); extern void func_8017D6D0(s32 param_1, s16 *param_2); @@ -3498,9 +3495,6 @@ INCLUDE_ASM("asm/ov_SC03_094/nonmatchings/ov_SC03_094_jr_8017BEBC", func_8017D54 /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D630; extern u16 func_80148800(s32 *a0); extern void func_8017D6D0(s32 param_1, s16 *param_2); @@ -3710,12 +3704,7 @@ void func_8017EC9C(s32 a0) { extern u16 D_801A68D4[]; extern u16 D_801A68FC[]; extern void (*D_801A6924[])(s32); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FAC0_8017EC9C; /* 8 bytes */ + /* 8 bytes */ V4_8017FAC0_8017EC9C p1; V4_8017FAC0_8017EC9C p2; @@ -3799,29 +3788,8 @@ void func_8017EF34(void *arg0) { extern u8 D_801202A0[]; extern void (*D_801A6970[])(void *); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FD58_8017EF34; /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ - typedef struct { - u16 f0; /* 0x00 */ - u16 f2; /* 0x02 */ - u16 f4; /* 0x04 */ - u16 x; /* 0x06 */ - u16 f8; /* 0x08 */ - u16 y; /* 0x0A */ - u16 fC; /* 0x0C */ - u16 z; /* 0x0E */ - u8 p10[0x10]; - s32 f20; /* 0x20 */ - u8 p24[0x34]; - s32 f58; /* 0x58 */ - u8 p5C[8]; - s32 f64; /* 0x64 */ - u8 p68[0x10C - 0x68]; - } Ent_8017FD58_8017EF34; /* stride 0x10C, 0x60 entries (0x6480) */ + /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ + /* stride 0x10C, 0x60 entries (0x6480) */ /* Two further V4 slots the original body declared ahead of `pos` but that * this function never reads: the target frame is 0x50 with locals at @@ -4401,7 +4369,6 @@ extern void func_8012E688(void *a0, s32 a1, s32 a2); void func_80180000(s32 a0) { s32 ret = func_8012BD14(a0); if (ret <= 0x64000) { - typedef struct { s32 f0; s32 f1; } Struct_80180000; Struct_80180000 *ptr = *(Struct_80180000 **)(a0 + 0x20); *(s16 *)(a0 + 0x2) = 1; ptr->f1 = ptr->f1 & 0x7FFFFFFF; @@ -6037,9 +6004,6 @@ void func_80185240(s32 a0) { extern u8 D_800AF648; extern u8 D_801BFAA0[]; extern u8 D_801BF410[]; - typedef struct { - u16 x, y, z, w; - } V8_80185240; s32 mv[4]; /* sp+0x10 : the 4-word block handed to func_8012B1B4 */ V8_80185240 pad[2]; /* sp+0x20 : gcc's own area (vars must be 0x48 for a 0x68 frame) */ V8_80185240 sp30; /* sp+0x30 : func_80133784 arg1 */ @@ -6169,9 +6133,6 @@ void func_801855F4(s32 a0) { extern u8 D_801C03A0[]; extern u8 D_801BFD20[]; extern u8 D_801C05A8[]; - typedef struct { - u16 x, y, z, w; - } V8_801855F4; s32 sp10[4]; V8_801855F4 pad[2]; V8_801855F4 sp30; @@ -6405,9 +6366,6 @@ void func_80185A9C(s32 a0) { extern u8 D_801B3358[]; extern u8 D_801C0060[]; - typedef struct { - u16 x, y, z, w; - } V8_80185A9C; V8_80185A9C pad[2]; V8_80185A9C sp20; V8_80185A9C sp28; @@ -6942,7 +6900,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_80186628(s32 a0) { extern u8 D_801B3074[]; - typedef struct { u16 x, y, z, w; } V8_80186628; V8_80186628 sp10; V8_80186628 sp18; @@ -7059,9 +7016,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_80186848(s32 *s0) { extern u8 D_801B3074[]; - typedef struct { - u16 a, b, c, d; - } Data_t_80186848; Data_t_80186848 buf_src, buf_dst; s32 v0; diff --git a/src/ov_SC03_094/ov_SC03_094_o0c.c b/src/ov_SC03_094/ov_SC03_094_o0c.c index 1be50f9e15..a9b6b91b09 100644 --- a/src/ov_SC03_094/ov_SC03_094_o0c.c +++ b/src/ov_SC03_094/ov_SC03_094_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801D3170[]; D_801D3170[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801D3170[]; D_801D3170[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801D3170[]; D_801D3170[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801D3228; extern s32 D_801D328C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801D3170"); extern s32 D_801D320C; extern s32 D_801D3210; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_095/ov_SC03_095.c b/src/ov_SC03_095/ov_SC03_095.c index a23e0d1a8d..3099faa89f 100644 --- a/src/ov_SC03_095/ov_SC03_095.c +++ b/src/ov_SC03_095/ov_SC03_095.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_095/ov_SC03_095_after.c b/src/ov_SC03_095/ov_SC03_095_after.c index 5c23c345dd..57605a21cd 100644 --- a/src/ov_SC03_095/ov_SC03_095_after.c +++ b/src/ov_SC03_095/ov_SC03_095_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_095/ov_SC03_095_jr_8012ACE0.c b/src/ov_SC03_095/ov_SC03_095_jr_8012ACE0.c index 3eb3fb9e5c..7716c696b8 100644 --- a/src/ov_SC03_095/ov_SC03_095_jr_8012ACE0.c +++ b/src/ov_SC03_095/ov_SC03_095_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_095/ov_SC03_095_jr_801380E0.c b/src/ov_SC03_095/ov_SC03_095_jr_801380E0.c index 7b05f08294..fdc53ab970 100644 --- a/src/ov_SC03_095/ov_SC03_095_jr_801380E0.c +++ b/src/ov_SC03_095/ov_SC03_095_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80181504[]; u16 t; u8 b; diff --git a/src/ov_SC03_095/ov_SC03_095_jr_80140608.c b/src/ov_SC03_095/ov_SC03_095_jr_80140608.c index c7e0b918fe..06902d6d52 100644 --- a/src/ov_SC03_095/ov_SC03_095_jr_80140608.c +++ b/src/ov_SC03_095/ov_SC03_095_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_801822C4[]; extern u16 D_80181DD4; extern u16 D_80181DD6; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2601,7 +2592,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_095/ov_SC03_095_jr_8016AB6C.c b/src/ov_SC03_095/ov_SC03_095_jr_8016AB6C.c index e68ca8ed82..77f7e9a3a9 100644 --- a/src/ov_SC03_095/ov_SC03_095_jr_8016AB6C.c +++ b/src/ov_SC03_095/ov_SC03_095_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_095/ov_SC03_095_jr_801734BC.c b/src/ov_SC03_095/ov_SC03_095_jr_801734BC.c index 3b55081fe5..4462a2e750 100644 --- a/src/ov_SC03_095/ov_SC03_095_jr_801734BC.c +++ b/src/ov_SC03_095/ov_SC03_095_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_095/nonmatchings/ov_SC03_095_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_095/ov_SC03_095_jr_8017BEBC.c b/src/ov_SC03_095/ov_SC03_095_jr_8017BEBC.c index ebffa3277a..df9241c1a0 100644 --- a/src/ov_SC03_095/ov_SC03_095_jr_8017BEBC.c +++ b/src/ov_SC03_095/ov_SC03_095_jr_8017BEBC.c @@ -3373,9 +3373,6 @@ void func_8017D1CC(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D208; extern u16 func_80148800(s32 *a0); extern void func_8017D390(s32 param_1, s16 *param_2); @@ -3586,12 +3583,7 @@ void func_8017E01C(s32 a0) { extern u16 D_80192ADC[]; extern u16 D_80192B04[]; extern void (*D_80192B2C[])(s32); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FAC0_8017E01C; /* 8 bytes */ + /* 8 bytes */ V4_8017FAC0_8017E01C p1; V4_8017FAC0_8017E01C p2; @@ -3675,29 +3667,8 @@ void func_8017E2B4(void *arg0) { extern u8 D_801202A0[]; extern void (*D_80192B78[])(void *); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FD58_8017E2B4; /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ - typedef struct { - u16 f0; /* 0x00 */ - u16 f2; /* 0x02 */ - u16 f4; /* 0x04 */ - u16 x; /* 0x06 */ - u16 f8; /* 0x08 */ - u16 y; /* 0x0A */ - u16 fC; /* 0x0C */ - u16 z; /* 0x0E */ - u8 p10[0x10]; - s32 f20; /* 0x20 */ - u8 p24[0x34]; - s32 f58; /* 0x58 */ - u8 p5C[8]; - s32 f64; /* 0x64 */ - u8 p68[0x10C - 0x68]; - } Ent_8017FD58_8017E2B4; /* stride 0x10C, 0x60 entries (0x6480) */ + /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ + /* stride 0x10C, 0x60 entries (0x6480) */ /* Two further V4 slots the original body declared ahead of `pos` but that * this function never reads: the target frame is 0x50 with locals at @@ -4278,7 +4249,6 @@ extern void func_8012E688(void *a0, s32 a1, s32 a2); void func_8017F380(s32 a0) { s32 ret = func_8012BD14(a0); if (ret <= 0x64000) { - typedef struct { s32 f0; s32 f1; } Struct_8017F380; Struct_8017F380 *ptr = *(Struct_8017F380 **)(a0 + 0x20); *(s16 *)(a0 + 0x2) = 1; ptr->f1 = ptr->f1 & 0x7FFFFFFF; diff --git a/src/ov_SC03_095/ov_SC03_095_o0c.c b/src/ov_SC03_095/ov_SC03_095_o0c.c index 6e4df0012b..87313e2be6 100644 --- a/src/ov_SC03_095/ov_SC03_095_o0c.c +++ b/src/ov_SC03_095/ov_SC03_095_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_8019BD70[]; D_8019BD70[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_8019BD70[]; D_8019BD70[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_8019BD70[]; D_8019BD70[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_8019BE28; extern s32 D_8019BE8C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_8019BD70"); extern s32 D_8019BE0C; extern s32 D_8019BE10; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_096/ov_SC03_096.c b/src/ov_SC03_096/ov_SC03_096.c index f6ea381c7b..e34e9af801 100644 --- a/src/ov_SC03_096/ov_SC03_096.c +++ b/src/ov_SC03_096/ov_SC03_096.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_096/ov_SC03_096_after.c b/src/ov_SC03_096/ov_SC03_096_after.c index 51ee24daaf..14c86f06bc 100644 --- a/src/ov_SC03_096/ov_SC03_096_after.c +++ b/src/ov_SC03_096/ov_SC03_096_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_096/ov_SC03_096_jr_8012ACE0.c b/src/ov_SC03_096/ov_SC03_096_jr_8012ACE0.c index fb3c579229..32207f798a 100644 --- a/src/ov_SC03_096/ov_SC03_096_jr_8012ACE0.c +++ b/src/ov_SC03_096/ov_SC03_096_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_096/ov_SC03_096_jr_801380E0.c b/src/ov_SC03_096/ov_SC03_096_jr_801380E0.c index 1011ff8d7a..8a78649df0 100644 --- a/src/ov_SC03_096/ov_SC03_096_jr_801380E0.c +++ b/src/ov_SC03_096/ov_SC03_096_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80181084[]; u16 t; u8 b; diff --git a/src/ov_SC03_096/ov_SC03_096_jr_80140608.c b/src/ov_SC03_096/ov_SC03_096_jr_80140608.c index 2b376a19b6..ffcd3f024f 100644 --- a/src/ov_SC03_096/ov_SC03_096_jr_80140608.c +++ b/src/ov_SC03_096/ov_SC03_096_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80181E44[]; extern u16 D_80181954; extern u16 D_80181956; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_096/ov_SC03_096_jr_8016AB6C.c b/src/ov_SC03_096/ov_SC03_096_jr_8016AB6C.c index 7201550791..a819f149aa 100644 --- a/src/ov_SC03_096/ov_SC03_096_jr_8016AB6C.c +++ b/src/ov_SC03_096/ov_SC03_096_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_096/ov_SC03_096_jr_801734BC.c b/src/ov_SC03_096/ov_SC03_096_jr_801734BC.c index b8d04fc3fe..0e70a904f9 100644 --- a/src/ov_SC03_096/ov_SC03_096_jr_801734BC.c +++ b/src/ov_SC03_096/ov_SC03_096_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_096/nonmatchings/ov_SC03_096_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_096/ov_SC03_096_jr_8017BEBC.c b/src/ov_SC03_096/ov_SC03_096_jr_8017BEBC.c index 0e680a2770..bad9de6eb5 100644 --- a/src/ov_SC03_096/ov_SC03_096_jr_8017BEBC.c +++ b/src/ov_SC03_096/ov_SC03_096_jr_8017BEBC.c @@ -3422,12 +3422,7 @@ void func_8017D420(s32 a0) { extern u16 D_801904D0[]; extern u16 D_801904F8[]; extern void (*D_80190520[])(s32); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FAC0_8017D420; /* 8 bytes */ + /* 8 bytes */ V4_8017FAC0_8017D420 p1; V4_8017FAC0_8017D420 p2; @@ -3511,29 +3506,8 @@ void func_8017D6B8(void *arg0) { extern u8 D_801202A0[]; extern void (*D_8019056C[])(void *); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FD58_8017D6B8; /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ - typedef struct { - u16 f0; /* 0x00 */ - u16 f2; /* 0x02 */ - u16 f4; /* 0x04 */ - u16 x; /* 0x06 */ - u16 f8; /* 0x08 */ - u16 y; /* 0x0A */ - u16 fC; /* 0x0C */ - u16 z; /* 0x0E */ - u8 p10[0x10]; - s32 f20; /* 0x20 */ - u8 p24[0x34]; - s32 f58; /* 0x58 */ - u8 p5C[8]; - s32 f64; /* 0x64 */ - u8 p68[0x10C - 0x68]; - } Ent_8017FD58_8017D6B8; /* stride 0x10C, 0x60 entries (0x6480) */ + /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ + /* stride 0x10C, 0x60 entries (0x6480) */ /* Two further V4 slots the original body declared ahead of `pos` but that * this function never reads: the target frame is 0x50 with locals at @@ -4112,7 +4086,6 @@ extern void func_8012E688(void *a0, s32 a1, s32 a2); void func_8017E784(s32 a0) { s32 ret = func_8012BD14(a0); if (ret <= 0x64000) { - typedef struct { s32 f0; s32 f1; } Struct_8017E784; Struct_8017E784 *ptr = *(Struct_8017E784 **)(a0 + 0x20); *(s16 *)(a0 + 0x2) = 1; ptr->f1 = ptr->f1 & 0x7FFFFFFF; diff --git a/src/ov_SC03_096/ov_SC03_096_o0c.c b/src/ov_SC03_096/ov_SC03_096_o0c.c index 10c1bb4c97..049714ef7c 100644 --- a/src/ov_SC03_096/ov_SC03_096_o0c.c +++ b/src/ov_SC03_096/ov_SC03_096_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_8019A828[]; D_8019A828[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_8019A828[]; D_8019A828[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_8019A828[]; D_8019A828[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_8019A8E0; extern s32 D_8019A944; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_8019A828"); extern s32 D_8019A8C4; extern s32 D_8019A8C8; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_097/ov_SC03_097.c b/src/ov_SC03_097/ov_SC03_097.c index 5a2b0e5c7f..951268497f 100644 --- a/src/ov_SC03_097/ov_SC03_097.c +++ b/src/ov_SC03_097/ov_SC03_097.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_097/ov_SC03_097_after.c b/src/ov_SC03_097/ov_SC03_097_after.c index 88e95877f6..86eaccd7c9 100644 --- a/src/ov_SC03_097/ov_SC03_097_after.c +++ b/src/ov_SC03_097/ov_SC03_097_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_097/ov_SC03_097_jr_8012ACE0.c b/src/ov_SC03_097/ov_SC03_097_jr_8012ACE0.c index 51044f2a0d..9e6739d69e 100644 --- a/src/ov_SC03_097/ov_SC03_097_jr_8012ACE0.c +++ b/src/ov_SC03_097/ov_SC03_097_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_097/ov_SC03_097_jr_801380E0.c b/src/ov_SC03_097/ov_SC03_097_jr_801380E0.c index 36b7a2f501..c0d5f9f8c7 100644 --- a/src/ov_SC03_097/ov_SC03_097_jr_801380E0.c +++ b/src/ov_SC03_097/ov_SC03_097_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80186464[]; u16 t; u8 b; diff --git a/src/ov_SC03_097/ov_SC03_097_jr_80140608.c b/src/ov_SC03_097/ov_SC03_097_jr_80140608.c index 0764b57bf9..3f5a7543b4 100644 --- a/src/ov_SC03_097/ov_SC03_097_jr_80140608.c +++ b/src/ov_SC03_097/ov_SC03_097_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80187224[]; extern u16 D_80186D34; extern u16 D_80186D36; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_097/ov_SC03_097_jr_8016AB6C.c b/src/ov_SC03_097/ov_SC03_097_jr_8016AB6C.c index 60586958be..0af67f7954 100644 --- a/src/ov_SC03_097/ov_SC03_097_jr_8016AB6C.c +++ b/src/ov_SC03_097/ov_SC03_097_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_097/ov_SC03_097_jr_801734BC.c b/src/ov_SC03_097/ov_SC03_097_jr_801734BC.c index f473645259..981a0fc34d 100644 --- a/src/ov_SC03_097/ov_SC03_097_jr_801734BC.c +++ b/src/ov_SC03_097/ov_SC03_097_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_097/nonmatchings/ov_SC03_097_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_097/ov_SC03_097_jr_8017AE2C.c b/src/ov_SC03_097/ov_SC03_097_jr_8017AE2C.c index edf62b339c..5ff79121f3 100644 --- a/src/ov_SC03_097/ov_SC03_097_jr_8017AE2C.c +++ b/src/ov_SC03_097/ov_SC03_097_jr_8017AE2C.c @@ -3347,8 +3347,6 @@ void func_8017BEBC(s32 param_1, s32 param_2) extern s32 D_801AA87C; extern s32 D_801AA880; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_8017BEBC; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017BEBC; SV4_L_8017BEBC vec; /* sp+0x10 */ MTX_L_8017BEBC mtx; /* sp+0x18 */ @@ -3504,8 +3502,6 @@ void func_8017BFEC(s32 a0) { extern u8 D_801AA88E; extern u8 D_801AA894; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017BFEC; - typedef struct { Rec027_8017BFEC r[9]; } Blk027_8017BFEC; extern Blk027_8017BFEC D_801A32C0; extern Blk027_8017BFEC D_801AA908[]; @@ -3781,14 +3777,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_8017BEBC(s32 a0, s32 a1); void func_8017C738(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_8017C738; extern Rec_8017C738_8017C738 D_801A32C0[]; Rec_8017C738_8017C738 *q = D_801A32C0; @@ -4097,17 +4085,6 @@ void func_8017CD9C(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017CDF8 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017CDF8; extern void func_80147324(s32 arg0); extern void func_8017D030(int); @@ -4221,24 +4198,11 @@ void func_8017CFE4(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017D030; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017D030; -typedef struct { - SVec8_8017C218_8017D030 v[4]; /* 0x00 */ - CVec4_8017C218_8017D030 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017D030; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017D030; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -4559,10 +4523,6 @@ void func_8017D6CC(void *a0) void func_8017D728(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017D728; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017D728; - typedef struct { SVec_8017C910_8017D728 v[2]; Clr_8017C910_8017D728 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017D728; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017D728; extern Mtx8_8017C910_8017D728 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017D728 prim; diff --git a/src/ov_SC03_097/ov_SC03_097_jr_8017D898.c b/src/ov_SC03_097/ov_SC03_097_jr_8017D898.c index 7b32c8598b..f9978cd3f3 100644 --- a/src/ov_SC03_097/ov_SC03_097_jr_8017D898.c +++ b/src/ov_SC03_097/ov_SC03_097_jr_8017D898.c @@ -3599,9 +3599,6 @@ INCLUDE_ASM("asm/ov_SC03_097/nonmatchings/ov_SC03_097_jr_8017D898", func_8017F3D /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D6D0_8017F48C; extern u16 func_80148800(s32 *a0); extern void func_8017F53C(s32 param_1, s16 *param_2); @@ -4034,9 +4031,6 @@ INCLUDE_ASM("asm/ov_SC03_097/nonmatchings/ov_SC03_097_jr_8017D898", func_80180F4 void func_80180F98(void *a0, void *a1) { - typedef struct { u16 vx, vy; } Pt2_80180F98; - typedef struct { u8 pad[0x10]; Pt2_80180F98 pt[12]; } Src_80180F98; - typedef struct { u16 vx, vy, vz, pad; } Vec8_80180F98; extern void func_8001E094(void); extern void func_8001E378(void *a0); @@ -4319,12 +4313,6 @@ void func_801818DC(void) { * puts $s1's zero-init first, which is the target order. */ -typedef struct { - s16 unk0; - s16 unk2; - s16 unk4; - s16 unk6; -} Rec_8018A6A4_80181900; extern void func_801819A0(s32 arg0, s32 arg1, s32 arg2); extern void func_80181ABC(s32 arg0, Rec_8018A6A4_80181900 *arg1, s32 arg2, s32 arg3); @@ -4439,7 +4427,7 @@ void aF8018A860(s32 a0, s16 *a1, u8 *a2, u8 *a3) { extern s16 D_801AAC74; /* TU L3637 / L3671, verbatim */ - typedef struct { u8 b0, b1, b2, b3; } B4_80181ABC; /* align 1 — §48-C2 */ + /* align 1 — §48-C2 */ s16 *s1; u16 temp_u16; s16 temp_s16; @@ -4681,7 +4669,7 @@ void func_80181C18(void) { void func_80181CF4(s32 arg0) { - typedef struct { s32 w[8]; } Blk32_8018AA98_80181CF4; /* 32 bytes, align 4 */ + /* 32 bytes, align 4 */ extern Blk32_8018AA98_80181CF4 D_800AE620; extern s32 D_800A5E60; @@ -4831,7 +4819,6 @@ extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3); extern void func_8018208C(void *arg0, void *arg1, s32 arg2, s32 arg3); void func_80182004(s32 a0) { - typedef struct { u8 a, b, c, d; } V4_80182004; extern u8 D_800AF648; extern V4_80182004 D_801A94D4; u16 sxy[4]; @@ -4963,14 +4950,6 @@ void aF8018AFD0(s32 a0, s32 a1, s32 a2) __asm__("func_8018222C"); void aF8018AFD0(s32 a0, s32 a1, s32 a2) { - typedef struct { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ - } P_8018222C; extern s16 D_801AAB6C; extern s16 D_801AAB66[]; @@ -5139,21 +5118,11 @@ extern void func_80016638(void *a0, s32 a1, s32 a2); /* 0x10-byte-stride record table at D_801AAB6C (same table as func_8018AD5C) */ -typedef struct { - u16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s16 f8; /* 0x08 */ - u16 fA; /* 0x0A */ - s16 fC; /* 0x0C */ - u16 fE; /* 0x0E */ -} Rec_8018B23C_80182498; -typedef struct { s32 w[8]; } Mat32_8018B23C_80182498; /* the 0x20-byte matrix */ -typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_80182498; /* == engine_types.h OtBlk */ -typedef struct { u16 f; } Bidx_8018B23C_80182498; /* the D_800B9A02 buffer index */ -typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_80182498; /* libgpu P_TAG */ + /* the 0x20-byte matrix */ + /* == engine_types.h OtBlk */ + /* the D_800B9A02 buffer index */ + /* libgpu P_TAG */ void func_80182498(s32 a0) { @@ -5273,12 +5242,7 @@ void func_8018277C(s32 a0) { extern u16 D_8019C5B8[]; extern u16 D_8019C5E0[]; extern void (*D_8019C608[])(s32); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FAC0_8018277C; /* 8 bytes */ + /* 8 bytes */ V4_8017FAC0_8018277C p1; V4_8017FAC0_8018277C p2; @@ -5362,29 +5326,8 @@ void func_80182A14(void *arg0) { extern u8 D_801202A0[]; extern void (*D_8019C654[])(void *); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FD58_80182A14; /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ - typedef struct { - u16 f0; /* 0x00 */ - u16 f2; /* 0x02 */ - u16 f4; /* 0x04 */ - u16 x; /* 0x06 */ - u16 f8; /* 0x08 */ - u16 y; /* 0x0A */ - u16 fC; /* 0x0C */ - u16 z; /* 0x0E */ - u8 p10[0x10]; - s32 f20; /* 0x20 */ - u8 p24[0x34]; - s32 f58; /* 0x58 */ - u8 p5C[8]; - s32 f64; /* 0x64 */ - u8 p68[0x10C - 0x68]; - } Ent_8017FD58_80182A14; /* stride 0x10C, 0x60 entries (0x6480) */ + /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ + /* stride 0x10C, 0x60 entries (0x6480) */ /* Two further V4 slots the original body declared ahead of `pos` but that * this function never reads: the target frame is 0x50 with locals at @@ -5845,7 +5788,6 @@ extern void func_8012E688(void *a0, s32 a1, s32 a2); void func_80183AE0(s32 a0) { s32 ret = func_8012BD14(a0); if (ret <= 0x64000) { - typedef struct { s32 f0; s32 f1; } Struct_80183AE0; Struct_80183AE0 *ptr = *(Struct_80183AE0 **)(a0 + 0x20); *(s16 *)(a0 + 0x2) = 1; ptr->f1 = ptr->f1 & 0x7FFFFFFF; diff --git a/src/ov_SC03_097/ov_SC03_097_o0c.c b/src/ov_SC03_097/ov_SC03_097_o0c.c index 471aeb3808..9eaa7a83e1 100644 --- a/src/ov_SC03_097/ov_SC03_097_o0c.c +++ b/src/ov_SC03_097/ov_SC03_097_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801AADA8[]; D_801AADA8[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801AADA8[]; D_801AADA8[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801AADA8[]; D_801AADA8[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801AAE60; extern s32 D_801AAEC4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801AADA8"); extern s32 D_801AAE44; extern s32 D_801AAE48; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_098/ov_SC03_098.c b/src/ov_SC03_098/ov_SC03_098.c index 89b3c96304..76104423e7 100644 --- a/src/ov_SC03_098/ov_SC03_098.c +++ b/src/ov_SC03_098/ov_SC03_098.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_098/ov_SC03_098_after.c b/src/ov_SC03_098/ov_SC03_098_after.c index 24ee23c299..ff8c4c8f88 100644 --- a/src/ov_SC03_098/ov_SC03_098_after.c +++ b/src/ov_SC03_098/ov_SC03_098_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_098/ov_SC03_098_jr_8012ACE0.c b/src/ov_SC03_098/ov_SC03_098_jr_8012ACE0.c index 5f803b2cb1..57dc37d02d 100644 --- a/src/ov_SC03_098/ov_SC03_098_jr_8012ACE0.c +++ b/src/ov_SC03_098/ov_SC03_098_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_098/ov_SC03_098_jr_801380E0.c b/src/ov_SC03_098/ov_SC03_098_jr_801380E0.c index 584a57ccb6..e401198a38 100644 --- a/src/ov_SC03_098/ov_SC03_098_jr_801380E0.c +++ b/src/ov_SC03_098/ov_SC03_098_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_801858F0[]; u16 t; u8 b; diff --git a/src/ov_SC03_098/ov_SC03_098_jr_80140608.c b/src/ov_SC03_098/ov_SC03_098_jr_80140608.c index 2c5b7f2cdb..29f8c4e145 100644 --- a/src/ov_SC03_098/ov_SC03_098_jr_80140608.c +++ b/src/ov_SC03_098/ov_SC03_098_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_801866B0[]; extern u16 D_801861C0; extern u16 D_801861C2; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_098/ov_SC03_098_jr_8016AB6C.c b/src/ov_SC03_098/ov_SC03_098_jr_8016AB6C.c index 09486a40b1..268e5f5387 100644 --- a/src/ov_SC03_098/ov_SC03_098_jr_8016AB6C.c +++ b/src/ov_SC03_098/ov_SC03_098_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_098/ov_SC03_098_jr_801734BC.c b/src/ov_SC03_098/ov_SC03_098_jr_801734BC.c index 33ee90edd5..8ed515b230 100644 --- a/src/ov_SC03_098/ov_SC03_098_jr_801734BC.c +++ b/src/ov_SC03_098/ov_SC03_098_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_098/nonmatchings/ov_SC03_098_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_098/ov_SC03_098_jr_8017AE2C.c b/src/ov_SC03_098/ov_SC03_098_jr_8017AE2C.c index 9ffee74c74..532c6c8945 100644 --- a/src/ov_SC03_098/ov_SC03_098_jr_8017AE2C.c +++ b/src/ov_SC03_098/ov_SC03_098_jr_8017AE2C.c @@ -3347,8 +3347,6 @@ void func_8017BEBC(s32 param_1, s32 param_2) extern s32 D_801C54EC; extern s32 D_801C54F0; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_8017BEBC; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017BEBC; SV4_L_8017BEBC vec; /* sp+0x10 */ MTX_L_8017BEBC mtx; /* sp+0x18 */ @@ -3504,8 +3502,6 @@ void func_8017BFEC(s32 a0) { extern u8 D_801C54FE; extern u8 D_801C5504; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017BFEC; - typedef struct { Rec027_8017BFEC r[9]; } Blk027_8017BFEC; extern Blk027_8017BFEC D_801BF0AC; extern Blk027_8017BFEC D_801C5578[]; @@ -3781,14 +3777,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_8017BEBC(s32 a0, s32 a1); void func_8017C738(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_8017C738; extern Rec_8017C738_8017C738 D_801BF0AC[]; Rec_8017C738_8017C738 *q = D_801BF0AC; @@ -4097,17 +4085,6 @@ void func_8017CD9C(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017CDF8 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017CDF8; extern void func_80147324(s32 arg0); extern void func_8017D030(int); @@ -4221,24 +4198,11 @@ void func_8017CFE4(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017D030; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017D030; -typedef struct { - SVec8_8017C218_8017D030 v[4]; /* 0x00 */ - CVec4_8017C218_8017D030 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017D030; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017D030; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -4559,10 +4523,6 @@ void func_8017D6CC(void *a0) void func_8017D728(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017D728; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017D728; - typedef struct { SVec_8017C910_8017D728 v[2]; Clr_8017C910_8017D728 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017D728; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017D728; extern Mtx8_8017C910_8017D728 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017D728 prim; diff --git a/src/ov_SC03_098/ov_SC03_098_jr_8017D898.c b/src/ov_SC03_098/ov_SC03_098_jr_8017D898.c index aa342e7907..e4fccf3d33 100644 --- a/src/ov_SC03_098/ov_SC03_098_jr_8017D898.c +++ b/src/ov_SC03_098/ov_SC03_098_jr_8017D898.c @@ -3390,9 +3390,6 @@ void func_8017EBE4(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017EC20; extern u16 func_80148800(s32 *a0); extern void func_8017ED60(s32 param_1, s16 *param_2); @@ -3417,9 +3414,6 @@ void func_8017EC20(s32 a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017ECC0; extern u16 func_80148800(s32 *a0); extern void func_8017ED60(s32 param_1, s16 *param_2); @@ -3646,12 +3640,7 @@ void func_8017F4A4(s32 a0) { extern u16 D_8019BD40[]; extern u16 D_8019BD68[]; extern void (*D_8019BD90[])(s32); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FAC0_8017F4A4; /* 8 bytes */ + /* 8 bytes */ V4_8017FAC0_8017F4A4 p1; V4_8017FAC0_8017F4A4 p2; @@ -3735,29 +3724,8 @@ void func_8017F73C(void *arg0) { extern u8 D_801202A0[]; extern void (*D_8019BDDC[])(void *); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FD58_8017F73C; /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ - typedef struct { - u16 f0; /* 0x00 */ - u16 f2; /* 0x02 */ - u16 f4; /* 0x04 */ - u16 x; /* 0x06 */ - u16 f8; /* 0x08 */ - u16 y; /* 0x0A */ - u16 fC; /* 0x0C */ - u16 z; /* 0x0E */ - u8 p10[0x10]; - s32 f20; /* 0x20 */ - u8 p24[0x34]; - s32 f58; /* 0x58 */ - u8 p5C[8]; - s32 f64; /* 0x64 */ - u8 p68[0x10C - 0x68]; - } Ent_8017FD58_8017F73C; /* stride 0x10C, 0x60 entries (0x6480) */ + /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ + /* stride 0x10C, 0x60 entries (0x6480) */ /* Two further V4 slots the original body declared ahead of `pos` but that * this function never reads: the target frame is 0x50 with locals at @@ -4338,7 +4306,6 @@ extern void func_8012E688(void *a0, s32 a1, s32 a2); void func_80180808(s32 a0) { s32 ret = func_8012BD14(a0); if (ret <= 0x64000) { - typedef struct { s32 f0; s32 f1; } Struct_80180808; Struct_80180808 *ptr = *(Struct_80180808 **)(a0 + 0x20); *(s16 *)(a0 + 0x2) = 1; ptr->f1 = ptr->f1 & 0x7FFFFFFF; @@ -5325,9 +5292,6 @@ void func_80182C8C(s32 a0) { extern u8 D_800AF648; extern u8 D_801ADFBC[]; extern u8 D_801AD92C[]; - typedef struct { - u16 x, y, z, w; - } V8_80182C8C; s32 mv[4]; /* sp+0x10 : the 4-word block handed to func_8012B1B4 */ V8_80182C8C pad[2]; /* sp+0x20 : gcc's own area (vars must be 0x48 for a 0x68 frame) */ V8_80182C8C sp30; /* sp+0x30 : func_80133784 arg1 */ @@ -5457,9 +5421,6 @@ void func_80183040(s32 a0) { extern u8 D_801AE8BC[]; extern u8 D_801AE23C[]; extern u8 D_801AEAC4[]; - typedef struct { - u16 x, y, z, w; - } V8_80183040; s32 sp10[4]; V8_80183040 pad[2]; V8_80183040 sp30; @@ -5693,9 +5654,6 @@ void func_801834E8(s32 a0) { extern u8 D_801A1874[]; extern u8 D_801AE57C[]; - typedef struct { - u16 x, y, z, w; - } V8_801834E8; V8_801834E8 pad[2]; V8_801834E8 sp20; V8_801834E8 sp28; @@ -6230,7 +6188,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_80184074(s32 a0) { extern u8 D_801A1590[]; - typedef struct { u16 x, y, z, w; } V8_80184074; V8_80184074 sp10; V8_80184074 sp18; @@ -6347,9 +6304,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_80184294(s32 *s0) { extern u8 D_801A1590[]; - typedef struct { - u16 a, b, c, d; - } Data_t_80184294; Data_t_80184294 buf_src, buf_dst; s32 v0; diff --git a/src/ov_SC03_098/ov_SC03_098_o0c.c b/src/ov_SC03_098/ov_SC03_098_o0c.c index 6bfe67666a..15daf4a462 100644 --- a/src/ov_SC03_098/ov_SC03_098_o0c.c +++ b/src/ov_SC03_098/ov_SC03_098_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801C5790[]; D_801C5790[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801C5790[]; D_801C5790[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801C5790[]; D_801C5790[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801C5848; extern s32 D_801C58AC; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801C5790"); extern s32 D_801C582C; extern s32 D_801C5830; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_099/ov_SC03_099.c b/src/ov_SC03_099/ov_SC03_099.c index e31282e043..02e896fcb0 100644 --- a/src/ov_SC03_099/ov_SC03_099.c +++ b/src/ov_SC03_099/ov_SC03_099.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_099/ov_SC03_099_after.c b/src/ov_SC03_099/ov_SC03_099_after.c index b655da5ed9..db3325b076 100644 --- a/src/ov_SC03_099/ov_SC03_099_after.c +++ b/src/ov_SC03_099/ov_SC03_099_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_099/ov_SC03_099_jr_8012ACE0.c b/src/ov_SC03_099/ov_SC03_099_jr_8012ACE0.c index df75d279c9..05ac41102c 100644 --- a/src/ov_SC03_099/ov_SC03_099_jr_8012ACE0.c +++ b/src/ov_SC03_099/ov_SC03_099_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_099/ov_SC03_099_jr_801380E0.c b/src/ov_SC03_099/ov_SC03_099_jr_801380E0.c index 795da5564b..240b028906 100644 --- a/src/ov_SC03_099/ov_SC03_099_jr_801380E0.c +++ b/src/ov_SC03_099/ov_SC03_099_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_801839F0[]; u16 t; u8 b; diff --git a/src/ov_SC03_099/ov_SC03_099_jr_80140608.c b/src/ov_SC03_099/ov_SC03_099_jr_80140608.c index 5d5df77346..ac4ec2a97b 100644 --- a/src/ov_SC03_099/ov_SC03_099_jr_80140608.c +++ b/src/ov_SC03_099/ov_SC03_099_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_801847B0[]; extern u16 D_801842C0; extern u16 D_801842C2; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_099/ov_SC03_099_jr_8016AB6C.c b/src/ov_SC03_099/ov_SC03_099_jr_8016AB6C.c index 846ca1d41f..b6637e6a93 100644 --- a/src/ov_SC03_099/ov_SC03_099_jr_8016AB6C.c +++ b/src/ov_SC03_099/ov_SC03_099_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_099/ov_SC03_099_jr_801734BC.c b/src/ov_SC03_099/ov_SC03_099_jr_801734BC.c index a60c3a1bbd..b4fe728a66 100644 --- a/src/ov_SC03_099/ov_SC03_099_jr_801734BC.c +++ b/src/ov_SC03_099/ov_SC03_099_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_099/nonmatchings/ov_SC03_099_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_099/ov_SC03_099_jr_8017BEBC.c b/src/ov_SC03_099/ov_SC03_099_jr_8017BEBC.c index 5a823830ac..4febf22495 100644 --- a/src/ov_SC03_099/ov_SC03_099_jr_8017BEBC.c +++ b/src/ov_SC03_099/ov_SC03_099_jr_8017BEBC.c @@ -3345,9 +3345,6 @@ void func_8017D1D0(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D20C; extern u16 func_80148800(s32 *a0); extern void func_8017D364(s32 param_1, s16 *param_2); @@ -3504,12 +3501,7 @@ void func_8017D708(s32 a0) { extern u16 D_80198568[]; extern u16 D_80198590[]; extern void (*D_801985B8[])(s32); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FAC0_8017D708; /* 8 bytes */ + /* 8 bytes */ V4_8017FAC0_8017D708 p1; V4_8017FAC0_8017D708 p2; @@ -3593,29 +3585,8 @@ void func_8017D9A0(void *arg0) { extern u8 D_801202A0[]; extern void (*D_80198604[])(void *); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FD58_8017D9A0; /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ - typedef struct { - u16 f0; /* 0x00 */ - u16 f2; /* 0x02 */ - u16 f4; /* 0x04 */ - u16 x; /* 0x06 */ - u16 f8; /* 0x08 */ - u16 y; /* 0x0A */ - u16 fC; /* 0x0C */ - u16 z; /* 0x0E */ - u8 p10[0x10]; - s32 f20; /* 0x20 */ - u8 p24[0x34]; - s32 f58; /* 0x58 */ - u8 p5C[8]; - s32 f64; /* 0x64 */ - u8 p68[0x10C - 0x68]; - } Ent_8017FD58_8017D9A0; /* stride 0x10C, 0x60 entries (0x6480) */ + /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ + /* stride 0x10C, 0x60 entries (0x6480) */ /* Two further V4 slots the original body declared ahead of `pos` but that * this function never reads: the target frame is 0x50 with locals at @@ -4196,7 +4167,6 @@ extern void func_8012E688(void *a0, s32 a1, s32 a2); void func_8017EA6C(s32 a0) { s32 ret = func_8012BD14(a0); if (ret <= 0x64000) { - typedef struct { s32 f0; s32 f1; } Struct_8017EA6C; Struct_8017EA6C *ptr = *(Struct_8017EA6C **)(a0 + 0x20); *(s16 *)(a0 + 0x2) = 1; ptr->f1 = ptr->f1 & 0x7FFFFFFF; @@ -5242,9 +5212,6 @@ void func_801806D8(s32 a0) { extern u8 D_800AF648; extern u8 D_801ABAE4[]; extern u8 D_801AB454[]; - typedef struct { - u16 x, y, z, w; - } V8_801806D8; s32 mv[4]; /* sp+0x10 : the 4-word block handed to func_8012B1B4 */ V8_801806D8 pad[2]; /* sp+0x20 : gcc's own area (vars must be 0x48 for a 0x68 frame) */ V8_801806D8 sp30; /* sp+0x30 : func_80133784 arg1 */ @@ -5374,9 +5341,6 @@ void func_80180A8C(s32 a0) { extern u8 D_801AC3E4[]; extern u8 D_801ABD64[]; extern u8 D_801AC5EC[]; - typedef struct { - u16 x, y, z, w; - } V8_80180A8C; s32 sp10[4]; V8_80180A8C pad[2]; V8_80180A8C sp30; @@ -5610,9 +5574,6 @@ void func_80180F34(s32 a0) { extern u8 D_8019F39C[]; extern u8 D_801AC0A4[]; - typedef struct { - u16 x, y, z, w; - } V8_80180F34; V8_80180F34 pad[2]; V8_80180F34 sp20; V8_80180F34 sp28; @@ -6147,7 +6108,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_80181AC0(s32 a0) { extern u8 D_8019F0B8[]; - typedef struct { u16 x, y, z, w; } V8_80181AC0; V8_80181AC0 sp10; V8_80181AC0 sp18; @@ -6264,9 +6224,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_80181CE0(s32 *s0) { extern u8 D_8019F0B8[]; - typedef struct { - u16 a, b, c, d; - } Data_t_80181CE0; Data_t_80181CE0 buf_src, buf_dst; s32 v0; @@ -7004,7 +6961,6 @@ void func_80182B10(void *a0) void func_80182BDC(void *a0) { - typedef struct { u8 b[8]; } Blk8_80182BDC; extern s32 func_80017DC4(void *a0, void *a1); extern s16 func_8012A758(void); extern void RotMatrixY(s32 a0, void *a1); diff --git a/src/ov_SC03_099/ov_SC03_099_o0c.c b/src/ov_SC03_099/ov_SC03_099_o0c.c index 85c7d8a3f4..291ade829c 100644 --- a/src/ov_SC03_099/ov_SC03_099_o0c.c +++ b/src/ov_SC03_099/ov_SC03_099_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801BF338[]; D_801BF338[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801BF338[]; D_801BF338[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801BF338[]; D_801BF338[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801BF3F0; extern s32 D_801BF454; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801BF338"); extern s32 D_801BF3D4; extern s32 D_801BF3D8; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_100/ov_SC03_100.c b/src/ov_SC03_100/ov_SC03_100.c index f0d0490681..f3cd0a9c2c 100644 --- a/src/ov_SC03_100/ov_SC03_100.c +++ b/src/ov_SC03_100/ov_SC03_100.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_100/ov_SC03_100_after.c b/src/ov_SC03_100/ov_SC03_100_after.c index 371568d817..16fc6a2e11 100644 --- a/src/ov_SC03_100/ov_SC03_100_after.c +++ b/src/ov_SC03_100/ov_SC03_100_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_100/ov_SC03_100_jr_8012ACE0.c b/src/ov_SC03_100/ov_SC03_100_jr_8012ACE0.c index df457c5809..9dd5d3eb98 100644 --- a/src/ov_SC03_100/ov_SC03_100_jr_8012ACE0.c +++ b/src/ov_SC03_100/ov_SC03_100_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_100/ov_SC03_100_jr_801380E0.c b/src/ov_SC03_100/ov_SC03_100_jr_801380E0.c index 9d5d0b3b7d..7efd03cc60 100644 --- a/src/ov_SC03_100/ov_SC03_100_jr_801380E0.c +++ b/src/ov_SC03_100/ov_SC03_100_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80184EBC[]; u16 t; u8 b; diff --git a/src/ov_SC03_100/ov_SC03_100_jr_80140608.c b/src/ov_SC03_100/ov_SC03_100_jr_80140608.c index e2036c4d33..520b868167 100644 --- a/src/ov_SC03_100/ov_SC03_100_jr_80140608.c +++ b/src/ov_SC03_100/ov_SC03_100_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80185C7C[]; extern u16 D_8018578C; extern u16 D_8018578E; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_100/ov_SC03_100_jr_8016AB6C.c b/src/ov_SC03_100/ov_SC03_100_jr_8016AB6C.c index 796ca46699..c7b29c35fe 100644 --- a/src/ov_SC03_100/ov_SC03_100_jr_8016AB6C.c +++ b/src/ov_SC03_100/ov_SC03_100_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_100/ov_SC03_100_jr_801734BC.c b/src/ov_SC03_100/ov_SC03_100_jr_801734BC.c index 3cf0d7f350..6046ce2848 100644 --- a/src/ov_SC03_100/ov_SC03_100_jr_801734BC.c +++ b/src/ov_SC03_100/ov_SC03_100_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_100/nonmatchings/ov_SC03_100_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_100/ov_SC03_100_jr_8017AE2C.c b/src/ov_SC03_100/ov_SC03_100_jr_8017AE2C.c index 89565ab244..ded3eb3340 100644 --- a/src/ov_SC03_100/ov_SC03_100_jr_8017AE2C.c +++ b/src/ov_SC03_100/ov_SC03_100_jr_8017AE2C.c @@ -3347,8 +3347,6 @@ void func_8017BEBC(s32 param_1, s32 param_2) extern s32 D_801C8444; extern s32 D_801C8448; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_8017BEBC; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017BEBC; SV4_L_8017BEBC vec; /* sp+0x10 */ MTX_L_8017BEBC mtx; /* sp+0x18 */ @@ -3504,8 +3502,6 @@ void func_8017BFEC(s32 a0) { extern u8 D_801C8456; extern u8 D_801C845C; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017BFEC; - typedef struct { Rec027_8017BFEC r[9]; } Blk027_8017BFEC; extern Blk027_8017BFEC D_801C2008; extern Blk027_8017BFEC D_801C84D0[]; @@ -3781,14 +3777,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_8017BEBC(s32 a0, s32 a1); void func_8017C738(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_8017C738; extern Rec_8017C738_8017C738 D_801C2008[]; Rec_8017C738_8017C738 *q = D_801C2008; @@ -4097,17 +4085,6 @@ void func_8017CD9C(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017CDF8 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017CDF8; extern void func_80147324(s32 arg0); extern void func_8017D030(int); @@ -4221,24 +4198,11 @@ void func_8017CFE4(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017D030; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017D030; -typedef struct { - SVec8_8017C218_8017D030 v[4]; /* 0x00 */ - CVec4_8017C218_8017D030 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017D030; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017D030; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -4559,10 +4523,6 @@ void func_8017D6CC(void *a0) void func_8017D728(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017D728; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017D728; - typedef struct { SVec_8017C910_8017D728 v[2]; Clr_8017C910_8017D728 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017D728; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017D728; extern Mtx8_8017C910_8017D728 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017D728 prim; diff --git a/src/ov_SC03_100/ov_SC03_100_jr_8017D898.c b/src/ov_SC03_100/ov_SC03_100_jr_8017D898.c index 93bf477f05..4c174bb993 100644 --- a/src/ov_SC03_100/ov_SC03_100_jr_8017D898.c +++ b/src/ov_SC03_100/ov_SC03_100_jr_8017D898.c @@ -3381,9 +3381,6 @@ void func_8017EBA8(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017EBE4; extern u16 func_80148800(s32 *a0); extern void func_8017ED90(s32 param_1, s16 *param_2); @@ -3539,12 +3536,7 @@ void func_8017F134(s32 a0) { extern u16 D_801A0034[]; extern u16 D_801A005C[]; extern void (*D_801A0084[])(s32); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FAC0_8017F134; /* 8 bytes */ + /* 8 bytes */ V4_8017FAC0_8017F134 p1; V4_8017FAC0_8017F134 p2; @@ -3628,29 +3620,8 @@ void func_8017F3CC(void *arg0) { extern u8 D_801202A0[]; extern void (*D_801A00D0[])(void *); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FD58_8017F3CC; /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ - typedef struct { - u16 f0; /* 0x00 */ - u16 f2; /* 0x02 */ - u16 f4; /* 0x04 */ - u16 x; /* 0x06 */ - u16 f8; /* 0x08 */ - u16 y; /* 0x0A */ - u16 fC; /* 0x0C */ - u16 z; /* 0x0E */ - u8 p10[0x10]; - s32 f20; /* 0x20 */ - u8 p24[0x34]; - s32 f58; /* 0x58 */ - u8 p5C[8]; - s32 f64; /* 0x64 */ - u8 p68[0x10C - 0x68]; - } Ent_8017FD58_8017F3CC; /* stride 0x10C, 0x60 entries (0x6480) */ + /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ + /* stride 0x10C, 0x60 entries (0x6480) */ /* Two further V4 slots the original body declared ahead of `pos` but that * this function never reads: the target frame is 0x50 with locals at @@ -4230,7 +4201,6 @@ extern void func_8012E688(void *a0, s32 a1, s32 a2); void func_80180498(s32 a0) { s32 ret = func_8012BD14(a0); if (ret <= 0x64000) { - typedef struct { s32 f0; s32 f1; } Struct_80180498; Struct_80180498 *ptr = *(Struct_80180498 **)(a0 + 0x20); *(s16 *)(a0 + 0x2) = 1; ptr->f1 = ptr->f1 & 0x7FFFFFFF; @@ -4790,9 +4760,6 @@ void func_801813C4(s32 a0) { extern u8 D_800AF648; extern u8 D_801B0EF4[]; extern u8 D_801B0864[]; - typedef struct { - u16 x, y, z, w; - } V8_801813C4; s32 mv[4]; /* sp+0x10 : the 4-word block handed to func_8012B1B4 */ V8_801813C4 pad[2]; /* sp+0x20 : gcc's own area (vars must be 0x48 for a 0x68 frame) */ V8_801813C4 sp30; /* sp+0x30 : func_80133784 arg1 */ @@ -4922,9 +4889,6 @@ void func_80181778(s32 a0) { extern u8 D_801B17F4[]; extern u8 D_801B1174[]; extern u8 D_801B19FC[]; - typedef struct { - u16 x, y, z, w; - } V8_80181778; s32 sp10[4]; V8_80181778 pad[2]; V8_80181778 sp30; @@ -5158,9 +5122,6 @@ void func_80181C20(s32 a0) { extern u8 D_801A47AC[]; extern u8 D_801B14B4[]; - typedef struct { - u16 x, y, z, w; - } V8_80181C20; V8_80181C20 pad[2]; V8_80181C20 sp20; V8_80181C20 sp28; @@ -5695,7 +5656,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_801827AC(s32 a0) { extern u8 D_801A44C8[]; - typedef struct { u16 x, y, z, w; } V8_801827AC; V8_801827AC sp10; V8_801827AC sp18; @@ -5812,9 +5772,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_801829CC(s32 *s0) { extern u8 D_801A44C8[]; - typedef struct { - u16 a, b, c, d; - } Data_t_801829CC; Data_t_801829CC buf_src, buf_dst; s32 v0; @@ -6552,7 +6509,6 @@ void func_801837FC(void *a0) void func_801838C8(void *a0) { - typedef struct { u8 b[8]; } Blk8_801838C8; extern s32 func_80017DC4(void *a0, void *a1); extern s16 func_8012A758(void); extern void RotMatrixY(s32 a0, void *a1); diff --git a/src/ov_SC03_100/ov_SC03_100_o0c.c b/src/ov_SC03_100/ov_SC03_100_o0c.c index 4d8e8ad41e..472874310b 100644 --- a/src/ov_SC03_100/ov_SC03_100_o0c.c +++ b/src/ov_SC03_100/ov_SC03_100_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801C8840[]; D_801C8840[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801C8840[]; D_801C8840[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801C8840[]; D_801C8840[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801C88F8; extern s32 D_801C895C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801C8840"); extern s32 D_801C88DC; extern s32 D_801C88E0; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_101/ov_SC03_101.c b/src/ov_SC03_101/ov_SC03_101.c index 9806598c34..17e1ff58c9 100644 --- a/src/ov_SC03_101/ov_SC03_101.c +++ b/src/ov_SC03_101/ov_SC03_101.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_101/ov_SC03_101_after.c b/src/ov_SC03_101/ov_SC03_101_after.c index 86ecaa2776..9d0e0b48c2 100644 --- a/src/ov_SC03_101/ov_SC03_101_after.c +++ b/src/ov_SC03_101/ov_SC03_101_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_101/ov_SC03_101_jr_8012ACE0.c b/src/ov_SC03_101/ov_SC03_101_jr_8012ACE0.c index de0b893b05..532379757c 100644 --- a/src/ov_SC03_101/ov_SC03_101_jr_8012ACE0.c +++ b/src/ov_SC03_101/ov_SC03_101_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_101/ov_SC03_101_jr_801380E0.c b/src/ov_SC03_101/ov_SC03_101_jr_801380E0.c index d2e7ff85fe..854f5586bf 100644 --- a/src/ov_SC03_101/ov_SC03_101_jr_801380E0.c +++ b/src/ov_SC03_101/ov_SC03_101_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80183E98[]; u16 t; u8 b; diff --git a/src/ov_SC03_101/ov_SC03_101_jr_80140608.c b/src/ov_SC03_101/ov_SC03_101_jr_80140608.c index 77e19a4f43..cd83108dc3 100644 --- a/src/ov_SC03_101/ov_SC03_101_jr_80140608.c +++ b/src/ov_SC03_101/ov_SC03_101_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80184C58[]; extern u16 D_80184768; extern u16 D_8018476A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_101/ov_SC03_101_jr_8016AB6C.c b/src/ov_SC03_101/ov_SC03_101_jr_8016AB6C.c index 54a201fc47..04e1f1aa60 100644 --- a/src/ov_SC03_101/ov_SC03_101_jr_8016AB6C.c +++ b/src/ov_SC03_101/ov_SC03_101_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_101/ov_SC03_101_jr_801734BC.c b/src/ov_SC03_101/ov_SC03_101_jr_801734BC.c index ab0c865ea5..1f1329a9b5 100644 --- a/src/ov_SC03_101/ov_SC03_101_jr_801734BC.c +++ b/src/ov_SC03_101/ov_SC03_101_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_101/nonmatchings/ov_SC03_101_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_101/ov_SC03_101_jr_8017AE2C.c b/src/ov_SC03_101/ov_SC03_101_jr_8017AE2C.c index c1b343fdbf..e9fb6a7e37 100644 --- a/src/ov_SC03_101/ov_SC03_101_jr_8017AE2C.c +++ b/src/ov_SC03_101/ov_SC03_101_jr_8017AE2C.c @@ -3369,17 +3369,6 @@ void func_8017BF84(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017BFE0 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017BFE0; extern void func_80147324(s32 arg0); extern void func_8017C218(int); @@ -3480,24 +3469,11 @@ DEFINE_func_8017C1CC() /* dedup: shared engine-core @0x8017C1CC (src/shared) */ * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017C218; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017C218; -typedef struct { - SVec8_8017C218_8017C218 v[4]; /* 0x00 */ - CVec4_8017C218_8017C218 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017C218; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017C218; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -3779,10 +3755,6 @@ DEFINE_func_8017C8B4() /* dedup: shared engine-core @0x8017C8B4 (src/shared) */ void func_8017C910(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017C910; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017C910; - typedef struct { SVec_8017C910_8017C910 v[2]; Clr_8017C910_8017C910 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017C910; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017C910; extern Mtx8_8017C910_8017C910 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017C910 prim; diff --git a/src/ov_SC03_101/ov_SC03_101_jr_8017CA80.c b/src/ov_SC03_101/ov_SC03_101_jr_8017CA80.c index 451c2ecbf1..f407e34868 100644 --- a/src/ov_SC03_101/ov_SC03_101_jr_8017CA80.c +++ b/src/ov_SC03_101/ov_SC03_101_jr_8017CA80.c @@ -3412,9 +3412,6 @@ void func_8017DFE0(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017E01C; extern u16 func_80148800(s32 *a0); extern void func_8017E174(s32 param_1, s16 *param_2); @@ -3571,12 +3568,7 @@ void func_8017E518(s32 a0) { extern u16 D_801964D0[]; extern u16 D_801964F8[]; extern void (*D_80196520[])(s32); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FAC0_8017E518; /* 8 bytes */ + /* 8 bytes */ V4_8017FAC0_8017E518 p1; V4_8017FAC0_8017E518 p2; @@ -3660,29 +3652,8 @@ void func_8017E7B0(void *arg0) { extern u8 D_801202A0[]; extern void (*D_8019656C[])(void *); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FD58_8017E7B0; /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ - typedef struct { - u16 f0; /* 0x00 */ - u16 f2; /* 0x02 */ - u16 f4; /* 0x04 */ - u16 x; /* 0x06 */ - u16 f8; /* 0x08 */ - u16 y; /* 0x0A */ - u16 fC; /* 0x0C */ - u16 z; /* 0x0E */ - u8 p10[0x10]; - s32 f20; /* 0x20 */ - u8 p24[0x34]; - s32 f58; /* 0x58 */ - u8 p5C[8]; - s32 f64; /* 0x64 */ - u8 p68[0x10C - 0x68]; - } Ent_8017FD58_8017E7B0; /* stride 0x10C, 0x60 entries (0x6480) */ + /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ + /* stride 0x10C, 0x60 entries (0x6480) */ /* Two further V4 slots the original body declared ahead of `pos` but that * this function never reads: the target frame is 0x50 with locals at @@ -4261,7 +4232,6 @@ extern void func_8012E688(void *a0, s32 a1, s32 a2); void func_8017F87C(s32 a0) { s32 ret = func_8012BD14(a0); if (ret <= 0x64000) { - typedef struct { s32 f0; s32 f1; } Struct_8017F87C; Struct_8017F87C *ptr = *(Struct_8017F87C **)(a0 + 0x20); *(s16 *)(a0 + 0x2) = 1; ptr->f1 = ptr->f1 & 0x7FFFFFFF; @@ -4989,12 +4959,6 @@ void func_80181E3C(void) { * puts $s1's zero-init first, which is the target order. */ -typedef struct { - s16 unk0; - s16 unk2; - s16 unk4; - s16 unk6; -} Rec_8018A6A4_80181E60; extern void func_80181F00(s32 arg0, s32 arg1, s32 arg2); extern void func_8018201C(s32 arg0, Rec_8018A6A4_80181E60 *arg1, s32 arg2, s32 arg3); @@ -5115,7 +5079,7 @@ void aF8018A860(s32 a0, s16 *a1, u8 *a2, u8 *a3) { extern s16 D_8019DE8C; /* TU L3637 / L3671, verbatim */ - typedef struct { u8 b0, b1, b2, b3; } B4_8018201C; /* align 1 — §48-C2 */ + /* align 1 — §48-C2 */ s16 *s1; u16 temp_u16; s16 temp_s16; @@ -5357,7 +5321,7 @@ void func_80182178(void) { void func_80182254(s32 arg0) { - typedef struct { s32 w[8]; } Blk32_8018AA98_80182254; /* 32 bytes, align 4 */ + /* 32 bytes, align 4 */ extern Blk32_8018AA98_80182254 D_800AE620; extern s32 D_800A5E60; @@ -5506,7 +5470,6 @@ extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3); extern void func_801825EC(void *arg0, void *arg1, s32 arg2, s32 arg3); void func_80182564(s32 a0) { - typedef struct { u8 a, b, c, d; } V4_80182564; extern u8 D_800AF648; extern V4_80182564 D_8019C990; u16 sxy[4]; @@ -5638,14 +5601,6 @@ void aF8018AFD0(s32 a0, s32 a1, s32 a2) __asm__("func_8018278C"); void aF8018AFD0(s32 a0, s32 a1, s32 a2) { - typedef struct { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ - } P_8018278C; extern s16 D_8019DD84; extern s16 D_8019DD7E[]; @@ -5814,21 +5769,11 @@ extern void func_80016638(void *a0, s32 a1, s32 a2); /* 0x10-byte-stride record table at D_8019DD84 (same table as func_8018AD5C) */ -typedef struct { - u16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s16 f8; /* 0x08 */ - u16 fA; /* 0x0A */ - s16 fC; /* 0x0C */ - u16 fE; /* 0x0E */ -} Rec_8018B23C_801829F8; -typedef struct { s32 w[8]; } Mat32_8018B23C_801829F8; /* the 0x20-byte matrix */ -typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_801829F8; /* == engine_types.h OtBlk */ -typedef struct { u16 f; } Bidx_8018B23C_801829F8; /* the D_800B9A02 buffer index */ -typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_801829F8; /* libgpu P_TAG */ + /* the 0x20-byte matrix */ + /* == engine_types.h OtBlk */ + /* the D_800B9A02 buffer index */ + /* libgpu P_TAG */ void func_801829F8(s32 a0) { @@ -6086,7 +6031,6 @@ void func_80182FB8(void *a0) void func_80183084(void *a0) { - typedef struct { u8 b[8]; } Blk8_80183084; extern s32 func_80017DC4(void *a0, void *a1); extern s16 func_8012A758(void); extern void RotMatrixY(s32 a0, void *a1); diff --git a/src/ov_SC03_101/ov_SC03_101_o0c.c b/src/ov_SC03_101/ov_SC03_101_o0c.c index 1a8f2450cc..35c2a7bd90 100644 --- a/src/ov_SC03_101/ov_SC03_101_o0c.c +++ b/src/ov_SC03_101/ov_SC03_101_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_8019E100[]; D_8019E100[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_8019E100[]; D_8019E100[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_8019E100[]; D_8019E100[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_8019E1B8; extern s32 D_8019E21C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_8019E100"); extern s32 D_8019E19C; extern s32 D_8019E1A0; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_102/ov_SC03_102.c b/src/ov_SC03_102/ov_SC03_102.c index 1f449f959c..3ddbef33d1 100644 --- a/src/ov_SC03_102/ov_SC03_102.c +++ b/src/ov_SC03_102/ov_SC03_102.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_102/ov_SC03_102_after.c b/src/ov_SC03_102/ov_SC03_102_after.c index 2a69dc9c2b..f71e896fc7 100644 --- a/src/ov_SC03_102/ov_SC03_102_after.c +++ b/src/ov_SC03_102/ov_SC03_102_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_102/ov_SC03_102_jr_8012ACE0.c b/src/ov_SC03_102/ov_SC03_102_jr_8012ACE0.c index aebbb54230..f57465e7d5 100644 --- a/src/ov_SC03_102/ov_SC03_102_jr_8012ACE0.c +++ b/src/ov_SC03_102/ov_SC03_102_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_102/ov_SC03_102_jr_801380E0.c b/src/ov_SC03_102/ov_SC03_102_jr_801380E0.c index e4389ec6d1..50aec09540 100644 --- a/src/ov_SC03_102/ov_SC03_102_jr_801380E0.c +++ b/src/ov_SC03_102/ov_SC03_102_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80186750[]; u16 t; u8 b; diff --git a/src/ov_SC03_102/ov_SC03_102_jr_80140608.c b/src/ov_SC03_102/ov_SC03_102_jr_80140608.c index 281658ac8f..2261852852 100644 --- a/src/ov_SC03_102/ov_SC03_102_jr_80140608.c +++ b/src/ov_SC03_102/ov_SC03_102_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80187510[]; extern u16 D_80187020; extern u16 D_80187022; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_102/ov_SC03_102_jr_8016AB6C.c b/src/ov_SC03_102/ov_SC03_102_jr_8016AB6C.c index c63abf19d2..ce05a26dbf 100644 --- a/src/ov_SC03_102/ov_SC03_102_jr_8016AB6C.c +++ b/src/ov_SC03_102/ov_SC03_102_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_102/ov_SC03_102_jr_801734BC.c b/src/ov_SC03_102/ov_SC03_102_jr_801734BC.c index 02289f4874..65f5dd76a2 100644 --- a/src/ov_SC03_102/ov_SC03_102_jr_801734BC.c +++ b/src/ov_SC03_102/ov_SC03_102_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_102/nonmatchings/ov_SC03_102_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_102/ov_SC03_102_jr_8017BEBC.c b/src/ov_SC03_102/ov_SC03_102_jr_8017BEBC.c index 1a1849e6b4..59f1f6bcd1 100644 --- a/src/ov_SC03_102/ov_SC03_102_jr_8017BEBC.c +++ b/src/ov_SC03_102/ov_SC03_102_jr_8017BEBC.c @@ -3369,20 +3369,9 @@ void func_8017BEBC(s32 arg0) : "memory" ) /* ---- the two gouraud-textured packet layouts this function emits ---------- */ -typedef struct { - u32 tag; - u32 rgb0; s16 x0, y0; u32 uv0; - u32 rgb1; s16 x1, y1; u32 uv1; - u32 rgb2; s16 x2, y2; u16 uv2, p2; -} PolyGT3; /* 0x28 */ + /* 0x28 */ -typedef struct { - u32 tag; - u32 rgb0; s16 x0, y0; u32 uv0; - u32 rgb1; s16 x1, y1; u32 uv1; - u32 rgb2; s16 x2, y2; u16 uv2, p2; - u32 rgb3; s16 x3, y3; u16 uv3, p3; -} PolyGT4; /* 0x34 */ + /* 0x34 */ /* ---- the three light-volume descriptors ---------------------------------- */ extern s32 D_801B9B00; @@ -4211,12 +4200,7 @@ void func_80181704(s32 a0) { extern u16 D_801974DC[]; extern u16 D_80197504[]; extern void (*D_8019752C[])(s32); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FAC0_80181704; /* 8 bytes */ + /* 8 bytes */ V4_8017FAC0_80181704 p1; V4_8017FAC0_80181704 p2; @@ -4300,29 +4284,8 @@ void func_8018199C(void *arg0) { extern u8 D_801202A0[]; extern void (*D_80197578[])(void *); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FD58_8018199C; /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ - typedef struct { - u16 f0; /* 0x00 */ - u16 f2; /* 0x02 */ - u16 f4; /* 0x04 */ - u16 x; /* 0x06 */ - u16 f8; /* 0x08 */ - u16 y; /* 0x0A */ - u16 fC; /* 0x0C */ - u16 z; /* 0x0E */ - u8 p10[0x10]; - s32 f20; /* 0x20 */ - u8 p24[0x34]; - s32 f58; /* 0x58 */ - u8 p5C[8]; - s32 f64; /* 0x64 */ - u8 p68[0x10C - 0x68]; - } Ent_8017FD58_8018199C; /* stride 0x10C, 0x60 entries (0x6480) */ + /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ + /* stride 0x10C, 0x60 entries (0x6480) */ /* Two further V4 slots the original body declared ahead of `pos` but that * this function never reads: the target frame is 0x50 with locals at @@ -4903,7 +4866,6 @@ extern void func_8012E688(void *a0, s32 a1, s32 a2); void func_80182A68(s32 a0) { s32 ret = func_8012BD14(a0); if (ret <= 0x64000) { - typedef struct { s32 f0; s32 f1; } Struct_80182A68; Struct_80182A68 *ptr = *(Struct_80182A68 **)(a0 + 0x20); *(s16 *)(a0 + 0x2) = 1; ptr->f1 = ptr->f1 & 0x7FFFFFFF; @@ -5355,9 +5317,6 @@ void func_80183438(s32 a0) { extern u8 D_800AF648; extern u8 D_801A62AC[]; extern u8 D_801A5C1C[]; - typedef struct { - u16 x, y, z, w; - } V8_80183438; s32 mv[4]; /* sp+0x10 : the 4-word block handed to func_8012B1B4 */ V8_80183438 pad[2]; /* sp+0x20 : gcc's own area (vars must be 0x48 for a 0x68 frame) */ V8_80183438 sp30; /* sp+0x30 : func_80133784 arg1 */ @@ -5487,9 +5446,6 @@ void func_801837EC(s32 a0) { extern u8 D_801A6BAC[]; extern u8 D_801A652C[]; extern u8 D_801A6DB4[]; - typedef struct { - u16 x, y, z, w; - } V8_801837EC; s32 sp10[4]; V8_801837EC pad[2]; V8_801837EC sp30; @@ -5723,9 +5679,6 @@ void func_80183C94(s32 a0) { extern u8 D_80199B64[]; extern u8 D_801A686C[]; - typedef struct { - u16 x, y, z, w; - } V8_80183C94; V8_80183C94 pad[2]; V8_80183C94 sp20; V8_80183C94 sp28; @@ -6260,7 +6213,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_80184820(s32 a0) { extern u8 D_80199880[]; - typedef struct { u16 x, y, z, w; } V8_80184820; V8_80184820 sp10; V8_80184820 sp18; @@ -6377,9 +6329,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_80184A40(s32 *s0) { extern u8 D_80199880[]; - typedef struct { - u16 a, b, c, d; - } Data_t_80184A40; Data_t_80184A40 buf_src, buf_dst; s32 v0; @@ -7138,7 +7087,6 @@ void func_80185D5C(void *a0) void func_80185E28(void *a0) { - typedef struct { u8 b[8]; } Blk8_80185E28; extern s32 func_80017DC4(void *a0, void *a1); extern s16 func_8012A758(void); extern void RotMatrixY(s32 a0, void *a1); diff --git a/src/ov_SC03_102/ov_SC03_102_o0c.c b/src/ov_SC03_102/ov_SC03_102_o0c.c index 95424284ad..5491981f5e 100644 --- a/src/ov_SC03_102/ov_SC03_102_o0c.c +++ b/src/ov_SC03_102/ov_SC03_102_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801B9B00[]; D_801B9B00[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801B9B00[]; D_801B9B00[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801B9B00[]; D_801B9B00[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801B9BB8; extern s32 D_801B9C1C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801B9B00"); extern s32 D_801B9B9C; extern s32 D_801B9BA0; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_103/ov_SC03_103.c b/src/ov_SC03_103/ov_SC03_103.c index 84625a0715..03666a1ad0 100644 --- a/src/ov_SC03_103/ov_SC03_103.c +++ b/src/ov_SC03_103/ov_SC03_103.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_103/ov_SC03_103_after.c b/src/ov_SC03_103/ov_SC03_103_after.c index fe8637b7cb..91aca73fa2 100644 --- a/src/ov_SC03_103/ov_SC03_103_after.c +++ b/src/ov_SC03_103/ov_SC03_103_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_103/ov_SC03_103_jr_8012ACE0.c b/src/ov_SC03_103/ov_SC03_103_jr_8012ACE0.c index 0421b54e6c..3e1fa0b7ed 100644 --- a/src/ov_SC03_103/ov_SC03_103_jr_8012ACE0.c +++ b/src/ov_SC03_103/ov_SC03_103_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_103/ov_SC03_103_jr_801380E0.c b/src/ov_SC03_103/ov_SC03_103_jr_801380E0.c index ce6426efe9..72aa838484 100644 --- a/src/ov_SC03_103/ov_SC03_103_jr_801380E0.c +++ b/src/ov_SC03_103/ov_SC03_103_jr_801380E0.c @@ -1056,12 +1056,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80184700[]; u16 t; u8 b; diff --git a/src/ov_SC03_103/ov_SC03_103_jr_80140608.c b/src/ov_SC03_103/ov_SC03_103_jr_80140608.c index 0b88d34975..2255aa7633 100644 --- a/src/ov_SC03_103/ov_SC03_103_jr_80140608.c +++ b/src/ov_SC03_103/ov_SC03_103_jr_80140608.c @@ -1143,11 +1143,6 @@ s16 n; extern s16 D_801854C0[]; extern u16 D_80184FD0; extern u16 D_80184FD2; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1286,13 +1281,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2619,7 +2610,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_103/ov_SC03_103_jr_8016AB6C.c b/src/ov_SC03_103/ov_SC03_103_jr_8016AB6C.c index d508b10b44..7d3fff22a4 100644 --- a/src/ov_SC03_103/ov_SC03_103_jr_8016AB6C.c +++ b/src/ov_SC03_103/ov_SC03_103_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_103/ov_SC03_103_jr_801734BC.c b/src/ov_SC03_103/ov_SC03_103_jr_801734BC.c index 42198fb7f0..7093efe4ae 100644 --- a/src/ov_SC03_103/ov_SC03_103_jr_801734BC.c +++ b/src/ov_SC03_103/ov_SC03_103_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_103/nonmatchings/ov_SC03_103_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_103/ov_SC03_103_jr_8017C294.c b/src/ov_SC03_103/ov_SC03_103_jr_8017C294.c index e55b8973e0..3d10bc11a8 100644 --- a/src/ov_SC03_103/ov_SC03_103_jr_8017C294.c +++ b/src/ov_SC03_103/ov_SC03_103_jr_8017C294.c @@ -3823,9 +3823,6 @@ void func_8017E290(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017E2CC; extern u16 func_80148800(s32 *a0); extern void func_8017E5A4(s32 param_1, s16 *param_2); @@ -3850,9 +3847,6 @@ void func_8017E2CC(s32 a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017E36C; extern u16 func_80148800(s32 *a0); extern void func_8017E40C(s32 param_1, s16 *param_2); @@ -4032,12 +4026,7 @@ void func_8017E974(s32 a0) { extern u16 D_8019FFD4[]; extern u16 D_8019FFFC[]; extern void (*D_801A0024[])(s32); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FAC0_8017E974; /* 8 bytes */ + /* 8 bytes */ V4_8017FAC0_8017E974 p1; V4_8017FAC0_8017E974 p2; @@ -4121,29 +4110,8 @@ void func_8017EC0C(void *arg0) { extern u8 D_801202A0[]; extern void (*D_801A0070[])(void *); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FD58_8017EC0C; /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ - typedef struct { - u16 f0; /* 0x00 */ - u16 f2; /* 0x02 */ - u16 f4; /* 0x04 */ - u16 x; /* 0x06 */ - u16 f8; /* 0x08 */ - u16 y; /* 0x0A */ - u16 fC; /* 0x0C */ - u16 z; /* 0x0E */ - u8 p10[0x10]; - s32 f20; /* 0x20 */ - u8 p24[0x34]; - s32 f58; /* 0x58 */ - u8 p5C[8]; - s32 f64; /* 0x64 */ - u8 p68[0x10C - 0x68]; - } Ent_8017FD58_8017EC0C; /* stride 0x10C, 0x60 entries (0x6480) */ + /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ + /* stride 0x10C, 0x60 entries (0x6480) */ /* Two further V4 slots the original body declared ahead of `pos` but that * this function never reads: the target frame is 0x50 with locals at @@ -4723,7 +4691,6 @@ extern void func_8012E688(void *a0, s32 a1, s32 a2); void func_8017FCD8(s32 a0) { s32 ret = func_8012BD14(a0); if (ret <= 0x64000) { - typedef struct { s32 f0; s32 f1; } Struct_8017FCD8; Struct_8017FCD8 *ptr = *(Struct_8017FCD8 **)(a0 + 0x20); *(s16 *)(a0 + 0x2) = 1; ptr->f1 = ptr->f1 & 0x7FFFFFFF; @@ -5661,9 +5628,6 @@ void func_801813E8(s32 a0) { extern u8 D_800AF648; extern u8 D_801B1460[]; extern u8 D_801B0DD0[]; - typedef struct { - u16 x, y, z, w; - } V8_801813E8; s32 mv[4]; /* sp+0x10 : the 4-word block handed to func_8012B1B4 */ V8_801813E8 pad[2]; /* sp+0x20 : gcc's own area (vars must be 0x48 for a 0x68 frame) */ V8_801813E8 sp30; /* sp+0x30 : func_80133784 arg1 */ @@ -5793,9 +5757,6 @@ void func_8018179C(s32 a0) { extern u8 D_801B1D60[]; extern u8 D_801B16E0[]; extern u8 D_801B1F68[]; - typedef struct { - u16 x, y, z, w; - } V8_8018179C; s32 sp10[4]; V8_8018179C pad[2]; V8_8018179C sp30; @@ -6029,9 +5990,6 @@ void func_80181C44(s32 a0) { extern u8 D_801A4D18[]; extern u8 D_801B1A20[]; - typedef struct { - u16 x, y, z, w; - } V8_80181C44; V8_80181C44 pad[2]; V8_80181C44 sp20; V8_80181C44 sp28; @@ -6566,7 +6524,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_801827D0(s32 a0) { extern u8 D_801A4A34[]; - typedef struct { u16 x, y, z, w; } V8_801827D0; V8_801827D0 sp10; V8_801827D0 sp18; @@ -6684,9 +6641,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_801829F0(s32 *s0) { extern u8 D_801A4A34[]; - typedef struct { - u16 a, b, c, d; - } Data_t_801829F0; Data_t_801829F0 buf_src, buf_dst; s32 v0; @@ -7424,7 +7378,6 @@ void func_80183820(void *a0) void func_801838EC(void *a0) { - typedef struct { u8 b[8]; } Blk8_801838EC; extern s32 func_80017DC4(void *a0, void *a1); extern s16 func_8012A758(void); extern void RotMatrixY(s32 a0, void *a1); diff --git a/src/ov_SC03_103/ov_SC03_103_o0c.c b/src/ov_SC03_103/ov_SC03_103_o0c.c index 3a36173142..1dd606c0bc 100644 --- a/src/ov_SC03_103/ov_SC03_103_o0c.c +++ b/src/ov_SC03_103/ov_SC03_103_o0c.c @@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801C4CB0[]; D_801C4CB0[a0].f0 = 1; @@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801C4CB0[]; D_801C4CB0[idx].f0 = 1; @@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801C4CB0[]; D_801C4CB0[a0].f0 = 0; } @@ -844,16 +828,7 @@ extern s32 D_801C4D68; extern s32 D_801C4DCC; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801C4CB0"); extern s32 D_801C4D4C; extern s32 D_801C4D50; @@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_104/ov_SC03_104.c b/src/ov_SC03_104/ov_SC03_104.c index a0e43109ce..f9430d6c27 100644 --- a/src/ov_SC03_104/ov_SC03_104.c +++ b/src/ov_SC03_104/ov_SC03_104.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_104/ov_SC03_104_after.c b/src/ov_SC03_104/ov_SC03_104_after.c index d3cd61e893..715648c368 100644 --- a/src/ov_SC03_104/ov_SC03_104_after.c +++ b/src/ov_SC03_104/ov_SC03_104_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_104/ov_SC03_104_jr_8012ACE0.c b/src/ov_SC03_104/ov_SC03_104_jr_8012ACE0.c index 6f96a83ad9..763fcdd415 100644 --- a/src/ov_SC03_104/ov_SC03_104_jr_8012ACE0.c +++ b/src/ov_SC03_104/ov_SC03_104_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_104/ov_SC03_104_jr_801380E0.c b/src/ov_SC03_104/ov_SC03_104_jr_801380E0.c index 58a361c862..bbff0bb561 100644 --- a/src/ov_SC03_104/ov_SC03_104_jr_801380E0.c +++ b/src/ov_SC03_104/ov_SC03_104_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018B290[]; u16 t; u8 b; diff --git a/src/ov_SC03_104/ov_SC03_104_jr_80140608.c b/src/ov_SC03_104/ov_SC03_104_jr_80140608.c index c259607ae7..c3f55b9d40 100644 --- a/src/ov_SC03_104/ov_SC03_104_jr_80140608.c +++ b/src/ov_SC03_104/ov_SC03_104_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8018C050[]; extern u16 D_8018BB60; extern u16 D_8018BB62; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_104/ov_SC03_104_jr_8016AB6C.c b/src/ov_SC03_104/ov_SC03_104_jr_8016AB6C.c index b8b108440e..7a800a4f8b 100644 --- a/src/ov_SC03_104/ov_SC03_104_jr_8016AB6C.c +++ b/src/ov_SC03_104/ov_SC03_104_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_104/ov_SC03_104_jr_801734BC.c b/src/ov_SC03_104/ov_SC03_104_jr_801734BC.c index 8a6be8980e..2b25234b39 100644 --- a/src/ov_SC03_104/ov_SC03_104_jr_801734BC.c +++ b/src/ov_SC03_104/ov_SC03_104_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_104/ov_SC03_104_jr_8017AE2C.c b/src/ov_SC03_104/ov_SC03_104_jr_8017AE2C.c index 8051189e93..00c5afae98 100644 --- a/src/ov_SC03_104/ov_SC03_104_jr_8017AE2C.c +++ b/src/ov_SC03_104/ov_SC03_104_jr_8017AE2C.c @@ -3369,17 +3369,6 @@ void func_8017BF84(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017BFE0 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017BFE0; extern void func_80147324(s32 arg0); extern void func_8017C218(int); @@ -3480,24 +3469,11 @@ DEFINE_func_8017C1CC() /* dedup: shared engine-core @0x8017C1CC (src/shared) */ * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017C218; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017C218; -typedef struct { - SVec8_8017C218_8017C218 v[4]; /* 0x00 */ - CVec4_8017C218_8017C218 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017C218; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017C218; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -3779,10 +3755,6 @@ DEFINE_func_8017C8B4() /* dedup: shared engine-core @0x8017C8B4 (src/shared) */ void func_8017C910(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017C910; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017C910; - typedef struct { SVec_8017C910_8017C910 v[2]; Clr_8017C910_8017C910 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017C910; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017C910; extern Mtx8_8017C910_8017C910 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017C910 prim; diff --git a/src/ov_SC03_104/ov_SC03_104_jr_8017CA80.c b/src/ov_SC03_104/ov_SC03_104_jr_8017CA80.c index e33934f75c..f2cf2785b1 100644 --- a/src/ov_SC03_104/ov_SC03_104_jr_8017CA80.c +++ b/src/ov_SC03_104/ov_SC03_104_jr_8017CA80.c @@ -3383,20 +3383,9 @@ void func_8017CA80(s32 arg0) : "memory" ) /* ---- the two gouraud-textured packet layouts this function emits ---------- */ -typedef struct { - u32 tag; - u32 rgb0; s16 x0, y0; u32 uv0; - u32 rgb1; s16 x1, y1; u32 uv1; - u32 rgb2; s16 x2, y2; u16 uv2, p2; -} PolyGT3; /* 0x28 */ + /* 0x28 */ -typedef struct { - u32 tag; - u32 rgb0; s16 x0, y0; u32 uv0; - u32 rgb1; s16 x1, y1; u32 uv1; - u32 rgb2; s16 x2, y2; u16 uv2, p2; - u32 rgb3; s16 x3, y3; u16 uv3, p3; -} PolyGT4; /* 0x34 */ + /* 0x34 */ /* ---- the three light-volume descriptors ---------------------------------- */ extern s32 D_801C0370; @@ -4893,12 +4882,6 @@ void func_80185278(void) { * puts $s1's zero-init first, which is the target order. */ -typedef struct { - s16 unk0; - s16 unk2; - s16 unk4; - s16 unk6; -} Rec_8018A6A4_8018529C; extern void func_8018533C(s32 arg0, s32 arg1, s32 arg2); extern void func_80185458(s32 arg0, Rec_8018A6A4_8018529C *arg1, s32 arg2, s32 arg3); @@ -5008,7 +4991,7 @@ void aF8018A860(s32 a0, s16 *a1, u8 *a2, u8 *a3) { extern s16 D_801C0244; /* TU L3637 / L3671, verbatim */ - typedef struct { u8 b0, b1, b2, b3; } B4_80185458; /* align 1 — §48-C2 */ + /* align 1 — §48-C2 */ s16 *s1; u16 temp_u16; s16 temp_s16; @@ -5250,7 +5233,7 @@ void func_801855B4(void) { void func_80185690(s32 arg0) { - typedef struct { s32 w[8]; } Blk32_8018AA98_80185690; /* 32 bytes, align 4 */ + /* 32 bytes, align 4 */ extern Blk32_8018AA98_80185690 D_800AE620; extern s32 D_800A5E60; @@ -5400,7 +5383,6 @@ extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3); extern void func_80185A28(void *arg0, void *arg1, s32 arg2, s32 arg3); void func_801859A0(s32 a0) { - typedef struct { u8 a, b, c, d; } V4_801859A0; extern u8 D_800AF648; extern V4_801859A0 D_801BED24; u16 sxy[4]; @@ -5532,14 +5514,6 @@ void aF8018AFD0(s32 a0, s32 a1, s32 a2) __asm__("func_80185BC8"); void aF8018AFD0(s32 a0, s32 a1, s32 a2) { - typedef struct { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ - } P_80185BC8; extern s16 D_801C013C; extern s16 D_801C0136[]; @@ -5708,21 +5682,11 @@ extern void func_80016638(void *a0, s32 a1, s32 a2); /* 0x10-byte-stride record table at D_801C013C (same table as func_8018AD5C) */ -typedef struct { - u16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s16 f8; /* 0x08 */ - u16 fA; /* 0x0A */ - s16 fC; /* 0x0C */ - u16 fE; /* 0x0E */ -} Rec_8018B23C_80185E34; -typedef struct { s32 w[8]; } Mat32_8018B23C_80185E34; /* the 0x20-byte matrix */ -typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_80185E34; /* == engine_types.h OtBlk */ -typedef struct { u16 f; } Bidx_8018B23C_80185E34; /* the D_800B9A02 buffer index */ -typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_80185E34; /* libgpu P_TAG */ + /* the 0x20-byte matrix */ + /* == engine_types.h OtBlk */ + /* the D_800B9A02 buffer index */ + /* libgpu P_TAG */ void func_80185E34(s32 a0) { @@ -5842,12 +5806,7 @@ void func_80186118(s32 a0) { extern u16 D_8019D21C[]; extern u16 D_8019D244[]; extern void (*D_8019D26C[])(s32); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FAC0_80186118; /* 8 bytes */ + /* 8 bytes */ V4_8017FAC0_80186118 p1; V4_8017FAC0_80186118 p2; @@ -5931,29 +5890,8 @@ void func_801863B0(void *arg0) { extern u8 D_801202A0[]; extern void (*D_8019D2B8[])(void *); - typedef struct { - u16 x; /* 0x00 */ - u16 y; /* 0x02 */ - u16 z; /* 0x04 */ - u16 w; /* 0x06 */ - } V4_8017FD58_801863B0; /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ - typedef struct { - u16 f0; /* 0x00 */ - u16 f2; /* 0x02 */ - u16 f4; /* 0x04 */ - u16 x; /* 0x06 */ - u16 f8; /* 0x08 */ - u16 y; /* 0x0A */ - u16 fC; /* 0x0C */ - u16 z; /* 0x0E */ - u8 p10[0x10]; - s32 f20; /* 0x20 */ - u8 p24[0x34]; - s32 f58; /* 0x58 */ - u8 p5C[8]; - s32 f64; /* 0x64 */ - u8 p68[0x10C - 0x68]; - } Ent_8017FD58_801863B0; /* stride 0x10C, 0x60 entries (0x6480) */ + /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy */ + /* stride 0x10C, 0x60 entries (0x6480) */ /* Two further V4 slots the original body declared ahead of `pos` but that * this function never reads: the target frame is 0x50 with locals at @@ -6415,7 +6353,6 @@ extern void func_8012E688(void *a0, s32 a1, s32 a2); void func_8018747C(s32 a0) { s32 ret = func_8012BD14(a0); if (ret <= 0x64000) { - typedef struct { s32 f0; s32 f1; } Struct_8018747C; Struct_8018747C *ptr = *(Struct_8018747C **)(a0 + 0x20); *(s16 *)(a0 + 0x2) = 1; ptr->f1 = ptr->f1 & 0x7FFFFFFF; @@ -6867,9 +6804,6 @@ void func_80187E4C(s32 a0) { extern u8 D_800AF648; extern u8 D_801ABFEC[]; extern u8 D_801AB95C[]; - typedef struct { - u16 x, y, z, w; - } V8_80187E4C; s32 mv[4]; /* sp+0x10 : the 4-word block handed to func_8012B1B4 */ V8_80187E4C pad[2]; /* sp+0x20 : gcc's own area (vars must be 0x48 for a 0x68 frame) */ V8_80187E4C sp30; /* sp+0x30 : func_80133784 arg1 */ @@ -6999,9 +6933,6 @@ void func_80188200(s32 a0) { extern u8 D_801AC8EC[]; extern u8 D_801AC26C[]; extern u8 D_801ACAF4[]; - typedef struct { - u16 x, y, z, w; - } V8_80188200; s32 sp10[4]; V8_80188200 pad[2]; V8_80188200 sp30; @@ -7235,9 +7166,6 @@ void func_801886A8(s32 a0) { extern u8 D_8019F8A4[]; extern u8 D_801AC5AC[]; - typedef struct { - u16 x, y, z, w; - } V8_801886A8; V8_801886A8 pad[2]; V8_801886A8 sp20; V8_801886A8 sp28; @@ -7772,7 +7700,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_80189234(s32 a0) { extern u8 D_8019F5C0[]; - typedef struct { u16 x, y, z, w; } V8_80189234; V8_80189234 sp10; V8_80189234 sp18; @@ -7889,9 +7816,6 @@ extern s32 func_80133784(s32 a0, void *a1, s32 a2); void func_80189454(s32 *s0) { extern u8 D_8019F5C0[]; - typedef struct { - u16 a, b, c, d; - } Data_t_80189454; Data_t_80189454 buf_src, buf_dst; s32 v0; diff --git a/src/ov_SC03_104/ov_SC03_104_o0c.c b/src/ov_SC03_104/ov_SC03_104_o0c.c index d97e418f3c..a208559e2e 100644 --- a/src/ov_SC03_104/ov_SC03_104_o0c.c +++ b/src/ov_SC03_104/ov_SC03_104_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801C0370[]; D_801C0370[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801C0370[]; D_801C0370[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801C0370[]; D_801C0370[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801C0428; extern s32 D_801C048C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801C0370"); extern s32 D_801C040C; extern s32 D_801C0410; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_105/ov_SC03_105.c b/src/ov_SC03_105/ov_SC03_105.c index 60193c34fe..33d34399ac 100644 --- a/src/ov_SC03_105/ov_SC03_105.c +++ b/src/ov_SC03_105/ov_SC03_105.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_105/ov_SC03_105_after.c b/src/ov_SC03_105/ov_SC03_105_after.c index 3536639865..12854536d9 100644 --- a/src/ov_SC03_105/ov_SC03_105_after.c +++ b/src/ov_SC03_105/ov_SC03_105_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_105/ov_SC03_105_jr_8012ACE0.c b/src/ov_SC03_105/ov_SC03_105_jr_8012ACE0.c index 73c7cab08d..b3b00ab0b8 100644 --- a/src/ov_SC03_105/ov_SC03_105_jr_8012ACE0.c +++ b/src/ov_SC03_105/ov_SC03_105_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_105/ov_SC03_105_jr_801380E0.c b/src/ov_SC03_105/ov_SC03_105_jr_801380E0.c index 4d6c6350a3..6af1e8e5b8 100644 --- a/src/ov_SC03_105/ov_SC03_105_jr_801380E0.c +++ b/src/ov_SC03_105/ov_SC03_105_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018A918[]; u16 t; u8 b; diff --git a/src/ov_SC03_105/ov_SC03_105_jr_80140608.c b/src/ov_SC03_105/ov_SC03_105_jr_80140608.c index 3ac93e2025..308e2153ab 100644 --- a/src/ov_SC03_105/ov_SC03_105_jr_80140608.c +++ b/src/ov_SC03_105/ov_SC03_105_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8018B6D8[]; extern u16 D_8018B1E8; extern u16 D_8018B1EA; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_105/ov_SC03_105_jr_8016AB6C.c b/src/ov_SC03_105/ov_SC03_105_jr_8016AB6C.c index 21a85338e4..6b8e911853 100644 --- a/src/ov_SC03_105/ov_SC03_105_jr_8016AB6C.c +++ b/src/ov_SC03_105/ov_SC03_105_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_105/ov_SC03_105_jr_801734BC.c b/src/ov_SC03_105/ov_SC03_105_jr_801734BC.c index 537b2dd4c3..86b40c3138 100644 --- a/src/ov_SC03_105/ov_SC03_105_jr_801734BC.c +++ b/src/ov_SC03_105/ov_SC03_105_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_105/ov_SC03_105_jr_8017AE2C.c b/src/ov_SC03_105/ov_SC03_105_jr_8017AE2C.c index c0ca0e1eb6..4e97c3659e 100644 --- a/src/ov_SC03_105/ov_SC03_105_jr_8017AE2C.c +++ b/src/ov_SC03_105/ov_SC03_105_jr_8017AE2C.c @@ -3336,17 +3336,6 @@ extern void func_8017BF34(s32 arg0, s32 arg1, s32 arg2, s32 arg3); extern s32 func_8012C750(s32 a0); -typedef struct { - s16 unk00; - s16 unk02; - s16 unk04; - s16 unk06; - s16 unk08; - s16 unk0A; - s16 unk0C; - s16 unk0E; - s32 unk10; -} Buf8017BF34_8017BF34; void func_8017BF34(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { diff --git a/src/ov_SC03_105/ov_SC03_105_jr_8017C8D0.c b/src/ov_SC03_105/ov_SC03_105_jr_8017C8D0.c index 7619431b7d..1814e29b5e 100644 --- a/src/ov_SC03_105/ov_SC03_105_jr_8017C8D0.c +++ b/src/ov_SC03_105/ov_SC03_105_jr_8017C8D0.c @@ -3195,17 +3195,8 @@ extern s32 func_80017DC4(void *a0, void *a1); extern s32 func_80017E30(void *a0, void *a1); extern void func_80016ED4(void *a0); -typedef struct { short vx, vy, vz, pad; } SVECTOR_8017F40C_8017DB28; -typedef struct { - SVECTOR_8017F40C_8017DB28 v[4]; /* 0x00 */ - s16 k30, k32, k34, k36, k38, k3a, k3c, k3e; /* 0x20 */ - u32 bcast; /* 0x30 */ - s32 tag; /* 0x34 */ - u8 code; /* 0x38 */ - u8 pad39[7]; /* -> 0x40 */ -} Prim_8017F40C_8017DB28; void func_8017DB28(s32 a0, s32 a1) { @@ -3993,7 +3984,6 @@ extern void func_800233CC(void *a0, unsigned short a1); /* align-1 4-byte block: lowers via emit_block_move (unaligned lwl/lwr + swl/swr) * with ZERO memcpy-symbol reference, so the TU's `extern memcpy` cannot turn * this into a CALL. (house idiom, cf. func_8017B238 / func_8017B614) */ -typedef struct { u8 b[4]; } Blk4_8018CE04_80188C34; void func_80188C34(s32 param_1) { @@ -4171,12 +4161,6 @@ void func_80189418(void *a0) { -typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; -} EffectSlot4_80189454; extern void func_801465C0(void); extern void func_80146C3C(void); @@ -4468,7 +4452,6 @@ void func_80189F24(void *a0) void func_80189FF0(void *a0) { - typedef struct { u8 b[8]; } Blk8_80189FF0; extern s32 func_80017DC4(void *a0, void *a1); extern s16 func_8012A758(void); extern void RotMatrixY(s32 a0, void *a1); diff --git a/src/ov_SC03_105/ov_SC03_105_o0c.c b/src/ov_SC03_105/ov_SC03_105_o0c.c index 36d16742b6..5860900c77 100644 --- a/src/ov_SC03_105/ov_SC03_105_o0c.c +++ b/src/ov_SC03_105/ov_SC03_105_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801BCBF8[]; D_801BCBF8[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801BCBF8[]; D_801BCBF8[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801BCBF8[]; D_801BCBF8[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801BCCB0; extern s32 D_801BCD14; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801BCBF8"); extern s32 D_801BCC94; extern s32 D_801BCC98; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_108/ov_SC03_108.c b/src/ov_SC03_108/ov_SC03_108.c index f74919a588..cc7870972c 100644 --- a/src/ov_SC03_108/ov_SC03_108.c +++ b/src/ov_SC03_108/ov_SC03_108.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_108/ov_SC03_108_after.c b/src/ov_SC03_108/ov_SC03_108_after.c index d192e66619..57a990a076 100644 --- a/src/ov_SC03_108/ov_SC03_108_after.c +++ b/src/ov_SC03_108/ov_SC03_108_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_108/ov_SC03_108_jr_8012ACE0.c b/src/ov_SC03_108/ov_SC03_108_jr_8012ACE0.c index a2801eae0b..8ad9a5f9cc 100644 --- a/src/ov_SC03_108/ov_SC03_108_jr_8012ACE0.c +++ b/src/ov_SC03_108/ov_SC03_108_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_108/ov_SC03_108_jr_801380E0.c b/src/ov_SC03_108/ov_SC03_108_jr_801380E0.c index 3f656239ac..4b4bc5fa75 100644 --- a/src/ov_SC03_108/ov_SC03_108_jr_801380E0.c +++ b/src/ov_SC03_108/ov_SC03_108_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80181270[]; u16 t; u8 b; diff --git a/src/ov_SC03_108/ov_SC03_108_jr_80140608.c b/src/ov_SC03_108/ov_SC03_108_jr_80140608.c index eedd546de1..8f6defb509 100644 --- a/src/ov_SC03_108/ov_SC03_108_jr_80140608.c +++ b/src/ov_SC03_108/ov_SC03_108_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80182030[]; extern u16 D_80181B40; extern u16 D_80181B42; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_108/ov_SC03_108_jr_8016AB6C.c b/src/ov_SC03_108/ov_SC03_108_jr_8016AB6C.c index 4c1f967f32..dd8e8c7387 100644 --- a/src/ov_SC03_108/ov_SC03_108_jr_8016AB6C.c +++ b/src/ov_SC03_108/ov_SC03_108_jr_8016AB6C.c @@ -3734,22 +3734,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_108/ov_SC03_108_jr_801734BC.c b/src/ov_SC03_108/ov_SC03_108_jr_801734BC.c index 12c3964a53..67e35e943b 100644 --- a/src/ov_SC03_108/ov_SC03_108_jr_801734BC.c +++ b/src/ov_SC03_108/ov_SC03_108_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_108/nonmatchings/ov_SC03_108_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_108/ov_SC03_108_o0c.c b/src/ov_SC03_108/ov_SC03_108_o0c.c index 5aa237ce21..e6dd8b5b7b 100644 --- a/src/ov_SC03_108/ov_SC03_108_o0c.c +++ b/src/ov_SC03_108/ov_SC03_108_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801A1980[]; D_801A1980[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801A1980[]; D_801A1980[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801A1980[]; D_801A1980[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801A1A38; extern s32 D_801A1A9C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801A1980"); extern s32 D_801A1A1C; extern s32 D_801A1A20; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_109/ov_SC03_109.c b/src/ov_SC03_109/ov_SC03_109.c index 94ff9717a4..d55d22b2f4 100644 --- a/src/ov_SC03_109/ov_SC03_109.c +++ b/src/ov_SC03_109/ov_SC03_109.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_109/ov_SC03_109_after.c b/src/ov_SC03_109/ov_SC03_109_after.c index a5e8fc0bac..e59ace43ba 100644 --- a/src/ov_SC03_109/ov_SC03_109_after.c +++ b/src/ov_SC03_109/ov_SC03_109_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_109/ov_SC03_109_jr_8012ACE0.c b/src/ov_SC03_109/ov_SC03_109_jr_8012ACE0.c index 9c232901aa..07be393896 100644 --- a/src/ov_SC03_109/ov_SC03_109_jr_8012ACE0.c +++ b/src/ov_SC03_109/ov_SC03_109_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_109/ov_SC03_109_jr_801380E0.c b/src/ov_SC03_109/ov_SC03_109_jr_801380E0.c index 04448e814b..22eeda643e 100644 --- a/src/ov_SC03_109/ov_SC03_109_jr_801380E0.c +++ b/src/ov_SC03_109/ov_SC03_109_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017E91C[]; u16 t; u8 b; diff --git a/src/ov_SC03_109/ov_SC03_109_jr_80140608.c b/src/ov_SC03_109/ov_SC03_109_jr_80140608.c index e044a1ddd2..50b5e3cb08 100644 --- a/src/ov_SC03_109/ov_SC03_109_jr_80140608.c +++ b/src/ov_SC03_109/ov_SC03_109_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8017F6DC[]; extern u16 D_8017F1EC; extern u16 D_8017F1EE; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_109/ov_SC03_109_jr_8016AB6C.c b/src/ov_SC03_109/ov_SC03_109_jr_8016AB6C.c index 8b3b68cdcb..df2ba1d02d 100644 --- a/src/ov_SC03_109/ov_SC03_109_jr_8016AB6C.c +++ b/src/ov_SC03_109/ov_SC03_109_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_109/ov_SC03_109_jr_801734BC.c b/src/ov_SC03_109/ov_SC03_109_jr_801734BC.c index 343a4ff0e8..5f8aab7465 100644 --- a/src/ov_SC03_109/ov_SC03_109_jr_801734BC.c +++ b/src/ov_SC03_109/ov_SC03_109_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_109/nonmatchings/ov_SC03_109_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_109/ov_SC03_109_o0c.c b/src/ov_SC03_109/ov_SC03_109_o0c.c index e0054d6267..5e4fd6c811 100644 --- a/src/ov_SC03_109/ov_SC03_109_o0c.c +++ b/src/ov_SC03_109/ov_SC03_109_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_8019A388[]; D_8019A388[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_8019A388[]; D_8019A388[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_8019A388[]; D_8019A388[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_8019A440; extern s32 D_8019A4A4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_8019A388"); extern s32 D_8019A424; extern s32 D_8019A428; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_110/ov_SC03_110.c b/src/ov_SC03_110/ov_SC03_110.c index 39eaf3c9e6..d2f61e2ed2 100644 --- a/src/ov_SC03_110/ov_SC03_110.c +++ b/src/ov_SC03_110/ov_SC03_110.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_110/ov_SC03_110_after.c b/src/ov_SC03_110/ov_SC03_110_after.c index ada72559a8..81fa86156d 100644 --- a/src/ov_SC03_110/ov_SC03_110_after.c +++ b/src/ov_SC03_110/ov_SC03_110_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_110/ov_SC03_110_jr_8012ACE0.c b/src/ov_SC03_110/ov_SC03_110_jr_8012ACE0.c index 7547c59161..a4f0a0aabf 100644 --- a/src/ov_SC03_110/ov_SC03_110_jr_8012ACE0.c +++ b/src/ov_SC03_110/ov_SC03_110_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_110/ov_SC03_110_jr_801380E0.c b/src/ov_SC03_110/ov_SC03_110_jr_801380E0.c index 708770ebf5..6dac59d07f 100644 --- a/src/ov_SC03_110/ov_SC03_110_jr_801380E0.c +++ b/src/ov_SC03_110/ov_SC03_110_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018233C[]; u16 t; u8 b; diff --git a/src/ov_SC03_110/ov_SC03_110_jr_80140608.c b/src/ov_SC03_110/ov_SC03_110_jr_80140608.c index 8f536e929f..d192698824 100644 --- a/src/ov_SC03_110/ov_SC03_110_jr_80140608.c +++ b/src/ov_SC03_110/ov_SC03_110_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_801830FC[]; extern u16 D_80182C0C; extern u16 D_80182C0E; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_110/ov_SC03_110_jr_8016AB6C.c b/src/ov_SC03_110/ov_SC03_110_jr_8016AB6C.c index ae188506e7..538d8fdf52 100644 --- a/src/ov_SC03_110/ov_SC03_110_jr_8016AB6C.c +++ b/src/ov_SC03_110/ov_SC03_110_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_110/ov_SC03_110_jr_801734BC.c b/src/ov_SC03_110/ov_SC03_110_jr_801734BC.c index 78f1248444..eba5941ab3 100644 --- a/src/ov_SC03_110/ov_SC03_110_jr_801734BC.c +++ b/src/ov_SC03_110/ov_SC03_110_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_110/nonmatchings/ov_SC03_110_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_110/ov_SC03_110_jr_8017AE2C.c b/src/ov_SC03_110/ov_SC03_110_jr_8017AE2C.c index 9cbb63ee89..cf4eb1b27e 100644 --- a/src/ov_SC03_110/ov_SC03_110_jr_8017AE2C.c +++ b/src/ov_SC03_110/ov_SC03_110_jr_8017AE2C.c @@ -3347,8 +3347,6 @@ void func_8017BEBC(s32 param_1, s32 param_2) extern s32 D_801A210C; extern s32 D_801A2110; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_8017BEBC; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017BEBC; SV4_L_8017BEBC vec; /* sp+0x10 */ MTX_L_8017BEBC mtx; /* sp+0x18 */ @@ -3504,8 +3502,6 @@ void func_8017BFEC(s32 a0) { extern u8 D_801A211E; extern u8 D_801A2124; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017BFEC; - typedef struct { Rec027_8017BFEC r[9]; } Blk027_8017BFEC; extern Blk027_8017BFEC D_8019F528; extern Blk027_8017BFEC D_801A2198[]; @@ -3781,14 +3777,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_8017BEBC(s32 a0, s32 a1); void func_8017C738(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_8017C738; extern Rec_8017C738_8017C738 D_8019F528[]; Rec_8017C738_8017C738 *q = D_8019F528; @@ -4097,17 +4085,6 @@ void func_8017CD9C(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017CDF8 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017CDF8; extern void func_80147324(s32 arg0); extern void func_8017D030(int); @@ -4221,24 +4198,11 @@ void func_8017CFE4(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017D030; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017D030; -typedef struct { - SVec8_8017C218_8017D030 v[4]; /* 0x00 */ - CVec4_8017C218_8017D030 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017D030; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017D030; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -4559,10 +4523,6 @@ void func_8017D6CC(void *a0) void func_8017D728(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017D728; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017D728; - typedef struct { SVec_8017C910_8017D728 v[2]; Clr_8017C910_8017D728 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017D728; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017D728; extern Mtx8_8017C910_8017D728 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017D728 prim; diff --git a/src/ov_SC03_110/ov_SC03_110_o0c.c b/src/ov_SC03_110/ov_SC03_110_o0c.c index 0b1333a39b..f648e1fa2f 100644 --- a/src/ov_SC03_110/ov_SC03_110_o0c.c +++ b/src/ov_SC03_110/ov_SC03_110_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801A23B8[]; D_801A23B8[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801A23B8[]; D_801A23B8[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801A23B8[]; D_801A23B8[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801A2470; extern s32 D_801A24D4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801A23B8"); extern s32 D_801A2454; extern s32 D_801A2458; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_111/ov_SC03_111.c b/src/ov_SC03_111/ov_SC03_111.c index 34931973c0..54e70f144b 100644 --- a/src/ov_SC03_111/ov_SC03_111.c +++ b/src/ov_SC03_111/ov_SC03_111.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_111/ov_SC03_111_after.c b/src/ov_SC03_111/ov_SC03_111_after.c index 1c54478cf3..9839fc8f18 100644 --- a/src/ov_SC03_111/ov_SC03_111_after.c +++ b/src/ov_SC03_111/ov_SC03_111_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_111/ov_SC03_111_jr_8012ACE0.c b/src/ov_SC03_111/ov_SC03_111_jr_8012ACE0.c index 498340e819..0768864378 100644 --- a/src/ov_SC03_111/ov_SC03_111_jr_8012ACE0.c +++ b/src/ov_SC03_111/ov_SC03_111_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_111/ov_SC03_111_jr_801380E0.c b/src/ov_SC03_111/ov_SC03_111_jr_801380E0.c index 295f2ca28d..aecc3c68e9 100644 --- a/src/ov_SC03_111/ov_SC03_111_jr_801380E0.c +++ b/src/ov_SC03_111/ov_SC03_111_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80184EF0[]; u16 t; u8 b; diff --git a/src/ov_SC03_111/ov_SC03_111_jr_80140608.c b/src/ov_SC03_111/ov_SC03_111_jr_80140608.c index 50132cf059..38919c8f76 100644 --- a/src/ov_SC03_111/ov_SC03_111_jr_80140608.c +++ b/src/ov_SC03_111/ov_SC03_111_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80185CB0[]; extern u16 D_801857C0; extern u16 D_801857C2; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_111/ov_SC03_111_jr_8016AB6C.c b/src/ov_SC03_111/ov_SC03_111_jr_8016AB6C.c index fe39f2ddcb..4ee093eff7 100644 --- a/src/ov_SC03_111/ov_SC03_111_jr_8016AB6C.c +++ b/src/ov_SC03_111/ov_SC03_111_jr_8016AB6C.c @@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_111/ov_SC03_111_jr_801734BC.c b/src/ov_SC03_111/ov_SC03_111_jr_801734BC.c index f07717ae76..557e6a9aa8 100644 --- a/src/ov_SC03_111/ov_SC03_111_jr_801734BC.c +++ b/src/ov_SC03_111/ov_SC03_111_jr_801734BC.c @@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2947,7 +2947,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3033,7 +3033,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3057,14 +3057,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3218,7 +3210,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_111/ov_SC03_111_jr_8017AE2C.c b/src/ov_SC03_111/ov_SC03_111_jr_8017AE2C.c index 03524beb25..371eb771d4 100644 --- a/src/ov_SC03_111/ov_SC03_111_jr_8017AE2C.c +++ b/src/ov_SC03_111/ov_SC03_111_jr_8017AE2C.c @@ -3877,7 +3877,6 @@ void func_8017C880(s16 *a0) { * (instead of a fresh local) avoids stealing back the $v0 slot. */ -typedef struct { s32 w[8]; } Mtx8_8017DE10_8017C95C; void func_8017C95C(s32 a0) { extern void ApplyMatrixSV(void *a0, void *a1, void *a2); @@ -4301,8 +4300,6 @@ void func_8017D27C(s32 param_1, s32 param_2) extern s32 D_801B962C; extern s32 D_801B9630; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_8017D27C; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017D27C; SV4_L_8017D27C vec; /* sp+0x10 */ MTX_L_8017D27C mtx; /* sp+0x18 */ @@ -4458,8 +4455,6 @@ void func_8017D3AC(s32 a0) { extern u8 D_801B963E; extern u8 D_801B9644; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017D3AC; - typedef struct { Rec027_8017D3AC r[9]; } Blk027_8017D3AC; extern Blk027_8017D3AC D_801B6070; extern Blk027_8017D3AC D_801B96B8[]; @@ -4735,14 +4730,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_8017D27C(s32 a0, s32 a1); void func_8017DAF8(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_8017DAF8; extern Rec_8017C738_8017DAF8 D_801B6070[]; Rec_8017C738_8017DAF8 *q = D_801B6070; @@ -5051,17 +5038,6 @@ void func_8017E15C(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017E1B8 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017E1B8; extern void func_80147324(s32 arg0); extern void func_8017E3F0(int); @@ -5175,24 +5151,11 @@ void func_8017E3A4(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017E3F0; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017E3F0; -typedef struct { - SVec8_8017C218_8017E3F0 v[4]; /* 0x00 */ - CVec4_8017C218_8017E3F0 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017E3F0; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017E3F0; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -5513,10 +5476,6 @@ void func_8017EA8C(void *a0) void func_8017EAE8(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017EAE8; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017EAE8; - typedef struct { SVec_8017C910_8017EAE8 v[2]; Clr_8017C910_8017EAE8 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017EAE8; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017EAE8; extern Mtx8_8017C910_8017EAE8 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017EAE8 prim; diff --git a/src/ov_SC03_111/ov_SC03_111_jr_8017EC58.c b/src/ov_SC03_111/ov_SC03_111_jr_8017EC58.c index c538a75e7a..76e79acd40 100644 --- a/src/ov_SC03_111/ov_SC03_111_jr_8017EC58.c +++ b/src/ov_SC03_111/ov_SC03_111_jr_8017EC58.c @@ -3274,9 +3274,7 @@ void func_8017EC58(s32 arg0) void func_8017FB38(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { - typedef struct { u32 w0, w1, w2; } Prim_8017FB38; /* vy UNSIGNED: the `+=` reads it with lhu, not lh. */ - typedef struct { s16 vx; u16 vy; s16 vz, pad; } SVec_8017FB38; extern s32 func_800491EC(void); extern void func_800547D8(s32, MATRIX2 *); diff --git a/src/ov_SC03_111/ov_SC03_111_o0c.c b/src/ov_SC03_111/ov_SC03_111_o0c.c index dc18b84387..702f3561ff 100644 --- a/src/ov_SC03_111/ov_SC03_111_o0c.c +++ b/src/ov_SC03_111/ov_SC03_111_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801B9A60[]; D_801B9A60[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801B9A60[]; D_801B9A60[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801B9A60[]; D_801B9A60[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801B9B18; extern s32 D_801B9B7C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801B9A60"); extern s32 D_801B9AFC; extern s32 D_801B9B00; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_112/ov_SC03_112.c b/src/ov_SC03_112/ov_SC03_112.c index c7a637091a..206570da09 100644 --- a/src/ov_SC03_112/ov_SC03_112.c +++ b/src/ov_SC03_112/ov_SC03_112.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_112/ov_SC03_112_after.c b/src/ov_SC03_112/ov_SC03_112_after.c index eba8c18552..81083958f8 100644 --- a/src/ov_SC03_112/ov_SC03_112_after.c +++ b/src/ov_SC03_112/ov_SC03_112_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_112/ov_SC03_112_jr_8012ACE0.c b/src/ov_SC03_112/ov_SC03_112_jr_8012ACE0.c index 5fde0df381..2344bcbd49 100644 --- a/src/ov_SC03_112/ov_SC03_112_jr_8012ACE0.c +++ b/src/ov_SC03_112/ov_SC03_112_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_112/ov_SC03_112_jr_801380E0.c b/src/ov_SC03_112/ov_SC03_112_jr_801380E0.c index 6f8c402ca2..1aed25234d 100644 --- a/src/ov_SC03_112/ov_SC03_112_jr_801380E0.c +++ b/src/ov_SC03_112/ov_SC03_112_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80185CF8[]; u16 t; u8 b; diff --git a/src/ov_SC03_112/ov_SC03_112_jr_80140608.c b/src/ov_SC03_112/ov_SC03_112_jr_80140608.c index 900926b970..c67ba3cd4f 100644 --- a/src/ov_SC03_112/ov_SC03_112_jr_80140608.c +++ b/src/ov_SC03_112/ov_SC03_112_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80186AB8[]; extern u16 D_801865C8; extern u16 D_801865CA; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_112/ov_SC03_112_jr_8016AB6C.c b/src/ov_SC03_112/ov_SC03_112_jr_8016AB6C.c index f74ba6d93c..d6477b5f43 100644 --- a/src/ov_SC03_112/ov_SC03_112_jr_8016AB6C.c +++ b/src/ov_SC03_112/ov_SC03_112_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_112/ov_SC03_112_jr_801734BC.c b/src/ov_SC03_112/ov_SC03_112_jr_801734BC.c index 9079437fab..a53ad53136 100644 --- a/src/ov_SC03_112/ov_SC03_112_jr_801734BC.c +++ b/src/ov_SC03_112/ov_SC03_112_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC03_112/nonmatchings/ov_SC03_112_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_112/ov_SC03_112_jr_8017C294.c b/src/ov_SC03_112/ov_SC03_112_jr_8017C294.c index f16e40352c..7b79093935 100644 --- a/src/ov_SC03_112/ov_SC03_112_jr_8017C294.c +++ b/src/ov_SC03_112/ov_SC03_112_jr_8017C294.c @@ -3336,7 +3336,6 @@ void func_8017C294(s32 arg0) void func_8017D174(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { - typedef struct { u32 w0, w1, w2; } Prim_8017D174; extern s32 func_800491EC(void); extern void func_800547D8(s32, MATRIX2 *); diff --git a/src/ov_SC03_112/ov_SC03_112_o0c.c b/src/ov_SC03_112/ov_SC03_112_o0c.c index 08b2f73d06..71f0e08607 100644 --- a/src/ov_SC03_112/ov_SC03_112_o0c.c +++ b/src/ov_SC03_112/ov_SC03_112_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801AD028[]; D_801AD028[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801AD028[]; D_801AD028[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801AD028[]; D_801AD028[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801AD0E0; extern s32 D_801AD144; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801AD028"); extern s32 D_801AD0C4; extern s32 D_801AD0C8; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_113/ov_SC03_113.c b/src/ov_SC03_113/ov_SC03_113.c index b87d13c81c..aa3a4a44e7 100644 --- a/src/ov_SC03_113/ov_SC03_113.c +++ b/src/ov_SC03_113/ov_SC03_113.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_113/ov_SC03_113_after.c b/src/ov_SC03_113/ov_SC03_113_after.c index 1525c7c0f4..5e829e689e 100644 --- a/src/ov_SC03_113/ov_SC03_113_after.c +++ b/src/ov_SC03_113/ov_SC03_113_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_113/ov_SC03_113_jr_8012ACE0.c b/src/ov_SC03_113/ov_SC03_113_jr_8012ACE0.c index 6baf6183bd..073901fd0c 100644 --- a/src/ov_SC03_113/ov_SC03_113_jr_8012ACE0.c +++ b/src/ov_SC03_113/ov_SC03_113_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_113/ov_SC03_113_jr_801380E0.c b/src/ov_SC03_113/ov_SC03_113_jr_801380E0.c index 9ac8543c18..5100a85407 100644 --- a/src/ov_SC03_113/ov_SC03_113_jr_801380E0.c +++ b/src/ov_SC03_113/ov_SC03_113_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_801833A8[]; u16 t; u8 b; diff --git a/src/ov_SC03_113/ov_SC03_113_jr_80140608.c b/src/ov_SC03_113/ov_SC03_113_jr_80140608.c index 8e2938d3eb..000b3df03d 100644 --- a/src/ov_SC03_113/ov_SC03_113_jr_80140608.c +++ b/src/ov_SC03_113/ov_SC03_113_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80184168[]; extern u16 D_80183C78; extern u16 D_80183C7A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_113/ov_SC03_113_jr_8016AB6C.c b/src/ov_SC03_113/ov_SC03_113_jr_8016AB6C.c index 8e00a9331a..4cda15594d 100644 --- a/src/ov_SC03_113/ov_SC03_113_jr_8016AB6C.c +++ b/src/ov_SC03_113/ov_SC03_113_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_113/ov_SC03_113_jr_801734BC.c b/src/ov_SC03_113/ov_SC03_113_jr_801734BC.c index 5bf01f8f9e..6a112ee29b 100644 --- a/src/ov_SC03_113/ov_SC03_113_jr_801734BC.c +++ b/src/ov_SC03_113/ov_SC03_113_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC03_113/nonmatchings/ov_SC03_113_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_113/ov_SC03_113_jr_8017C294.c b/src/ov_SC03_113/ov_SC03_113_jr_8017C294.c index b7feb87a6d..56cc956b06 100644 --- a/src/ov_SC03_113/ov_SC03_113_jr_8017C294.c +++ b/src/ov_SC03_113/ov_SC03_113_jr_8017C294.c @@ -3322,7 +3322,6 @@ void func_8017C294(s32 arg0) void func_8017D174(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { - typedef struct { u32 w0, w1, w2; } Prim_8017D174; extern s32 func_800491EC(void); extern void func_800547D8(s32, MATRIX2 *); @@ -4160,7 +4159,6 @@ void func_8017E79C(s16 *a0) { * (instead of a fresh local) avoids stealing back the $v0 slot. */ -typedef struct { s32 w[8]; } Mtx8_8017DE10_8017E878; void func_8017E878(s32 a0) { extern void ApplyMatrixSV(void *a0, void *a1, void *a2); @@ -4567,9 +4565,6 @@ void func_8017F120(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017F15C; extern u16 func_80148800(s32 *a0); extern void func_8017F1FC(s32 param_1, s16 *param_2); diff --git a/src/ov_SC03_113/ov_SC03_113_o0c.c b/src/ov_SC03_113/ov_SC03_113_o0c.c index ec796b9cf6..09df0ae7f2 100644 --- a/src/ov_SC03_113/ov_SC03_113_o0c.c +++ b/src/ov_SC03_113/ov_SC03_113_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801A5BC8[]; D_801A5BC8[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801A5BC8[]; D_801A5BC8[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801A5BC8[]; D_801A5BC8[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801A5C80; extern s32 D_801A5CE4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801A5BC8"); extern s32 D_801A5C64; extern s32 D_801A5C68; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_114/ov_SC03_114.c b/src/ov_SC03_114/ov_SC03_114.c index 6f2c4953ff..dcc3d01ced 100644 --- a/src/ov_SC03_114/ov_SC03_114.c +++ b/src/ov_SC03_114/ov_SC03_114.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_114/ov_SC03_114_after.c b/src/ov_SC03_114/ov_SC03_114_after.c index 6ef84d3abd..e930b7b79f 100644 --- a/src/ov_SC03_114/ov_SC03_114_after.c +++ b/src/ov_SC03_114/ov_SC03_114_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_114/ov_SC03_114_jr_8012ACE0.c b/src/ov_SC03_114/ov_SC03_114_jr_8012ACE0.c index 665b6899cd..98fe7fa43b 100644 --- a/src/ov_SC03_114/ov_SC03_114_jr_8012ACE0.c +++ b/src/ov_SC03_114/ov_SC03_114_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_114/ov_SC03_114_jr_801380E0.c b/src/ov_SC03_114/ov_SC03_114_jr_801380E0.c index 5c2e2e2c45..6fda593cfc 100644 --- a/src/ov_SC03_114/ov_SC03_114_jr_801380E0.c +++ b/src/ov_SC03_114/ov_SC03_114_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017F010[]; u16 t; u8 b; diff --git a/src/ov_SC03_114/ov_SC03_114_jr_80140608.c b/src/ov_SC03_114/ov_SC03_114_jr_80140608.c index a0e29b6ac9..07910ae1c8 100644 --- a/src/ov_SC03_114/ov_SC03_114_jr_80140608.c +++ b/src/ov_SC03_114/ov_SC03_114_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8017FDD0[]; extern u16 D_8017F8E0; extern u16 D_8017F8E2; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_114/ov_SC03_114_jr_8016AB6C.c b/src/ov_SC03_114/ov_SC03_114_jr_8016AB6C.c index 18db20f305..c6f3f62311 100644 --- a/src/ov_SC03_114/ov_SC03_114_jr_8016AB6C.c +++ b/src/ov_SC03_114/ov_SC03_114_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_114/ov_SC03_114_jr_801734BC.c b/src/ov_SC03_114/ov_SC03_114_jr_801734BC.c index b409c1060e..4f734c17a7 100644 --- a/src/ov_SC03_114/ov_SC03_114_jr_801734BC.c +++ b/src/ov_SC03_114/ov_SC03_114_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC03_114/nonmatchings/ov_SC03_114_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_114/ov_SC03_114_jr_8017BEBC.c b/src/ov_SC03_114/ov_SC03_114_jr_8017BEBC.c index 6fc133cd09..7155518d82 100644 --- a/src/ov_SC03_114/ov_SC03_114_jr_8017BEBC.c +++ b/src/ov_SC03_114/ov_SC03_114_jr_8017BEBC.c @@ -3281,9 +3281,6 @@ void func_8017D008(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D044; extern u16 func_80148800(s32 *a0); extern void func_8017D0E4(void*); diff --git a/src/ov_SC03_114/ov_SC03_114_o0c.c b/src/ov_SC03_114/ov_SC03_114_o0c.c index 2f38fa03c9..f8e6373bb4 100644 --- a/src/ov_SC03_114/ov_SC03_114_o0c.c +++ b/src/ov_SC03_114/ov_SC03_114_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801A9740[]; D_801A9740[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801A9740[]; D_801A9740[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801A9740[]; D_801A9740[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801A97F8; extern s32 D_801A985C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801A9740"); extern s32 D_801A97DC; extern s32 D_801A97E0; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_115/ov_SC03_115.c b/src/ov_SC03_115/ov_SC03_115.c index a29ce266c2..6a292c7927 100644 --- a/src/ov_SC03_115/ov_SC03_115.c +++ b/src/ov_SC03_115/ov_SC03_115.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_115/ov_SC03_115_after.c b/src/ov_SC03_115/ov_SC03_115_after.c index 662cbb4381..db03985d54 100644 --- a/src/ov_SC03_115/ov_SC03_115_after.c +++ b/src/ov_SC03_115/ov_SC03_115_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_115/ov_SC03_115_jr_8012ACE0.c b/src/ov_SC03_115/ov_SC03_115_jr_8012ACE0.c index 654b76bc9d..a9d2a15908 100644 --- a/src/ov_SC03_115/ov_SC03_115_jr_8012ACE0.c +++ b/src/ov_SC03_115/ov_SC03_115_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_115/ov_SC03_115_jr_801380E0.c b/src/ov_SC03_115/ov_SC03_115_jr_801380E0.c index fba383a325..e3a9cfc563 100644 --- a/src/ov_SC03_115/ov_SC03_115_jr_801380E0.c +++ b/src/ov_SC03_115/ov_SC03_115_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80180A7C[]; u16 t; u8 b; diff --git a/src/ov_SC03_115/ov_SC03_115_jr_80140608.c b/src/ov_SC03_115/ov_SC03_115_jr_80140608.c index 39c0bef8d2..c96c5f2a78 100644 --- a/src/ov_SC03_115/ov_SC03_115_jr_80140608.c +++ b/src/ov_SC03_115/ov_SC03_115_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8018183C[]; extern u16 D_8018134C; extern u16 D_8018134E; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_115/ov_SC03_115_jr_8016AB6C.c b/src/ov_SC03_115/ov_SC03_115_jr_8016AB6C.c index f59cefd512..1f121cc74a 100644 --- a/src/ov_SC03_115/ov_SC03_115_jr_8016AB6C.c +++ b/src/ov_SC03_115/ov_SC03_115_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_115/ov_SC03_115_jr_801734BC.c b/src/ov_SC03_115/ov_SC03_115_jr_801734BC.c index 959b59398c..2e8eccc51a 100644 --- a/src/ov_SC03_115/ov_SC03_115_jr_801734BC.c +++ b/src/ov_SC03_115/ov_SC03_115_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC03_115/nonmatchings/ov_SC03_115_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_115/ov_SC03_115_o0c.c b/src/ov_SC03_115/ov_SC03_115_o0c.c index 2e6c92c251..b17d70cfc4 100644 --- a/src/ov_SC03_115/ov_SC03_115_o0c.c +++ b/src/ov_SC03_115/ov_SC03_115_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_80195018[]; D_80195018[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_80195018[]; D_80195018[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_80195018[]; D_80195018[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801950D0; extern s32 D_80195134; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_80195018"); extern s32 D_801950B4; extern s32 D_801950B8; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_116/ov_SC03_116.c b/src/ov_SC03_116/ov_SC03_116.c index 50aeec9e9f..54ac6fa92f 100644 --- a/src/ov_SC03_116/ov_SC03_116.c +++ b/src/ov_SC03_116/ov_SC03_116.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_116/ov_SC03_116_after.c b/src/ov_SC03_116/ov_SC03_116_after.c index 070d8ef7d8..31b44c0fec 100644 --- a/src/ov_SC03_116/ov_SC03_116_after.c +++ b/src/ov_SC03_116/ov_SC03_116_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_116/ov_SC03_116_jr_8012ACE0.c b/src/ov_SC03_116/ov_SC03_116_jr_8012ACE0.c index 8f9012e4f8..f08633db18 100644 --- a/src/ov_SC03_116/ov_SC03_116_jr_8012ACE0.c +++ b/src/ov_SC03_116/ov_SC03_116_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_116/ov_SC03_116_jr_801380E0.c b/src/ov_SC03_116/ov_SC03_116_jr_801380E0.c index c51a535ba1..da6831b1e2 100644 --- a/src/ov_SC03_116/ov_SC03_116_jr_801380E0.c +++ b/src/ov_SC03_116/ov_SC03_116_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80182E80[]; u16 t; u8 b; diff --git a/src/ov_SC03_116/ov_SC03_116_jr_80140608.c b/src/ov_SC03_116/ov_SC03_116_jr_80140608.c index 41a31963ce..e685e05c56 100644 --- a/src/ov_SC03_116/ov_SC03_116_jr_80140608.c +++ b/src/ov_SC03_116/ov_SC03_116_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80183C40[]; extern u16 D_80183750; extern u16 D_80183752; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_116/ov_SC03_116_jr_8016AB6C.c b/src/ov_SC03_116/ov_SC03_116_jr_8016AB6C.c index 329d8d2000..26e99cdd63 100644 --- a/src/ov_SC03_116/ov_SC03_116_jr_8016AB6C.c +++ b/src/ov_SC03_116/ov_SC03_116_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_116/ov_SC03_116_jr_801734BC.c b/src/ov_SC03_116/ov_SC03_116_jr_801734BC.c index a0975a966a..b9a0ad67cd 100644 --- a/src/ov_SC03_116/ov_SC03_116_jr_801734BC.c +++ b/src/ov_SC03_116/ov_SC03_116_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC03_116/nonmatchings/ov_SC03_116_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_116/ov_SC03_116_jr_8017AE2C.c b/src/ov_SC03_116/ov_SC03_116_jr_8017AE2C.c index 65d6aaf1c9..bd2b6d292c 100644 --- a/src/ov_SC03_116/ov_SC03_116_jr_8017AE2C.c +++ b/src/ov_SC03_116/ov_SC03_116_jr_8017AE2C.c @@ -3599,20 +3599,9 @@ INCLUDE_ASM("asm/ov_SC03_116/nonmatchings/ov_SC03_116_jr_8017AE2C", func_8017BEB : "memory" ) /* ---- the two gouraud-textured packet layouts this function emits ---------- */ -typedef struct { - u32 tag; - u32 rgb0; s16 x0, y0; u32 uv0; - u32 rgb1; s16 x1, y1; u32 uv1; - u32 rgb2; s16 x2, y2; u16 uv2, p2; -} PolyGT3; /* 0x28 */ + /* 0x28 */ -typedef struct { - u32 tag; - u32 rgb0; s16 x0, y0; u32 uv0; - u32 rgb1; s16 x1, y1; u32 uv1; - u32 rgb2; s16 x2, y2; u16 uv2, p2; - u32 rgb3; s16 x3, y3; u16 uv3, p3; -} PolyGT4; /* 0x34 */ + /* 0x34 */ /* ---- the four light-volume descriptors (stride 0x1C) --------------------- */ @@ -4305,9 +4294,6 @@ void func_80180D04(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_80180D40; extern u16 func_80148800(s32 *a0); extern void func_80180DE0(s32 param_1, s16 *param_2); diff --git a/src/ov_SC03_116/ov_SC03_116_o0c.c b/src/ov_SC03_116/ov_SC03_116_o0c.c index 86abf6cf43..014e8930ee 100644 --- a/src/ov_SC03_116/ov_SC03_116_o0c.c +++ b/src/ov_SC03_116/ov_SC03_116_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_80197C28[]; D_80197C28[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_80197C28[]; D_80197C28[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_80197C28[]; D_80197C28[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_80197CE0; extern s32 D_80197D44; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_80197C28"); extern s32 D_80197CC4; extern s32 D_80197CC8; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_117/ov_SC03_117.c b/src/ov_SC03_117/ov_SC03_117.c index 187442c3ed..4e3fb0bc13 100644 --- a/src/ov_SC03_117/ov_SC03_117.c +++ b/src/ov_SC03_117/ov_SC03_117.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_117/ov_SC03_117_after.c b/src/ov_SC03_117/ov_SC03_117_after.c index 67a543efe2..e9b98fea6e 100644 --- a/src/ov_SC03_117/ov_SC03_117_after.c +++ b/src/ov_SC03_117/ov_SC03_117_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_117/ov_SC03_117_jr_8012ACE0.c b/src/ov_SC03_117/ov_SC03_117_jr_8012ACE0.c index c2584749b3..bdf70fd4d0 100644 --- a/src/ov_SC03_117/ov_SC03_117_jr_8012ACE0.c +++ b/src/ov_SC03_117/ov_SC03_117_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_117/ov_SC03_117_jr_801380E0.c b/src/ov_SC03_117/ov_SC03_117_jr_801380E0.c index 0fa80c1a65..f87fc7b145 100644 --- a/src/ov_SC03_117/ov_SC03_117_jr_801380E0.c +++ b/src/ov_SC03_117/ov_SC03_117_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80184E8C[]; u16 t; u8 b; diff --git a/src/ov_SC03_117/ov_SC03_117_jr_80140608.c b/src/ov_SC03_117/ov_SC03_117_jr_80140608.c index a3a5af4be8..a6651bbabc 100644 --- a/src/ov_SC03_117/ov_SC03_117_jr_80140608.c +++ b/src/ov_SC03_117/ov_SC03_117_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80185C4C[]; extern u16 D_8018575C; extern u16 D_8018575E; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_117/ov_SC03_117_jr_8016AB6C.c b/src/ov_SC03_117/ov_SC03_117_jr_8016AB6C.c index cdf7ef706f..9d3980f9de 100644 --- a/src/ov_SC03_117/ov_SC03_117_jr_8016AB6C.c +++ b/src/ov_SC03_117/ov_SC03_117_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_117/ov_SC03_117_jr_801734BC.c b/src/ov_SC03_117/ov_SC03_117_jr_801734BC.c index fdf0bcce43..278ef46f3c 100644 --- a/src/ov_SC03_117/ov_SC03_117_jr_801734BC.c +++ b/src/ov_SC03_117/ov_SC03_117_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC03_117/nonmatchings/ov_SC03_117_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_117/ov_SC03_117_o0c.c b/src/ov_SC03_117/ov_SC03_117_o0c.c index 68f44edfad..89198df0a8 100644 --- a/src/ov_SC03_117/ov_SC03_117_o0c.c +++ b/src/ov_SC03_117/ov_SC03_117_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801CE820[]; D_801CE820[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801CE820[]; D_801CE820[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801CE820[]; D_801CE820[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801CE8D8; extern s32 D_801CE93C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801CE820"); extern s32 D_801CE8BC; extern s32 D_801CE8C0; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_118/ov_SC03_118.c b/src/ov_SC03_118/ov_SC03_118.c index 7002a0e218..db702ed4c7 100644 --- a/src/ov_SC03_118/ov_SC03_118.c +++ b/src/ov_SC03_118/ov_SC03_118.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_118/ov_SC03_118_after.c b/src/ov_SC03_118/ov_SC03_118_after.c index 83ec5983bf..a17e811936 100644 --- a/src/ov_SC03_118/ov_SC03_118_after.c +++ b/src/ov_SC03_118/ov_SC03_118_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_118/ov_SC03_118_jr_8012ACE0.c b/src/ov_SC03_118/ov_SC03_118_jr_8012ACE0.c index 18b8e66e80..524b61fa50 100644 --- a/src/ov_SC03_118/ov_SC03_118_jr_8012ACE0.c +++ b/src/ov_SC03_118/ov_SC03_118_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_118/ov_SC03_118_jr_801380E0.c b/src/ov_SC03_118/ov_SC03_118_jr_801380E0.c index 0ad4662df9..66e7b0d954 100644 --- a/src/ov_SC03_118/ov_SC03_118_jr_801380E0.c +++ b/src/ov_SC03_118/ov_SC03_118_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80189F38[]; u16 t; u8 b; diff --git a/src/ov_SC03_118/ov_SC03_118_jr_80140608.c b/src/ov_SC03_118/ov_SC03_118_jr_80140608.c index c6109a608a..6e65aada91 100644 --- a/src/ov_SC03_118/ov_SC03_118_jr_80140608.c +++ b/src/ov_SC03_118/ov_SC03_118_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8018ACF8[]; extern u16 D_8018A808; extern u16 D_8018A80A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_118/ov_SC03_118_jr_8016AB6C.c b/src/ov_SC03_118/ov_SC03_118_jr_8016AB6C.c index 0715d1ad1e..8a27e5e16d 100644 --- a/src/ov_SC03_118/ov_SC03_118_jr_8016AB6C.c +++ b/src/ov_SC03_118/ov_SC03_118_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_118/ov_SC03_118_jr_801734BC.c b/src/ov_SC03_118/ov_SC03_118_jr_801734BC.c index 1ed3763db5..14235cc1d7 100644 --- a/src/ov_SC03_118/ov_SC03_118_jr_801734BC.c +++ b/src/ov_SC03_118/ov_SC03_118_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_118/ov_SC03_118_jr_8017AE2C.c b/src/ov_SC03_118/ov_SC03_118_jr_8017AE2C.c index b1cee506fa..47d6e9d0c1 100644 --- a/src/ov_SC03_118/ov_SC03_118_jr_8017AE2C.c +++ b/src/ov_SC03_118/ov_SC03_118_jr_8017AE2C.c @@ -3645,9 +3645,7 @@ INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118_jr_8017AE2C", func_8017D89 * lwl/lwr + swl/swr instead of a `jal memcpy` (cf. §38). */ -typedef struct { - u8 b0, b1, b2, b3; -} Quad_801EA880_8017D900; /* align 1 => movstrsi expands to lwl/lwr + swl/swr */ + /* align 1 => movstrsi expands to lwl/lwr + swl/swr */ extern s32 func_80012F74(s32 a0, s32 a1, s32 a2, s32 a3); @@ -4311,7 +4309,6 @@ void func_8017E948(s16 *a0) { * (instead of a fresh local) avoids stealing back the $v0 slot. */ -typedef struct { s32 w[8]; } Mtx8_8017DE10_8017EA24; void func_8017EA24(s32 a0) { extern void ApplyMatrixSV(void *a0, void *a1, void *a2); diff --git a/src/ov_SC03_118/ov_SC03_118_jr_8017FB84.c b/src/ov_SC03_118/ov_SC03_118_jr_8017FB84.c index 8fd579880a..0251c3580c 100644 --- a/src/ov_SC03_118/ov_SC03_118_jr_8017FB84.c +++ b/src/ov_SC03_118/ov_SC03_118_jr_8017FB84.c @@ -3295,9 +3295,7 @@ void func_8017FB84(s32 arg0) void func_80180A64(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { - typedef struct { u32 w0, w1, w2; } Prim_80180A64; /* vy UNSIGNED: the `+=` reads it with lhu, not lh. */ - typedef struct { s16 vx; u16 vy; s16 vz, pad; } SVec_80180A64; extern s32 func_800491EC(void); extern void func_800547D8(s32, MATRIX2 *); @@ -4258,8 +4256,8 @@ INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118_jr_8017FB84", func_801851C */ void func_8018523C(void *a0) { - typedef struct { s32 w[8]; } Mat32_8018A390_8018523C; /* 32B, align 4 */ - typedef struct { u16 x; u16 y; u16 z; s16 w; } Rec8_8018A390_8018523C; /* 8B, align 2 */ + /* 32B, align 4 */ + /* 8B, align 2 */ extern Mat32_8018A390_8018523C D_800AE620; extern Rec8_8018A390_8018523C D_801C5894[]; @@ -4360,12 +4358,6 @@ void func_8018552C(void) { * puts $s1's zero-init first, which is the target order. */ -typedef struct { - s16 unk0; - s16 unk2; - s16 unk4; - s16 unk6; -} Rec_8018A6A4_80185550; extern void func_801855F0(s32 arg0, s32 arg1, s32 arg2); extern void func_8018570C(s32 arg0, Rec_8018A6A4_80185550 *arg1, s32 arg2, s32 arg3); @@ -4487,7 +4479,7 @@ void aF8018A860(s32 a0, s16 *a1, u8 *a2, u8 *a3) { extern s16 D_801D4474; /* TU L3637 / L3671, verbatim */ - typedef struct { u8 b0, b1, b2, b3; } B4_8018570C; /* align 1 — §48-C2 */ + /* align 1 — §48-C2 */ s16 *s1; u16 temp_u16; s16 temp_s16; @@ -4729,7 +4721,7 @@ void func_80185868(void) { void func_80185944(s32 arg0) { - typedef struct { s32 w[8]; } Blk32_8018AA98_80185944; /* 32 bytes, align 4 */ + /* 32 bytes, align 4 */ extern Blk32_8018AA98_80185944 D_800AE620; extern s32 D_800A5E60; @@ -4878,7 +4870,6 @@ extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3); extern void func_80185CDC(void *arg0, void *arg1, s32 arg2, s32 arg3); void func_80185C54(s32 a0) { - typedef struct { u8 a, b, c, d; } V4_80185C54; extern u8 D_800AF648; extern V4_80185C54 D_801D2E54; u16 sxy[4]; @@ -5010,14 +5001,6 @@ void aF8018AFD0(s32 a0, s32 a1, s32 a2) __asm__("func_80185E7C"); void aF8018AFD0(s32 a0, s32 a1, s32 a2) { - typedef struct { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ - } P_80185E7C; extern s16 D_801D436C; extern s16 D_801D4366[]; @@ -5186,21 +5169,11 @@ extern void func_80016638(void *a0, s32 a1, s32 a2); /* 0x10-byte-stride record table at D_801D436C (same table as func_8018AD5C) */ -typedef struct { - u16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s16 f8; /* 0x08 */ - u16 fA; /* 0x0A */ - s16 fC; /* 0x0C */ - u16 fE; /* 0x0E */ -} Rec_8018B23C_801860E8; -typedef struct { s32 w[8]; } Mat32_8018B23C_801860E8; /* the 0x20-byte matrix */ -typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_801860E8; /* == engine_types.h OtBlk */ -typedef struct { u16 f; } Bidx_8018B23C_801860E8; /* the D_800B9A02 buffer index */ -typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_801860E8; /* libgpu P_TAG */ + /* the 0x20-byte matrix */ + /* == engine_types.h OtBlk */ + /* the D_800B9A02 buffer index */ + /* libgpu P_TAG */ void func_801860E8(s32 a0) { diff --git a/src/ov_SC03_118/ov_SC03_118_o0c.c b/src/ov_SC03_118/ov_SC03_118_o0c.c index d022caa7a4..fcf30f6969 100644 --- a/src/ov_SC03_118/ov_SC03_118_o0c.c +++ b/src/ov_SC03_118/ov_SC03_118_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801D4728[]; D_801D4728[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801D4728[]; D_801D4728[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801D4728[]; D_801D4728[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801D47E0; extern s32 D_801D4844; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801D4728"); extern s32 D_801D47C4; extern s32 D_801D47C8; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_119/ov_SC03_119.c b/src/ov_SC03_119/ov_SC03_119.c index 04bbf10f16..469601eef0 100644 --- a/src/ov_SC03_119/ov_SC03_119.c +++ b/src/ov_SC03_119/ov_SC03_119.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_119/ov_SC03_119_after.c b/src/ov_SC03_119/ov_SC03_119_after.c index 7a2fe904ba..31f5f330b8 100644 --- a/src/ov_SC03_119/ov_SC03_119_after.c +++ b/src/ov_SC03_119/ov_SC03_119_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_119/ov_SC03_119_jr_8012ACE0.c b/src/ov_SC03_119/ov_SC03_119_jr_8012ACE0.c index a31a48d714..ed9fddd2bf 100644 --- a/src/ov_SC03_119/ov_SC03_119_jr_8012ACE0.c +++ b/src/ov_SC03_119/ov_SC03_119_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_119/ov_SC03_119_jr_801380E0.c b/src/ov_SC03_119/ov_SC03_119_jr_801380E0.c index 0ad4662df9..66e7b0d954 100644 --- a/src/ov_SC03_119/ov_SC03_119_jr_801380E0.c +++ b/src/ov_SC03_119/ov_SC03_119_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80189F38[]; u16 t; u8 b; diff --git a/src/ov_SC03_119/ov_SC03_119_jr_80140608.c b/src/ov_SC03_119/ov_SC03_119_jr_80140608.c index 8961c49d3a..89b98368fc 100644 --- a/src/ov_SC03_119/ov_SC03_119_jr_80140608.c +++ b/src/ov_SC03_119/ov_SC03_119_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8018ACF8[]; extern u16 D_8018A808; extern u16 D_8018A80A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2601,7 +2592,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_119/ov_SC03_119_jr_8016AB6C.c b/src/ov_SC03_119/ov_SC03_119_jr_8016AB6C.c index 0715d1ad1e..8a27e5e16d 100644 --- a/src/ov_SC03_119/ov_SC03_119_jr_8016AB6C.c +++ b/src/ov_SC03_119/ov_SC03_119_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_119/ov_SC03_119_jr_801734BC.c b/src/ov_SC03_119/ov_SC03_119_jr_801734BC.c index 3df81cc8ac..63c869da67 100644 --- a/src/ov_SC03_119/ov_SC03_119_jr_801734BC.c +++ b/src/ov_SC03_119/ov_SC03_119_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_119/ov_SC03_119_jr_8017AE2C.c b/src/ov_SC03_119/ov_SC03_119_jr_8017AE2C.c index 5e1ecf645a..fca06f112e 100644 --- a/src/ov_SC03_119/ov_SC03_119_jr_8017AE2C.c +++ b/src/ov_SC03_119/ov_SC03_119_jr_8017AE2C.c @@ -3639,9 +3639,7 @@ INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119_jr_8017AE2C", func_8017D89 * lwl/lwr + swl/swr instead of a `jal memcpy` (cf. §38). */ -typedef struct { - u8 b0, b1, b2, b3; -} Quad_801EA880_8017D900; /* align 1 => movstrsi expands to lwl/lwr + swl/swr */ + /* align 1 => movstrsi expands to lwl/lwr + swl/swr */ extern s32 func_80012F74(s32 a0, s32 a1, s32 a2, s32 a3); @@ -4305,7 +4303,6 @@ void func_8017E948(s16 *a0) { * (instead of a fresh local) avoids stealing back the $v0 slot. */ -typedef struct { s32 w[8]; } Mtx8_8017DE10_8017EA24; void func_8017EA24(s32 a0) { extern void ApplyMatrixSV(void *a0, void *a1, void *a2); diff --git a/src/ov_SC03_119/ov_SC03_119_jr_8017FB84.c b/src/ov_SC03_119/ov_SC03_119_jr_8017FB84.c index b5e3df4ee6..47eac63441 100644 --- a/src/ov_SC03_119/ov_SC03_119_jr_8017FB84.c +++ b/src/ov_SC03_119/ov_SC03_119_jr_8017FB84.c @@ -3279,9 +3279,7 @@ void func_8017FB84(s32 arg0) void func_80180A64(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { - typedef struct { u32 w0, w1, w2; } Prim_80180A64; /* vy UNSIGNED: the `+=` reads it with lhu, not lh. */ - typedef struct { s16 vx; u16 vy; s16 vz, pad; } SVec_80180A64; extern s32 func_800491EC(void); extern void func_800547D8(s32, MATRIX2 *); @@ -4239,8 +4237,8 @@ INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119_jr_8017FB84", func_801851C */ void func_8018523C(void *a0) { - typedef struct { s32 w[8]; } Mat32_8018A390_8018523C; /* 32B, align 4 */ - typedef struct { u16 x; u16 y; u16 z; s16 w; } Rec8_8018A390_8018523C; /* 8B, align 2 */ + /* 32B, align 4 */ + /* 8B, align 2 */ extern Mat32_8018A390_8018523C D_800AE620; extern Rec8_8018A390_8018523C D_801C5894[]; @@ -4341,12 +4339,6 @@ void func_8018552C(void) { * puts $s1's zero-init first, which is the target order. */ -typedef struct { - s16 unk0; - s16 unk2; - s16 unk4; - s16 unk6; -} Rec_8018A6A4_80185550; extern void func_801855F0(s32 arg0, s32 arg1, s32 arg2); extern void func_8018570C(s32 arg0, Rec_8018A6A4_80185550 *arg1, s32 arg2, s32 arg3); @@ -4456,7 +4448,7 @@ void aF8018A860(s32 a0, s16 *a1, u8 *a2, u8 *a3) { extern s16 D_801D4474; /* TU L3637 / L3671, verbatim */ - typedef struct { u8 b0, b1, b2, b3; } B4_8018570C; /* align 1 — §48-C2 */ + /* align 1 — §48-C2 */ s16 *s1; u16 temp_u16; s16 temp_s16; @@ -4698,7 +4690,7 @@ void func_80185868(void) { void func_80185944(s32 arg0) { - typedef struct { s32 w[8]; } Blk32_8018AA98_80185944; /* 32 bytes, align 4 */ + /* 32 bytes, align 4 */ extern Blk32_8018AA98_80185944 D_800AE620; extern s32 D_800A5E60; @@ -4848,7 +4840,6 @@ extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3); extern void func_80185CDC(void *arg0, void *arg1, s32 arg2, s32 arg3); void func_80185C54(s32 a0) { - typedef struct { u8 a, b, c, d; } V4_80185C54; extern u8 D_800AF648; extern V4_80185C54 D_801D2E54; u16 sxy[4]; @@ -4980,14 +4971,6 @@ void aF8018AFD0(s32 a0, s32 a1, s32 a2) __asm__("func_80185E7C"); void aF8018AFD0(s32 a0, s32 a1, s32 a2) { - typedef struct { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ - } P_80185E7C; extern s16 D_801D436C; extern s16 D_801D4366[]; @@ -5156,21 +5139,11 @@ extern void func_80016638(void *a0, s32 a1, s32 a2); /* 0x10-byte-stride record table at D_801D436C (same table as func_8018AD5C) */ -typedef struct { - u16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s16 f8; /* 0x08 */ - u16 fA; /* 0x0A */ - s16 fC; /* 0x0C */ - u16 fE; /* 0x0E */ -} Rec_8018B23C_801860E8; -typedef struct { s32 w[8]; } Mat32_8018B23C_801860E8; /* the 0x20-byte matrix */ -typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_801860E8; /* == engine_types.h OtBlk */ -typedef struct { u16 f; } Bidx_8018B23C_801860E8; /* the D_800B9A02 buffer index */ -typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_801860E8; /* libgpu P_TAG */ + /* the 0x20-byte matrix */ + /* == engine_types.h OtBlk */ + /* the D_800B9A02 buffer index */ + /* libgpu P_TAG */ void func_801860E8(s32 a0) { diff --git a/src/ov_SC03_119/ov_SC03_119_o0c.c b/src/ov_SC03_119/ov_SC03_119_o0c.c index d022caa7a4..fcf30f6969 100644 --- a/src/ov_SC03_119/ov_SC03_119_o0c.c +++ b/src/ov_SC03_119/ov_SC03_119_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801D4728[]; D_801D4728[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801D4728[]; D_801D4728[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801D4728[]; D_801D4728[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801D47E0; extern s32 D_801D4844; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801D4728"); extern s32 D_801D47C4; extern s32 D_801D47C8; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_121/ov_SC03_121.c b/src/ov_SC03_121/ov_SC03_121.c index b9b5932a48..29daec2cbf 100644 --- a/src/ov_SC03_121/ov_SC03_121.c +++ b/src/ov_SC03_121/ov_SC03_121.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_121/ov_SC03_121_after.c b/src/ov_SC03_121/ov_SC03_121_after.c index 67c09c2bdf..7dba8acaf8 100644 --- a/src/ov_SC03_121/ov_SC03_121_after.c +++ b/src/ov_SC03_121/ov_SC03_121_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_121/ov_SC03_121_jr_8012ACE0.c b/src/ov_SC03_121/ov_SC03_121_jr_8012ACE0.c index 0bfd50a33a..e9157f9398 100644 --- a/src/ov_SC03_121/ov_SC03_121_jr_8012ACE0.c +++ b/src/ov_SC03_121/ov_SC03_121_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_121/ov_SC03_121_jr_801380E0.c b/src/ov_SC03_121/ov_SC03_121_jr_801380E0.c index 06ee74b5c9..f729af3768 100644 --- a/src/ov_SC03_121/ov_SC03_121_jr_801380E0.c +++ b/src/ov_SC03_121/ov_SC03_121_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80182754[]; u16 t; u8 b; diff --git a/src/ov_SC03_121/ov_SC03_121_jr_80140608.c b/src/ov_SC03_121/ov_SC03_121_jr_80140608.c index 7f0545cd3d..729f740b89 100644 --- a/src/ov_SC03_121/ov_SC03_121_jr_80140608.c +++ b/src/ov_SC03_121/ov_SC03_121_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80183514[]; extern u16 D_80183024; extern u16 D_80183026; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_121/ov_SC03_121_jr_8016AB6C.c b/src/ov_SC03_121/ov_SC03_121_jr_8016AB6C.c index 0afab5bc7f..21f7f1fc16 100644 --- a/src/ov_SC03_121/ov_SC03_121_jr_8016AB6C.c +++ b/src/ov_SC03_121/ov_SC03_121_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_121/ov_SC03_121_jr_801734BC.c b/src/ov_SC03_121/ov_SC03_121_jr_801734BC.c index 679855e0eb..f3722036b6 100644 --- a/src/ov_SC03_121/ov_SC03_121_jr_801734BC.c +++ b/src/ov_SC03_121/ov_SC03_121_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC03_121/nonmatchings/ov_SC03_121_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_121/ov_SC03_121_o0c.c b/src/ov_SC03_121/ov_SC03_121_o0c.c index 9616a26776..3a2336b322 100644 --- a/src/ov_SC03_121/ov_SC03_121_o0c.c +++ b/src/ov_SC03_121/ov_SC03_121_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801AEE88[]; D_801AEE88[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801AEE88[]; D_801AEE88[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801AEE88[]; D_801AEE88[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801AEF40; extern s32 D_801AEFA4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801AEE88"); extern s32 D_801AEF24; extern s32 D_801AEF28; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_124/ov_SC03_124.c b/src/ov_SC03_124/ov_SC03_124.c index cf1fded69a..1444f6c637 100644 --- a/src/ov_SC03_124/ov_SC03_124.c +++ b/src/ov_SC03_124/ov_SC03_124.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_124/ov_SC03_124_after.c b/src/ov_SC03_124/ov_SC03_124_after.c index cefa26c7b9..d02ee45d69 100644 --- a/src/ov_SC03_124/ov_SC03_124_after.c +++ b/src/ov_SC03_124/ov_SC03_124_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_124/ov_SC03_124_jr_8012ACE0.c b/src/ov_SC03_124/ov_SC03_124_jr_8012ACE0.c index 5f8e8bfd23..e1a3d815a7 100644 --- a/src/ov_SC03_124/ov_SC03_124_jr_8012ACE0.c +++ b/src/ov_SC03_124/ov_SC03_124_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_124/ov_SC03_124_jr_801380E0.c b/src/ov_SC03_124/ov_SC03_124_jr_801380E0.c index 5f46673062..4115e3d10d 100644 --- a/src/ov_SC03_124/ov_SC03_124_jr_801380E0.c +++ b/src/ov_SC03_124/ov_SC03_124_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018B180[]; u16 t; u8 b; diff --git a/src/ov_SC03_124/ov_SC03_124_jr_80140608.c b/src/ov_SC03_124/ov_SC03_124_jr_80140608.c index f3a10f504f..6e4336a76f 100644 --- a/src/ov_SC03_124/ov_SC03_124_jr_80140608.c +++ b/src/ov_SC03_124/ov_SC03_124_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8018BF40[]; extern u16 D_8018BA50; extern u16 D_8018BA52; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_124/ov_SC03_124_jr_8016AB6C.c b/src/ov_SC03_124/ov_SC03_124_jr_8016AB6C.c index 17d0254d9b..26edd0dafb 100644 --- a/src/ov_SC03_124/ov_SC03_124_jr_8016AB6C.c +++ b/src/ov_SC03_124/ov_SC03_124_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_124/ov_SC03_124_jr_801734BC.c b/src/ov_SC03_124/ov_SC03_124_jr_801734BC.c index 65aa079a7e..cf6f43c93f 100644 --- a/src/ov_SC03_124/ov_SC03_124_jr_801734BC.c +++ b/src/ov_SC03_124/ov_SC03_124_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_124/ov_SC03_124_jr_8017AE2C.c b/src/ov_SC03_124/ov_SC03_124_jr_8017AE2C.c index 1b4843dae8..8cd19a7552 100644 --- a/src/ov_SC03_124/ov_SC03_124_jr_8017AE2C.c +++ b/src/ov_SC03_124/ov_SC03_124_jr_8017AE2C.c @@ -3343,17 +3343,6 @@ void func_8017BF14(void *a0) { extern u8 *func_8012913C(s32 a0); extern s32 func_8012C750(s32 a0); -typedef struct { - s16 unk00; - s16 unk02; - s16 unk04; - s16 unk06; - s16 unk08; - s16 unk0A; - s16 unk0C; - s16 unk0E; - s32 unk10; -} Buf8017BF50_8017BF50; /* $16-$19 are pinned: without them gcc's strength reduction splits the `s1` store * base into TWO induction variables (base+0x18 with offsets -4/0, plus base+0x1C), @@ -5840,13 +5829,6 @@ extern void func_80183C34(void *arg0); extern s32 func_8012AD50(void *arg0); /* 0x24-stride record at D_801E1BD0 (4 entries; asm/ov_SC04_018/data/tail18.data.s) */ -typedef struct { - u8 unk00[0x16]; - s16 unk16; - u8 unk18[4]; - s32 unk1C; - u8 unk20[4]; -} Ent_8017D6EC_80183918; void func_80183918(void *arg0) { @@ -5938,12 +5920,7 @@ void func_80183C34(void *arg0) { * so this body remaps to those overlays unchanged. */ -typedef struct { short vx, vy, vz, pad; } SV_8017DAC4_80183CF0; -typedef struct { - SV_8017DAC4_80183CF0 v[4]; /* 0x00 .. 0x20 */ - s32 f20, f24, f28, f2C, f30, f34; /* 0x20 .. 0x38 */ -} Prim_8017DAC4_80183CF0; extern void func_80017714(void *); @@ -6302,9 +6279,6 @@ s32 func_801842F8(u8 a0, u8 a1, u8 a2, u8 a3) { extern void func_8012F214(s32 a0, s32 a1, s32 a2); extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); -typedef struct { - s16 f0, f1, f2, f3; -} Vec4s_80184350; void func_80184350(void *a0, s32 a1) { @@ -6721,7 +6695,6 @@ extern void func_80184FC4(s32 a0); extern void *func_80185394(void *a0); -typedef struct { u8 b[12]; } Blk12_801854C4_80184BEC; void func_80184BEC(s32 a0) { @@ -7591,24 +7564,7 @@ INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124_jr_8017AE2C", func_80187EA * through a local instead) were all tried and all leave the 22-diff swap. */ -typedef struct Prim4_8017E978_801880E0 { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ -} Prim4_8017E978_801880E0; -typedef struct Panel_8017E978_801880E0 { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - void *f4; /* 0x04 */ - void *f8; /* 0x08 */ - s16 fC; /* 0x0C */ - s16 fE; /* 0x0E */ - s16 f10; /* 0x10 */ - s16 f12; /* 0x12 */ - void *f14; /* 0x14 */ - Prim4_8017E978_801880E0 *f18; /* 0x18 */ - void *f1C; /* 0x1C */ -} Panel_8017E978_801880E0; extern void func_80024054(void *a0, void *a1); @@ -7697,13 +7653,8 @@ s32 *func_8018893C(out, src, idx, w, col) extern u16 D_801BC522; extern u16 D_801BC536; - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 -> 0x14 stride */ - } Env_8018893C; extern Env_8018893C D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_8018893C; /* §37 /s-DEP LATTICE: this store MUST be MEM_IN_STRUCT_P. `out[0] = k` folds `out + 0` * away and expands as a NON-/s mem, which keeps the true_dependence edge to the incoming @@ -7711,7 +7662,6 @@ s32 *func_8018893C(out, src, idx, w, col) * the out[0] store, i.e. the edge must be DROPPED — sched.c's drop clause needs the store * /s + varying and the load non-/s + fixed-address. A COMPONENT_REF at offset 0 supplies * the /s. */ - typedef struct { u32 w; } W_8018893C; s32 c; s16 t; diff --git a/src/ov_SC03_124/ov_SC03_124_o0c.c b/src/ov_SC03_124/ov_SC03_124_o0c.c index 27e7a07593..0b43cf5527 100644 --- a/src/ov_SC03_124/ov_SC03_124_o0c.c +++ b/src/ov_SC03_124/ov_SC03_124_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801E24A8[]; D_801E24A8[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801E24A8[]; D_801E24A8[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801E24A8[]; D_801E24A8[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801E2578; extern s32 D_801E25DC; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801E24A8"); extern s32 D_801E255C; extern s32 D_801E2560; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_125/ov_SC03_125.c b/src/ov_SC03_125/ov_SC03_125.c index e34e9f8153..70165de844 100644 --- a/src/ov_SC03_125/ov_SC03_125.c +++ b/src/ov_SC03_125/ov_SC03_125.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_125/ov_SC03_125_after.c b/src/ov_SC03_125/ov_SC03_125_after.c index 8cf418e9a8..5298139582 100644 --- a/src/ov_SC03_125/ov_SC03_125_after.c +++ b/src/ov_SC03_125/ov_SC03_125_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_125/ov_SC03_125_jr_8012ACE0.c b/src/ov_SC03_125/ov_SC03_125_jr_8012ACE0.c index 4492f4d44a..5af552e72b 100644 --- a/src/ov_SC03_125/ov_SC03_125_jr_8012ACE0.c +++ b/src/ov_SC03_125/ov_SC03_125_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_125/ov_SC03_125_jr_801380E0.c b/src/ov_SC03_125/ov_SC03_125_jr_801380E0.c index fa134ac54f..35fce4129a 100644 --- a/src/ov_SC03_125/ov_SC03_125_jr_801380E0.c +++ b/src/ov_SC03_125/ov_SC03_125_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80184350[]; u16 t; u8 b; diff --git a/src/ov_SC03_125/ov_SC03_125_jr_80140608.c b/src/ov_SC03_125/ov_SC03_125_jr_80140608.c index 8deaf6356c..c82ec1e9f4 100644 --- a/src/ov_SC03_125/ov_SC03_125_jr_80140608.c +++ b/src/ov_SC03_125/ov_SC03_125_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80185110[]; extern u16 D_80184C20; extern u16 D_80184C22; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_125/ov_SC03_125_jr_8016AB6C.c b/src/ov_SC03_125/ov_SC03_125_jr_8016AB6C.c index 4175df2c01..73e6397229 100644 --- a/src/ov_SC03_125/ov_SC03_125_jr_8016AB6C.c +++ b/src/ov_SC03_125/ov_SC03_125_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_125/ov_SC03_125_jr_801734BC.c b/src/ov_SC03_125/ov_SC03_125_jr_801734BC.c index 71ad36a232..8024e39ae0 100644 --- a/src/ov_SC03_125/ov_SC03_125_jr_801734BC.c +++ b/src/ov_SC03_125/ov_SC03_125_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC03_125/nonmatchings/ov_SC03_125_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_125/ov_SC03_125_jr_8017AE2C.c b/src/ov_SC03_125/ov_SC03_125_jr_8017AE2C.c index 9938ce3d7b..0f0c42234d 100644 --- a/src/ov_SC03_125/ov_SC03_125_jr_8017AE2C.c +++ b/src/ov_SC03_125/ov_SC03_125_jr_8017AE2C.c @@ -3503,17 +3503,6 @@ void func_8017C1F8(void *a0) { extern u8 *func_8012913C(s32 a0); extern s32 func_8012C750(s32 a0); -typedef struct { - s16 unk00; - s16 unk02; - s16 unk04; - s16 unk06; - s16 unk08; - s16 unk0A; - s16 unk0C; - s16 unk0E; - s32 unk10; -} Buf8017BF50_8017C234; /* $16-$19 are pinned: without them gcc's strength reduction splits the `s1` store * base into TWO induction variables (base+0x18 with offsets -4/0, plus base+0x1C), @@ -4265,7 +4254,6 @@ void func_8017CFE0(s16 *a0) { * (instead of a fresh local) avoids stealing back the $v0 slot. */ -typedef struct { s32 w[8]; } Mtx8_8017DE10_8017D0BC; void func_8017D0BC(s32 a0) { extern void ApplyMatrixSV(void *a0, void *a1, void *a2); diff --git a/src/ov_SC03_125/ov_SC03_125_jr_8017D604.c b/src/ov_SC03_125/ov_SC03_125_jr_8017D604.c index 4d6a73d2b3..648cc392a9 100644 --- a/src/ov_SC03_125/ov_SC03_125_jr_8017D604.c +++ b/src/ov_SC03_125/ov_SC03_125_jr_8017D604.c @@ -3773,13 +3773,6 @@ extern void func_80180ADC(void *arg0); extern s32 func_8012AD50(void *arg0); /* 0x24-stride record at D_801C4310 (4 entries; asm/ov_SC04_018/data/tail18.data.s) */ -typedef struct { - u8 unk00[0x16]; - s16 unk16; - u8 unk18[4]; - s32 unk1C; - u8 unk20[4]; -} Ent_8017D6EC_801807C0; void func_801807C0(void *arg0) { @@ -3871,12 +3864,7 @@ void func_80180ADC(void *arg0) { * so this body remaps to those overlays unchanged. */ -typedef struct { short vx, vy, vz, pad; } SV_8017DAC4_80180B98; -typedef struct { - SV_8017DAC4_80180B98 v[4]; /* 0x00 .. 0x20 */ - s32 f20, f24, f28, f2C, f30, f34; /* 0x20 .. 0x38 */ -} Prim_8017DAC4_80180B98; extern void func_80017714(void *); @@ -3985,7 +3973,6 @@ INCLUDE_ASM("asm/ov_SC03_125/nonmatchings/ov_SC03_125_jr_8017D604", func_8018121 INCLUDE_ASM("asm/ov_SC03_125/nonmatchings/ov_SC03_125_jr_8017D604", func_801812B4); -typedef struct { s32 a; s32 b[4]; } Ot_80182A78_801812FC; extern s32 func_8004787C(s32 a0); @@ -4360,9 +4347,6 @@ s32 func_80181A00(u8 a0, u8 a1, u8 a2, u8 a3) { extern void func_8012F214(s32 a0, s32 a1, s32 a2); extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); -typedef struct { - s16 f0, f1, f2, f3; -} Vec4s_80181A58; void func_80181A58(void *a0, s32 a1) { @@ -4788,7 +4772,6 @@ extern void func_801826CC(s32 a0); extern void *func_80182A9C(void *a0); -typedef struct { u8 b[12]; } Blk12_801854C4_801822F4; void func_801822F4(s32 a0) { diff --git a/src/ov_SC03_125/ov_SC03_125_o0c.c b/src/ov_SC03_125/ov_SC03_125_o0c.c index e96c5a3fb7..202badcb3d 100644 --- a/src/ov_SC03_125/ov_SC03_125_o0c.c +++ b/src/ov_SC03_125/ov_SC03_125_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801C4400[]; D_801C4400[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801C4400[]; D_801C4400[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801C4400[]; D_801C4400[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801C44D0; extern s32 D_801C4534; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801C4400"); extern s32 D_801C44B4; extern s32 D_801C44B8; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC03_126/ov_SC03_126.c b/src/ov_SC03_126/ov_SC03_126.c index 8d24c65548..4f06ceb225 100644 --- a/src/ov_SC03_126/ov_SC03_126.c +++ b/src/ov_SC03_126/ov_SC03_126.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC03_126/ov_SC03_126_after.c b/src/ov_SC03_126/ov_SC03_126_after.c index 3b31a1d582..a11e9d00fe 100644 --- a/src/ov_SC03_126/ov_SC03_126_after.c +++ b/src/ov_SC03_126/ov_SC03_126_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC03_126/ov_SC03_126_jr_8012ACE0.c b/src/ov_SC03_126/ov_SC03_126_jr_8012ACE0.c index cf924569d8..b288af479d 100644 --- a/src/ov_SC03_126/ov_SC03_126_jr_8012ACE0.c +++ b/src/ov_SC03_126/ov_SC03_126_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC03_126/ov_SC03_126_jr_801380E0.c b/src/ov_SC03_126/ov_SC03_126_jr_801380E0.c index f0d7a4ad5a..f7a4937efe 100644 --- a/src/ov_SC03_126/ov_SC03_126_jr_801380E0.c +++ b/src/ov_SC03_126/ov_SC03_126_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017F848[]; u16 t; u8 b; diff --git a/src/ov_SC03_126/ov_SC03_126_jr_80140608.c b/src/ov_SC03_126/ov_SC03_126_jr_80140608.c index 3985d37020..9b07c68215 100644 --- a/src/ov_SC03_126/ov_SC03_126_jr_80140608.c +++ b/src/ov_SC03_126/ov_SC03_126_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80180608[]; extern u16 D_80180118; extern u16 D_8018011A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC03_126/ov_SC03_126_jr_8016AB6C.c b/src/ov_SC03_126/ov_SC03_126_jr_8016AB6C.c index 60fe76ff63..1370c4a1a4 100644 --- a/src/ov_SC03_126/ov_SC03_126_jr_8016AB6C.c +++ b/src/ov_SC03_126/ov_SC03_126_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC03_126/ov_SC03_126_jr_801734BC.c b/src/ov_SC03_126/ov_SC03_126_jr_801734BC.c index 1f061018f6..27fb9ace82 100644 --- a/src/ov_SC03_126/ov_SC03_126_jr_801734BC.c +++ b/src/ov_SC03_126/ov_SC03_126_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC03_126/nonmatchings/ov_SC03_126_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC03_126/ov_SC03_126_o0c.c b/src/ov_SC03_126/ov_SC03_126_o0c.c index 4bf9b14c85..e6f1498a36 100644 --- a/src/ov_SC03_126/ov_SC03_126_o0c.c +++ b/src/ov_SC03_126/ov_SC03_126_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_8018FA00[]; D_8018FA00[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_8018FA00[]; D_8018FA00[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_8018FA00[]; D_8018FA00[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_8018FAB8; extern s32 D_8018FB1C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_8018FA00"); extern s32 D_8018FA9C; extern s32 D_8018FAA0; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC04_000/ov_SC04_000.c b/src/ov_SC04_000/ov_SC04_000.c index 7b6cea55f5..9868e4d9c5 100644 --- a/src/ov_SC04_000/ov_SC04_000.c +++ b/src/ov_SC04_000/ov_SC04_000.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC04_000/ov_SC04_000_after.c b/src/ov_SC04_000/ov_SC04_000_after.c index 64a217e985..97892087c5 100644 --- a/src/ov_SC04_000/ov_SC04_000_after.c +++ b/src/ov_SC04_000/ov_SC04_000_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC04_000/ov_SC04_000_jr_8012ACE0.c b/src/ov_SC04_000/ov_SC04_000_jr_8012ACE0.c index e8db8a1385..a76c3e9a0c 100644 --- a/src/ov_SC04_000/ov_SC04_000_jr_8012ACE0.c +++ b/src/ov_SC04_000/ov_SC04_000_jr_8012ACE0.c @@ -342,10 +342,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -591,7 +587,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2448,7 +2443,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2612,7 +2606,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC04_000/ov_SC04_000_jr_801380E0.c b/src/ov_SC04_000/ov_SC04_000_jr_801380E0.c index 893ed16a29..bbb3d17db8 100644 --- a/src/ov_SC04_000/ov_SC04_000_jr_801380E0.c +++ b/src/ov_SC04_000/ov_SC04_000_jr_801380E0.c @@ -1048,12 +1048,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80183854[]; u16 t; u8 b; diff --git a/src/ov_SC04_000/ov_SC04_000_jr_80140608.c b/src/ov_SC04_000/ov_SC04_000_jr_80140608.c index 452957b036..218ee2451d 100644 --- a/src/ov_SC04_000/ov_SC04_000_jr_80140608.c +++ b/src/ov_SC04_000/ov_SC04_000_jr_80140608.c @@ -1111,11 +1111,6 @@ s16 n; extern s16 D_80184614[]; extern u16 D_80184124; extern u16 D_80184126; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1254,13 +1249,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2587,7 +2578,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC04_000/ov_SC04_000_jr_8016AB6C.c b/src/ov_SC04_000/ov_SC04_000_jr_8016AB6C.c index 33ea2c8e75..cb21c987e4 100644 --- a/src/ov_SC04_000/ov_SC04_000_jr_8016AB6C.c +++ b/src/ov_SC04_000/ov_SC04_000_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC04_000/ov_SC04_000_jr_801734BC.c b/src/ov_SC04_000/ov_SC04_000_jr_801734BC.c index 17ff321178..2749631f02 100644 --- a/src/ov_SC04_000/ov_SC04_000_jr_801734BC.c +++ b/src/ov_SC04_000/ov_SC04_000_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC04_000/nonmatchings/ov_SC04_000_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC04_000/ov_SC04_000_jr_8017BEBC.c b/src/ov_SC04_000/ov_SC04_000_jr_8017BEBC.c index 87e7fae2df..c8fa6189cd 100644 --- a/src/ov_SC04_000/ov_SC04_000_jr_8017BEBC.c +++ b/src/ov_SC04_000/ov_SC04_000_jr_8017BEBC.c @@ -3187,8 +3187,6 @@ void func_8017CD9C(s32 param_1, s32 param_2) extern s32 D_801A9A8C; extern s32 D_801A9A90; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_8017CD9C; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017CD9C; SV4_L_8017CD9C vec; /* sp+0x10 */ MTX_L_8017CD9C mtx; /* sp+0x18 */ @@ -3344,8 +3342,6 @@ void func_8017CECC(s32 a0) { extern u8 D_801A9A9E; extern u8 D_801A9AA4; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017CECC; - typedef struct { Rec027_8017CECC r[9]; } Blk027_8017CECC; extern Blk027_8017CECC D_8019DFB8; extern Blk027_8017CECC D_801A9B18[]; @@ -3621,14 +3617,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_8017CD9C(s32 a0, s32 a1); void func_8017D618(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_8017D618; extern Rec_8017C738_8017D618 D_8019DFB8[]; Rec_8017C738_8017D618 *q = D_8019DFB8; @@ -3935,17 +3923,6 @@ void func_8017DC7C(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017DCD8 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017DCD8; extern void func_80147324(s32 arg0); extern void func_8017DF10(int); @@ -4059,24 +4036,11 @@ void func_8017DEC4(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017DF10; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017DF10; -typedef struct { - SVec8_8017C218_8017DF10 v[4]; /* 0x00 */ - CVec4_8017C218_8017DF10 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017DF10; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017DF10; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -4397,10 +4361,6 @@ void func_8017E5AC(void *a0) void func_8017E608(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017E608; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017E608; - typedef struct { SVec_8017C910_8017E608 v[2]; Clr_8017C910_8017E608 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017E608; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017E608; extern Mtx8_8017C910_8017E608 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017E608 prim; @@ -4903,9 +4863,6 @@ void func_8017F834(s32 *a0) { * block, 26+ mismatches). */ -typedef struct { - unsigned short vx, vy, vz, pad; -} UVec_8017EA1C_8017F8A0; extern s32 func_8004787C(s32 a0); extern void func_800139C8(s32 a0, void *a1, void *a2); diff --git a/src/ov_SC04_000/ov_SC04_000_o0c.c b/src/ov_SC04_000/ov_SC04_000_o0c.c index 6ea0c6678c..1f24d9fd00 100644 --- a/src/ov_SC04_000/ov_SC04_000_o0c.c +++ b/src/ov_SC04_000/ov_SC04_000_o0c.c @@ -784,8 +784,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801AAF30[]; D_801AAF30[a0].f0 = 1; @@ -800,20 +798,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801AAF30[]; D_801AAF30[idx].f0 = 1; @@ -824,7 +808,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801AAF30[]; D_801AAF30[a0].f0 = 0; } @@ -843,16 +827,7 @@ extern s32 D_801AAFE8; extern s32 D_801AB04C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801AAF30"); extern s32 D_801AAFCC; extern s32 D_801AAFD0; @@ -942,7 +917,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -989,17 +963,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1065,11 +1028,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC04_002/ov_SC04_002.c b/src/ov_SC04_002/ov_SC04_002.c index d1ce4a334d..69063e3a68 100644 --- a/src/ov_SC04_002/ov_SC04_002.c +++ b/src/ov_SC04_002/ov_SC04_002.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC04_002/ov_SC04_002_after.c b/src/ov_SC04_002/ov_SC04_002_after.c index 6ce081e87c..0a74cfdead 100644 --- a/src/ov_SC04_002/ov_SC04_002_after.c +++ b/src/ov_SC04_002/ov_SC04_002_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC04_002/ov_SC04_002_jr_8012ACE0.c b/src/ov_SC04_002/ov_SC04_002_jr_8012ACE0.c index 4ad4906cc1..47b9b75568 100644 --- a/src/ov_SC04_002/ov_SC04_002_jr_8012ACE0.c +++ b/src/ov_SC04_002/ov_SC04_002_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC04_002/ov_SC04_002_jr_801380E0.c b/src/ov_SC04_002/ov_SC04_002_jr_801380E0.c index 19f3fa8f55..028829b2e7 100644 --- a/src/ov_SC04_002/ov_SC04_002_jr_801380E0.c +++ b/src/ov_SC04_002/ov_SC04_002_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_801889C0[]; u16 t; u8 b; diff --git a/src/ov_SC04_002/ov_SC04_002_jr_80140608.c b/src/ov_SC04_002/ov_SC04_002_jr_80140608.c index baa445e2e1..d56c09540a 100644 --- a/src/ov_SC04_002/ov_SC04_002_jr_80140608.c +++ b/src/ov_SC04_002/ov_SC04_002_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80189780[]; extern u16 D_80189290; extern u16 D_80189292; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC04_002/ov_SC04_002_jr_8016AB6C.c b/src/ov_SC04_002/ov_SC04_002_jr_8016AB6C.c index 349c32e800..5e75469581 100644 --- a/src/ov_SC04_002/ov_SC04_002_jr_8016AB6C.c +++ b/src/ov_SC04_002/ov_SC04_002_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC04_002/ov_SC04_002_jr_801734BC.c b/src/ov_SC04_002/ov_SC04_002_jr_801734BC.c index 32cd2e0412..259368d40d 100644 --- a/src/ov_SC04_002/ov_SC04_002_jr_801734BC.c +++ b/src/ov_SC04_002/ov_SC04_002_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC04_002/nonmatchings/ov_SC04_002_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC04_002/ov_SC04_002_jr_8017BEBC.c b/src/ov_SC04_002/ov_SC04_002_jr_8017BEBC.c index 3204936f3b..1c6bc8168d 100644 --- a/src/ov_SC04_002/ov_SC04_002_jr_8017BEBC.c +++ b/src/ov_SC04_002/ov_SC04_002_jr_8017BEBC.c @@ -3213,8 +3213,6 @@ void func_8017D0B8(s32 param_1, s32 param_2) extern s32 D_801C0D9C; extern s32 D_801C0DA0; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_8017D0B8; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017D0B8; SV4_L_8017D0B8 vec; /* sp+0x10 */ MTX_L_8017D0B8 mtx; /* sp+0x18 */ @@ -3370,8 +3368,6 @@ void func_8017D1E8(s32 a0) { extern u8 D_801C0DAE; extern u8 D_801C0DB4; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017D1E8; - typedef struct { Rec027_8017D1E8 r[9]; } Blk027_8017D1E8; extern Blk027_8017D1E8 D_801B1CB4; extern Blk027_8017D1E8 D_801C0E28[]; @@ -3647,14 +3643,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_8017D0B8(s32 a0, s32 a1); void func_8017D934(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_8017D934; extern Rec_8017C738_8017D934 D_801B1CB4[]; Rec_8017C738_8017D934 *q = D_801B1CB4; @@ -3963,17 +3951,6 @@ void func_8017DF98(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017DFF4 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017DFF4; extern void func_80147324(s32 arg0); extern void func_8017E22C(int); @@ -4087,24 +4064,11 @@ void func_8017E1E0(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017E22C; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017E22C; -typedef struct { - SVec8_8017C218_8017E22C v[4]; /* 0x00 */ - CVec4_8017C218_8017E22C c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017E22C; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017E22C; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -4425,10 +4389,6 @@ void func_8017E8C8(void *a0) void func_8017E924(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017E924; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017E924; - typedef struct { SVec_8017C910_8017E924 v[2]; Clr_8017C910_8017E924 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017E924; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017E924; extern Mtx8_8017C910_8017E924 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017E924 prim; @@ -4807,9 +4767,6 @@ void func_8017FC5C(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017FC98; extern u16 func_80148800(s32 *a0); extern void func_8017FE28(s32 param_1, s16 *param_2); @@ -5153,9 +5110,6 @@ void func_80180688(s32 *a0) { * block, 26+ mismatches). */ -typedef struct { - unsigned short vx, vy, vz, pad; -} UVec_8017EA1C_801806F4; extern s32 func_8004787C(s32 a0); extern void func_800139C8(s32 a0, void *a1, void *a2); diff --git a/src/ov_SC04_002/ov_SC04_002_o0c.c b/src/ov_SC04_002/ov_SC04_002_o0c.c index e1d9698de3..c9cb2104a1 100644 --- a/src/ov_SC04_002/ov_SC04_002_o0c.c +++ b/src/ov_SC04_002/ov_SC04_002_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801C1608[]; D_801C1608[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801C1608[]; D_801C1608[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801C1608[]; D_801C1608[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801C16C8; extern s32 D_801C172C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801C1608"); extern s32 D_801C16A4; extern s32 D_801C16A8; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC04_003/ov_SC04_003.c b/src/ov_SC04_003/ov_SC04_003.c index ac96373c72..564d50f13c 100644 --- a/src/ov_SC04_003/ov_SC04_003.c +++ b/src/ov_SC04_003/ov_SC04_003.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC04_003/ov_SC04_003_after.c b/src/ov_SC04_003/ov_SC04_003_after.c index 7f6ca08d10..3a014cc80a 100644 --- a/src/ov_SC04_003/ov_SC04_003_after.c +++ b/src/ov_SC04_003/ov_SC04_003_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC04_003/ov_SC04_003_jr_8012ACE0.c b/src/ov_SC04_003/ov_SC04_003_jr_8012ACE0.c index ced2a29e14..5f19724e2b 100644 --- a/src/ov_SC04_003/ov_SC04_003_jr_8012ACE0.c +++ b/src/ov_SC04_003/ov_SC04_003_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC04_003/ov_SC04_003_jr_801380E0.c b/src/ov_SC04_003/ov_SC04_003_jr_801380E0.c index 938976c96a..bf6a8fc42c 100644 --- a/src/ov_SC04_003/ov_SC04_003_jr_801380E0.c +++ b/src/ov_SC04_003/ov_SC04_003_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018275C[]; u16 t; u8 b; diff --git a/src/ov_SC04_003/ov_SC04_003_jr_80140608.c b/src/ov_SC04_003/ov_SC04_003_jr_80140608.c index 2ba1694700..99eb68a232 100644 --- a/src/ov_SC04_003/ov_SC04_003_jr_80140608.c +++ b/src/ov_SC04_003/ov_SC04_003_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8018351C[]; extern u16 D_8018302C; extern u16 D_8018302E; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC04_003/ov_SC04_003_jr_8016AB6C.c b/src/ov_SC04_003/ov_SC04_003_jr_8016AB6C.c index c651a2889d..a900b34efb 100644 --- a/src/ov_SC04_003/ov_SC04_003_jr_8016AB6C.c +++ b/src/ov_SC04_003/ov_SC04_003_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC04_003/ov_SC04_003_jr_801734BC.c b/src/ov_SC04_003/ov_SC04_003_jr_801734BC.c index f389213d6b..f18980b6ae 100644 --- a/src/ov_SC04_003/ov_SC04_003_jr_801734BC.c +++ b/src/ov_SC04_003/ov_SC04_003_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC04_003/nonmatchings/ov_SC04_003_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC04_003/ov_SC04_003_jr_8017BEBC.c b/src/ov_SC04_003/ov_SC04_003_jr_8017BEBC.c index feb8c93fb1..a1fb2e17f8 100644 --- a/src/ov_SC04_003/ov_SC04_003_jr_8017BEBC.c +++ b/src/ov_SC04_003/ov_SC04_003_jr_8017BEBC.c @@ -3363,9 +3363,6 @@ void func_8017D22C(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D268; extern u16 func_80148800(s32 *a0); extern void func_8017D3A8(s32 param_1, s16 *param_2); @@ -3389,9 +3386,6 @@ void func_8017D268(s32 a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D308; extern u16 func_80148800(s32 *a0); extern void func_8017D3A8(s32 param_1, s16 *param_2); @@ -3779,9 +3773,6 @@ void func_8017DAC8(s32 *a0) { * block, 26+ mismatches). */ -typedef struct { - unsigned short vx, vy, vz, pad; -} UVec_8017EA1C_8017DB34; extern s32 func_8004787C(s32 a0); extern void func_800139C8(s32 a0, void *a1, void *a2); @@ -4007,7 +3998,6 @@ void func_8017EE30(void) { INCLUDE_ASM("asm/ov_SC04_003/nonmatchings/ov_SC04_003_jr_8017BEBC", func_8017EE38); -typedef struct { s32 a; s32 b[4]; } Ot_80182A78_8017EE80; extern s32 func_8004787C(s32 a0); diff --git a/src/ov_SC04_003/ov_SC04_003_o0c.c b/src/ov_SC04_003/ov_SC04_003_o0c.c index 747110571d..e79c4cde10 100644 --- a/src/ov_SC04_003/ov_SC04_003_o0c.c +++ b/src/ov_SC04_003/ov_SC04_003_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_8019BAC8[]; D_8019BAC8[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_8019BAC8[]; D_8019BAC8[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_8019BAC8[]; D_8019BAC8[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_8019BB80; extern s32 D_8019BBE4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_8019BAC8"); extern s32 D_8019BB64; extern s32 D_8019BB68; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC04_004/ov_SC04_004.c b/src/ov_SC04_004/ov_SC04_004.c index 6910a7c5d5..5776431b1b 100644 --- a/src/ov_SC04_004/ov_SC04_004.c +++ b/src/ov_SC04_004/ov_SC04_004.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC04_004/ov_SC04_004_after.c b/src/ov_SC04_004/ov_SC04_004_after.c index 6410755a0e..c9a29af681 100644 --- a/src/ov_SC04_004/ov_SC04_004_after.c +++ b/src/ov_SC04_004/ov_SC04_004_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC04_004/ov_SC04_004_jr_8012ACE0.c b/src/ov_SC04_004/ov_SC04_004_jr_8012ACE0.c index 056a1f7dc5..9aab7f0f64 100644 --- a/src/ov_SC04_004/ov_SC04_004_jr_8012ACE0.c +++ b/src/ov_SC04_004/ov_SC04_004_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC04_004/ov_SC04_004_jr_801380E0.c b/src/ov_SC04_004/ov_SC04_004_jr_801380E0.c index 29af7b8ee2..3ce6c56e2a 100644 --- a/src/ov_SC04_004/ov_SC04_004_jr_801380E0.c +++ b/src/ov_SC04_004/ov_SC04_004_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80184C90[]; u16 t; u8 b; diff --git a/src/ov_SC04_004/ov_SC04_004_jr_80140608.c b/src/ov_SC04_004/ov_SC04_004_jr_80140608.c index 73b60e071f..130ccacc14 100644 --- a/src/ov_SC04_004/ov_SC04_004_jr_80140608.c +++ b/src/ov_SC04_004/ov_SC04_004_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80185A50[]; extern u16 D_80185560; extern u16 D_80185562; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC04_004/ov_SC04_004_jr_8016AB6C.c b/src/ov_SC04_004/ov_SC04_004_jr_8016AB6C.c index 030f97ad67..003f065dcc 100644 --- a/src/ov_SC04_004/ov_SC04_004_jr_8016AB6C.c +++ b/src/ov_SC04_004/ov_SC04_004_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC04_004/ov_SC04_004_jr_801734BC.c b/src/ov_SC04_004/ov_SC04_004_jr_801734BC.c index aadf375c71..c9f8d9308d 100644 --- a/src/ov_SC04_004/ov_SC04_004_jr_801734BC.c +++ b/src/ov_SC04_004/ov_SC04_004_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC04_004/ov_SC04_004_jr_8017AE2C.c b/src/ov_SC04_004/ov_SC04_004_jr_8017AE2C.c index 64b70fcca6..4e01e9e28f 100644 --- a/src/ov_SC04_004/ov_SC04_004_jr_8017AE2C.c +++ b/src/ov_SC04_004/ov_SC04_004_jr_8017AE2C.c @@ -3795,8 +3795,6 @@ void func_8017CD9C(s32 param_1, s32 param_2) extern s32 D_801B3804; extern s32 D_801B3808; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_8017CD9C; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017CD9C; SV4_L_8017CD9C vec; /* sp+0x10 */ MTX_L_8017CD9C mtx; /* sp+0x18 */ @@ -3952,8 +3950,6 @@ void func_8017CECC(s32 a0) { extern u8 D_801B3816; extern u8 D_801B381C; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017CECC; - typedef struct { Rec027_8017CECC r[9]; } Blk027_8017CECC; extern Blk027_8017CECC D_8019A9DC; extern Blk027_8017CECC D_801B3890[]; @@ -4229,14 +4225,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_8017CD9C(s32 a0, s32 a1); void func_8017D618(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_8017D618; extern Rec_8017C738_8017D618 D_8019A9DC[]; Rec_8017C738_8017D618 *q = D_8019A9DC; @@ -4545,17 +4533,6 @@ void func_8017DC7C(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017DCD8 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017DCD8; extern void func_80147324(s32 arg0); extern void func_8017DF10(int); @@ -4669,24 +4646,11 @@ void func_8017DEC4(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017DF10; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017DF10; -typedef struct { - SVec8_8017C218_8017DF10 v[4]; /* 0x00 */ - CVec4_8017C218_8017DF10 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017DF10; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017DF10; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -5007,10 +4971,6 @@ void func_8017E5AC(void *a0) void func_8017E608(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017E608; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017E608; - typedef struct { SVec_8017C910_8017E608 v[2]; Clr_8017C910_8017E608 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017E608; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017E608; extern Mtx8_8017C910_8017E608 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017E608 prim; @@ -5271,9 +5231,6 @@ void func_8017EC08(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017EC44; extern u16 func_80148800(s32 *a0); extern void func_8017ED84(s32 param_1, s16 *param_2); @@ -5298,9 +5255,6 @@ void func_8017EC44(s32 a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017ECE4; extern u16 func_80148800(s32 *a0); extern void func_8017ED84(s32 param_1, s16 *param_2); @@ -5762,9 +5716,6 @@ void func_80180054(s32 *a0) { * block, 26+ mismatches). */ -typedef struct { - unsigned short vx, vy, vz, pad; -} UVec_8017EA1C_801800C0; extern s32 func_8004787C(s32 a0); extern void func_800139C8(s32 a0, void *a1, void *a2); diff --git a/src/ov_SC04_004/ov_SC04_004_o0c.c b/src/ov_SC04_004/ov_SC04_004_o0c.c index 84262b24c9..5565a459cd 100644 --- a/src/ov_SC04_004/ov_SC04_004_o0c.c +++ b/src/ov_SC04_004/ov_SC04_004_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801B3B28[]; D_801B3B28[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801B3B28[]; D_801B3B28[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801B3B28[]; D_801B3B28[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801B3BE8; extern s32 D_801B3C4C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801B3B28"); extern s32 D_801B3BC4; extern s32 D_801B3BC8; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC04_005/ov_SC04_005.c b/src/ov_SC04_005/ov_SC04_005.c index 9f15ad7618..ace3cc74f6 100644 --- a/src/ov_SC04_005/ov_SC04_005.c +++ b/src/ov_SC04_005/ov_SC04_005.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC04_005/ov_SC04_005_after.c b/src/ov_SC04_005/ov_SC04_005_after.c index 2d98dd68ef..1342e13724 100644 --- a/src/ov_SC04_005/ov_SC04_005_after.c +++ b/src/ov_SC04_005/ov_SC04_005_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC04_005/ov_SC04_005_jr_8012ACE0.c b/src/ov_SC04_005/ov_SC04_005_jr_8012ACE0.c index 729b38ba08..0ce6b1ee64 100644 --- a/src/ov_SC04_005/ov_SC04_005_jr_8012ACE0.c +++ b/src/ov_SC04_005/ov_SC04_005_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC04_005/ov_SC04_005_jr_801380E0.c b/src/ov_SC04_005/ov_SC04_005_jr_801380E0.c index c3fd47ce00..928d66b072 100644 --- a/src/ov_SC04_005/ov_SC04_005_jr_801380E0.c +++ b/src/ov_SC04_005/ov_SC04_005_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_801880C4[]; u16 t; u8 b; diff --git a/src/ov_SC04_005/ov_SC04_005_jr_80140608.c b/src/ov_SC04_005/ov_SC04_005_jr_80140608.c index cd64dd2d3d..c35c9e778b 100644 --- a/src/ov_SC04_005/ov_SC04_005_jr_80140608.c +++ b/src/ov_SC04_005/ov_SC04_005_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80188E84[]; extern u16 D_80188994; extern u16 D_80188996; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC04_005/ov_SC04_005_jr_8016AB6C.c b/src/ov_SC04_005/ov_SC04_005_jr_8016AB6C.c index e977424faf..0f2f20ed48 100644 --- a/src/ov_SC04_005/ov_SC04_005_jr_8016AB6C.c +++ b/src/ov_SC04_005/ov_SC04_005_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC04_005/ov_SC04_005_jr_801734BC.c b/src/ov_SC04_005/ov_SC04_005_jr_801734BC.c index a89bd3ecf3..b29858c6f8 100644 --- a/src/ov_SC04_005/ov_SC04_005_jr_801734BC.c +++ b/src/ov_SC04_005/ov_SC04_005_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC04_005/nonmatchings/ov_SC04_005_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC04_005/ov_SC04_005_jr_8017BEBC.c b/src/ov_SC04_005/ov_SC04_005_jr_8017BEBC.c index 8696c9e99a..dec6f6f797 100644 --- a/src/ov_SC04_005/ov_SC04_005_jr_8017BEBC.c +++ b/src/ov_SC04_005/ov_SC04_005_jr_8017BEBC.c @@ -3214,8 +3214,6 @@ void func_8017D0B8(s32 param_1, s32 param_2) extern s32 D_801C19DC; extern s32 D_801C19E0; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_8017D0B8; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017D0B8; SV4_L_8017D0B8 vec; /* sp+0x10 */ MTX_L_8017D0B8 mtx; /* sp+0x18 */ @@ -3371,8 +3369,6 @@ void func_8017D1E8(s32 a0) { extern u8 D_801C19EE; extern u8 D_801C19F4; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017D1E8; - typedef struct { Rec027_8017D1E8 r[9]; } Blk027_8017D1E8; extern Blk027_8017D1E8 D_801B2020; extern Blk027_8017D1E8 D_801C1A68[]; @@ -3648,14 +3644,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_8017D0B8(s32 a0, s32 a1); void func_8017D934(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_8017D934; extern Rec_8017C738_8017D934 D_801B2020[]; Rec_8017C738_8017D934 *q = D_801B2020; @@ -3962,17 +3950,6 @@ void func_8017DF98(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017DFF4 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017DFF4; extern void func_80147324(s32 arg0); extern void func_8017E22C(int); @@ -4086,24 +4063,11 @@ void func_8017E1E0(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017E22C; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017E22C; -typedef struct { - SVec8_8017C218_8017E22C v[4]; /* 0x00 */ - CVec4_8017C218_8017E22C c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017E22C; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017E22C; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -4424,10 +4388,6 @@ void func_8017E8C8(void *a0) void func_8017E924(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017E924; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017E924; - typedef struct { SVec_8017C910_8017E924 v[2]; Clr_8017C910_8017E924 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017E924; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017E924; extern Mtx8_8017C910_8017E924 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017E924 prim; @@ -4689,9 +4649,6 @@ void func_8017EF24(void *a0) { /* 8-byte, alignment-1 blob: the target copies it with lwl/lwr + swl/swr, * which is gcc's emit_block_move for align < 4. */ -typedef struct { - char b[8]; -} Blob8_8018A47C_8017EF60; extern void func_8017F048(s32, s16*); @@ -4707,9 +4664,6 @@ void func_8017EF60(s32 a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017EFA8; extern u16 func_80148800(s32 *a0); extern void func_8017F048(s32 param_1, s16 *param_2); @@ -5085,9 +5039,6 @@ void func_8017FAA0(s32 *a0) { * block, 26+ mismatches). */ -typedef struct { - unsigned short vx, vy, vz, pad; -} UVec_8017EA1C_8017FB0C; extern s32 func_8004787C(s32 a0); extern void func_800139C8(s32 a0, void *a1, void *a2); @@ -5827,7 +5778,6 @@ void func_80181990(void) { INCLUDE_ASM("asm/ov_SC04_005/nonmatchings/ov_SC04_005_jr_8017BEBC", func_80181998); -typedef struct { s32 a; s32 b[4]; } Ot_80182A78_801819E0; extern s32 func_8004787C(s32 a0); diff --git a/src/ov_SC04_005/ov_SC04_005_o0c.c b/src/ov_SC04_005/ov_SC04_005_o0c.c index e777d412b1..a816aa8c07 100644 --- a/src/ov_SC04_005/ov_SC04_005_o0c.c +++ b/src/ov_SC04_005/ov_SC04_005_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801C2208[]; D_801C2208[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801C2208[]; D_801C2208[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801C2208[]; D_801C2208[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801C22C0; extern s32 D_801C2324; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801C2208"); extern s32 D_801C22A4; extern s32 D_801C22A8; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC04_006/ov_SC04_006.c b/src/ov_SC04_006/ov_SC04_006.c index 0889b1e8b0..576240880e 100644 --- a/src/ov_SC04_006/ov_SC04_006.c +++ b/src/ov_SC04_006/ov_SC04_006.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC04_006/ov_SC04_006_after.c b/src/ov_SC04_006/ov_SC04_006_after.c index 852c1fe05a..f4c602d2bb 100644 --- a/src/ov_SC04_006/ov_SC04_006_after.c +++ b/src/ov_SC04_006/ov_SC04_006_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC04_006/ov_SC04_006_jr_8012ACE0.c b/src/ov_SC04_006/ov_SC04_006_jr_8012ACE0.c index fce1dc6abf..abed2747c2 100644 --- a/src/ov_SC04_006/ov_SC04_006_jr_8012ACE0.c +++ b/src/ov_SC04_006/ov_SC04_006_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC04_006/ov_SC04_006_jr_801380E0.c b/src/ov_SC04_006/ov_SC04_006_jr_801380E0.c index a972345f94..ad876dc86f 100644 --- a/src/ov_SC04_006/ov_SC04_006_jr_801380E0.c +++ b/src/ov_SC04_006/ov_SC04_006_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_801801A4[]; u16 t; u8 b; diff --git a/src/ov_SC04_006/ov_SC04_006_jr_80140608.c b/src/ov_SC04_006/ov_SC04_006_jr_80140608.c index 0f61180af3..b36bcfce78 100644 --- a/src/ov_SC04_006/ov_SC04_006_jr_80140608.c +++ b/src/ov_SC04_006/ov_SC04_006_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80180F64[]; extern u16 D_80180A74; extern u16 D_80180A76; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC04_006/ov_SC04_006_jr_8016AB6C.c b/src/ov_SC04_006/ov_SC04_006_jr_8016AB6C.c index 85008f92f0..0d1334ac00 100644 --- a/src/ov_SC04_006/ov_SC04_006_jr_8016AB6C.c +++ b/src/ov_SC04_006/ov_SC04_006_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC04_006/ov_SC04_006_jr_801734BC.c b/src/ov_SC04_006/ov_SC04_006_jr_801734BC.c index eabb4ac288..0bb196b214 100644 --- a/src/ov_SC04_006/ov_SC04_006_jr_801734BC.c +++ b/src/ov_SC04_006/ov_SC04_006_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC04_006/nonmatchings/ov_SC04_006_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC04_006/ov_SC04_006_jr_8017BEBC.c b/src/ov_SC04_006/ov_SC04_006_jr_8017BEBC.c index f717191bef..4aa4ad034f 100644 --- a/src/ov_SC04_006/ov_SC04_006_jr_8017BEBC.c +++ b/src/ov_SC04_006/ov_SC04_006_jr_8017BEBC.c @@ -3370,9 +3370,6 @@ INCLUDE_ASM("asm/ov_SC04_006/nonmatchings/ov_SC04_006_jr_8017BEBC", func_8017D26 /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D344; extern u16 func_80148800(s32 *a0); extern void func_8017D3E4(s32 param_1, s16 *param_2); @@ -3641,9 +3638,6 @@ void func_8017DA0C(s32 *a0) { * block, 26+ mismatches). */ -typedef struct { - unsigned short vx, vy, vz, pad; -} UVec_8017EA1C_8017DA78; extern s32 func_8004787C(s32 a0); extern void func_800139C8(s32 a0, void *a1, void *a2); diff --git a/src/ov_SC04_006/ov_SC04_006_o0c.c b/src/ov_SC04_006/ov_SC04_006_o0c.c index 13ecbb7fba..f1851a5265 100644 --- a/src/ov_SC04_006/ov_SC04_006_o0c.c +++ b/src/ov_SC04_006/ov_SC04_006_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_8019DCA8[]; D_8019DCA8[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_8019DCA8[]; D_8019DCA8[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_8019DCA8[]; D_8019DCA8[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_8019DD60; extern s32 D_8019DDC4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_8019DCA8"); extern s32 D_8019DD44; extern s32 D_8019DD48; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC04_007/ov_SC04_007.c b/src/ov_SC04_007/ov_SC04_007.c index cdb8326739..555191f1ac 100644 --- a/src/ov_SC04_007/ov_SC04_007.c +++ b/src/ov_SC04_007/ov_SC04_007.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC04_007/ov_SC04_007_after.c b/src/ov_SC04_007/ov_SC04_007_after.c index 8e00327941..1c2049222c 100644 --- a/src/ov_SC04_007/ov_SC04_007_after.c +++ b/src/ov_SC04_007/ov_SC04_007_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC04_007/ov_SC04_007_jr_8012ACE0.c b/src/ov_SC04_007/ov_SC04_007_jr_8012ACE0.c index 0845d416ad..76aa447de7 100644 --- a/src/ov_SC04_007/ov_SC04_007_jr_8012ACE0.c +++ b/src/ov_SC04_007/ov_SC04_007_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC04_007/ov_SC04_007_jr_801380E0.c b/src/ov_SC04_007/ov_SC04_007_jr_801380E0.c index 47edc6d28e..40d4109c83 100644 --- a/src/ov_SC04_007/ov_SC04_007_jr_801380E0.c +++ b/src/ov_SC04_007/ov_SC04_007_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018615C[]; u16 t; u8 b; diff --git a/src/ov_SC04_007/ov_SC04_007_jr_80140608.c b/src/ov_SC04_007/ov_SC04_007_jr_80140608.c index 6af48f61b2..0b0cebde47 100644 --- a/src/ov_SC04_007/ov_SC04_007_jr_80140608.c +++ b/src/ov_SC04_007/ov_SC04_007_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80186F1C[]; extern u16 D_80186A2C; extern u16 D_80186A2E; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC04_007/ov_SC04_007_jr_8016AB6C.c b/src/ov_SC04_007/ov_SC04_007_jr_8016AB6C.c index e007a1e823..2f5fe64419 100644 --- a/src/ov_SC04_007/ov_SC04_007_jr_8016AB6C.c +++ b/src/ov_SC04_007/ov_SC04_007_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC04_007/ov_SC04_007_jr_801734BC.c b/src/ov_SC04_007/ov_SC04_007_jr_801734BC.c index fd28810c13..f3ef1b6106 100644 --- a/src/ov_SC04_007/ov_SC04_007_jr_801734BC.c +++ b/src/ov_SC04_007/ov_SC04_007_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC04_007/nonmatchings/ov_SC04_007_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC04_007/ov_SC04_007_jr_8017BEBC.c b/src/ov_SC04_007/ov_SC04_007_jr_8017BEBC.c index d1431d8667..26ed524ce4 100644 --- a/src/ov_SC04_007/ov_SC04_007_jr_8017BEBC.c +++ b/src/ov_SC04_007/ov_SC04_007_jr_8017BEBC.c @@ -3178,8 +3178,6 @@ void func_8017CD9C(s32 param_1, s32 param_2) extern s32 D_801B523C; extern s32 D_801B5240; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_8017CD9C; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017CD9C; SV4_L_8017CD9C vec; /* sp+0x10 */ MTX_L_8017CD9C mtx; /* sp+0x18 */ @@ -3335,8 +3333,6 @@ void func_8017CECC(s32 a0) { extern u8 D_801B524E; extern u8 D_801B5254; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017CECC; - typedef struct { Rec027_8017CECC r[9]; } Blk027_8017CECC; extern Blk027_8017CECC D_801B006C; extern Blk027_8017CECC D_801B52C8[]; @@ -3612,14 +3608,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_8017CD9C(s32 a0, s32 a1); void func_8017D618(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_8017D618; extern Rec_8017C738_8017D618 D_801B006C[]; Rec_8017C738_8017D618 *q = D_801B006C; @@ -3926,17 +3914,6 @@ void func_8017DC7C(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017DCD8 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017DCD8; extern void func_80147324(s32 arg0); extern void func_8017DF10(int); @@ -4050,24 +4027,11 @@ void func_8017DEC4(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017DF10; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017DF10; -typedef struct { - SVec8_8017C218_8017DF10 v[4]; /* 0x00 */ - CVec4_8017C218_8017DF10 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017DF10; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017DF10; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -4388,10 +4352,6 @@ void func_8017E5AC(void *a0) void func_8017E608(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017E608; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017E608; - typedef struct { SVec_8017C910_8017E608 v[2]; Clr_8017C910_8017E608 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017E608; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017E608; extern Mtx8_8017C910_8017E608 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017E608 prim; @@ -4653,9 +4613,6 @@ void func_8017EC08(void *a0) { /* 8-byte, alignment-1 blob: the target copies it with lwl/lwr + swl/swr, * which is gcc's emit_block_move for align < 4. */ -typedef struct { - char b[8]; -} Blob8_8018A47C_8017EC44; extern void func_8017ED2C(s32, s16*); @@ -4671,9 +4628,6 @@ void func_8017EC44(s32 a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017EC8C; extern u16 func_80148800(s32 *a0); extern void func_8017ED2C(s32 param_1, s16 *param_2); @@ -5061,9 +5015,6 @@ void func_8017F4DC(s32 *a0) { * block, 26+ mismatches). */ -typedef struct { - unsigned short vx, vy, vz, pad; -} UVec_8017EA1C_8017F548; extern s32 func_8004787C(s32 a0); extern void func_800139C8(s32 a0, void *a1, void *a2); @@ -5310,7 +5261,6 @@ void func_80180844(void) { INCLUDE_ASM("asm/ov_SC04_007/nonmatchings/ov_SC04_007_jr_8017BEBC", func_8018084C); -typedef struct { s32 a; s32 b[4]; } Ot_80182A78_80180894; extern s32 func_8004787C(s32 a0); diff --git a/src/ov_SC04_007/ov_SC04_007_o0c.c b/src/ov_SC04_007/ov_SC04_007_o0c.c index 6db33522f9..afa7ba0ea8 100644 --- a/src/ov_SC04_007/ov_SC04_007_o0c.c +++ b/src/ov_SC04_007/ov_SC04_007_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801B5A68[]; D_801B5A68[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801B5A68[]; D_801B5A68[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801B5A68[]; D_801B5A68[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801B5B20; extern s32 D_801B5B84; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801B5A68"); extern s32 D_801B5B04; extern s32 D_801B5B08; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC04_008/ov_SC04_008.c b/src/ov_SC04_008/ov_SC04_008.c index f7da34bbc2..83fd6f983a 100644 --- a/src/ov_SC04_008/ov_SC04_008.c +++ b/src/ov_SC04_008/ov_SC04_008.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC04_008/ov_SC04_008_after.c b/src/ov_SC04_008/ov_SC04_008_after.c index b19d69ab1c..8cdceb4a60 100644 --- a/src/ov_SC04_008/ov_SC04_008_after.c +++ b/src/ov_SC04_008/ov_SC04_008_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1519,7 +1504,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2075,17 +2059,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC04_008/ov_SC04_008_jr_8012ACE0.c b/src/ov_SC04_008/ov_SC04_008_jr_8012ACE0.c index e860629f1c..e6fbf7b406 100644 --- a/src/ov_SC04_008/ov_SC04_008_jr_8012ACE0.c +++ b/src/ov_SC04_008/ov_SC04_008_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC04_008/ov_SC04_008_jr_801380E0.c b/src/ov_SC04_008/ov_SC04_008_jr_801380E0.c index f63d192b30..594b4a6bd1 100644 --- a/src/ov_SC04_008/ov_SC04_008_jr_801380E0.c +++ b/src/ov_SC04_008/ov_SC04_008_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017F094[]; u16 t; u8 b; diff --git a/src/ov_SC04_008/ov_SC04_008_jr_80140608.c b/src/ov_SC04_008/ov_SC04_008_jr_80140608.c index 5792100a6b..979527998a 100644 --- a/src/ov_SC04_008/ov_SC04_008_jr_80140608.c +++ b/src/ov_SC04_008/ov_SC04_008_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8017FE54[]; extern u16 D_8017F964; extern u16 D_8017F966; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC04_008/ov_SC04_008_jr_8016AB6C.c b/src/ov_SC04_008/ov_SC04_008_jr_8016AB6C.c index e09c7ce9d1..07df4990f6 100644 --- a/src/ov_SC04_008/ov_SC04_008_jr_8016AB6C.c +++ b/src/ov_SC04_008/ov_SC04_008_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC04_008/ov_SC04_008_jr_801734BC.c b/src/ov_SC04_008/ov_SC04_008_jr_801734BC.c index 6b978dbd76..1e07a9c648 100644 --- a/src/ov_SC04_008/ov_SC04_008_jr_801734BC.c +++ b/src/ov_SC04_008/ov_SC04_008_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC04_008/nonmatchings/ov_SC04_008_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC04_008/ov_SC04_008_jr_8017AE2C.c b/src/ov_SC04_008/ov_SC04_008_jr_8017AE2C.c index dd7fdf227f..b4876971cc 100644 --- a/src/ov_SC04_008/ov_SC04_008_jr_8017AE2C.c +++ b/src/ov_SC04_008/ov_SC04_008_jr_8017AE2C.c @@ -4289,9 +4289,6 @@ void func_8017E23C(s32 *a0) { * block, 26+ mismatches). */ -typedef struct { - unsigned short vx, vy, vz, pad; -} UVec_8017EA1C_8017E2A8; extern s32 func_8004787C(s32 a0); extern void func_800139C8(s32 a0, void *a1, void *a2); diff --git a/src/ov_SC04_008/ov_SC04_008_o0c.c b/src/ov_SC04_008/ov_SC04_008_o0c.c index f23d2751ff..673b60a632 100644 --- a/src/ov_SC04_008/ov_SC04_008_o0c.c +++ b/src/ov_SC04_008/ov_SC04_008_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_80193398[]; D_80193398[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_80193398[]; D_80193398[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_80193398[]; D_80193398[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_80193450; extern s32 D_801934B4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_80193398"); extern s32 D_80193434; extern s32 D_80193438; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC04_009/ov_SC04_009.c b/src/ov_SC04_009/ov_SC04_009.c index a92e4c9807..ce3f02b477 100644 --- a/src/ov_SC04_009/ov_SC04_009.c +++ b/src/ov_SC04_009/ov_SC04_009.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC04_009/ov_SC04_009_after.c b/src/ov_SC04_009/ov_SC04_009_after.c index bccd941587..f41a7b740d 100644 --- a/src/ov_SC04_009/ov_SC04_009_after.c +++ b/src/ov_SC04_009/ov_SC04_009_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC04_009/ov_SC04_009_jr_8012ACE0.c b/src/ov_SC04_009/ov_SC04_009_jr_8012ACE0.c index a954398164..c7dc77e413 100644 --- a/src/ov_SC04_009/ov_SC04_009_jr_8012ACE0.c +++ b/src/ov_SC04_009/ov_SC04_009_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC04_009/ov_SC04_009_jr_801380E0.c b/src/ov_SC04_009/ov_SC04_009_jr_801380E0.c index b4c51b1ca4..37c5a6b52a 100644 --- a/src/ov_SC04_009/ov_SC04_009_jr_801380E0.c +++ b/src/ov_SC04_009/ov_SC04_009_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017F0C0[]; u16 t; u8 b; diff --git a/src/ov_SC04_009/ov_SC04_009_jr_80140608.c b/src/ov_SC04_009/ov_SC04_009_jr_80140608.c index 6029ecd99b..73591c2c94 100644 --- a/src/ov_SC04_009/ov_SC04_009_jr_80140608.c +++ b/src/ov_SC04_009/ov_SC04_009_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8017FE80[]; extern u16 D_8017F990; extern u16 D_8017F992; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC04_009/ov_SC04_009_jr_8016AB6C.c b/src/ov_SC04_009/ov_SC04_009_jr_8016AB6C.c index 6eb4f89cda..66295f7145 100644 --- a/src/ov_SC04_009/ov_SC04_009_jr_8016AB6C.c +++ b/src/ov_SC04_009/ov_SC04_009_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC04_009/ov_SC04_009_jr_801734BC.c b/src/ov_SC04_009/ov_SC04_009_jr_801734BC.c index 33c87d0a97..6d8aa7f2d4 100644 --- a/src/ov_SC04_009/ov_SC04_009_jr_801734BC.c +++ b/src/ov_SC04_009/ov_SC04_009_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC04_009/nonmatchings/ov_SC04_009_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC04_009/ov_SC04_009_jr_8017BEBC.c b/src/ov_SC04_009/ov_SC04_009_jr_8017BEBC.c index bd82e516c5..859de2adec 100644 --- a/src/ov_SC04_009/ov_SC04_009_jr_8017BEBC.c +++ b/src/ov_SC04_009/ov_SC04_009_jr_8017BEBC.c @@ -3664,9 +3664,6 @@ void func_8017DCE0(s32 *a0) { * block, 26+ mismatches). */ -typedef struct { - unsigned short vx, vy, vz, pad; -} UVec_8017EA1C_8017DD4C; extern s32 func_8004787C(s32 a0); extern void func_800139C8(s32 a0, void *a1, void *a2); diff --git a/src/ov_SC04_009/ov_SC04_009_o0c.c b/src/ov_SC04_009/ov_SC04_009_o0c.c index 3af2da7166..905dd27585 100644 --- a/src/ov_SC04_009/ov_SC04_009_o0c.c +++ b/src/ov_SC04_009/ov_SC04_009_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_80198148[]; D_80198148[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_80198148[]; D_80198148[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_80198148[]; D_80198148[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_80198200; extern s32 D_80198264; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_80198148"); extern s32 D_801981E4; extern s32 D_801981E8; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC04_010/ov_SC04_010.c b/src/ov_SC04_010/ov_SC04_010.c index c617190f30..cc1131d9b6 100644 --- a/src/ov_SC04_010/ov_SC04_010.c +++ b/src/ov_SC04_010/ov_SC04_010.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC04_010/ov_SC04_010_after.c b/src/ov_SC04_010/ov_SC04_010_after.c index f7a1b906be..9e58965dd6 100644 --- a/src/ov_SC04_010/ov_SC04_010_after.c +++ b/src/ov_SC04_010/ov_SC04_010_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC04_010/ov_SC04_010_jr_8012ACE0.c b/src/ov_SC04_010/ov_SC04_010_jr_8012ACE0.c index 5ae82230b9..dda19c3843 100644 --- a/src/ov_SC04_010/ov_SC04_010_jr_8012ACE0.c +++ b/src/ov_SC04_010/ov_SC04_010_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC04_010/ov_SC04_010_jr_801380E0.c b/src/ov_SC04_010/ov_SC04_010_jr_801380E0.c index dce4afe47d..8c73e4db47 100644 --- a/src/ov_SC04_010/ov_SC04_010_jr_801380E0.c +++ b/src/ov_SC04_010/ov_SC04_010_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017E76C[]; u16 t; u8 b; diff --git a/src/ov_SC04_010/ov_SC04_010_jr_80140608.c b/src/ov_SC04_010/ov_SC04_010_jr_80140608.c index 5bc7306ab7..8953654d0b 100644 --- a/src/ov_SC04_010/ov_SC04_010_jr_80140608.c +++ b/src/ov_SC04_010/ov_SC04_010_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8017F52C[]; extern u16 D_8017F03C; extern u16 D_8017F03E; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC04_010/ov_SC04_010_jr_8016AB6C.c b/src/ov_SC04_010/ov_SC04_010_jr_8016AB6C.c index bac0e797cb..935d46cc78 100644 --- a/src/ov_SC04_010/ov_SC04_010_jr_8016AB6C.c +++ b/src/ov_SC04_010/ov_SC04_010_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC04_010/ov_SC04_010_jr_801734BC.c b/src/ov_SC04_010/ov_SC04_010_jr_801734BC.c index f9ec449bfa..bbdd48e169 100644 --- a/src/ov_SC04_010/ov_SC04_010_jr_801734BC.c +++ b/src/ov_SC04_010/ov_SC04_010_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC04_010/nonmatchings/ov_SC04_010_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC04_010/ov_SC04_010_jr_8017BEBC.c b/src/ov_SC04_010/ov_SC04_010_jr_8017BEBC.c index 046a446889..875b46f42f 100644 --- a/src/ov_SC04_010/ov_SC04_010_jr_8017BEBC.c +++ b/src/ov_SC04_010/ov_SC04_010_jr_8017BEBC.c @@ -3647,9 +3647,6 @@ void func_8017DFF8(s32 *a0) { * block, 26+ mismatches). */ -typedef struct { - unsigned short vx, vy, vz, pad; -} UVec_8017EA1C_8017E064; extern s32 func_8004787C(s32 a0); extern void func_800139C8(s32 a0, void *a1, void *a2); diff --git a/src/ov_SC04_010/ov_SC04_010_o0c.c b/src/ov_SC04_010/ov_SC04_010_o0c.c index 8dd01160d9..2fe11612b3 100644 --- a/src/ov_SC04_010/ov_SC04_010_o0c.c +++ b/src/ov_SC04_010/ov_SC04_010_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_8018F620[]; D_8018F620[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_8018F620[]; D_8018F620[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_8018F620[]; D_8018F620[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_8018F6D8; extern s32 D_8018F73C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_8018F620"); extern s32 D_8018F6BC; extern s32 D_8018F6C0; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC04_011/ov_SC04_011.c b/src/ov_SC04_011/ov_SC04_011.c index e7dcc247ab..b5ccfd503b 100644 --- a/src/ov_SC04_011/ov_SC04_011.c +++ b/src/ov_SC04_011/ov_SC04_011.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC04_011/ov_SC04_011_after.c b/src/ov_SC04_011/ov_SC04_011_after.c index d68be54b21..d95683061a 100644 --- a/src/ov_SC04_011/ov_SC04_011_after.c +++ b/src/ov_SC04_011/ov_SC04_011_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.c b/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.c index 005d03c506..f9c45df50c 100644 --- a/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.c +++ b/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC04_011/ov_SC04_011_jr_801380E0.c b/src/ov_SC04_011/ov_SC04_011_jr_801380E0.c index ee2833eae5..565235211f 100644 --- a/src/ov_SC04_011/ov_SC04_011_jr_801380E0.c +++ b/src/ov_SC04_011/ov_SC04_011_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_801909FC[]; u16 t; u8 b; diff --git a/src/ov_SC04_011/ov_SC04_011_jr_80140608.c b/src/ov_SC04_011/ov_SC04_011_jr_80140608.c index a49502add1..2e97da8f75 100644 --- a/src/ov_SC04_011/ov_SC04_011_jr_80140608.c +++ b/src/ov_SC04_011/ov_SC04_011_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_801917BC[]; extern u16 D_801912CC; extern u16 D_801912CE; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c b/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c index a94707342e..ab246667dc 100644 --- a/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c +++ b/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC04_011/ov_SC04_011_jr_801734BC.c b/src/ov_SC04_011/ov_SC04_011_jr_801734BC.c index 6e047c97bd..d800abe2ff 100644 --- a/src/ov_SC04_011/ov_SC04_011_jr_801734BC.c +++ b/src/ov_SC04_011/ov_SC04_011_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.c b/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.c index 50adaac077..081a5525fd 100644 --- a/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.c +++ b/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.c @@ -3367,17 +3367,6 @@ void func_8017BF84(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017BFE0 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017BFE0; extern void func_80147324(s32 arg0); extern void func_8017C218(int); @@ -3478,24 +3467,11 @@ DEFINE_func_8017C1CC() /* dedup: shared engine-core @0x8017C1CC (src/shared) */ * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017C218; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017C218; -typedef struct { - SVec8_8017C218_8017C218 v[4]; /* 0x00 */ - CVec4_8017C218_8017C218 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017C218; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017C218; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -3777,10 +3753,6 @@ DEFINE_func_8017C8B4() /* dedup: shared engine-core @0x8017C8B4 (src/shared) */ void func_8017C910(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017C910; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017C910; - typedef struct { SVec_8017C910_8017C910 v[2]; Clr_8017C910_8017C910 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017C910; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017C910; extern Mtx8_8017C910_8017C910 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017C910 prim; @@ -3849,17 +3821,6 @@ extern void func_8017CAF8(s32 arg0, s32 arg1, s32 arg2, s32 arg3); extern s32 func_8012C750(s32 a0); -typedef struct { - s16 unk00; - s16 unk02; - s16 unk04; - s16 unk06; - s16 unk08; - s16 unk0A; - s16 unk0C; - s16 unk0E; - s32 unk10; -} Buf8017BF34_8017CAF8; void func_8017CAF8(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { diff --git a/src/ov_SC04_011/ov_SC04_011_jr_8017D494.c b/src/ov_SC04_011/ov_SC04_011_jr_8017D494.c index c82e7d3cb9..920f26bb19 100644 --- a/src/ov_SC04_011/ov_SC04_011_jr_8017D494.c +++ b/src/ov_SC04_011/ov_SC04_011_jr_8017D494.c @@ -3190,17 +3190,8 @@ extern s32 func_80017DC4(void *a0, void *a1); extern s32 func_80017E30(void *a0, void *a1); extern void func_80016ED4(void *a0); -typedef struct { short vx, vy, vz, pad; } SVECTOR_8017F40C_8017E6EC; -typedef struct { - SVECTOR_8017F40C_8017E6EC v[4]; /* 0x00 */ - s16 k30, k32, k34, k36, k38, k3a, k3c, k3e; /* 0x20 */ - u32 bcast; /* 0x30 */ - s32 tag; /* 0x34 */ - u8 code; /* 0x38 */ - u8 pad39[7]; /* -> 0x40 */ -} Prim_8017F40C_8017E6EC; void func_8017E6EC(s32 a0, s32 a1) { @@ -4243,7 +4234,7 @@ INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_jr_8017D494", func_8018778 * also matches.) */ -typedef struct { u16 x, y, z, w; } Pt_80187940; /* 8-byte out-param scratch */ + /* 8-byte out-param scratch */ extern void func_8012F14C(s32); /* TU-canonical decl; called through a cast (fleet house style) */ extern void func_8012F568(); @@ -4914,9 +4905,6 @@ void func_8018D3FC(s32 *a0) { * block, 26+ mismatches). */ -typedef struct { - unsigned short vx, vy, vz, pad; -} UVec_8017EA1C_8018D468; extern s32 func_8004787C(s32 a0); extern void func_800139C8(s32 a0, void *a1, void *a2); @@ -5035,12 +5023,6 @@ void func_8018E010(void) { * puts $s1's zero-init first, which is the target order. */ -typedef struct { - s16 unk0; - s16 unk2; - s16 unk4; - s16 unk6; -} Rec_8018A6A4_8018E034; extern void func_8018E0D4(s32 arg0, s32 arg1, s32 arg2); extern void func_8018E1F0(s32 arg0, Rec_8018A6A4_8018E034 *arg1, s32 arg2, s32 arg3); @@ -5162,7 +5144,7 @@ void aF8018A860(s32 a0, s16 *a1, u8 *a2, u8 *a3) { extern s16 D_801F141C; /* TU L3637 / L3671, verbatim */ - typedef struct { u8 b0, b1, b2, b3; } B4_8018E1F0; /* align 1 — §48-C2 */ + /* align 1 — §48-C2 */ s16 *s1; u16 temp_u16; s16 temp_s16; @@ -5404,7 +5386,7 @@ void func_8018E34C(void) { void func_8018E428(s32 arg0) { - typedef struct { s32 w[8]; } Blk32_8018AA98_8018E428; /* 32 bytes, align 4 */ + /* 32 bytes, align 4 */ extern Blk32_8018AA98_8018E428 D_800AE620; extern s32 D_800A5E60; @@ -5553,7 +5535,6 @@ extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3); extern void func_8018E7C0(void *arg0, void *arg1, s32 arg2, s32 arg3); void func_8018E738(s32 a0) { - typedef struct { u8 a, b, c, d; } V4_8018E738; extern u8 D_800AF648; extern V4_8018E738 D_801ED9B8; u16 sxy[4]; @@ -5685,14 +5666,6 @@ void aF8018AFD0(s32 a0, s32 a1, s32 a2) __asm__("func_8018E960"); void aF8018AFD0(s32 a0, s32 a1, s32 a2) { - typedef struct { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ - } P_8018E960; extern s16 D_801F1314; extern s16 D_801F130E[]; @@ -5861,21 +5834,11 @@ extern void func_80016638(void *a0, s32 a1, s32 a2); /* 0x10-byte-stride record table at D_801F1314 (same table as func_8018AD5C) */ -typedef struct { - u16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s16 f8; /* 0x08 */ - u16 fA; /* 0x0A */ - s16 fC; /* 0x0C */ - u16 fE; /* 0x0E */ -} Rec_8018B23C_8018EBCC; -typedef struct { s32 w[8]; } Mat32_8018B23C_8018EBCC; /* the 0x20-byte matrix */ -typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_8018EBCC; /* == engine_types.h OtBlk */ -typedef struct { u16 f; } Bidx_8018B23C_8018EBCC; /* the D_800B9A02 buffer index */ -typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_8018EBCC; /* libgpu P_TAG */ + /* the 0x20-byte matrix */ + /* == engine_types.h OtBlk */ + /* the D_800B9A02 buffer index */ + /* libgpu P_TAG */ void func_8018EBCC(s32 a0) { @@ -6284,12 +6247,6 @@ void func_8018F984(void *a0) { -typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; -} EffectSlot4_8018F9C0; extern void func_801465C0(void); extern void func_80146C3C(void); diff --git a/src/ov_SC04_011/ov_SC04_011_o0c.c b/src/ov_SC04_011/ov_SC04_011_o0c.c index 160f97b55d..684272904c 100644 --- a/src/ov_SC04_011/ov_SC04_011_o0c.c +++ b/src/ov_SC04_011/ov_SC04_011_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801F1588[]; D_801F1588[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801F1588[]; D_801F1588[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801F1588[]; D_801F1588[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801F1640; extern s32 D_801F16A4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801F1588"); extern s32 D_801F1624; extern s32 D_801F1628; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC04_012/ov_SC04_012.c b/src/ov_SC04_012/ov_SC04_012.c index 93455d3c52..571f607d37 100644 --- a/src/ov_SC04_012/ov_SC04_012.c +++ b/src/ov_SC04_012/ov_SC04_012.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC04_012/ov_SC04_012_after.c b/src/ov_SC04_012/ov_SC04_012_after.c index cb8dd35a12..272c9db079 100644 --- a/src/ov_SC04_012/ov_SC04_012_after.c +++ b/src/ov_SC04_012/ov_SC04_012_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC04_012/ov_SC04_012_jr_8012ACE0.c b/src/ov_SC04_012/ov_SC04_012_jr_8012ACE0.c index 806da49676..dbf0acdf4f 100644 --- a/src/ov_SC04_012/ov_SC04_012_jr_8012ACE0.c +++ b/src/ov_SC04_012/ov_SC04_012_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC04_012/ov_SC04_012_jr_801380E0.c b/src/ov_SC04_012/ov_SC04_012_jr_801380E0.c index 891df03572..3f00ffdec6 100644 --- a/src/ov_SC04_012/ov_SC04_012_jr_801380E0.c +++ b/src/ov_SC04_012/ov_SC04_012_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017EBD0[]; u16 t; u8 b; diff --git a/src/ov_SC04_012/ov_SC04_012_jr_80140608.c b/src/ov_SC04_012/ov_SC04_012_jr_80140608.c index e2f72df950..a51b7d741f 100644 --- a/src/ov_SC04_012/ov_SC04_012_jr_80140608.c +++ b/src/ov_SC04_012/ov_SC04_012_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8017F990[]; extern u16 D_8017F4A0; extern u16 D_8017F4A2; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC04_012/ov_SC04_012_jr_8016AB6C.c b/src/ov_SC04_012/ov_SC04_012_jr_8016AB6C.c index bff3ba01c6..35ef8e2ea4 100644 --- a/src/ov_SC04_012/ov_SC04_012_jr_8016AB6C.c +++ b/src/ov_SC04_012/ov_SC04_012_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC04_012/ov_SC04_012_jr_801734BC.c b/src/ov_SC04_012/ov_SC04_012_jr_801734BC.c index 48fb50b2a0..d16612566a 100644 --- a/src/ov_SC04_012/ov_SC04_012_jr_801734BC.c +++ b/src/ov_SC04_012/ov_SC04_012_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC04_012/nonmatchings/ov_SC04_012_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC04_012/ov_SC04_012_jr_8017AE2C.c b/src/ov_SC04_012/ov_SC04_012_jr_8017AE2C.c index 68f92d0d02..db8a3e43d1 100644 --- a/src/ov_SC04_012/ov_SC04_012_jr_8017AE2C.c +++ b/src/ov_SC04_012/ov_SC04_012_jr_8017AE2C.c @@ -4254,9 +4254,6 @@ void func_8017E45C(s32 *a0) { * block, 26+ mismatches). */ -typedef struct { - unsigned short vx, vy, vz, pad; -} UVec_8017EA1C_8017E4C8; extern s32 func_8004787C(s32 a0); extern void func_800139C8(s32 a0, void *a1, void *a2); diff --git a/src/ov_SC04_012/ov_SC04_012_o0c.c b/src/ov_SC04_012/ov_SC04_012_o0c.c index b71e7780be..1f07fb7fc9 100644 --- a/src/ov_SC04_012/ov_SC04_012_o0c.c +++ b/src/ov_SC04_012/ov_SC04_012_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_80193118[]; D_80193118[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_80193118[]; D_80193118[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_80193118[]; D_80193118[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801931D0; extern s32 D_80193234; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_80193118"); extern s32 D_801931B4; extern s32 D_801931B8; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC04_015/ov_SC04_015.c b/src/ov_SC04_015/ov_SC04_015.c index c1d0d6808f..6773061c49 100644 --- a/src/ov_SC04_015/ov_SC04_015.c +++ b/src/ov_SC04_015/ov_SC04_015.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC04_015/ov_SC04_015_after.c b/src/ov_SC04_015/ov_SC04_015_after.c index dc9616555c..208912252d 100644 --- a/src/ov_SC04_015/ov_SC04_015_after.c +++ b/src/ov_SC04_015/ov_SC04_015_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC04_015/ov_SC04_015_jr_8012ACE0.c b/src/ov_SC04_015/ov_SC04_015_jr_8012ACE0.c index a4e90ff2c9..42b143508e 100644 --- a/src/ov_SC04_015/ov_SC04_015_jr_8012ACE0.c +++ b/src/ov_SC04_015/ov_SC04_015_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC04_015/ov_SC04_015_jr_801380E0.c b/src/ov_SC04_015/ov_SC04_015_jr_801380E0.c index cee475f710..15a71bdd47 100644 --- a/src/ov_SC04_015/ov_SC04_015_jr_801380E0.c +++ b/src/ov_SC04_015/ov_SC04_015_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80184B08[]; u16 t; u8 b; diff --git a/src/ov_SC04_015/ov_SC04_015_jr_80140608.c b/src/ov_SC04_015/ov_SC04_015_jr_80140608.c index f466edd051..14a1d2f3a9 100644 --- a/src/ov_SC04_015/ov_SC04_015_jr_80140608.c +++ b/src/ov_SC04_015/ov_SC04_015_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_801858C8[]; extern u16 D_801853D8; extern u16 D_801853DA; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2601,7 +2592,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC04_015/ov_SC04_015_jr_8016AB6C.c b/src/ov_SC04_015/ov_SC04_015_jr_8016AB6C.c index 7c77784c96..8c84f53630 100644 --- a/src/ov_SC04_015/ov_SC04_015_jr_8016AB6C.c +++ b/src/ov_SC04_015/ov_SC04_015_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC04_015/ov_SC04_015_jr_801734BC.c b/src/ov_SC04_015/ov_SC04_015_jr_801734BC.c index 0478fcea51..d5942a2a3e 100644 --- a/src/ov_SC04_015/ov_SC04_015_jr_801734BC.c +++ b/src/ov_SC04_015/ov_SC04_015_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC04_015/nonmatchings/ov_SC04_015_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC04_015/ov_SC04_015_jr_8017AE2C.c b/src/ov_SC04_015/ov_SC04_015_jr_8017AE2C.c index e84fe2edf4..da9eae731a 100644 --- a/src/ov_SC04_015/ov_SC04_015_jr_8017AE2C.c +++ b/src/ov_SC04_015/ov_SC04_015_jr_8017AE2C.c @@ -3363,17 +3363,6 @@ void func_8017BF34(void *a0) { extern u8 *func_8012913C(s32 a0); extern s32 func_8012C750(s32 a0); -typedef struct { - s16 unk00; - s16 unk02; - s16 unk04; - s16 unk06; - s16 unk08; - s16 unk0A; - s16 unk0C; - s16 unk0E; - s32 unk10; -} Buf8017BF50_8017BF70; /* $16-$19 are pinned: without them gcc's strength reduction splits the `s1` store * base into TWO induction variables (base+0x18 with offsets -4/0, plus base+0x1C), @@ -4752,13 +4741,6 @@ extern void func_80180934(void *arg0); extern s32 func_8012AD50(void *arg0); /* 0x24-stride record at D_801C9010 (4 entries; asm/ov_SC04_018/data/tail18.data.s) */ -typedef struct { - u8 unk00[0x16]; - s16 unk16; - u8 unk18[4]; - s32 unk1C; - u8 unk20[4]; -} Ent_8017D6EC_80180618; void func_80180618(void *arg0) { @@ -4850,12 +4832,7 @@ void func_80180934(void *arg0) { * so this body remaps to those overlays unchanged. */ -typedef struct { short vx, vy, vz, pad; } SV_8017DAC4_801809F0; -typedef struct { - SV_8017DAC4_801809F0 v[4]; /* 0x00 .. 0x20 */ - s32 f20, f24, f28, f2C, f30, f34; /* 0x20 .. 0x38 */ -} Prim_8017DAC4_801809F0; extern void func_80017714(void *); @@ -5177,9 +5154,6 @@ s32 func_80180F3C(u8 a0, u8 a1, u8 a2, u8 a3) { extern void func_8012F214(s32 a0, s32 a1, s32 a2); extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); -typedef struct { - s16 f0, f1, f2, f3; -} Vec4s_80180F94; void func_80180F94(void *a0, s32 a1) { @@ -5606,7 +5580,6 @@ extern void func_80181C08(s32 a0); extern void *func_80181FD8(void *a0); -typedef struct { u8 b[12]; } Blk12_801854C4_80181830; void func_80181830(s32 a0) { diff --git a/src/ov_SC04_015/ov_SC04_015_o0c.c b/src/ov_SC04_015/ov_SC04_015_o0c.c index 7e2c63e7c5..859c79b69f 100644 --- a/src/ov_SC04_015/ov_SC04_015_o0c.c +++ b/src/ov_SC04_015/ov_SC04_015_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801C92A0[]; D_801C92A0[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801C92A0[]; D_801C92A0[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801C92A0[]; D_801C92A0[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801C9370; extern s32 D_801C93D4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801C92A0"); extern s32 D_801C9354; extern s32 D_801C9358; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC04_016/ov_SC04_016.c b/src/ov_SC04_016/ov_SC04_016.c index e77fb60f4d..4a170d93ca 100644 --- a/src/ov_SC04_016/ov_SC04_016.c +++ b/src/ov_SC04_016/ov_SC04_016.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC04_016/ov_SC04_016_after.c b/src/ov_SC04_016/ov_SC04_016_after.c index 5bd4a31c8a..77f5fed8d4 100644 --- a/src/ov_SC04_016/ov_SC04_016_after.c +++ b/src/ov_SC04_016/ov_SC04_016_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC04_016/ov_SC04_016_jr_8012ACE0.c b/src/ov_SC04_016/ov_SC04_016_jr_8012ACE0.c index cec1efd732..5efe1e9caa 100644 --- a/src/ov_SC04_016/ov_SC04_016_jr_8012ACE0.c +++ b/src/ov_SC04_016/ov_SC04_016_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC04_016/ov_SC04_016_jr_801380E0.c b/src/ov_SC04_016/ov_SC04_016_jr_801380E0.c index 1f47de1b09..43aa1282bb 100644 --- a/src/ov_SC04_016/ov_SC04_016_jr_801380E0.c +++ b/src/ov_SC04_016/ov_SC04_016_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_801805CC[]; u16 t; u8 b; diff --git a/src/ov_SC04_016/ov_SC04_016_jr_80140608.c b/src/ov_SC04_016/ov_SC04_016_jr_80140608.c index 5b5f14b8fb..1988b9734c 100644 --- a/src/ov_SC04_016/ov_SC04_016_jr_80140608.c +++ b/src/ov_SC04_016/ov_SC04_016_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8018138C[]; extern u16 D_80180E9C; extern u16 D_80180E9E; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC04_016/ov_SC04_016_jr_8016AB6C.c b/src/ov_SC04_016/ov_SC04_016_jr_8016AB6C.c index c5addad134..7baecae836 100644 --- a/src/ov_SC04_016/ov_SC04_016_jr_8016AB6C.c +++ b/src/ov_SC04_016/ov_SC04_016_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC04_016/ov_SC04_016_jr_801734BC.c b/src/ov_SC04_016/ov_SC04_016_jr_801734BC.c index c61329e759..9dbed02895 100644 --- a/src/ov_SC04_016/ov_SC04_016_jr_801734BC.c +++ b/src/ov_SC04_016/ov_SC04_016_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC04_016/nonmatchings/ov_SC04_016_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC04_016/ov_SC04_016_jr_8017BEBC.c b/src/ov_SC04_016/ov_SC04_016_jr_8017BEBC.c index 359d5300c5..4e5df90ffe 100644 --- a/src/ov_SC04_016/ov_SC04_016_jr_8017BEBC.c +++ b/src/ov_SC04_016/ov_SC04_016_jr_8017BEBC.c @@ -3285,9 +3285,6 @@ void func_8017D010(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D04C; extern u16 func_80148800(s32 *a0); extern void func_8017D0EC(s32*); diff --git a/src/ov_SC04_016/ov_SC04_016_o0c.c b/src/ov_SC04_016/ov_SC04_016_o0c.c index 031f5f344a..97976337a6 100644 --- a/src/ov_SC04_016/ov_SC04_016_o0c.c +++ b/src/ov_SC04_016/ov_SC04_016_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801AC1B8[]; D_801AC1B8[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801AC1B8[]; D_801AC1B8[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801AC1B8[]; D_801AC1B8[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801AC270; extern s32 D_801AC2D4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801AC1B8"); extern s32 D_801AC254; extern s32 D_801AC258; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC04_018/ov_SC04_018.c b/src/ov_SC04_018/ov_SC04_018.c index 0879841f5e..48262ed765 100644 --- a/src/ov_SC04_018/ov_SC04_018.c +++ b/src/ov_SC04_018/ov_SC04_018.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC04_018/ov_SC04_018_after.c b/src/ov_SC04_018/ov_SC04_018_after.c index d0a6c607aa..4e808c3652 100644 --- a/src/ov_SC04_018/ov_SC04_018_after.c +++ b/src/ov_SC04_018/ov_SC04_018_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC04_018/ov_SC04_018_jr_8012ACE0.c b/src/ov_SC04_018/ov_SC04_018_jr_8012ACE0.c index 79e10a3870..09bf310f7d 100644 --- a/src/ov_SC04_018/ov_SC04_018_jr_8012ACE0.c +++ b/src/ov_SC04_018/ov_SC04_018_jr_8012ACE0.c @@ -342,10 +342,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -591,7 +587,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2448,7 +2443,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2612,7 +2606,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC04_018/ov_SC04_018_jr_801380E0.c b/src/ov_SC04_018/ov_SC04_018_jr_801380E0.c index 1e55aa55fe..b6cbac800d 100644 --- a/src/ov_SC04_018/ov_SC04_018_jr_801380E0.c +++ b/src/ov_SC04_018/ov_SC04_018_jr_801380E0.c @@ -1048,12 +1048,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018D7E4[]; u16 t; u8 b; diff --git a/src/ov_SC04_018/ov_SC04_018_jr_80140608.c b/src/ov_SC04_018/ov_SC04_018_jr_80140608.c index 5fb478b1a1..fb8178394f 100644 --- a/src/ov_SC04_018/ov_SC04_018_jr_80140608.c +++ b/src/ov_SC04_018/ov_SC04_018_jr_80140608.c @@ -1111,11 +1111,6 @@ s16 n; extern s16 D_8018E5A4[]; extern u16 D_8018E0B4; extern u16 D_8018E0B6; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1254,13 +1249,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2587,7 +2578,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC04_018/ov_SC04_018_jr_8016AB6C.c b/src/ov_SC04_018/ov_SC04_018_jr_8016AB6C.c index e22c3b4c03..d2c7405dca 100644 --- a/src/ov_SC04_018/ov_SC04_018_jr_8016AB6C.c +++ b/src/ov_SC04_018/ov_SC04_018_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC04_018/ov_SC04_018_jr_801734BC.c b/src/ov_SC04_018/ov_SC04_018_jr_801734BC.c index 9644fb1ff9..ac838a4d60 100644 --- a/src/ov_SC04_018/ov_SC04_018_jr_801734BC.c +++ b/src/ov_SC04_018/ov_SC04_018_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC04_018/ov_SC04_018_jr_8017AE2C.c b/src/ov_SC04_018/ov_SC04_018_jr_8017AE2C.c index 2bc6732947..19d38c1a7f 100644 --- a/src/ov_SC04_018/ov_SC04_018_jr_8017AE2C.c +++ b/src/ov_SC04_018/ov_SC04_018_jr_8017AE2C.c @@ -3355,17 +3355,6 @@ void func_8017BF14(void *a0) { extern u8 *func_8012913C(s32 a0); extern s32 func_8012C750(s32 a0); -typedef struct { - s16 unk00; - s16 unk02; - s16 unk04; - s16 unk06; - s16 unk08; - s16 unk0A; - s16 unk0C; - s16 unk0E; - s32 unk10; -} Buf8017BF50_8017BF50; /* $16-$19 are pinned: without them gcc's strength reduction splits the `s1` store * base into TWO induction variables (base+0x18 with offsets -4/0, plus base+0x1C), @@ -4209,13 +4198,6 @@ extern void func_8017DA08(void *arg0); extern s32 func_8012AD50(void *arg0); /* 0x24-stride record at D_801E6F58 (4 entries; asm/ov_SC04_018/data/tail18.data.s) */ -typedef struct { - u8 unk00[0x16]; - s16 unk16; - u8 unk18[4]; - s32 unk1C; - u8 unk20[4]; -} Ent_8017D6EC; extern Ent_8017D6EC D_801E6F58[]; @@ -4425,12 +4407,7 @@ void func_8017DA08(void *arg0) { * so this body remaps to those overlays unchanged. */ -typedef struct { short vx, vy, vz, pad; } SV_8017DAC4; -typedef struct { - SV_8017DAC4 v[4]; /* 0x00 .. 0x20 */ - s32 f20, f24, f28, f2C, f30, f34; /* 0x20 .. 0x38 */ -} Prim_8017DAC4; extern void func_80017714(void *); @@ -7208,9 +7185,6 @@ s32 func_80184BD0(u8 a0, u8 a1, u8 a2, u8 a3) { extern void func_8012F214(s32 a0, s32 a1, s32 a2); extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); -typedef struct { - s16 f0, f1, f2, f3; -} Vec4s; void func_80184C28(void *a0, s32 a1) { @@ -7602,7 +7576,6 @@ extern u32 D_801B8760; extern u32 D_801B877C; extern s16 D_801B8788[]; -typedef struct { u8 b[12]; } Blk12_801854C4; extern Blk12_801854C4 D_801B8770; void func_801854C4(s32 a0) { @@ -8156,9 +8129,6 @@ extern u8 D_801202A0[]; extern s32 func_8012BD14(s32 a0); /* align-1 8-byte payload — drives the lwl/lwr + swl/swr inline block move */ -struct Un8_8018613C { - u8 b0, b1, b2, b3, b4, b5, b6, b7; -}; void func_8018613C(void *a0) { @@ -8683,24 +8653,7 @@ INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8017AE2C", func_8018877 * through a local instead) were all tried and all leave the 22-diff swap. */ -typedef struct Prim4_8017E978_801889B8 { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ -} Prim4_8017E978_801889B8; -typedef struct Panel_8017E978_801889B8 { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - void *f4; /* 0x04 */ - void *f8; /* 0x08 */ - s16 fC; /* 0x0C */ - s16 fE; /* 0x0E */ - s16 f10; /* 0x10 */ - s16 f12; /* 0x12 */ - void *f14; /* 0x14 */ - Prim4_8017E978_801889B8 *f18; /* 0x18 */ - void *f1C; /* 0x1C */ -} Panel_8017E978_801889B8; extern void func_80024054(void *a0, void *a1); diff --git a/src/ov_SC04_018/ov_SC04_018_o0c.c b/src/ov_SC04_018/ov_SC04_018_o0c.c index 439d5f6bf2..e07b65d102 100644 --- a/src/ov_SC04_018/ov_SC04_018_o0c.c +++ b/src/ov_SC04_018/ov_SC04_018_o0c.c @@ -784,8 +784,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801E79E8[]; D_801E79E8[a0].f0 = 1; @@ -800,20 +798,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801E79E8[]; D_801E79E8[idx].f0 = 1; @@ -824,7 +808,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801E79E8[]; D_801E79E8[a0].f0 = 0; } @@ -843,16 +827,7 @@ extern s32 D_801E7AB8; extern s32 D_801E7B1C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801E79E8"); extern s32 D_801E7A9C; extern s32 D_801E7AA0; @@ -942,7 +917,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -989,17 +963,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1065,11 +1028,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC04_019/ov_SC04_019.c b/src/ov_SC04_019/ov_SC04_019.c index 6bd44b6dda..e0ca476460 100644 --- a/src/ov_SC04_019/ov_SC04_019.c +++ b/src/ov_SC04_019/ov_SC04_019.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC04_019/ov_SC04_019_after.c b/src/ov_SC04_019/ov_SC04_019_after.c index ef0c104fea..5050ed51f2 100644 --- a/src/ov_SC04_019/ov_SC04_019_after.c +++ b/src/ov_SC04_019/ov_SC04_019_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC04_019/ov_SC04_019_jr_8012ACE0.c b/src/ov_SC04_019/ov_SC04_019_jr_8012ACE0.c index 00a8fb22ab..5cee710f03 100644 --- a/src/ov_SC04_019/ov_SC04_019_jr_8012ACE0.c +++ b/src/ov_SC04_019/ov_SC04_019_jr_8012ACE0.c @@ -342,10 +342,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -591,7 +587,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2448,7 +2443,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2612,7 +2606,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC04_019/ov_SC04_019_jr_801380E0.c b/src/ov_SC04_019/ov_SC04_019_jr_801380E0.c index 1e55aa55fe..b6cbac800d 100644 --- a/src/ov_SC04_019/ov_SC04_019_jr_801380E0.c +++ b/src/ov_SC04_019/ov_SC04_019_jr_801380E0.c @@ -1048,12 +1048,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018D7E4[]; u16 t; u8 b; diff --git a/src/ov_SC04_019/ov_SC04_019_jr_80140608.c b/src/ov_SC04_019/ov_SC04_019_jr_80140608.c index f64d55df60..5302590024 100644 --- a/src/ov_SC04_019/ov_SC04_019_jr_80140608.c +++ b/src/ov_SC04_019/ov_SC04_019_jr_80140608.c @@ -1111,11 +1111,6 @@ s16 n; extern s16 D_8018E5A4[]; extern u16 D_8018E0B4; extern u16 D_8018E0B6; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1254,13 +1249,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2603,7 +2594,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC04_019/ov_SC04_019_jr_8016AB6C.c b/src/ov_SC04_019/ov_SC04_019_jr_8016AB6C.c index e22c3b4c03..d2c7405dca 100644 --- a/src/ov_SC04_019/ov_SC04_019_jr_8016AB6C.c +++ b/src/ov_SC04_019/ov_SC04_019_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC04_019/ov_SC04_019_jr_801734BC.c b/src/ov_SC04_019/ov_SC04_019_jr_801734BC.c index a8c7b3f508..5b9d118fc7 100644 --- a/src/ov_SC04_019/ov_SC04_019_jr_801734BC.c +++ b/src/ov_SC04_019/ov_SC04_019_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC04_019/ov_SC04_019_jr_8017AE2C.c b/src/ov_SC04_019/ov_SC04_019_jr_8017AE2C.c index 08a2d41ce2..20d612e70f 100644 --- a/src/ov_SC04_019/ov_SC04_019_jr_8017AE2C.c +++ b/src/ov_SC04_019/ov_SC04_019_jr_8017AE2C.c @@ -3345,17 +3345,6 @@ void func_8017BF14(void *a0) { extern u8 *func_8012913C(s32 a0); extern s32 func_8012C750(s32 a0); -typedef struct { - s16 unk00; - s16 unk02; - s16 unk04; - s16 unk06; - s16 unk08; - s16 unk0A; - s16 unk0C; - s16 unk0E; - s32 unk10; -} Buf8017BF50_8017BF50; /* $16-$19 are pinned: without them gcc's strength reduction splits the `s1` store * base into TWO induction variables (base+0x18 with offsets -4/0, plus base+0x1C), @@ -4198,13 +4187,6 @@ extern void func_8017DA08(void *arg0); extern s32 func_8012AD50(void *arg0); /* 0x24-stride record at D_801E6F58 (4 entries; asm/ov_SC04_018/data/tail18.data.s) */ -typedef struct { - u8 unk00[0x16]; - s16 unk16; - u8 unk18[4]; - s32 unk1C; - u8 unk20[4]; -} Ent_8017D6EC_8017D6EC; void func_8017D6EC(void *arg0) { @@ -4296,12 +4278,7 @@ void func_8017DA08(void *arg0) { * so this body remaps to those overlays unchanged. */ -typedef struct { short vx, vy, vz, pad; } SV_8017DAC4_8017DAC4; -typedef struct { - SV_8017DAC4_8017DAC4 v[4]; /* 0x00 .. 0x20 */ - s32 f20, f24, f28, f2C, f30, f34; /* 0x20 .. 0x38 */ -} Prim_8017DAC4_8017DAC4; extern void func_80017714(void *); @@ -7027,9 +7004,6 @@ s32 func_80184BD0(u8 a0, u8 a1, u8 a2, u8 a3) { extern void func_8012F214(s32 a0, s32 a1, s32 a2); extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); -typedef struct { - s16 f0, f1, f2, f3; -} Vec4s_80184C28; void func_80184C28(void *a0, s32 a1) { @@ -7353,7 +7327,6 @@ extern void func_8018589C(s32 a0); extern void *func_80185C6C(void *a0); -typedef struct { u8 b[12]; } Blk12_801854C4_801854C4; void func_801854C4(s32 a0) { @@ -8348,24 +8321,7 @@ INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019_jr_8017AE2C", func_8018877 * through a local instead) were all tried and all leave the 22-diff swap. */ -typedef struct Prim4_8017E978_801889B8 { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ -} Prim4_8017E978_801889B8; -typedef struct Panel_8017E978_801889B8 { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - void *f4; /* 0x04 */ - void *f8; /* 0x08 */ - s16 fC; /* 0x0C */ - s16 fE; /* 0x0E */ - s16 f10; /* 0x10 */ - s16 f12; /* 0x12 */ - void *f14; /* 0x14 */ - Prim4_8017E978_801889B8 *f18; /* 0x18 */ - void *f1C; /* 0x1C */ -} Panel_8017E978_801889B8; extern void func_80024054(void *a0, void *a1); diff --git a/src/ov_SC04_019/ov_SC04_019_o0c.c b/src/ov_SC04_019/ov_SC04_019_o0c.c index 439d5f6bf2..e07b65d102 100644 --- a/src/ov_SC04_019/ov_SC04_019_o0c.c +++ b/src/ov_SC04_019/ov_SC04_019_o0c.c @@ -784,8 +784,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801E79E8[]; D_801E79E8[a0].f0 = 1; @@ -800,20 +798,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801E79E8[]; D_801E79E8[idx].f0 = 1; @@ -824,7 +808,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801E79E8[]; D_801E79E8[a0].f0 = 0; } @@ -843,16 +827,7 @@ extern s32 D_801E7AB8; extern s32 D_801E7B1C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801E79E8"); extern s32 D_801E7A9C; extern s32 D_801E7AA0; @@ -942,7 +917,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -989,17 +963,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1065,11 +1028,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC04_020/ov_SC04_020.c b/src/ov_SC04_020/ov_SC04_020.c index 6280119df3..b91bcb9972 100644 --- a/src/ov_SC04_020/ov_SC04_020.c +++ b/src/ov_SC04_020/ov_SC04_020.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC04_020/ov_SC04_020_after.c b/src/ov_SC04_020/ov_SC04_020_after.c index 67b0d55c22..379c4939d4 100644 --- a/src/ov_SC04_020/ov_SC04_020_after.c +++ b/src/ov_SC04_020/ov_SC04_020_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC04_020/ov_SC04_020_jr_8012ACE0.c b/src/ov_SC04_020/ov_SC04_020_jr_8012ACE0.c index fb9edb6edd..9484e334d9 100644 --- a/src/ov_SC04_020/ov_SC04_020_jr_8012ACE0.c +++ b/src/ov_SC04_020/ov_SC04_020_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC04_020/ov_SC04_020_jr_801380E0.c b/src/ov_SC04_020/ov_SC04_020_jr_801380E0.c index 5fe9242f6a..bfb9547372 100644 --- a/src/ov_SC04_020/ov_SC04_020_jr_801380E0.c +++ b/src/ov_SC04_020/ov_SC04_020_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018391C[]; u16 t; u8 b; diff --git a/src/ov_SC04_020/ov_SC04_020_jr_80140608.c b/src/ov_SC04_020/ov_SC04_020_jr_80140608.c index 9178f8d7b2..7ef2036113 100644 --- a/src/ov_SC04_020/ov_SC04_020_jr_80140608.c +++ b/src/ov_SC04_020/ov_SC04_020_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_801846DC[]; extern u16 D_801841EC; extern u16 D_801841EE; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC04_020/ov_SC04_020_jr_8016AB6C.c b/src/ov_SC04_020/ov_SC04_020_jr_8016AB6C.c index aa1a8735ab..b56f7d7d8e 100644 --- a/src/ov_SC04_020/ov_SC04_020_jr_8016AB6C.c +++ b/src/ov_SC04_020/ov_SC04_020_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC04_020/ov_SC04_020_jr_801734BC.c b/src/ov_SC04_020/ov_SC04_020_jr_801734BC.c index 021b15fb7b..8b0ac87acf 100644 --- a/src/ov_SC04_020/ov_SC04_020_jr_801734BC.c +++ b/src/ov_SC04_020/ov_SC04_020_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC04_020/nonmatchings/ov_SC04_020_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC04_020/ov_SC04_020_jr_8017AE2C.c b/src/ov_SC04_020/ov_SC04_020_jr_8017AE2C.c index c9108fa188..e06e7b83cb 100644 --- a/src/ov_SC04_020/ov_SC04_020_jr_8017AE2C.c +++ b/src/ov_SC04_020/ov_SC04_020_jr_8017AE2C.c @@ -3503,17 +3503,6 @@ void func_8017C1F8(void *a0) { extern u8 *func_8012913C(s32 a0); extern s32 func_8012C750(s32 a0); -typedef struct { - s16 unk00; - s16 unk02; - s16 unk04; - s16 unk06; - s16 unk08; - s16 unk0A; - s16 unk0C; - s16 unk0E; - s32 unk10; -} Buf8017BF50_8017C234; /* $16-$19 are pinned: without them gcc's strength reduction splits the `s1` store * base into TWO induction variables (base+0x18 with offsets -4/0, plus base+0x1C), @@ -4265,7 +4254,6 @@ void func_8017CFE0(s16 *a0) { * (instead of a fresh local) avoids stealing back the $v0 slot. */ -typedef struct { s32 w[8]; } Mtx8_8017DE10_8017D0BC; void func_8017D0BC(s32 a0) { extern void ApplyMatrixSV(void *a0, void *a1, void *a2); diff --git a/src/ov_SC04_020/ov_SC04_020_jr_8017D604.c b/src/ov_SC04_020/ov_SC04_020_jr_8017D604.c index 53ecee30b9..de5205c1de 100644 --- a/src/ov_SC04_020/ov_SC04_020_jr_8017D604.c +++ b/src/ov_SC04_020/ov_SC04_020_jr_8017D604.c @@ -3666,13 +3666,6 @@ extern void func_80180380(void *arg0); extern s32 func_8012AD50(void *arg0); /* 0x24-stride record at D_801BC580 (4 entries; asm/ov_SC04_018/data/tail18.data.s) */ -typedef struct { - u8 unk00[0x16]; - s16 unk16; - u8 unk18[4]; - s32 unk1C; - u8 unk20[4]; -} Ent_8017D6EC_80180064; void func_80180064(void *arg0) { @@ -3764,12 +3757,7 @@ void func_80180380(void *arg0) { * so this body remaps to those overlays unchanged. */ -typedef struct { short vx, vy, vz, pad; } SV_8017DAC4_8018043C; -typedef struct { - SV_8017DAC4_8018043C v[4]; /* 0x00 .. 0x20 */ - s32 f20, f24, f28, f2C, f30, f34; /* 0x20 .. 0x38 */ -} Prim_8017DAC4_8018043C; extern void func_80017714(void *); @@ -4211,9 +4199,6 @@ s32 func_801813AC(u8 a0, u8 a1, u8 a2, u8 a3) { extern void func_8012F214(s32 a0, s32 a1, s32 a2); extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); -typedef struct { - s16 f0, f1, f2, f3; -} Vec4s_80181404; void func_80181404(void *a0, s32 a1) { @@ -4639,7 +4624,6 @@ extern void func_80182078(s32 a0); extern void *func_80182448(void *a0); -typedef struct { u8 b[12]; } Blk12_801854C4_80181CA0; void func_80181CA0(s32 a0) { diff --git a/src/ov_SC04_020/ov_SC04_020_o0c.c b/src/ov_SC04_020/ov_SC04_020_o0c.c index 721b07299c..eb923530d3 100644 --- a/src/ov_SC04_020/ov_SC04_020_o0c.c +++ b/src/ov_SC04_020/ov_SC04_020_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801BC670[]; D_801BC670[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801BC670[]; D_801BC670[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801BC670[]; D_801BC670[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801BC740; extern s32 D_801BC7A4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801BC670"); extern s32 D_801BC724; extern s32 D_801BC728; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC04_021/ov_SC04_021.c b/src/ov_SC04_021/ov_SC04_021.c index 6a138f33f6..7977d9e0ff 100644 --- a/src/ov_SC04_021/ov_SC04_021.c +++ b/src/ov_SC04_021/ov_SC04_021.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC04_021/ov_SC04_021_after.c b/src/ov_SC04_021/ov_SC04_021_after.c index 3cbbc7b9cf..de4a13dd93 100644 --- a/src/ov_SC04_021/ov_SC04_021_after.c +++ b/src/ov_SC04_021/ov_SC04_021_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC04_021/ov_SC04_021_jr_8012ACE0.c b/src/ov_SC04_021/ov_SC04_021_jr_8012ACE0.c index 4fed727c9e..715b9c98f5 100644 --- a/src/ov_SC04_021/ov_SC04_021_jr_8012ACE0.c +++ b/src/ov_SC04_021/ov_SC04_021_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC04_021/ov_SC04_021_jr_801380E0.c b/src/ov_SC04_021/ov_SC04_021_jr_801380E0.c index f0d7a4ad5a..f7a4937efe 100644 --- a/src/ov_SC04_021/ov_SC04_021_jr_801380E0.c +++ b/src/ov_SC04_021/ov_SC04_021_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017F848[]; u16 t; u8 b; diff --git a/src/ov_SC04_021/ov_SC04_021_jr_80140608.c b/src/ov_SC04_021/ov_SC04_021_jr_80140608.c index 2c914f398e..2c9f6ca901 100644 --- a/src/ov_SC04_021/ov_SC04_021_jr_80140608.c +++ b/src/ov_SC04_021/ov_SC04_021_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80180608[]; extern u16 D_80180118; extern u16 D_8018011A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC04_021/ov_SC04_021_jr_8016AB6C.c b/src/ov_SC04_021/ov_SC04_021_jr_8016AB6C.c index 60fe76ff63..1370c4a1a4 100644 --- a/src/ov_SC04_021/ov_SC04_021_jr_8016AB6C.c +++ b/src/ov_SC04_021/ov_SC04_021_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC04_021/ov_SC04_021_jr_801734BC.c b/src/ov_SC04_021/ov_SC04_021_jr_801734BC.c index a2b6dae7af..826792d853 100644 --- a/src/ov_SC04_021/ov_SC04_021_jr_801734BC.c +++ b/src/ov_SC04_021/ov_SC04_021_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC04_021/nonmatchings/ov_SC04_021_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC04_021/ov_SC04_021_o0c.c b/src/ov_SC04_021/ov_SC04_021_o0c.c index 4bf9b14c85..e6f1498a36 100644 --- a/src/ov_SC04_021/ov_SC04_021_o0c.c +++ b/src/ov_SC04_021/ov_SC04_021_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_8018FA00[]; D_8018FA00[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_8018FA00[]; D_8018FA00[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_8018FA00[]; D_8018FA00[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_8018FAB8; extern s32 D_8018FB1C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_8018FA00"); extern s32 D_8018FA9C; extern s32 D_8018FAA0; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC05_000/ov_SC05_000.c b/src/ov_SC05_000/ov_SC05_000.c index c7b9794d87..a9cdf7e7ea 100644 --- a/src/ov_SC05_000/ov_SC05_000.c +++ b/src/ov_SC05_000/ov_SC05_000.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC05_000/ov_SC05_000_after.c b/src/ov_SC05_000/ov_SC05_000_after.c index 9b25f9ac4b..e84f7e59e3 100644 --- a/src/ov_SC05_000/ov_SC05_000_after.c +++ b/src/ov_SC05_000/ov_SC05_000_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC05_000/ov_SC05_000_jr_8012ACE0.c b/src/ov_SC05_000/ov_SC05_000_jr_8012ACE0.c index e8f2b9d182..c4b1881f54 100644 --- a/src/ov_SC05_000/ov_SC05_000_jr_8012ACE0.c +++ b/src/ov_SC05_000/ov_SC05_000_jr_8012ACE0.c @@ -342,10 +342,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -591,7 +587,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2448,7 +2443,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2612,7 +2606,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC05_000/ov_SC05_000_jr_801380E0.c b/src/ov_SC05_000/ov_SC05_000_jr_801380E0.c index 455c6f9cc1..1274caf52a 100644 --- a/src/ov_SC05_000/ov_SC05_000_jr_801380E0.c +++ b/src/ov_SC05_000/ov_SC05_000_jr_801380E0.c @@ -1048,12 +1048,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017E85C[]; u16 t; u8 b; diff --git a/src/ov_SC05_000/ov_SC05_000_jr_80140608.c b/src/ov_SC05_000/ov_SC05_000_jr_80140608.c index e78aae290f..a946f42ce0 100644 --- a/src/ov_SC05_000/ov_SC05_000_jr_80140608.c +++ b/src/ov_SC05_000/ov_SC05_000_jr_80140608.c @@ -1111,11 +1111,6 @@ s16 n; extern s16 D_8017F61C[]; extern u16 D_8017F12C; extern u16 D_8017F12E; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1254,13 +1249,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2587,7 +2578,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC05_000/ov_SC05_000_jr_8016AB6C.c b/src/ov_SC05_000/ov_SC05_000_jr_8016AB6C.c index d28baefff2..04790f1555 100644 --- a/src/ov_SC05_000/ov_SC05_000_jr_8016AB6C.c +++ b/src/ov_SC05_000/ov_SC05_000_jr_8016AB6C.c @@ -3781,22 +3781,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC05_000/ov_SC05_000_jr_801734BC.c b/src/ov_SC05_000/ov_SC05_000_jr_801734BC.c index 26b5b0486f..8f735fb69a 100644 --- a/src/ov_SC05_000/ov_SC05_000_jr_801734BC.c +++ b/src/ov_SC05_000/ov_SC05_000_jr_801734BC.c @@ -2856,8 +2856,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2897,8 +2897,8 @@ INCLUDE_ASM("asm/ov_SC05_000/nonmatchings/ov_SC05_000_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2944,7 +2944,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3030,7 +3030,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3054,14 +3054,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3215,7 +3207,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC05_000/ov_SC05_000_o0c.c b/src/ov_SC05_000/ov_SC05_000_o0c.c index 04d93cbcd0..fef315298b 100644 --- a/src/ov_SC05_000/ov_SC05_000_o0c.c +++ b/src/ov_SC05_000/ov_SC05_000_o0c.c @@ -784,8 +784,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_8019AB30[]; D_8019AB30[a0].f0 = 1; @@ -800,20 +798,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_8019AB30[]; D_8019AB30[idx].f0 = 1; @@ -824,7 +808,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_8019AB30[]; D_8019AB30[a0].f0 = 0; } @@ -843,16 +827,7 @@ extern s32 D_8019ABE8; extern s32 D_8019AC4C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_8019AB30"); extern s32 D_8019ABCC; extern s32 D_8019ABD0; @@ -942,7 +917,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -989,17 +963,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1065,11 +1028,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC05_001/ov_SC05_001.c b/src/ov_SC05_001/ov_SC05_001.c index cb48166776..2ea8063ee9 100644 --- a/src/ov_SC05_001/ov_SC05_001.c +++ b/src/ov_SC05_001/ov_SC05_001.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC05_001/ov_SC05_001_after.c b/src/ov_SC05_001/ov_SC05_001_after.c index 349145aa9a..b7ed5bb79c 100644 --- a/src/ov_SC05_001/ov_SC05_001_after.c +++ b/src/ov_SC05_001/ov_SC05_001_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC05_001/ov_SC05_001_jr_8012ACE0.c b/src/ov_SC05_001/ov_SC05_001_jr_8012ACE0.c index b5fbda0358..8c3a507157 100644 --- a/src/ov_SC05_001/ov_SC05_001_jr_8012ACE0.c +++ b/src/ov_SC05_001/ov_SC05_001_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC05_001/ov_SC05_001_jr_801380E0.c b/src/ov_SC05_001/ov_SC05_001_jr_801380E0.c index a3f4833d6e..f265f5b717 100644 --- a/src/ov_SC05_001/ov_SC05_001_jr_801380E0.c +++ b/src/ov_SC05_001/ov_SC05_001_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80186038[]; u16 t; u8 b; diff --git a/src/ov_SC05_001/ov_SC05_001_jr_80140608.c b/src/ov_SC05_001/ov_SC05_001_jr_80140608.c index 70db998fa6..be6f868dff 100644 --- a/src/ov_SC05_001/ov_SC05_001_jr_80140608.c +++ b/src/ov_SC05_001/ov_SC05_001_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80186DF8[]; extern u16 D_80186908; extern u16 D_8018690A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC05_001/ov_SC05_001_jr_8016AB6C.c b/src/ov_SC05_001/ov_SC05_001_jr_8016AB6C.c index 014cfd9e62..80e868d62f 100644 --- a/src/ov_SC05_001/ov_SC05_001_jr_8016AB6C.c +++ b/src/ov_SC05_001/ov_SC05_001_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC05_001/ov_SC05_001_jr_801734BC.c b/src/ov_SC05_001/ov_SC05_001_jr_801734BC.c index 70f97b330e..b29b001179 100644 --- a/src/ov_SC05_001/ov_SC05_001_jr_801734BC.c +++ b/src/ov_SC05_001/ov_SC05_001_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC05_001/ov_SC05_001_jr_8017BEBC.c b/src/ov_SC05_001/ov_SC05_001_jr_8017BEBC.c index debf93fc56..857b53dc56 100644 --- a/src/ov_SC05_001/ov_SC05_001_jr_8017BEBC.c +++ b/src/ov_SC05_001/ov_SC05_001_jr_8017BEBC.c @@ -3221,17 +3221,6 @@ void func_8017CE64(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017CEC0 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017CEC0; extern void func_80147324(s32 arg0); extern void func_8017D0F8(int); @@ -3345,24 +3334,11 @@ void func_8017D0AC(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017D0F8; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017D0F8; -typedef struct { - SVec8_8017C218_8017D0F8 v[4]; /* 0x00 */ - CVec4_8017C218_8017D0F8 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017D0F8; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017D0F8; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -3683,10 +3659,6 @@ void func_8017D794(void *a0) void func_8017D7F0(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017D7F0; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017D7F0; - typedef struct { SVec_8017C910_8017D7F0 v[2]; Clr_8017C910_8017D7F0 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017D7F0; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017D7F0; extern Mtx8_8017C910_8017D7F0 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017D7F0 prim; @@ -3760,8 +3732,6 @@ void func_8017D960(s32 param_1, s32 param_2) extern s32 D_801B5BCC; extern s32 D_801B5BD0; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_8017D960; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017D960; SV4_L_8017D960 vec; /* sp+0x10 */ MTX_L_8017D960 mtx; /* sp+0x18 */ @@ -3917,8 +3887,6 @@ void func_8017DA90(s32 a0) { extern u8 D_801B5BDE; extern u8 D_801B5BE4; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017DA90; - typedef struct { Rec027_8017DA90 r[9]; } Blk027_8017DA90; extern Blk027_8017DA90 D_801AF450; extern Blk027_8017DA90 D_801B5C58[]; @@ -4194,14 +4162,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_8017D960(s32 a0, s32 a1); void func_8017E1DC(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_8017E1DC; extern Rec_8017C738_8017E1DC D_801AF450[]; Rec_8017C738_8017E1DC *q = D_801AF450; diff --git a/src/ov_SC05_001/ov_SC05_001_o0c.c b/src/ov_SC05_001/ov_SC05_001_o0c.c index 79b5901a46..71bb784834 100644 --- a/src/ov_SC05_001/ov_SC05_001_o0c.c +++ b/src/ov_SC05_001/ov_SC05_001_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801B5EE0[]; D_801B5EE0[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801B5EE0[]; D_801B5EE0[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801B5EE0[]; D_801B5EE0[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801B5F98; extern s32 D_801B5FFC; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801B5EE0"); extern s32 D_801B5F7C; extern s32 D_801B5F80; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC05_002/ov_SC05_002.c b/src/ov_SC05_002/ov_SC05_002.c index f4db6fcc86..39da3ebdf3 100644 --- a/src/ov_SC05_002/ov_SC05_002.c +++ b/src/ov_SC05_002/ov_SC05_002.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC05_002/ov_SC05_002_after.c b/src/ov_SC05_002/ov_SC05_002_after.c index fb3316004e..79182c554f 100644 --- a/src/ov_SC05_002/ov_SC05_002_after.c +++ b/src/ov_SC05_002/ov_SC05_002_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC05_002/ov_SC05_002_jr_8012ACE0.c b/src/ov_SC05_002/ov_SC05_002_jr_8012ACE0.c index 3f2603c8f1..b962ca4cdf 100644 --- a/src/ov_SC05_002/ov_SC05_002_jr_8012ACE0.c +++ b/src/ov_SC05_002/ov_SC05_002_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC05_002/ov_SC05_002_jr_801380E0.c b/src/ov_SC05_002/ov_SC05_002_jr_801380E0.c index 0c2beb9f8e..fb298aabf5 100644 --- a/src/ov_SC05_002/ov_SC05_002_jr_801380E0.c +++ b/src/ov_SC05_002/ov_SC05_002_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_801807F8[]; u16 t; u8 b; diff --git a/src/ov_SC05_002/ov_SC05_002_jr_80140608.c b/src/ov_SC05_002/ov_SC05_002_jr_80140608.c index a30db7911e..15d588327c 100644 --- a/src/ov_SC05_002/ov_SC05_002_jr_80140608.c +++ b/src/ov_SC05_002/ov_SC05_002_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_801815B8[]; extern u16 D_801810C8; extern u16 D_801810CA; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC05_002/ov_SC05_002_jr_8016AB6C.c b/src/ov_SC05_002/ov_SC05_002_jr_8016AB6C.c index 1febdf0892..e3ac3403e8 100644 --- a/src/ov_SC05_002/ov_SC05_002_jr_8016AB6C.c +++ b/src/ov_SC05_002/ov_SC05_002_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC05_002/ov_SC05_002_jr_801734BC.c b/src/ov_SC05_002/ov_SC05_002_jr_801734BC.c index cc015df045..484b5bb2d1 100644 --- a/src/ov_SC05_002/ov_SC05_002_jr_801734BC.c +++ b/src/ov_SC05_002/ov_SC05_002_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC05_002/nonmatchings/ov_SC05_002_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC05_002/ov_SC05_002_jr_8017BEBC.c b/src/ov_SC05_002/ov_SC05_002_jr_8017BEBC.c index ea7e3ffb9e..b651f7d457 100644 --- a/src/ov_SC05_002/ov_SC05_002_jr_8017BEBC.c +++ b/src/ov_SC05_002/ov_SC05_002_jr_8017BEBC.c @@ -3326,7 +3326,6 @@ void func_8017BEBC(s32 arg0) void func_8017CD9C(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { - typedef struct { u32 w0, w1, w2; } Prim_8017CD9C; extern s32 func_800491EC(void); extern void func_800547D8(s32, MATRIX2 *); @@ -3914,9 +3913,6 @@ void func_8017E1A0(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017E1DC; extern u16 func_80148800(s32 *a0); extern void func_8017E27C(s32 param_1, s16 *param_2); diff --git a/src/ov_SC05_002/ov_SC05_002_o0c.c b/src/ov_SC05_002/ov_SC05_002_o0c.c index bfdf5d21e7..46045f5b18 100644 --- a/src/ov_SC05_002/ov_SC05_002_o0c.c +++ b/src/ov_SC05_002/ov_SC05_002_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_8019FE98[]; D_8019FE98[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_8019FE98[]; D_8019FE98[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_8019FE98[]; D_8019FE98[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_8019FF50; extern s32 D_8019FFB4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_8019FE98"); extern s32 D_8019FF34; extern s32 D_8019FF38; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC05_003/ov_SC05_003.c b/src/ov_SC05_003/ov_SC05_003.c index 8709a74d83..3fb427dc0a 100644 --- a/src/ov_SC05_003/ov_SC05_003.c +++ b/src/ov_SC05_003/ov_SC05_003.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC05_003/ov_SC05_003_after.c b/src/ov_SC05_003/ov_SC05_003_after.c index c58bd45a48..10fc4f7cb6 100644 --- a/src/ov_SC05_003/ov_SC05_003_after.c +++ b/src/ov_SC05_003/ov_SC05_003_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC05_003/ov_SC05_003_jr_8012ACE0.c b/src/ov_SC05_003/ov_SC05_003_jr_8012ACE0.c index bfd46d1495..e89d50a2a2 100644 --- a/src/ov_SC05_003/ov_SC05_003_jr_8012ACE0.c +++ b/src/ov_SC05_003/ov_SC05_003_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC05_003/ov_SC05_003_jr_801380E0.c b/src/ov_SC05_003/ov_SC05_003_jr_801380E0.c index 5289b2a471..e4e92b65a5 100644 --- a/src/ov_SC05_003/ov_SC05_003_jr_801380E0.c +++ b/src/ov_SC05_003/ov_SC05_003_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80182B30[]; u16 t; u8 b; diff --git a/src/ov_SC05_003/ov_SC05_003_jr_80140608.c b/src/ov_SC05_003/ov_SC05_003_jr_80140608.c index 4522af26bc..b927b8102b 100644 --- a/src/ov_SC05_003/ov_SC05_003_jr_80140608.c +++ b/src/ov_SC05_003/ov_SC05_003_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_801838F0[]; extern u16 D_80183400; extern u16 D_80183402; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC05_003/ov_SC05_003_jr_8016AB6C.c b/src/ov_SC05_003/ov_SC05_003_jr_8016AB6C.c index f70dda3ea8..be000ac170 100644 --- a/src/ov_SC05_003/ov_SC05_003_jr_8016AB6C.c +++ b/src/ov_SC05_003/ov_SC05_003_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC05_003/ov_SC05_003_jr_801734BC.c b/src/ov_SC05_003/ov_SC05_003_jr_801734BC.c index ad792c39f4..a72fe57c08 100644 --- a/src/ov_SC05_003/ov_SC05_003_jr_801734BC.c +++ b/src/ov_SC05_003/ov_SC05_003_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC05_003/nonmatchings/ov_SC05_003_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC05_003/ov_SC05_003_jr_8017BEBC.c b/src/ov_SC05_003/ov_SC05_003_jr_8017BEBC.c index cc1a416bff..a701e7d7b4 100644 --- a/src/ov_SC05_003/ov_SC05_003_jr_8017BEBC.c +++ b/src/ov_SC05_003/ov_SC05_003_jr_8017BEBC.c @@ -3326,7 +3326,6 @@ void func_8017BEBC(s32 arg0) void func_8017CD9C(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { - typedef struct { u32 w0, w1, w2; } Prim_8017CD9C; extern s32 func_800491EC(void); extern void func_800547D8(s32, MATRIX2 *); @@ -4233,7 +4232,6 @@ INCLUDE_ASM("asm/ov_SC05_003/nonmatchings/ov_SC05_003_jr_8017BEBC", func_80181C0 #include "common.h" -typedef struct { s16 vx, vy, vz, pad; } SVec_80181CDC; extern void func_8012EFB8(s32 a0); extern void func_8012BD14(s32 a0); diff --git a/src/ov_SC05_003/ov_SC05_003_o0c.c b/src/ov_SC05_003/ov_SC05_003_o0c.c index 08ba096c61..7d97cfaacd 100644 --- a/src/ov_SC05_003/ov_SC05_003_o0c.c +++ b/src/ov_SC05_003/ov_SC05_003_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801AC9A8[]; D_801AC9A8[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801AC9A8[]; D_801AC9A8[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801AC9A8[]; D_801AC9A8[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801ACA60; extern s32 D_801ACAC4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801AC9A8"); extern s32 D_801ACA44; extern s32 D_801ACA48; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC05_004/ov_SC05_004.c b/src/ov_SC05_004/ov_SC05_004.c index 2855c1f457..840f9441b8 100644 --- a/src/ov_SC05_004/ov_SC05_004.c +++ b/src/ov_SC05_004/ov_SC05_004.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC05_004/ov_SC05_004_after.c b/src/ov_SC05_004/ov_SC05_004_after.c index acd8e062c1..dc50e134b0 100644 --- a/src/ov_SC05_004/ov_SC05_004_after.c +++ b/src/ov_SC05_004/ov_SC05_004_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC05_004/ov_SC05_004_jr_8012ACE0.c b/src/ov_SC05_004/ov_SC05_004_jr_8012ACE0.c index fe46121a7a..464afc3006 100644 --- a/src/ov_SC05_004/ov_SC05_004_jr_8012ACE0.c +++ b/src/ov_SC05_004/ov_SC05_004_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC05_004/ov_SC05_004_jr_801380E0.c b/src/ov_SC05_004/ov_SC05_004_jr_801380E0.c index 7b7a92d919..04e3e9b900 100644 --- a/src/ov_SC05_004/ov_SC05_004_jr_801380E0.c +++ b/src/ov_SC05_004/ov_SC05_004_jr_801380E0.c @@ -1056,12 +1056,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80181C3C[]; u16 t; u8 b; diff --git a/src/ov_SC05_004/ov_SC05_004_jr_80140608.c b/src/ov_SC05_004/ov_SC05_004_jr_80140608.c index 815955109f..be667eda7c 100644 --- a/src/ov_SC05_004/ov_SC05_004_jr_80140608.c +++ b/src/ov_SC05_004/ov_SC05_004_jr_80140608.c @@ -1143,11 +1143,6 @@ s16 n; extern s16 D_801829FC[]; extern u16 D_8018250C; extern u16 D_8018250E; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1286,13 +1281,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2619,7 +2610,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC05_004/ov_SC05_004_jr_8016AB6C.c b/src/ov_SC05_004/ov_SC05_004_jr_8016AB6C.c index ccd2b273bc..82f241d64a 100644 --- a/src/ov_SC05_004/ov_SC05_004_jr_8016AB6C.c +++ b/src/ov_SC05_004/ov_SC05_004_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC05_004/ov_SC05_004_jr_801734BC.c b/src/ov_SC05_004/ov_SC05_004_jr_801734BC.c index 088cc196e3..eefee6d213 100644 --- a/src/ov_SC05_004/ov_SC05_004_jr_801734BC.c +++ b/src/ov_SC05_004/ov_SC05_004_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC05_004/nonmatchings/ov_SC05_004_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC05_004/ov_SC05_004_jr_8017BEBC.c b/src/ov_SC05_004/ov_SC05_004_jr_8017BEBC.c index d161e50c36..6e1166ec86 100644 --- a/src/ov_SC05_004/ov_SC05_004_jr_8017BEBC.c +++ b/src/ov_SC05_004/ov_SC05_004_jr_8017BEBC.c @@ -3854,7 +3854,6 @@ void func_8017DA24(s16 *a0) { * (instead of a fresh local) avoids stealing back the $v0 slot. */ -typedef struct { s32 w[8]; } Mtx8_8017DE10_8017DB00; void func_8017DB00(s32 a0) { extern void ApplyMatrixSV(void *a0, void *a1, void *a2); diff --git a/src/ov_SC05_004/ov_SC05_004_jr_8017F210.c b/src/ov_SC05_004/ov_SC05_004_jr_8017F210.c index 96a05780fa..cccd05bed3 100644 --- a/src/ov_SC05_004/ov_SC05_004_jr_8017F210.c +++ b/src/ov_SC05_004/ov_SC05_004_jr_8017F210.c @@ -14,7 +14,6 @@ typedef struct { u8 pad[7]; /* -> 0x40 */ } Prim_8016E7C8; typedef void (*Handler)(struct Entry_8016E95C *); -typedef struct { s32 w[8]; } Mtx8_8017DE10_8017DB00; extern void func_801458E0(void); extern s32 D_800AE6AC; extern s32 D_800AE6B0; diff --git a/src/ov_SC05_004/ov_SC05_004_o0c.c b/src/ov_SC05_004/ov_SC05_004_o0c.c index e6bcca5631..c928a250f3 100644 --- a/src/ov_SC05_004/ov_SC05_004_o0c.c +++ b/src/ov_SC05_004/ov_SC05_004_o0c.c @@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_8019F200[]; D_8019F200[a0].f0 = 1; @@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_8019F200[]; D_8019F200[idx].f0 = 1; @@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_8019F200[]; D_8019F200[a0].f0 = 0; } @@ -844,16 +828,7 @@ extern s32 D_8019F2B8; extern s32 D_8019F31C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_8019F200"); extern s32 D_8019F29C; extern s32 D_8019F2A0; @@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC05_005/ov_SC05_005.c b/src/ov_SC05_005/ov_SC05_005.c index 1d5167001b..9c60d69cd6 100644 --- a/src/ov_SC05_005/ov_SC05_005.c +++ b/src/ov_SC05_005/ov_SC05_005.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC05_005/ov_SC05_005_after.c b/src/ov_SC05_005/ov_SC05_005_after.c index fc2e08b24e..632aa7ffc0 100644 --- a/src/ov_SC05_005/ov_SC05_005_after.c +++ b/src/ov_SC05_005/ov_SC05_005_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC05_005/ov_SC05_005_jr_8012ACE0.c b/src/ov_SC05_005/ov_SC05_005_jr_8012ACE0.c index 6271050017..62b1bb6ecc 100644 --- a/src/ov_SC05_005/ov_SC05_005_jr_8012ACE0.c +++ b/src/ov_SC05_005/ov_SC05_005_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC05_005/ov_SC05_005_jr_801380E0.c b/src/ov_SC05_005/ov_SC05_005_jr_801380E0.c index 9f87acd96c..b5e9a69319 100644 --- a/src/ov_SC05_005/ov_SC05_005_jr_801380E0.c +++ b/src/ov_SC05_005/ov_SC05_005_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80182A10[]; u16 t; u8 b; diff --git a/src/ov_SC05_005/ov_SC05_005_jr_80140608.c b/src/ov_SC05_005/ov_SC05_005_jr_80140608.c index 5d9da3302e..7efb34e870 100644 --- a/src/ov_SC05_005/ov_SC05_005_jr_80140608.c +++ b/src/ov_SC05_005/ov_SC05_005_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_801837D0[]; extern u16 D_801832E0; extern u16 D_801832E2; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC05_005/ov_SC05_005_jr_8016AB6C.c b/src/ov_SC05_005/ov_SC05_005_jr_8016AB6C.c index e8ed34e9fa..23c91a6ff1 100644 --- a/src/ov_SC05_005/ov_SC05_005_jr_8016AB6C.c +++ b/src/ov_SC05_005/ov_SC05_005_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC05_005/ov_SC05_005_jr_801734BC.c b/src/ov_SC05_005/ov_SC05_005_jr_801734BC.c index 6b7a4d5e65..ca3890b006 100644 --- a/src/ov_SC05_005/ov_SC05_005_jr_801734BC.c +++ b/src/ov_SC05_005/ov_SC05_005_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC05_005/nonmatchings/ov_SC05_005_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC05_005/ov_SC05_005_jr_8017AE2C.c b/src/ov_SC05_005/ov_SC05_005_jr_8017AE2C.c index 3f40671aaa..762553c394 100644 --- a/src/ov_SC05_005/ov_SC05_005_jr_8017AE2C.c +++ b/src/ov_SC05_005/ov_SC05_005_jr_8017AE2C.c @@ -3370,17 +3370,6 @@ void func_8017BF84(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017BFE0 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017BFE0; extern void func_80147324(s32 arg0); extern void func_8017C218(int); @@ -3481,24 +3470,11 @@ DEFINE_func_8017C1CC() /* dedup: shared engine-core @0x8017C1CC (src/shared) */ * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017C218; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017C218; -typedef struct { - SVec8_8017C218_8017C218 v[4]; /* 0x00 */ - CVec4_8017C218_8017C218 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017C218; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017C218; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -3780,10 +3756,6 @@ DEFINE_func_8017C8B4() /* dedup: shared engine-core @0x8017C8B4 (src/shared) */ void func_8017C910(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017C910; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017C910; - typedef struct { SVec_8017C910_8017C910 v[2]; Clr_8017C910_8017C910 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017C910; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017C910; extern Mtx8_8017C910_8017C910 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017C910 prim; @@ -3857,8 +3829,6 @@ void func_8017CA80(s32 param_1, s32 param_2) extern s32 D_801B1C5C; extern s32 D_801B1C60; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_8017CA80; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017CA80; SV4_L_8017CA80 vec; /* sp+0x10 */ MTX_L_8017CA80 mtx; /* sp+0x18 */ @@ -4014,8 +3984,6 @@ void func_8017CBB0(s32 a0) { extern u8 D_801B1C6E; extern u8 D_801B1C74; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017CBB0; - typedef struct { Rec027_8017CBB0 r[9]; } Blk027_8017CBB0; extern Blk027_8017CBB0 D_801AC11C; extern Blk027_8017CBB0 D_801B1CE8[]; @@ -4291,14 +4259,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_8017CA80(s32 a0, s32 a1); void func_8017D2FC(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_8017D2FC; extern Rec_8017C738_8017D2FC D_801AC11C[]; Rec_8017C738_8017D2FC *q = D_801AC11C; diff --git a/src/ov_SC05_005/ov_SC05_005_jr_8017D898.c b/src/ov_SC05_005/ov_SC05_005_jr_8017D898.c index 011be92da8..77e63740d6 100644 --- a/src/ov_SC05_005/ov_SC05_005_jr_8017D898.c +++ b/src/ov_SC05_005/ov_SC05_005_jr_8017D898.c @@ -3836,7 +3836,6 @@ INCLUDE_ASM("asm/ov_SC05_005/nonmatchings/ov_SC05_005_jr_8017D898", func_80181BB INCLUDE_ASM("asm/ov_SC05_005/nonmatchings/ov_SC05_005_jr_8017D898", func_80181D08); -typedef struct { s16 vx, vy, vz, pad; } SVec_80181CDC_80181DE4; extern void func_8012EFB8(s32 a0); extern void func_8012BD14(s32 a0); diff --git a/src/ov_SC05_005/ov_SC05_005_o0c.c b/src/ov_SC05_005/ov_SC05_005_o0c.c index 9480a547ac..cadbd74a18 100644 --- a/src/ov_SC05_005/ov_SC05_005_o0c.c +++ b/src/ov_SC05_005/ov_SC05_005_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801B1F08[]; D_801B1F08[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801B1F08[]; D_801B1F08[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801B1F08[]; D_801B1F08[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801B1FC0; extern s32 D_801B2024; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801B1F08"); extern s32 D_801B1FA4; extern s32 D_801B1FA8; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC05_006/ov_SC05_006.c b/src/ov_SC05_006/ov_SC05_006.c index cb057a094d..82d0e59103 100644 --- a/src/ov_SC05_006/ov_SC05_006.c +++ b/src/ov_SC05_006/ov_SC05_006.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC05_006/ov_SC05_006_after.c b/src/ov_SC05_006/ov_SC05_006_after.c index d0417bfb02..d2c4b49673 100644 --- a/src/ov_SC05_006/ov_SC05_006_after.c +++ b/src/ov_SC05_006/ov_SC05_006_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC05_006/ov_SC05_006_jr_8012ACE0.c b/src/ov_SC05_006/ov_SC05_006_jr_8012ACE0.c index 0bf9f4e392..3e678b4015 100644 --- a/src/ov_SC05_006/ov_SC05_006_jr_8012ACE0.c +++ b/src/ov_SC05_006/ov_SC05_006_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC05_006/ov_SC05_006_jr_801380E0.c b/src/ov_SC05_006/ov_SC05_006_jr_801380E0.c index 00ec08e64a..c45c667879 100644 --- a/src/ov_SC05_006/ov_SC05_006_jr_801380E0.c +++ b/src/ov_SC05_006/ov_SC05_006_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017FA30[]; u16 t; u8 b; diff --git a/src/ov_SC05_006/ov_SC05_006_jr_80140608.c b/src/ov_SC05_006/ov_SC05_006_jr_80140608.c index 5dbab6e6b0..7c614990bd 100644 --- a/src/ov_SC05_006/ov_SC05_006_jr_80140608.c +++ b/src/ov_SC05_006/ov_SC05_006_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_801807F0[]; extern u16 D_80180300; extern u16 D_80180302; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC05_006/ov_SC05_006_jr_8016AB6C.c b/src/ov_SC05_006/ov_SC05_006_jr_8016AB6C.c index 23a2f67c08..e22c2ad149 100644 --- a/src/ov_SC05_006/ov_SC05_006_jr_8016AB6C.c +++ b/src/ov_SC05_006/ov_SC05_006_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC05_006/ov_SC05_006_jr_801734BC.c b/src/ov_SC05_006/ov_SC05_006_jr_801734BC.c index bf5b91ebe3..f34a491e75 100644 --- a/src/ov_SC05_006/ov_SC05_006_jr_801734BC.c +++ b/src/ov_SC05_006/ov_SC05_006_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC05_006/nonmatchings/ov_SC05_006_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC05_006/ov_SC05_006_jr_8017BEBC.c b/src/ov_SC05_006/ov_SC05_006_jr_8017BEBC.c index d4c907764f..8d427baf0b 100644 --- a/src/ov_SC05_006/ov_SC05_006_jr_8017BEBC.c +++ b/src/ov_SC05_006/ov_SC05_006_jr_8017BEBC.c @@ -3221,17 +3221,6 @@ void func_8017CE64(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017CEC0 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017CEC0; extern void func_80147324(s32 arg0); extern void func_8017D0F8(int); @@ -3345,24 +3334,11 @@ void func_8017D0AC(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_8017D0F8; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_8017D0F8; -typedef struct { - SVec8_8017C218_8017D0F8 v[4]; /* 0x00 */ - CVec4_8017C218_8017D0F8 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_8017D0F8; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_8017D0F8; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -3683,10 +3659,6 @@ void func_8017D794(void *a0) void func_8017D7F0(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017D7F0; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017D7F0; - typedef struct { SVec_8017C910_8017D7F0 v[2]; Clr_8017C910_8017D7F0 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017D7F0; - typedef struct { s32 w[8]; } Mtx8_8017C910_8017D7F0; extern Mtx8_8017C910_8017D7F0 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_8017D7F0 prim; @@ -3760,8 +3732,6 @@ void func_8017D960(s32 param_1, s32 param_2) extern s32 D_8018FD94; extern s32 D_8018FD98; /* 8-byte short-only vector (SVECTOR); 32-byte MATRIX_L48 (t[] at +0x14) */ - typedef struct { s16 a, b, c, d; } SV4_L_8017D960; - typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017D960; SV4_L_8017D960 vec; /* sp+0x10 */ MTX_L_8017D960 mtx; /* sp+0x18 */ @@ -3917,8 +3887,6 @@ void func_8017DA90(s32 a0) { extern u8 D_8018FDA6; extern u8 D_8018FDAC; /* 9 x 12-byte records = 0x6C bytes, alignment 2 */ - typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017DA90; - typedef struct { Rec027_8017DA90 r[9]; } Blk027_8017DA90; extern Blk027_8017DA90 D_80189BB4; extern Blk027_8017DA90 D_8018FE20[]; @@ -4194,14 +4162,6 @@ extern s16 func_80128CFC(u16 a0); extern void func_8017D960(s32 a0, s32 a1); void func_8017E1DC(s32 a0) { - typedef struct { - u16 f0; - s16 f2; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - } Rec_8017C738_8017E1DC; extern Rec_8017C738_8017E1DC D_80189BB4[]; Rec_8017C738_8017E1DC *q = D_80189BB4; diff --git a/src/ov_SC05_006/ov_SC05_006_o0c.c b/src/ov_SC05_006/ov_SC05_006_o0c.c index ba60ec9444..c62cfe5c2d 100644 --- a/src/ov_SC05_006/ov_SC05_006_o0c.c +++ b/src/ov_SC05_006/ov_SC05_006_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_80190038[]; D_80190038[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_80190038[]; D_80190038[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_80190038[]; D_80190038[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801900F0; extern s32 D_80190154; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_80190038"); extern s32 D_801900D4; extern s32 D_801900D8; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC05_007/ov_SC05_007.c b/src/ov_SC05_007/ov_SC05_007.c index 9c2cf5a533..9340428bd2 100644 --- a/src/ov_SC05_007/ov_SC05_007.c +++ b/src/ov_SC05_007/ov_SC05_007.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC05_007/ov_SC05_007_after.c b/src/ov_SC05_007/ov_SC05_007_after.c index 0d7ffa63e4..d0dc104d72 100644 --- a/src/ov_SC05_007/ov_SC05_007_after.c +++ b/src/ov_SC05_007/ov_SC05_007_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC05_007/ov_SC05_007_jr_8012ACE0.c b/src/ov_SC05_007/ov_SC05_007_jr_8012ACE0.c index 412cf31caf..735163f2cf 100644 --- a/src/ov_SC05_007/ov_SC05_007_jr_8012ACE0.c +++ b/src/ov_SC05_007/ov_SC05_007_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC05_007/ov_SC05_007_jr_801380E0.c b/src/ov_SC05_007/ov_SC05_007_jr_801380E0.c index 4110031b18..d99211ef17 100644 --- a/src/ov_SC05_007/ov_SC05_007_jr_801380E0.c +++ b/src/ov_SC05_007/ov_SC05_007_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018102C[]; u16 t; u8 b; diff --git a/src/ov_SC05_007/ov_SC05_007_jr_80140608.c b/src/ov_SC05_007/ov_SC05_007_jr_80140608.c index afdeff6e62..1ff41abb65 100644 --- a/src/ov_SC05_007/ov_SC05_007_jr_80140608.c +++ b/src/ov_SC05_007/ov_SC05_007_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80181DEC[]; extern u16 D_801818FC; extern u16 D_801818FE; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC05_007/ov_SC05_007_jr_8016AB6C.c b/src/ov_SC05_007/ov_SC05_007_jr_8016AB6C.c index c201f9d215..1a0965584a 100644 --- a/src/ov_SC05_007/ov_SC05_007_jr_8016AB6C.c +++ b/src/ov_SC05_007/ov_SC05_007_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC05_007/ov_SC05_007_jr_801734BC.c b/src/ov_SC05_007/ov_SC05_007_jr_801734BC.c index 48ceb597ae..24db1d394e 100644 --- a/src/ov_SC05_007/ov_SC05_007_jr_801734BC.c +++ b/src/ov_SC05_007/ov_SC05_007_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC05_007/nonmatchings/ov_SC05_007_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC05_007/ov_SC05_007_o0c.c b/src/ov_SC05_007/ov_SC05_007_o0c.c index f95aa52fc2..2470a670fd 100644 --- a/src/ov_SC05_007/ov_SC05_007_o0c.c +++ b/src/ov_SC05_007/ov_SC05_007_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_8019CDD8[]; D_8019CDD8[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_8019CDD8[]; D_8019CDD8[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_8019CDD8[]; D_8019CDD8[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_8019CE90; extern s32 D_8019CEF4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_8019CDD8"); extern s32 D_8019CE74; extern s32 D_8019CE78; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC05_008/ov_SC05_008.c b/src/ov_SC05_008/ov_SC05_008.c index 9aaac05971..612b9784d4 100644 --- a/src/ov_SC05_008/ov_SC05_008.c +++ b/src/ov_SC05_008/ov_SC05_008.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC05_008/ov_SC05_008_after.c b/src/ov_SC05_008/ov_SC05_008_after.c index 6e16f815ee..0ea4d7361f 100644 --- a/src/ov_SC05_008/ov_SC05_008_after.c +++ b/src/ov_SC05_008/ov_SC05_008_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC05_008/ov_SC05_008_jr_8012ACE0.c b/src/ov_SC05_008/ov_SC05_008_jr_8012ACE0.c index dd7c7fbcee..2900b12a35 100644 --- a/src/ov_SC05_008/ov_SC05_008_jr_8012ACE0.c +++ b/src/ov_SC05_008/ov_SC05_008_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC05_008/ov_SC05_008_jr_801380E0.c b/src/ov_SC05_008/ov_SC05_008_jr_801380E0.c index e826826cd7..4a12078770 100644 --- a/src/ov_SC05_008/ov_SC05_008_jr_801380E0.c +++ b/src/ov_SC05_008/ov_SC05_008_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80182F84[]; u16 t; u8 b; diff --git a/src/ov_SC05_008/ov_SC05_008_jr_80140608.c b/src/ov_SC05_008/ov_SC05_008_jr_80140608.c index 15b65d0040..3dd60cef4f 100644 --- a/src/ov_SC05_008/ov_SC05_008_jr_80140608.c +++ b/src/ov_SC05_008/ov_SC05_008_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80183D44[]; extern u16 D_80183854; extern u16 D_80183856; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC05_008/ov_SC05_008_jr_8016AB6C.c b/src/ov_SC05_008/ov_SC05_008_jr_8016AB6C.c index 5ffa4f7ebc..60b1e4ed51 100644 --- a/src/ov_SC05_008/ov_SC05_008_jr_8016AB6C.c +++ b/src/ov_SC05_008/ov_SC05_008_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC05_008/ov_SC05_008_jr_801734BC.c b/src/ov_SC05_008/ov_SC05_008_jr_801734BC.c index 458272b354..9072e50709 100644 --- a/src/ov_SC05_008/ov_SC05_008_jr_801734BC.c +++ b/src/ov_SC05_008/ov_SC05_008_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC05_008/ov_SC05_008_o0c.c b/src/ov_SC05_008/ov_SC05_008_o0c.c index 245c089a73..6a4d9e3c1c 100644 --- a/src/ov_SC05_008/ov_SC05_008_o0c.c +++ b/src/ov_SC05_008/ov_SC05_008_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801A11C0[]; D_801A11C0[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801A11C0[]; D_801A11C0[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801A11C0[]; D_801A11C0[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801A1278; extern s32 D_801A12DC; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801A11C0"); extern s32 D_801A125C; extern s32 D_801A1260; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC05_009/ov_SC05_009.c b/src/ov_SC05_009/ov_SC05_009.c index 8af43f16a6..af33d9c8cf 100644 --- a/src/ov_SC05_009/ov_SC05_009.c +++ b/src/ov_SC05_009/ov_SC05_009.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC05_009/ov_SC05_009_after.c b/src/ov_SC05_009/ov_SC05_009_after.c index 4c518b1f10..c4cb561518 100644 --- a/src/ov_SC05_009/ov_SC05_009_after.c +++ b/src/ov_SC05_009/ov_SC05_009_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1519,7 +1504,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2075,17 +2059,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC05_009/ov_SC05_009_jr_8012ACE0.c b/src/ov_SC05_009/ov_SC05_009_jr_8012ACE0.c index 0290a4eb9c..d2acf19a5a 100644 --- a/src/ov_SC05_009/ov_SC05_009_jr_8012ACE0.c +++ b/src/ov_SC05_009/ov_SC05_009_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC05_009/ov_SC05_009_jr_801380E0.c b/src/ov_SC05_009/ov_SC05_009_jr_801380E0.c index 33d0049096..b3d63a1379 100644 --- a/src/ov_SC05_009/ov_SC05_009_jr_801380E0.c +++ b/src/ov_SC05_009/ov_SC05_009_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017F094[]; u16 t; u8 b; diff --git a/src/ov_SC05_009/ov_SC05_009_jr_80140608.c b/src/ov_SC05_009/ov_SC05_009_jr_80140608.c index 73373be71f..34d9dc2acd 100644 --- a/src/ov_SC05_009/ov_SC05_009_jr_80140608.c +++ b/src/ov_SC05_009/ov_SC05_009_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8017FE54[]; extern u16 D_8017F964; extern u16 D_8017F966; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC05_009/ov_SC05_009_jr_8016AB6C.c b/src/ov_SC05_009/ov_SC05_009_jr_8016AB6C.c index dc93bca7a0..b45b1cf99d 100644 --- a/src/ov_SC05_009/ov_SC05_009_jr_8016AB6C.c +++ b/src/ov_SC05_009/ov_SC05_009_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC05_009/ov_SC05_009_jr_801734BC.c b/src/ov_SC05_009/ov_SC05_009_jr_801734BC.c index 9530dab197..a393c91783 100644 --- a/src/ov_SC05_009/ov_SC05_009_jr_801734BC.c +++ b/src/ov_SC05_009/ov_SC05_009_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC05_009/nonmatchings/ov_SC05_009_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC05_009/ov_SC05_009_jr_8017BEBC.c b/src/ov_SC05_009/ov_SC05_009_jr_8017BEBC.c index 11bd46d0c3..0789de7d68 100644 --- a/src/ov_SC05_009/ov_SC05_009_jr_8017BEBC.c +++ b/src/ov_SC05_009/ov_SC05_009_jr_8017BEBC.c @@ -3296,9 +3296,6 @@ void func_8017D1D4(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D210; extern u16 func_80148800(s32 *a0); extern void func_8017D340(s32 param_1, s16 *param_2); @@ -3323,9 +3320,6 @@ void func_8017D210(s32 a0) { /* 8-byte, alignment-1 blob: the target copies it with lwl/lwr + swl/swr, * which is gcc's emit_block_move for align < 4. */ -typedef struct { - char b[8]; -} Blob8_8018A47C_8017D2B0; extern void func_8017D340(s32, s16*); @@ -3342,9 +3336,6 @@ void func_8017D2B0(s32 a0) { /* 8-byte, alignment-1 blob: the target copies it with lwl/lwr + swl/swr, * which is gcc's emit_block_move for align < 4. */ -typedef struct { - char b[8]; -} Blob8_8018A47C_8017D2F8; extern void func_8017D4D8(s32, s16*); diff --git a/src/ov_SC05_009/ov_SC05_009_o0c.c b/src/ov_SC05_009/ov_SC05_009_o0c.c index 2200bcbffc..4879b8dba5 100644 --- a/src/ov_SC05_009/ov_SC05_009_o0c.c +++ b/src/ov_SC05_009/ov_SC05_009_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_80196B20[]; D_80196B20[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_80196B20[]; D_80196B20[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_80196B20[]; D_80196B20[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_80196BD8; extern s32 D_80196C3C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_80196B20"); extern s32 D_80196BBC; extern s32 D_80196BC0; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC05_010/ov_SC05_010.c b/src/ov_SC05_010/ov_SC05_010.c index b469287362..cdba4afd25 100644 --- a/src/ov_SC05_010/ov_SC05_010.c +++ b/src/ov_SC05_010/ov_SC05_010.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC05_010/ov_SC05_010_after.c b/src/ov_SC05_010/ov_SC05_010_after.c index c8872627f0..179ca39320 100644 --- a/src/ov_SC05_010/ov_SC05_010_after.c +++ b/src/ov_SC05_010/ov_SC05_010_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC05_010/ov_SC05_010_jr_8012ACE0.c b/src/ov_SC05_010/ov_SC05_010_jr_8012ACE0.c index fb8ed50a87..2e2d71bb86 100644 --- a/src/ov_SC05_010/ov_SC05_010_jr_8012ACE0.c +++ b/src/ov_SC05_010/ov_SC05_010_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC05_010/ov_SC05_010_jr_801380E0.c b/src/ov_SC05_010/ov_SC05_010_jr_801380E0.c index ba616545ae..e10edead61 100644 --- a/src/ov_SC05_010/ov_SC05_010_jr_801380E0.c +++ b/src/ov_SC05_010/ov_SC05_010_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80188F70[]; u16 t; u8 b; diff --git a/src/ov_SC05_010/ov_SC05_010_jr_80140608.c b/src/ov_SC05_010/ov_SC05_010_jr_80140608.c index 42e7b12fde..7c2671f7f9 100644 --- a/src/ov_SC05_010/ov_SC05_010_jr_80140608.c +++ b/src/ov_SC05_010/ov_SC05_010_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80189D30[]; extern u16 D_80189840; extern u16 D_80189842; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC05_010/ov_SC05_010_jr_8016AB6C.c b/src/ov_SC05_010/ov_SC05_010_jr_8016AB6C.c index 39ed8ef683..9ca6cef1dd 100644 --- a/src/ov_SC05_010/ov_SC05_010_jr_8016AB6C.c +++ b/src/ov_SC05_010/ov_SC05_010_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC05_010/ov_SC05_010_jr_801734BC.c b/src/ov_SC05_010/ov_SC05_010_jr_801734BC.c index b82da90bc0..df5443a2e5 100644 --- a/src/ov_SC05_010/ov_SC05_010_jr_801734BC.c +++ b/src/ov_SC05_010/ov_SC05_010_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC05_010/ov_SC05_010_jr_8017AE2C.c b/src/ov_SC05_010/ov_SC05_010_jr_8017AE2C.c index 53dc5fa0fa..662a61e6b0 100644 --- a/src/ov_SC05_010/ov_SC05_010_jr_8017AE2C.c +++ b/src/ov_SC05_010/ov_SC05_010_jr_8017AE2C.c @@ -3335,17 +3335,6 @@ extern void func_8017BF34(s32 arg0, s32 arg1, s32 arg2, s32 arg3); extern s32 func_8012C750(s32 a0); -typedef struct { - s16 unk00; - s16 unk02; - s16 unk04; - s16 unk06; - s16 unk08; - s16 unk0A; - s16 unk0C; - s16 unk0E; - s32 unk10; -} Buf8017BF34_8017BF34; void func_8017BF34(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { diff --git a/src/ov_SC05_010/ov_SC05_010_jr_8017C8D0.c b/src/ov_SC05_010/ov_SC05_010_jr_8017C8D0.c index 79be554ca3..7bea433a7f 100644 --- a/src/ov_SC05_010/ov_SC05_010_jr_8017C8D0.c +++ b/src/ov_SC05_010/ov_SC05_010_jr_8017C8D0.c @@ -3426,17 +3426,8 @@ extern s32 func_80017DC4(void *a0, void *a1); extern s32 func_80017E30(void *a0, void *a1); extern void func_80016ED4(void *a0); -typedef struct { short vx, vy, vz, pad; } SVECTOR_8017F40C_8017E368; -typedef struct { - SVECTOR_8017F40C_8017E368 v[4]; /* 0x00 */ - s16 k30, k32, k34, k36, k38, k3a, k3c, k3e; /* 0x20 */ - u32 bcast; /* 0x30 */ - s32 tag; /* 0x34 */ - u8 code; /* 0x38 */ - u8 pad39[7]; /* -> 0x40 */ -} Prim_8017F40C_8017E368; void func_8017E368(s32 a0, s32 a1) { @@ -3650,9 +3641,6 @@ void func_8017E9D4(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017EA10; extern u16 func_80148800(s32 *a0); extern void func_8017EAE4(s32 param_1, s16 *param_2); diff --git a/src/ov_SC05_010/ov_SC05_010_jr_80181CDC.c b/src/ov_SC05_010/ov_SC05_010_jr_80181CDC.c index 097330434c..bc8a0524c6 100644 --- a/src/ov_SC05_010/ov_SC05_010_jr_80181CDC.c +++ b/src/ov_SC05_010/ov_SC05_010_jr_80181CDC.c @@ -2766,45 +2766,15 @@ extern void func_80180DEC(void *a0); * a 5-entry table with an `addiu -1` bias. * ========================================================================== */ -typedef struct SVec1CDC { s16 vx, vy, vz, pad; } SVec1CDC; /* 8 bytes */ -typedef struct LVec1CDC { s32 vx, vy, vz, pad; } LVec1CDC; /* 16 bytes */ + /* 8 bytes */ + /* 16 bytes */ /* 4 bytes, SImode (align 32 from the `int` base type) so it lives in ONE * register; field writes lower to `insv` = andi 0xFFFF / or and * lui 0xFFFF0000 / and / or. A plain `struct {s16 a,b;}` is BLKmode here * (align 16) and compiles to sh/sh + lwl/lwr/swl/swr — NOT what the target does. */ -typedef struct Rot1CDC { s32 a : 16; s32 b : 16; } Rot1CDC; -typedef struct Sub20_1CDC { - u8 pad0[0x14]; - u16 unk14; /* 0x14 */ -} Sub20_1CDC; -typedef struct Sub64_1CDC { - u8 pad0[0x34]; - u16 unk34; /* 0x34 */ - u8 pad36[0xCA]; - u16 unk100; /* 0x100 */ -} Sub64_1CDC; -typedef struct Obj1CDC { - s16 unk0, unk2, unk4; - s16 x; /* 0x06 */ - s16 unk8; - s16 y; /* 0x0A */ - s16 unkC; - s16 z; /* 0x0E */ - s16 unk10[8]; /* 0x10 */ - Sub20_1CDC *unk20; /* 0x20 */ - s32 unk24[16]; /* 0x24 */ - Sub64_1CDC *unk64; /* 0x64 */ - s32 unk68[37]; /* 0x68 */ - s16 unkFC; /* 0xFC */ - s16 unkFE; /* 0xFE */ - s16 unk100; /* 0x100 */ - s16 unk102; /* 0x102 */ - u16 unk104[3]; /* 0x104 */ - s16 unk10A; /* 0x10A */ -} Obj1CDC; extern void func_8012F14C(s32); extern void Square0(s32 *a0, s32 *a1); @@ -3432,7 +3402,6 @@ extern void func_800233CC(void *a0, unsigned short a1); /* align-1 4-byte block: lowers via emit_block_move (unaligned lwl/lwr + swl/swr) * with ZERO memcpy-symbol reference, so the TU's `extern memcpy` cannot turn * this into a CALL. (house idiom, cf. func_8017B238 / func_8017B614) */ -typedef struct { u8 b[4]; } Blk4_8018CE04_80186D40; void func_80186D40(s32 param_1) { @@ -3528,12 +3497,6 @@ void func_801878AC(void *a0) { -typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; -} EffectSlot4_801878E8; extern void func_801465C0(void); extern void func_80146C3C(void); diff --git a/src/ov_SC05_010/ov_SC05_010_o0c.c b/src/ov_SC05_010/ov_SC05_010_o0c.c index 6356b718b2..54ab5ce125 100644 --- a/src/ov_SC05_010/ov_SC05_010_o0c.c +++ b/src/ov_SC05_010/ov_SC05_010_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801C7F08[]; D_801C7F08[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801C7F08[]; D_801C7F08[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801C7F08[]; D_801C7F08[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801C7FC0; extern s32 D_801C8024; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801C7F08"); extern s32 D_801C7FA4; extern s32 D_801C7FA8; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC05_011/ov_SC05_011.c b/src/ov_SC05_011/ov_SC05_011.c index 5c356e5a3c..e150664f70 100644 --- a/src/ov_SC05_011/ov_SC05_011.c +++ b/src/ov_SC05_011/ov_SC05_011.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC05_011/ov_SC05_011_after.c b/src/ov_SC05_011/ov_SC05_011_after.c index a7c8edf3cb..c8d9bc5df7 100644 --- a/src/ov_SC05_011/ov_SC05_011_after.c +++ b/src/ov_SC05_011/ov_SC05_011_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC05_011/ov_SC05_011_jr_8012ACE0.c b/src/ov_SC05_011/ov_SC05_011_jr_8012ACE0.c index 15422f19ac..35c2ea4f05 100644 --- a/src/ov_SC05_011/ov_SC05_011_jr_8012ACE0.c +++ b/src/ov_SC05_011/ov_SC05_011_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC05_011/ov_SC05_011_jr_801380E0.c b/src/ov_SC05_011/ov_SC05_011_jr_801380E0.c index c63bc9b413..8926822737 100644 --- a/src/ov_SC05_011/ov_SC05_011_jr_801380E0.c +++ b/src/ov_SC05_011/ov_SC05_011_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017E2E8[]; u16 t; u8 b; diff --git a/src/ov_SC05_011/ov_SC05_011_jr_80140608.c b/src/ov_SC05_011/ov_SC05_011_jr_80140608.c index 4318050644..2472e6f4e1 100644 --- a/src/ov_SC05_011/ov_SC05_011_jr_80140608.c +++ b/src/ov_SC05_011/ov_SC05_011_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8017F0A8[]; extern u16 D_8017EBB8; extern u16 D_8017EBBA; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC05_011/ov_SC05_011_jr_8016AB6C.c b/src/ov_SC05_011/ov_SC05_011_jr_8016AB6C.c index 1131163a23..2055a7e6fe 100644 --- a/src/ov_SC05_011/ov_SC05_011_jr_8016AB6C.c +++ b/src/ov_SC05_011/ov_SC05_011_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC05_011/ov_SC05_011_jr_801734BC.c b/src/ov_SC05_011/ov_SC05_011_jr_801734BC.c index 948b829b29..d4b2f5a59f 100644 --- a/src/ov_SC05_011/ov_SC05_011_jr_801734BC.c +++ b/src/ov_SC05_011/ov_SC05_011_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC05_011/nonmatchings/ov_SC05_011_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC05_011/ov_SC05_011_jr_8017BEBC.c b/src/ov_SC05_011/ov_SC05_011_jr_8017BEBC.c index 8398d679e3..c3aa162d00 100644 --- a/src/ov_SC05_011/ov_SC05_011_jr_8017BEBC.c +++ b/src/ov_SC05_011/ov_SC05_011_jr_8017BEBC.c @@ -3285,9 +3285,6 @@ void func_8017D010(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D04C; extern u16 func_80148800(s32 *a0); extern void func_8017D0EC(s32 param_1, s16 *param_2); diff --git a/src/ov_SC05_011/ov_SC05_011_o0c.c b/src/ov_SC05_011/ov_SC05_011_o0c.c index 5e33e442b8..9aa98793e7 100644 --- a/src/ov_SC05_011/ov_SC05_011_o0c.c +++ b/src/ov_SC05_011/ov_SC05_011_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_8019D0B8[]; D_8019D0B8[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_8019D0B8[]; D_8019D0B8[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_8019D0B8[]; D_8019D0B8[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_8019D170; extern s32 D_8019D1D4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_8019D0B8"); extern s32 D_8019D154; extern s32 D_8019D158; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC05_017/ov_SC05_017.c b/src/ov_SC05_017/ov_SC05_017.c index f58f3698f7..c7e0cb1098 100644 --- a/src/ov_SC05_017/ov_SC05_017.c +++ b/src/ov_SC05_017/ov_SC05_017.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC05_017/ov_SC05_017_after.c b/src/ov_SC05_017/ov_SC05_017_after.c index 417c2f4709..3612b87f48 100644 --- a/src/ov_SC05_017/ov_SC05_017_after.c +++ b/src/ov_SC05_017/ov_SC05_017_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC05_017/ov_SC05_017_jr_8012ACE0.c b/src/ov_SC05_017/ov_SC05_017_jr_8012ACE0.c index b46524db40..be3703ef8c 100644 --- a/src/ov_SC05_017/ov_SC05_017_jr_8012ACE0.c +++ b/src/ov_SC05_017/ov_SC05_017_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC05_017/ov_SC05_017_jr_801380E0.c b/src/ov_SC05_017/ov_SC05_017_jr_801380E0.c index 9326a4940c..6cea236ce5 100644 --- a/src/ov_SC05_017/ov_SC05_017_jr_801380E0.c +++ b/src/ov_SC05_017/ov_SC05_017_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018D7A8[]; u16 t; u8 b; diff --git a/src/ov_SC05_017/ov_SC05_017_jr_80140608.c b/src/ov_SC05_017/ov_SC05_017_jr_80140608.c index 535486e6e4..3d463738f8 100644 --- a/src/ov_SC05_017/ov_SC05_017_jr_80140608.c +++ b/src/ov_SC05_017/ov_SC05_017_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8018E568[]; extern u16 D_8018E078; extern u16 D_8018E07A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC05_017/ov_SC05_017_jr_8016AB6C.c b/src/ov_SC05_017/ov_SC05_017_jr_8016AB6C.c index b71854bef8..3baa43883d 100644 --- a/src/ov_SC05_017/ov_SC05_017_jr_8016AB6C.c +++ b/src/ov_SC05_017/ov_SC05_017_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC05_017/ov_SC05_017_jr_801734BC.c b/src/ov_SC05_017/ov_SC05_017_jr_801734BC.c index f61429ade9..014c998208 100644 --- a/src/ov_SC05_017/ov_SC05_017_jr_801734BC.c +++ b/src/ov_SC05_017/ov_SC05_017_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC05_017/ov_SC05_017_jr_8017AE2C.c b/src/ov_SC05_017/ov_SC05_017_jr_8017AE2C.c index 8743490662..cfd787c1a2 100644 --- a/src/ov_SC05_017/ov_SC05_017_jr_8017AE2C.c +++ b/src/ov_SC05_017/ov_SC05_017_jr_8017AE2C.c @@ -3345,17 +3345,6 @@ void func_8017BF14(void *a0) { extern u8 *func_8012913C(s32 a0); extern s32 func_8012C750(s32 a0); -typedef struct { - s16 unk00; - s16 unk02; - s16 unk04; - s16 unk06; - s16 unk08; - s16 unk0A; - s16 unk0C; - s16 unk0E; - s32 unk10; -} Buf8017BF50_8017BF50; /* $16-$19 are pinned: without them gcc's strength reduction splits the `s1` store * base into TWO induction variables (base+0x18 with offsets -4/0, plus base+0x1C), @@ -4210,13 +4199,6 @@ extern void func_8017DA08(void *arg0); extern s32 func_8012AD50(void *arg0); /* 0x24-stride record at D_801ECDB0 (4 entries; asm/ov_SC04_018/data/tail18.data.s) */ -typedef struct { - u8 unk00[0x16]; - s16 unk16; - u8 unk18[4]; - s32 unk1C; - u8 unk20[4]; -} Ent_8017D6EC_8017D6EC; void func_8017D6EC(void *arg0) { @@ -4308,12 +4290,7 @@ void func_8017DA08(void *arg0) { * so this body remaps to those overlays unchanged. */ -typedef struct { short vx, vy, vz, pad; } SV_8017DAC4_8017DAC4; -typedef struct { - SV_8017DAC4_8017DAC4 v[4]; /* 0x00 .. 0x20 */ - s32 f20, f24, f28, f2C, f30, f34; /* 0x20 .. 0x38 */ -} Prim_8017DAC4_8017DAC4; extern void func_80017714(void *); @@ -6779,9 +6756,6 @@ s32 func_801848D0(u8 a0, u8 a1, u8 a2, u8 a3) { extern void func_8012F214(s32 a0, s32 a1, s32 a2); extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); -typedef struct { - s16 f0, f1, f2, f3; -} Vec4s_80184928; void func_80184928(void *a0, s32 a1) { @@ -7189,7 +7163,6 @@ extern void func_8018559C(s32 a0); extern void *func_8018596C(void *a0); -typedef struct { u8 b[12]; } Blk12_801854C4_801851C4; void func_801851C4(s32 a0) { @@ -8058,24 +8031,7 @@ INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017_jr_8017AE2C", func_8018847 * through a local instead) were all tried and all leave the 22-diff swap. */ -typedef struct Prim4_8017E978_801886B8 { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ -} Prim4_8017E978_801886B8; -typedef struct Panel_8017E978_801886B8 { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - void *f4; /* 0x04 */ - void *f8; /* 0x08 */ - s16 fC; /* 0x0C */ - s16 fE; /* 0x0E */ - s16 f10; /* 0x10 */ - s16 f12; /* 0x12 */ - void *f14; /* 0x14 */ - Prim4_8017E978_801886B8 *f18; /* 0x18 */ - void *f1C; /* 0x1C */ -} Panel_8017E978_801886B8; extern void func_80024054(void *a0, void *a1); diff --git a/src/ov_SC05_017/ov_SC05_017_o0c.c b/src/ov_SC05_017/ov_SC05_017_o0c.c index 58e2a3c523..c7a259c3a0 100644 --- a/src/ov_SC05_017/ov_SC05_017_o0c.c +++ b/src/ov_SC05_017/ov_SC05_017_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801ED848[]; D_801ED848[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801ED848[]; D_801ED848[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801ED848[]; D_801ED848[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801ED918; extern s32 D_801ED97C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801ED848"); extern s32 D_801ED8FC; extern s32 D_801ED900; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC05_018/ov_SC05_018.c b/src/ov_SC05_018/ov_SC05_018.c index 9cccebe2f7..5f1a38f9c7 100644 --- a/src/ov_SC05_018/ov_SC05_018.c +++ b/src/ov_SC05_018/ov_SC05_018.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC05_018/ov_SC05_018_after.c b/src/ov_SC05_018/ov_SC05_018_after.c index 2dedbd28b1..014035caaa 100644 --- a/src/ov_SC05_018/ov_SC05_018_after.c +++ b/src/ov_SC05_018/ov_SC05_018_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC05_018/ov_SC05_018_jr_8012ACE0.c b/src/ov_SC05_018/ov_SC05_018_jr_8012ACE0.c index ab6b0b294b..03e644c211 100644 --- a/src/ov_SC05_018/ov_SC05_018_jr_8012ACE0.c +++ b/src/ov_SC05_018/ov_SC05_018_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC05_018/ov_SC05_018_jr_801380E0.c b/src/ov_SC05_018/ov_SC05_018_jr_801380E0.c index daaf9ab8e4..d450b5657c 100644 --- a/src/ov_SC05_018/ov_SC05_018_jr_801380E0.c +++ b/src/ov_SC05_018/ov_SC05_018_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80186F04[]; u16 t; u8 b; diff --git a/src/ov_SC05_018/ov_SC05_018_jr_80140608.c b/src/ov_SC05_018/ov_SC05_018_jr_80140608.c index 1ea4aff209..1ecdccdbf9 100644 --- a/src/ov_SC05_018/ov_SC05_018_jr_80140608.c +++ b/src/ov_SC05_018/ov_SC05_018_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80187CC4[]; extern u16 D_801877D4; extern u16 D_801877D6; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC05_018/ov_SC05_018_jr_8016AB6C.c b/src/ov_SC05_018/ov_SC05_018_jr_8016AB6C.c index 506af757eb..e558cab37a 100644 --- a/src/ov_SC05_018/ov_SC05_018_jr_8016AB6C.c +++ b/src/ov_SC05_018/ov_SC05_018_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC05_018/ov_SC05_018_jr_801734BC.c b/src/ov_SC05_018/ov_SC05_018_jr_801734BC.c index 36ac00b9c1..e602f05ea1 100644 --- a/src/ov_SC05_018/ov_SC05_018_jr_801734BC.c +++ b/src/ov_SC05_018/ov_SC05_018_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC05_018/ov_SC05_018_jr_8017AE2C.c b/src/ov_SC05_018/ov_SC05_018_jr_8017AE2C.c index c83870bade..e3a8ddc9e2 100644 --- a/src/ov_SC05_018/ov_SC05_018_jr_8017AE2C.c +++ b/src/ov_SC05_018/ov_SC05_018_jr_8017AE2C.c @@ -3503,17 +3503,6 @@ void func_8017C1F8(void *a0) { extern u8 *func_8012913C(s32 a0); extern s32 func_8012C750(s32 a0); -typedef struct { - s16 unk00; - s16 unk02; - s16 unk04; - s16 unk06; - s16 unk08; - s16 unk0A; - s16 unk0C; - s16 unk0E; - s32 unk10; -} Buf8017BF50_8017C234; /* $16-$19 are pinned: without them gcc's strength reduction splits the `s1` store * base into TWO induction variables (base+0x18 with offsets -4/0, plus base+0x1C), @@ -4265,7 +4254,6 @@ void func_8017CFE0(s16 *a0) { * (instead of a fresh local) avoids stealing back the $v0 slot. */ -typedef struct { s32 w[8]; } Mtx8_8017DE10_8017D0BC; void func_8017D0BC(s32 a0) { extern void ApplyMatrixSV(void *a0, void *a1, void *a2); diff --git a/src/ov_SC05_018/ov_SC05_018_jr_8017D604.c b/src/ov_SC05_018/ov_SC05_018_jr_8017D604.c index 5ae2002424..73c17d6bd7 100644 --- a/src/ov_SC05_018/ov_SC05_018_jr_8017D604.c +++ b/src/ov_SC05_018/ov_SC05_018_jr_8017D604.c @@ -4008,13 +4008,6 @@ extern void func_80183588(void *arg0); extern s32 func_8012AD50(void *arg0); /* 0x24-stride record at D_801E6658 (4 entries; asm/ov_SC04_018/data/tail18.data.s) */ -typedef struct { - u8 unk00[0x16]; - s16 unk16; - u8 unk18[4]; - s32 unk1C; - u8 unk20[4]; -} Ent_8017D6EC_8018326C; void func_8018326C(void *arg0) { @@ -4106,12 +4099,7 @@ void func_80183588(void *arg0) { * so this body remaps to those overlays unchanged. */ -typedef struct { short vx, vy, vz, pad; } SV_8017DAC4_80183644; -typedef struct { - SV_8017DAC4_80183644 v[4]; /* 0x00 .. 0x20 */ - s32 f20, f24, f28, f2C, f30, f34; /* 0x20 .. 0x38 */ -} Prim_8017DAC4_80183644; extern void func_80017714(void *); @@ -4531,9 +4519,6 @@ s32 func_801845B4(u8 a0, u8 a1, u8 a2, u8 a3) { extern void func_8012F214(s32 a0, s32 a1, s32 a2); extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); -typedef struct { - s16 f0, f1, f2, f3; -} Vec4s_8018460C; void func_8018460C(void *a0, s32 a1) { @@ -4949,7 +4934,6 @@ extern void func_80185280(s32 a0); extern void *func_80185650(void *a0); -typedef struct { u8 b[12]; } Blk12_801854C4_80184EA8; void func_80184EA8(s32 a0) { diff --git a/src/ov_SC05_018/ov_SC05_018_o0c.c b/src/ov_SC05_018/ov_SC05_018_o0c.c index d101c357f6..31e7690d53 100644 --- a/src/ov_SC05_018/ov_SC05_018_o0c.c +++ b/src/ov_SC05_018/ov_SC05_018_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801E6750[]; D_801E6750[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801E6750[]; D_801E6750[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801E6750[]; D_801E6750[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801E6820; extern s32 D_801E6884; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801E6750"); extern s32 D_801E6804; extern s32 D_801E6808; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC05_019/ov_SC05_019.c b/src/ov_SC05_019/ov_SC05_019.c index 830a143a1d..0e78d25aa5 100644 --- a/src/ov_SC05_019/ov_SC05_019.c +++ b/src/ov_SC05_019/ov_SC05_019.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC05_019/ov_SC05_019_after.c b/src/ov_SC05_019/ov_SC05_019_after.c index 6f3890b225..8602abd14b 100644 --- a/src/ov_SC05_019/ov_SC05_019_after.c +++ b/src/ov_SC05_019/ov_SC05_019_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC05_019/ov_SC05_019_jr_8012ACE0.c b/src/ov_SC05_019/ov_SC05_019_jr_8012ACE0.c index 333266692a..6aee60b805 100644 --- a/src/ov_SC05_019/ov_SC05_019_jr_8012ACE0.c +++ b/src/ov_SC05_019/ov_SC05_019_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC05_019/ov_SC05_019_jr_801380E0.c b/src/ov_SC05_019/ov_SC05_019_jr_801380E0.c index f0d7a4ad5a..f7a4937efe 100644 --- a/src/ov_SC05_019/ov_SC05_019_jr_801380E0.c +++ b/src/ov_SC05_019/ov_SC05_019_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017F848[]; u16 t; u8 b; diff --git a/src/ov_SC05_019/ov_SC05_019_jr_80140608.c b/src/ov_SC05_019/ov_SC05_019_jr_80140608.c index 0d821de3b7..7908dd74ae 100644 --- a/src/ov_SC05_019/ov_SC05_019_jr_80140608.c +++ b/src/ov_SC05_019/ov_SC05_019_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80180608[]; extern u16 D_80180118; extern u16 D_8018011A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC05_019/ov_SC05_019_jr_8016AB6C.c b/src/ov_SC05_019/ov_SC05_019_jr_8016AB6C.c index 60fe76ff63..1370c4a1a4 100644 --- a/src/ov_SC05_019/ov_SC05_019_jr_8016AB6C.c +++ b/src/ov_SC05_019/ov_SC05_019_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC05_019/ov_SC05_019_jr_801734BC.c b/src/ov_SC05_019/ov_SC05_019_jr_801734BC.c index d42dcfaa09..e0cf12d15e 100644 --- a/src/ov_SC05_019/ov_SC05_019_jr_801734BC.c +++ b/src/ov_SC05_019/ov_SC05_019_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC05_019/nonmatchings/ov_SC05_019_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC05_019/ov_SC05_019_o0c.c b/src/ov_SC05_019/ov_SC05_019_o0c.c index 4bf9b14c85..e6f1498a36 100644 --- a/src/ov_SC05_019/ov_SC05_019_o0c.c +++ b/src/ov_SC05_019/ov_SC05_019_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_8018FA00[]; D_8018FA00[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_8018FA00[]; D_8018FA00[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_8018FA00[]; D_8018FA00[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_8018FAB8; extern s32 D_8018FB1C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_8018FA00"); extern s32 D_8018FA9C; extern s32 D_8018FAA0; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC06_000/ov_SC06_000.c b/src/ov_SC06_000/ov_SC06_000.c index a0c555a7fa..091fe6ca94 100644 --- a/src/ov_SC06_000/ov_SC06_000.c +++ b/src/ov_SC06_000/ov_SC06_000.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC06_000/ov_SC06_000_after.c b/src/ov_SC06_000/ov_SC06_000_after.c index 024dae1c25..b9b49e8e78 100644 --- a/src/ov_SC06_000/ov_SC06_000_after.c +++ b/src/ov_SC06_000/ov_SC06_000_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC06_000/ov_SC06_000_jr_8012ACE0.c b/src/ov_SC06_000/ov_SC06_000_jr_8012ACE0.c index 60f90f350f..abbaa497d9 100644 --- a/src/ov_SC06_000/ov_SC06_000_jr_8012ACE0.c +++ b/src/ov_SC06_000/ov_SC06_000_jr_8012ACE0.c @@ -342,10 +342,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -591,7 +587,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2448,7 +2443,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2612,7 +2606,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC06_000/ov_SC06_000_jr_801380E0.c b/src/ov_SC06_000/ov_SC06_000_jr_801380E0.c index d8236bf433..524748d9ea 100644 --- a/src/ov_SC06_000/ov_SC06_000_jr_801380E0.c +++ b/src/ov_SC06_000/ov_SC06_000_jr_801380E0.c @@ -1051,12 +1051,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80188858[]; u16 t; u8 b; diff --git a/src/ov_SC06_000/ov_SC06_000_jr_80140608.c b/src/ov_SC06_000/ov_SC06_000_jr_80140608.c index 1032b28827..6400023131 100644 --- a/src/ov_SC06_000/ov_SC06_000_jr_80140608.c +++ b/src/ov_SC06_000/ov_SC06_000_jr_80140608.c @@ -1145,11 +1145,6 @@ s16 n; extern s16 D_80189618[]; extern u16 D_80189128; extern u16 D_8018912A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1288,13 +1283,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2637,7 +2628,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC06_000/ov_SC06_000_jr_8016AB6C.c b/src/ov_SC06_000/ov_SC06_000_jr_8016AB6C.c index 2806433cfd..8fd3c85262 100644 --- a/src/ov_SC06_000/ov_SC06_000_jr_8016AB6C.c +++ b/src/ov_SC06_000/ov_SC06_000_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC06_000/ov_SC06_000_jr_801734BC.c b/src/ov_SC06_000/ov_SC06_000_jr_801734BC.c index d0a666153e..be72d9a439 100644 --- a/src/ov_SC06_000/ov_SC06_000_jr_801734BC.c +++ b/src/ov_SC06_000/ov_SC06_000_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c b/src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c index a2920bc04f..54b9ebbb42 100644 --- a/src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c +++ b/src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c @@ -3651,9 +3651,7 @@ INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000_jr_8017AE2C", func_8017D89 * lwl/lwr + swl/swr instead of a `jal memcpy` (cf. §38). */ -typedef struct { - u8 b0, b1, b2, b3; -} Quad_801EA880_8017D900; /* align 1 => movstrsi expands to lwl/lwr + swl/swr */ + /* align 1 => movstrsi expands to lwl/lwr + swl/swr */ extern s32 func_80012F74(s32 a0, s32 a1, s32 a2, s32 a3); @@ -4034,14 +4032,6 @@ void func_8017E2F8(int a0) { * (the cast still folds into `lhu`). rtu_match.py: MATCH. */ -typedef struct { s16 vx, vy; } DVec35C; -typedef struct { s16 vx, vy, vz, pad; } SVec35C; -typedef struct { s16 m[3][3]; s32 t[3]; } Mtx35C; -typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; - s16 x2, y2; u16 uv2, p2; } Ft3_35C; -typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; - s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } Ft4_35C; -typedef struct { u32 xx, yy, zz; u32 nprim; u32 *prim; } Part35C; extern s32 func_800491EC(void); extern void func_800547D8(s32, Mtx35C *); @@ -4464,17 +4454,6 @@ void func_8017FF54(int param_1) * 0x2C u16 sound id passed to func_80147324 (lhu) * 0x30 s32 suppress flag */ -typedef struct Ent_8017BFE0_8017FFB0 { - u8 pad00[2]; /* 0x00 */ - u16 f02; /* 0x02 */ - u8 pad04[0x18];/* 0x04 */ - s32 f1c; /* 0x1C */ - u8 pad20[0xA]; /* 0x20 */ - u16 f2a; /* 0x2A */ - u16 f2c; /* 0x2C */ - u8 pad2e[2]; /* 0x2E */ - s32 f30; /* 0x30 */ -} Ent_8017BFE0_8017FFB0; extern void func_80147324(s32 arg0); extern void func_801801E8(int); @@ -4589,24 +4568,11 @@ void func_8018019C(int param_1) * (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A). */ -typedef struct { - s16 vx, vy, vz, pad; -} SVec8_8017C218_801801E8; -typedef struct { - u8 r, g, b, cd; -} CVec4_8017C218_801801E8; -typedef struct { - SVec8_8017C218_801801E8 v[4]; /* 0x00 */ - CVec4_8017C218_801801E8 c[4]; /* 0x20 */ - s32 code; /* 0x30 */ -} Prim_8017C218_801801E8; /* 0x34 */ + /* 0x34 */ -typedef struct { - s16 m[3][3]; - s32 t[3]; -} Mtx_8017C218_801801E8; /* 0x20 */ + /* 0x20 */ extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017DC4(void *a0, void *a1); @@ -4927,10 +4893,6 @@ void func_80180884(void *a0) void func_801808E0(void *a0) { - typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_801808E0; - typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_801808E0; - typedef struct { SVec_8017C910_801808E0 v[2]; Clr_8017C910_801808E0 col[2]; s32 tag; s32 pad; } Prim_8017C910_801808E0; - typedef struct { s32 w[8]; } Mtx8_8017C910_801808E0; extern Mtx8_8017C910_801808E0 aD800AE620 __asm__("D_800AE620"); extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C"); Prim_8017C910_801808E0 prim; @@ -6140,8 +6102,8 @@ INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000_jr_8017AE2C", func_801863F */ void func_80186468(void *a0) { - typedef struct { s32 w[8]; } Mat32_8018A390_80186468; /* 32B, align 4 */ - typedef struct { u16 x; u16 y; u16 z; s16 w; } Rec8_8018A390_80186468; /* 8B, align 2 */ + /* 32B, align 4 */ + /* 8B, align 2 */ extern Mat32_8018A390_80186468 D_800AE620; extern Rec8_8018A390_80186468 D_801AA9D0[]; @@ -6242,12 +6204,6 @@ void func_80186758(void) { * puts $s1's zero-init first, which is the target order. */ -typedef struct { - s16 unk0; - s16 unk2; - s16 unk4; - s16 unk6; -} Rec_8018A6A4_8018677C; extern void func_8018681C(s32 arg0, s32 arg1, s32 arg2); extern void func_80186938(s32 arg0, Rec_8018A6A4_8018677C *arg1, s32 arg2, s32 arg3); @@ -6370,7 +6326,7 @@ void aF8018A860(s32 a0, s16 *a1, u8 *a2, u8 *a3) { extern s16 D_801B1EFC; /* TU L3637 / L3671, verbatim */ - typedef struct { u8 b0, b1, b2, b3; } B4_80186938; /* align 1 — §48-C2 */ + /* align 1 — §48-C2 */ s16 *s1; u16 temp_u16; s16 temp_s16; @@ -6612,7 +6568,7 @@ void func_80186A94(void) { void func_80186B70(s32 arg0) { - typedef struct { s32 w[8]; } Blk32_8018AA98_80186B70; /* 32 bytes, align 4 */ + /* 32 bytes, align 4 */ extern Blk32_8018AA98_80186B70 D_800AE620; extern s32 D_800A5E60; @@ -6761,7 +6717,6 @@ extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3); extern void func_80186F08(void *arg0, void *arg1, s32 arg2, s32 arg3); void func_80186E80(s32 a0) { - typedef struct { u8 a, b, c, d; } V4_80186E80; extern u8 D_800AF648; extern V4_80186E80 D_801AD2E0; u16 sxy[4]; @@ -6893,14 +6848,6 @@ void aF8018AFD0(s32 a0, s32 a1, s32 a2) __asm__("func_801870A8"); void aF8018AFD0(s32 a0, s32 a1, s32 a2) { - typedef struct { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ - } P_801870A8; extern s16 D_801B1DF4; extern s16 D_801B1DEE[]; @@ -7069,21 +7016,11 @@ extern void func_80016638(void *a0, s32 a1, s32 a2); /* 0x10-byte-stride record table at D_801B1DF4 (same table as func_8018AD5C) */ -typedef struct { - u16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s16 f8; /* 0x08 */ - u16 fA; /* 0x0A */ - s16 fC; /* 0x0C */ - u16 fE; /* 0x0E */ -} Rec_8018B23C_80187314; -typedef struct { s32 w[8]; } Mat32_8018B23C_80187314; /* the 0x20-byte matrix */ -typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_80187314; /* == engine_types.h OtBlk */ -typedef struct { u16 f; } Bidx_8018B23C_80187314; /* the D_800B9A02 buffer index */ -typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_80187314; /* libgpu P_TAG */ + /* the 0x20-byte matrix */ + /* == engine_types.h OtBlk */ + /* the D_800B9A02 buffer index */ + /* libgpu P_TAG */ void func_80187314(s32 a0) { @@ -7191,33 +7128,8 @@ INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000_jr_8017AE2C", func_8018779 extern void func_8001D074(s32 a0, s32 a1); extern void func_8001CD04(s32 a0, s32 a1); -typedef struct Obj_8018A550_801878A8 { - s32 f0; /* 0x00 */ - u32 f4; /* 0x04 */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ - s32 f10; /* 0x10 */ - s32 f14; /* 0x14 */ - s16 f18; /* 0x18 */ - s16 f1A; /* 0x1A */ - s16 f1C; /* 0x1C */ - s16 f1E; /* 0x1E */ -} Obj_8018A550_801878A8; -typedef struct Rec_8018A550_801878A8 { - u16 f0; /* 0x00 */ - u16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ -} Rec_8018A550_801878A8; -typedef struct Ctl_8018A550_801878A8 { - s32 f0; /* 0x00 */ - s16 ids[8]; /* 0x04 */ - Obj_8018A550_801878A8 *slots[8]; /* 0x14 */ -} Ctl_8018A550_801878A8; void func_801878A8(Ctl_8018A550_801878A8 *ctl, Rec_8018A550_801878A8 *rec) { diff --git a/src/ov_SC06_000/ov_SC06_000_o0c.c b/src/ov_SC06_000/ov_SC06_000_o0c.c index 876197ef1e..e21bd54ae6 100644 --- a/src/ov_SC06_000/ov_SC06_000_o0c.c +++ b/src/ov_SC06_000/ov_SC06_000_o0c.c @@ -787,8 +787,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801B2028[]; D_801B2028[a0].f0 = 1; @@ -803,20 +801,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801B2028[]; D_801B2028[idx].f0 = 1; @@ -827,7 +811,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801B2028[]; D_801B2028[a0].f0 = 0; } @@ -846,16 +830,7 @@ extern s32 D_801B20E0; extern s32 D_801B2144; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801B2028"); extern s32 D_801B20C4; extern s32 D_801B20C8; @@ -945,7 +920,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -992,17 +966,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1068,11 +1031,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC06_006/ov_SC06_006.c b/src/ov_SC06_006/ov_SC06_006.c index 1e2d11371a..0b961f8638 100644 --- a/src/ov_SC06_006/ov_SC06_006.c +++ b/src/ov_SC06_006/ov_SC06_006.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC06_006/ov_SC06_006_after.c b/src/ov_SC06_006/ov_SC06_006_after.c index 76f4b4e2fc..80019d5796 100644 --- a/src/ov_SC06_006/ov_SC06_006_after.c +++ b/src/ov_SC06_006/ov_SC06_006_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC06_006/ov_SC06_006_jr_8012ACE0.c b/src/ov_SC06_006/ov_SC06_006_jr_8012ACE0.c index 6832d224f5..45167953fe 100644 --- a/src/ov_SC06_006/ov_SC06_006_jr_8012ACE0.c +++ b/src/ov_SC06_006/ov_SC06_006_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC06_006/ov_SC06_006_jr_801380E0.c b/src/ov_SC06_006/ov_SC06_006_jr_801380E0.c index c0f05a76b2..4799671a9b 100644 --- a/src/ov_SC06_006/ov_SC06_006_jr_801380E0.c +++ b/src/ov_SC06_006/ov_SC06_006_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018237C[]; u16 t; u8 b; diff --git a/src/ov_SC06_006/ov_SC06_006_jr_80140608.c b/src/ov_SC06_006/ov_SC06_006_jr_80140608.c index e179a53671..58de926fc7 100644 --- a/src/ov_SC06_006/ov_SC06_006_jr_80140608.c +++ b/src/ov_SC06_006/ov_SC06_006_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8018313C[]; extern u16 D_80182C4C; extern u16 D_80182C4E; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC06_006/ov_SC06_006_jr_8016AB6C.c b/src/ov_SC06_006/ov_SC06_006_jr_8016AB6C.c index a86ab90f11..2babd2c5ea 100644 --- a/src/ov_SC06_006/ov_SC06_006_jr_8016AB6C.c +++ b/src/ov_SC06_006/ov_SC06_006_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC06_006/ov_SC06_006_jr_801734BC.c b/src/ov_SC06_006/ov_SC06_006_jr_801734BC.c index b6c941a245..981d37dd47 100644 --- a/src/ov_SC06_006/ov_SC06_006_jr_801734BC.c +++ b/src/ov_SC06_006/ov_SC06_006_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC06_006/nonmatchings/ov_SC06_006_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC06_006/ov_SC06_006_jr_8017BEBC.c b/src/ov_SC06_006/ov_SC06_006_jr_8017BEBC.c index d4c7d09a2f..a88f15b3e1 100644 --- a/src/ov_SC06_006/ov_SC06_006_jr_8017BEBC.c +++ b/src/ov_SC06_006/ov_SC06_006_jr_8017BEBC.c @@ -3273,9 +3273,6 @@ void func_8017D19C(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D1D8; extern u16 func_80148800(s32 *a0); extern void func_8017D278(s32 param_1, s16 *param_2); @@ -3703,12 +3700,6 @@ void func_80181198(void *a0) { -typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; -} EffectSlot4_801811D4; extern void func_801465C0(void); extern void func_80146C3C(void); diff --git a/src/ov_SC06_006/ov_SC06_006_o0c.c b/src/ov_SC06_006/ov_SC06_006_o0c.c index 8e96167a65..a6f110bab4 100644 --- a/src/ov_SC06_006/ov_SC06_006_o0c.c +++ b/src/ov_SC06_006/ov_SC06_006_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801F8A40[]; D_801F8A40[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801F8A40[]; D_801F8A40[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801F8A40[]; D_801F8A40[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801F8AF8; extern s32 D_801F8B5C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801F8A40"); extern s32 D_801F8ADC; extern s32 D_801F8AE0; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC06_008/ov_SC06_008.c b/src/ov_SC06_008/ov_SC06_008.c index 581f9bcd01..7f9a350231 100644 --- a/src/ov_SC06_008/ov_SC06_008.c +++ b/src/ov_SC06_008/ov_SC06_008.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC06_008/ov_SC06_008_after.c b/src/ov_SC06_008/ov_SC06_008_after.c index e5c75106bd..79bcb72fd5 100644 --- a/src/ov_SC06_008/ov_SC06_008_after.c +++ b/src/ov_SC06_008/ov_SC06_008_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC06_008/ov_SC06_008_jr_8012ACE0.c b/src/ov_SC06_008/ov_SC06_008_jr_8012ACE0.c index cf6fca18ff..d7244b58c6 100644 --- a/src/ov_SC06_008/ov_SC06_008_jr_8012ACE0.c +++ b/src/ov_SC06_008/ov_SC06_008_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC06_008/ov_SC06_008_jr_801380E0.c b/src/ov_SC06_008/ov_SC06_008_jr_801380E0.c index b8404ee751..cb8ed53087 100644 --- a/src/ov_SC06_008/ov_SC06_008_jr_801380E0.c +++ b/src/ov_SC06_008/ov_SC06_008_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80185DE4[]; u16 t; u8 b; diff --git a/src/ov_SC06_008/ov_SC06_008_jr_80140608.c b/src/ov_SC06_008/ov_SC06_008_jr_80140608.c index e39b07cb31..10491b0a02 100644 --- a/src/ov_SC06_008/ov_SC06_008_jr_80140608.c +++ b/src/ov_SC06_008/ov_SC06_008_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80186BA4[]; extern u16 D_801866B4; extern u16 D_801866B6; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC06_008/ov_SC06_008_jr_8016AB6C.c b/src/ov_SC06_008/ov_SC06_008_jr_8016AB6C.c index c62fde2be4..d8dc6b42d0 100644 --- a/src/ov_SC06_008/ov_SC06_008_jr_8016AB6C.c +++ b/src/ov_SC06_008/ov_SC06_008_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC06_008/ov_SC06_008_jr_801734BC.c b/src/ov_SC06_008/ov_SC06_008_jr_801734BC.c index bc25288140..3316f5f3f4 100644 --- a/src/ov_SC06_008/ov_SC06_008_jr_801734BC.c +++ b/src/ov_SC06_008/ov_SC06_008_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC06_008/nonmatchings/ov_SC06_008_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC06_008/ov_SC06_008_o0c.c b/src/ov_SC06_008/ov_SC06_008_o0c.c index 1a6bb2f47e..7303ccd592 100644 --- a/src/ov_SC06_008/ov_SC06_008_o0c.c +++ b/src/ov_SC06_008/ov_SC06_008_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801AA710[]; D_801AA710[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801AA710[]; D_801AA710[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801AA710[]; D_801AA710[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801AA7C8; extern s32 D_801AA82C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801AA710"); extern s32 D_801AA7AC; extern s32 D_801AA7B0; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC06_010/ov_SC06_010.c b/src/ov_SC06_010/ov_SC06_010.c index 9f76e448be..2a848e03fb 100644 --- a/src/ov_SC06_010/ov_SC06_010.c +++ b/src/ov_SC06_010/ov_SC06_010.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC06_010/ov_SC06_010_after.c b/src/ov_SC06_010/ov_SC06_010_after.c index 6fcebcc5d5..dd9e1f51b6 100644 --- a/src/ov_SC06_010/ov_SC06_010_after.c +++ b/src/ov_SC06_010/ov_SC06_010_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC06_010/ov_SC06_010_jr_8012ACE0.c b/src/ov_SC06_010/ov_SC06_010_jr_8012ACE0.c index 63813117cc..2bc27141b8 100644 --- a/src/ov_SC06_010/ov_SC06_010_jr_8012ACE0.c +++ b/src/ov_SC06_010/ov_SC06_010_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC06_010/ov_SC06_010_jr_801380E0.c b/src/ov_SC06_010/ov_SC06_010_jr_801380E0.c index babe88efaa..73bc0aa3ba 100644 --- a/src/ov_SC06_010/ov_SC06_010_jr_801380E0.c +++ b/src/ov_SC06_010/ov_SC06_010_jr_801380E0.c @@ -1056,12 +1056,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80186FC0[]; u16 t; u8 b; diff --git a/src/ov_SC06_010/ov_SC06_010_jr_80140608.c b/src/ov_SC06_010/ov_SC06_010_jr_80140608.c index a22e4bff79..ef320c20a7 100644 --- a/src/ov_SC06_010/ov_SC06_010_jr_80140608.c +++ b/src/ov_SC06_010/ov_SC06_010_jr_80140608.c @@ -1143,11 +1143,6 @@ s16 n; extern s16 D_80187D80[]; extern u16 D_80187890; extern u16 D_80187892; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1286,13 +1281,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2619,7 +2610,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC06_010/ov_SC06_010_jr_8016AB6C.c b/src/ov_SC06_010/ov_SC06_010_jr_8016AB6C.c index 31564dd701..8685a00bb5 100644 --- a/src/ov_SC06_010/ov_SC06_010_jr_8016AB6C.c +++ b/src/ov_SC06_010/ov_SC06_010_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC06_010/ov_SC06_010_jr_801734BC.c b/src/ov_SC06_010/ov_SC06_010_jr_801734BC.c index d6c51ca90c..19e7b71214 100644 --- a/src/ov_SC06_010/ov_SC06_010_jr_801734BC.c +++ b/src/ov_SC06_010/ov_SC06_010_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC06_010/ov_SC06_010_jr_8017A4AC.c b/src/ov_SC06_010/ov_SC06_010_jr_8017A4AC.c index 2868bbc655..677af85054 100644 --- a/src/ov_SC06_010/ov_SC06_010_jr_8017A4AC.c +++ b/src/ov_SC06_010/ov_SC06_010_jr_8017A4AC.c @@ -3597,16 +3597,6 @@ INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010_jr_8017A4AC", func_8017CA8 * way ($s6/$s5); a slider (or 2) flips it back (§47 cuts both ways). * ========================================================================== */ -typedef struct { s16 vx, vy; } XDV2; -typedef struct { s16 vx, vy, vz, pad; } XSV2; -typedef struct { s16 m[3][3]; s32 t[3]; } XMTX2; -typedef struct { u32 xx, yy, zz; u32 nprim; u32 *prim; } XPart; -typedef struct { u32 w0, w1, w2; } XPrim; -typedef struct { u8 b[8]; } XV8; -typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; - s16 x2, y2; u16 uv2, p2; } XFT3; -typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; - s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } XFT4; extern s32 func_800491EC(void); extern void func_800547D8(s32, XMTX2 *); diff --git a/src/ov_SC06_010/ov_SC06_010_o0c.c b/src/ov_SC06_010/ov_SC06_010_o0c.c index 8ebb07249b..33bafa48bf 100644 --- a/src/ov_SC06_010/ov_SC06_010_o0c.c +++ b/src/ov_SC06_010/ov_SC06_010_o0c.c @@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801B2B58[]; D_801B2B58[a0].f0 = 1; @@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801B2B58[]; D_801B2B58[idx].f0 = 1; @@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801B2B58[]; D_801B2B58[a0].f0 = 0; } @@ -844,16 +828,7 @@ extern s32 D_801B2C10; extern s32 D_801B2C74; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801B2B58"); extern s32 D_801B2BF4; extern s32 D_801B2BF8; @@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC06_011/ov_SC06_011.c b/src/ov_SC06_011/ov_SC06_011.c index 6596068733..a2c8c95535 100644 --- a/src/ov_SC06_011/ov_SC06_011.c +++ b/src/ov_SC06_011/ov_SC06_011.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC06_011/ov_SC06_011_after.c b/src/ov_SC06_011/ov_SC06_011_after.c index c1a5d2a949..38dccec656 100644 --- a/src/ov_SC06_011/ov_SC06_011_after.c +++ b/src/ov_SC06_011/ov_SC06_011_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC06_011/ov_SC06_011_jr_8012ACE0.c b/src/ov_SC06_011/ov_SC06_011_jr_8012ACE0.c index fe91238f96..a3b9b85273 100644 --- a/src/ov_SC06_011/ov_SC06_011_jr_8012ACE0.c +++ b/src/ov_SC06_011/ov_SC06_011_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC06_011/ov_SC06_011_jr_801380E0.c b/src/ov_SC06_011/ov_SC06_011_jr_801380E0.c index c0a4b9350a..468d4121d0 100644 --- a/src/ov_SC06_011/ov_SC06_011_jr_801380E0.c +++ b/src/ov_SC06_011/ov_SC06_011_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80180A20[]; u16 t; u8 b; diff --git a/src/ov_SC06_011/ov_SC06_011_jr_80140608.c b/src/ov_SC06_011/ov_SC06_011_jr_80140608.c index 96b615338e..8c465cf02d 100644 --- a/src/ov_SC06_011/ov_SC06_011_jr_80140608.c +++ b/src/ov_SC06_011/ov_SC06_011_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_801817E0[]; extern u16 D_801812F0; extern u16 D_801812F2; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC06_011/ov_SC06_011_jr_8016AB6C.c b/src/ov_SC06_011/ov_SC06_011_jr_8016AB6C.c index 4589e51674..5a5089ce3b 100644 --- a/src/ov_SC06_011/ov_SC06_011_jr_8016AB6C.c +++ b/src/ov_SC06_011/ov_SC06_011_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC06_011/ov_SC06_011_jr_801734BC.c b/src/ov_SC06_011/ov_SC06_011_jr_801734BC.c index ca31d2a5ba..d91bc7bcb3 100644 --- a/src/ov_SC06_011/ov_SC06_011_jr_801734BC.c +++ b/src/ov_SC06_011/ov_SC06_011_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC06_011/ov_SC06_011_jr_8017BEBC.c b/src/ov_SC06_011/ov_SC06_011_jr_8017BEBC.c index 2bd3b93d16..71866137ac 100644 --- a/src/ov_SC06_011/ov_SC06_011_jr_8017BEBC.c +++ b/src/ov_SC06_011/ov_SC06_011_jr_8017BEBC.c @@ -3341,9 +3341,6 @@ void func_8017D594(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D5D0; extern u16 func_80148800(s32 *a0); extern void func_8017D8F0(s32 param_1, s16 *param_2); @@ -3368,9 +3365,6 @@ void func_8017D5D0(s32 a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D670; extern u16 func_80148800(s32 *a0); extern void func_8017D8F0(s32 param_1, s16 *param_2); @@ -3395,9 +3389,6 @@ void func_8017D670(s32 a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D710; extern u16 func_80148800(s32 *a0); extern void func_8017D8F0(s32 param_1, s16 *param_2); @@ -3422,9 +3413,6 @@ void func_8017D710(s32 a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D7B0; extern u16 func_80148800(s32 *a0); extern void func_8017D8F0(s32 param_1, s16 *param_2); @@ -3449,9 +3437,6 @@ void func_8017D7B0(s32 a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D850; extern u16 func_80148800(s32 *a0); extern void func_8017D8F0(s32 param_1, s16 *param_2); diff --git a/src/ov_SC06_011/ov_SC06_011_o0c.c b/src/ov_SC06_011/ov_SC06_011_o0c.c index a654fda089..4fa89e1099 100644 --- a/src/ov_SC06_011/ov_SC06_011_o0c.c +++ b/src/ov_SC06_011/ov_SC06_011_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801ABC30[]; D_801ABC30[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801ABC30[]; D_801ABC30[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801ABC30[]; D_801ABC30[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801ABCE8; extern s32 D_801ABD4C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801ABC30"); extern s32 D_801ABCCC; extern s32 D_801ABCD0; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC06_013/ov_SC06_013.c b/src/ov_SC06_013/ov_SC06_013.c index ad0be708cd..fce8a0388d 100644 --- a/src/ov_SC06_013/ov_SC06_013.c +++ b/src/ov_SC06_013/ov_SC06_013.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC06_013/ov_SC06_013_after.c b/src/ov_SC06_013/ov_SC06_013_after.c index 4c4c43717e..d387aaadbd 100644 --- a/src/ov_SC06_013/ov_SC06_013_after.c +++ b/src/ov_SC06_013/ov_SC06_013_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC06_013/ov_SC06_013_jr_8012ACE0.c b/src/ov_SC06_013/ov_SC06_013_jr_8012ACE0.c index 51011c1cf1..d9e397d55e 100644 --- a/src/ov_SC06_013/ov_SC06_013_jr_8012ACE0.c +++ b/src/ov_SC06_013/ov_SC06_013_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC06_013/ov_SC06_013_jr_801380E0.c b/src/ov_SC06_013/ov_SC06_013_jr_801380E0.c index 2516c5cb26..9c01bf1a41 100644 --- a/src/ov_SC06_013/ov_SC06_013_jr_801380E0.c +++ b/src/ov_SC06_013/ov_SC06_013_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017F19C[]; u16 t; u8 b; diff --git a/src/ov_SC06_013/ov_SC06_013_jr_80140608.c b/src/ov_SC06_013/ov_SC06_013_jr_80140608.c index e1a25158c3..06b9191737 100644 --- a/src/ov_SC06_013/ov_SC06_013_jr_80140608.c +++ b/src/ov_SC06_013/ov_SC06_013_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8017FF5C[]; extern u16 D_8017FA6C; extern u16 D_8017FA6E; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2586,7 +2577,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC06_013/ov_SC06_013_jr_8016AB6C.c b/src/ov_SC06_013/ov_SC06_013_jr_8016AB6C.c index c589e4ddc5..97fb3817cd 100644 --- a/src/ov_SC06_013/ov_SC06_013_jr_8016AB6C.c +++ b/src/ov_SC06_013/ov_SC06_013_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC06_013/ov_SC06_013_jr_801734BC.c b/src/ov_SC06_013/ov_SC06_013_jr_801734BC.c index 92794191d6..e35cc642ac 100644 --- a/src/ov_SC06_013/ov_SC06_013_jr_801734BC.c +++ b/src/ov_SC06_013/ov_SC06_013_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC06_013/nonmatchings/ov_SC06_013_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC06_013/ov_SC06_013_jr_8017BEBC.c b/src/ov_SC06_013/ov_SC06_013_jr_8017BEBC.c index 8cc8c26787..a40ddceaf8 100644 --- a/src/ov_SC06_013/ov_SC06_013_jr_8017BEBC.c +++ b/src/ov_SC06_013/ov_SC06_013_jr_8017BEBC.c @@ -3309,9 +3309,6 @@ void func_8017D220(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D25C; extern u16 func_80148800(s32 *a0); extern void func_8017D39C(s32 param_1, s16 *param_2); @@ -3336,9 +3333,6 @@ void func_8017D25C(s32 a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D2FC; extern u16 func_80148800(s32 *a0); extern void func_8017D39C(s32 param_1, s16 *param_2); diff --git a/src/ov_SC06_013/ov_SC06_013_o0c.c b/src/ov_SC06_013/ov_SC06_013_o0c.c index b5a2396dd9..26bf3809ac 100644 --- a/src/ov_SC06_013/ov_SC06_013_o0c.c +++ b/src/ov_SC06_013/ov_SC06_013_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_8019AAE0[]; D_8019AAE0[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_8019AAE0[]; D_8019AAE0[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_8019AAE0[]; D_8019AAE0[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_8019AB98; extern s32 D_8019ABFC; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_8019AAE0"); extern s32 D_8019AB7C; extern s32 D_8019AB80; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC06_014/ov_SC06_014.c b/src/ov_SC06_014/ov_SC06_014.c index b4d60adfb4..de548ab1ec 100644 --- a/src/ov_SC06_014/ov_SC06_014.c +++ b/src/ov_SC06_014/ov_SC06_014.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC06_014/ov_SC06_014_after.c b/src/ov_SC06_014/ov_SC06_014_after.c index 4b282c9948..c28fdc53f7 100644 --- a/src/ov_SC06_014/ov_SC06_014_after.c +++ b/src/ov_SC06_014/ov_SC06_014_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC06_014/ov_SC06_014_jr_8012ACE0.c b/src/ov_SC06_014/ov_SC06_014_jr_8012ACE0.c index 6f7399d9a2..6eb06c1eca 100644 --- a/src/ov_SC06_014/ov_SC06_014_jr_8012ACE0.c +++ b/src/ov_SC06_014/ov_SC06_014_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC06_014/ov_SC06_014_jr_801380E0.c b/src/ov_SC06_014/ov_SC06_014_jr_801380E0.c index 6326f57e15..eeb15c70eb 100644 --- a/src/ov_SC06_014/ov_SC06_014_jr_801380E0.c +++ b/src/ov_SC06_014/ov_SC06_014_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80180500[]; u16 t; u8 b; diff --git a/src/ov_SC06_014/ov_SC06_014_jr_80140608.c b/src/ov_SC06_014/ov_SC06_014_jr_80140608.c index 8207e56574..9bf9dea77a 100644 --- a/src/ov_SC06_014/ov_SC06_014_jr_80140608.c +++ b/src/ov_SC06_014/ov_SC06_014_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_801812C0[]; extern u16 D_80180DD0; extern u16 D_80180DD2; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC06_014/ov_SC06_014_jr_8016AB6C.c b/src/ov_SC06_014/ov_SC06_014_jr_8016AB6C.c index 52cb750792..9e6a601f8e 100644 --- a/src/ov_SC06_014/ov_SC06_014_jr_8016AB6C.c +++ b/src/ov_SC06_014/ov_SC06_014_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC06_014/ov_SC06_014_jr_801734BC.c b/src/ov_SC06_014/ov_SC06_014_jr_801734BC.c index 0ba8267f88..77cdffd76a 100644 --- a/src/ov_SC06_014/ov_SC06_014_jr_801734BC.c +++ b/src/ov_SC06_014/ov_SC06_014_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC06_014/nonmatchings/ov_SC06_014_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC06_014/ov_SC06_014_jr_8017BEBC.c b/src/ov_SC06_014/ov_SC06_014_jr_8017BEBC.c index 774ab7a7c4..c08f0a92d6 100644 --- a/src/ov_SC06_014/ov_SC06_014_jr_8017BEBC.c +++ b/src/ov_SC06_014/ov_SC06_014_jr_8017BEBC.c @@ -3464,9 +3464,6 @@ void func_8017D5F8(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D634; extern u16 func_80148800(s32 *a0); extern void func_8017D774(s32 param_1, s16 *param_2); @@ -3491,9 +3488,6 @@ void func_8017D634(s32 a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D6D4; extern u16 func_80148800(s32 *a0); extern void func_8017D774(s32 param_1, s16 *param_2); diff --git a/src/ov_SC06_014/ov_SC06_014_o0c.c b/src/ov_SC06_014/ov_SC06_014_o0c.c index 21ad9c0916..2b79f2076e 100644 --- a/src/ov_SC06_014/ov_SC06_014_o0c.c +++ b/src/ov_SC06_014/ov_SC06_014_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801A14F8[]; D_801A14F8[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801A14F8[]; D_801A14F8[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801A14F8[]; D_801A14F8[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801A15B0; extern s32 D_801A1614; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801A14F8"); extern s32 D_801A1594; extern s32 D_801A1598; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC06_015/ov_SC06_015.c b/src/ov_SC06_015/ov_SC06_015.c index 87971d0f30..85d5230bf3 100644 --- a/src/ov_SC06_015/ov_SC06_015.c +++ b/src/ov_SC06_015/ov_SC06_015.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC06_015/ov_SC06_015_after.c b/src/ov_SC06_015/ov_SC06_015_after.c index 2763b8620c..bcee1a3f0e 100644 --- a/src/ov_SC06_015/ov_SC06_015_after.c +++ b/src/ov_SC06_015/ov_SC06_015_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC06_015/ov_SC06_015_jr_8012ACE0.c b/src/ov_SC06_015/ov_SC06_015_jr_8012ACE0.c index 278628b632..418324eeb5 100644 --- a/src/ov_SC06_015/ov_SC06_015_jr_8012ACE0.c +++ b/src/ov_SC06_015/ov_SC06_015_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC06_015/ov_SC06_015_jr_801380E0.c b/src/ov_SC06_015/ov_SC06_015_jr_801380E0.c index f432942d01..c7695a9df6 100644 --- a/src/ov_SC06_015/ov_SC06_015_jr_801380E0.c +++ b/src/ov_SC06_015/ov_SC06_015_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017F058[]; u16 t; u8 b; diff --git a/src/ov_SC06_015/ov_SC06_015_jr_80140608.c b/src/ov_SC06_015/ov_SC06_015_jr_80140608.c index 29d12c0705..25ba219bb6 100644 --- a/src/ov_SC06_015/ov_SC06_015_jr_80140608.c +++ b/src/ov_SC06_015/ov_SC06_015_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8017FE18[]; extern u16 D_8017F928; extern u16 D_8017F92A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC06_015/ov_SC06_015_jr_8016AB6C.c b/src/ov_SC06_015/ov_SC06_015_jr_8016AB6C.c index 5ffd492e21..d4de5512ed 100644 --- a/src/ov_SC06_015/ov_SC06_015_jr_8016AB6C.c +++ b/src/ov_SC06_015/ov_SC06_015_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC06_015/ov_SC06_015_jr_801734BC.c b/src/ov_SC06_015/ov_SC06_015_jr_801734BC.c index 6c074c414d..6faf993089 100644 --- a/src/ov_SC06_015/ov_SC06_015_jr_801734BC.c +++ b/src/ov_SC06_015/ov_SC06_015_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC06_015/nonmatchings/ov_SC06_015_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC06_015/ov_SC06_015_jr_8017BEBC.c b/src/ov_SC06_015/ov_SC06_015_jr_8017BEBC.c index 8724b6a281..47d3afa166 100644 --- a/src/ov_SC06_015/ov_SC06_015_jr_8017BEBC.c +++ b/src/ov_SC06_015/ov_SC06_015_jr_8017BEBC.c @@ -3488,9 +3488,6 @@ void func_8017D554(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D590; extern u16 func_80148800(s32 *a0); extern void func_8017D630(s32 param_1, s16 *param_2); diff --git a/src/ov_SC06_015/ov_SC06_015_o0c.c b/src/ov_SC06_015/ov_SC06_015_o0c.c index 78f0ea9b9a..aa8e91e941 100644 --- a/src/ov_SC06_015/ov_SC06_015_o0c.c +++ b/src/ov_SC06_015/ov_SC06_015_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801948D8[]; D_801948D8[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801948D8[]; D_801948D8[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801948D8[]; D_801948D8[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_80194990; extern s32 D_801949F4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801948D8"); extern s32 D_80194974; extern s32 D_80194978; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC06_016/ov_SC06_016.c b/src/ov_SC06_016/ov_SC06_016.c index 8aaaefe4a5..2d6c3d9d82 100644 --- a/src/ov_SC06_016/ov_SC06_016.c +++ b/src/ov_SC06_016/ov_SC06_016.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC06_016/ov_SC06_016_after.c b/src/ov_SC06_016/ov_SC06_016_after.c index e6ada6ab8f..184955a659 100644 --- a/src/ov_SC06_016/ov_SC06_016_after.c +++ b/src/ov_SC06_016/ov_SC06_016_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC06_016/ov_SC06_016_jr_8012ACE0.c b/src/ov_SC06_016/ov_SC06_016_jr_8012ACE0.c index 9a9237fbd5..b158ba2c1f 100644 --- a/src/ov_SC06_016/ov_SC06_016_jr_8012ACE0.c +++ b/src/ov_SC06_016/ov_SC06_016_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC06_016/ov_SC06_016_jr_801380E0.c b/src/ov_SC06_016/ov_SC06_016_jr_801380E0.c index 29fbca540e..d8aa969ab8 100644 --- a/src/ov_SC06_016/ov_SC06_016_jr_801380E0.c +++ b/src/ov_SC06_016/ov_SC06_016_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80185468[]; u16 t; u8 b; diff --git a/src/ov_SC06_016/ov_SC06_016_jr_80140608.c b/src/ov_SC06_016/ov_SC06_016_jr_80140608.c index f619686323..b032ffb6f9 100644 --- a/src/ov_SC06_016/ov_SC06_016_jr_80140608.c +++ b/src/ov_SC06_016/ov_SC06_016_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80186228[]; extern u16 D_80185D38; extern u16 D_80185D3A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2601,7 +2592,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC06_016/ov_SC06_016_jr_8016AB6C.c b/src/ov_SC06_016/ov_SC06_016_jr_8016AB6C.c index 6407f2d67a..c4aaaea9b4 100644 --- a/src/ov_SC06_016/ov_SC06_016_jr_8016AB6C.c +++ b/src/ov_SC06_016/ov_SC06_016_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC06_016/ov_SC06_016_jr_801734BC.c b/src/ov_SC06_016/ov_SC06_016_jr_801734BC.c index c4d762a992..933be5cdf7 100644 --- a/src/ov_SC06_016/ov_SC06_016_jr_801734BC.c +++ b/src/ov_SC06_016/ov_SC06_016_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC06_016/nonmatchings/ov_SC06_016_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC06_016/ov_SC06_016_jr_8017AE2C.c b/src/ov_SC06_016/ov_SC06_016_jr_8017AE2C.c index 1ecf629453..fd5732c199 100644 --- a/src/ov_SC06_016/ov_SC06_016_jr_8017AE2C.c +++ b/src/ov_SC06_016/ov_SC06_016_jr_8017AE2C.c @@ -3335,17 +3335,6 @@ extern void func_8017BF34(s32 arg0, s32 arg1, s32 arg2, s32 arg3); extern s32 func_8012C750(s32 a0); -typedef struct { - s16 unk00; - s16 unk02; - s16 unk04; - s16 unk06; - s16 unk08; - s16 unk0A; - s16 unk0C; - s16 unk0E; - s32 unk10; -} Buf8017BF34_8017BF34; void func_8017BF34(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { diff --git a/src/ov_SC06_016/ov_SC06_016_jr_8017C8D0.c b/src/ov_SC06_016/ov_SC06_016_jr_8017C8D0.c index 63b5d410e6..549936b493 100644 --- a/src/ov_SC06_016/ov_SC06_016_jr_8017C8D0.c +++ b/src/ov_SC06_016/ov_SC06_016_jr_8017C8D0.c @@ -3595,7 +3595,7 @@ INCLUDE_ASM("asm/ov_SC06_016/nonmatchings/ov_SC06_016_jr_8017C8D0", func_80180BF * also matches.) */ -typedef struct { u16 x, y, z, w; } Pt_80187940_80180D24; /* 8-byte out-param scratch */ + /* 8-byte out-param scratch */ extern void func_8012F14C(s32); /* TU-canonical decl; called through a cast (fleet house style) */ extern void func_8012F568(); @@ -4060,12 +4060,6 @@ void func_80183D5C(void) { * puts $s1's zero-init first, which is the target order. */ -typedef struct { - s16 unk0; - s16 unk2; - s16 unk4; - s16 unk6; -} Rec_8018A6A4_80183D80; extern void func_80183E20(s32 arg0, s32 arg1, s32 arg2); extern void func_80183F3C(s32 arg0, Rec_8018A6A4_80183D80 *arg1, s32 arg2, s32 arg3); @@ -4186,7 +4180,7 @@ void aF8018A860(s32 a0, s16 *a1, u8 *a2, u8 *a3) { extern s16 D_801A001C; /* TU L3637 / L3671, verbatim */ - typedef struct { u8 b0, b1, b2, b3; } B4_80183F3C; /* align 1 — §48-C2 */ + /* align 1 — §48-C2 */ s16 *s1; u16 temp_u16; s16 temp_s16; @@ -4428,7 +4422,7 @@ void func_80184098(void) { void func_80184174(s32 arg0) { - typedef struct { s32 w[8]; } Blk32_8018AA98_80184174; /* 32 bytes, align 4 */ + /* 32 bytes, align 4 */ extern Blk32_8018AA98_80184174 D_800AE620; extern s32 D_800A5E60; @@ -4577,7 +4571,6 @@ extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3); extern void func_8018450C(void *arg0, void *arg1, s32 arg2, s32 arg3); void func_80184484(s32 a0) { - typedef struct { u8 a, b, c, d; } V4_80184484; extern u8 D_800AF648; extern V4_80184484 D_8019E2E8; u16 sxy[4]; @@ -4709,14 +4702,6 @@ void aF8018AFD0(s32 a0, s32 a1, s32 a2) __asm__("func_801846AC"); void aF8018AFD0(s32 a0, s32 a1, s32 a2) { - typedef struct { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ - } P_801846AC; extern s16 D_8019FF14; extern s16 D_8019FF0E[]; @@ -4885,21 +4870,11 @@ extern void func_80016638(void *a0, s32 a1, s32 a2); /* 0x10-byte-stride record table at D_8019FF14 (same table as func_8018AD5C) */ -typedef struct { - u16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s16 f8; /* 0x08 */ - u16 fA; /* 0x0A */ - s16 fC; /* 0x0C */ - u16 fE; /* 0x0E */ -} Rec_8018B23C_80184918; -typedef struct { s32 w[8]; } Mat32_8018B23C_80184918; /* the 0x20-byte matrix */ -typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_80184918; /* == engine_types.h OtBlk */ -typedef struct { u16 f; } Bidx_8018B23C_80184918; /* the D_800B9A02 buffer index */ -typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_80184918; /* libgpu P_TAG */ + /* the 0x20-byte matrix */ + /* == engine_types.h OtBlk */ + /* the D_800B9A02 buffer index */ + /* libgpu P_TAG */ void func_80184918(s32 a0) { diff --git a/src/ov_SC06_016/ov_SC06_016_o0c.c b/src/ov_SC06_016/ov_SC06_016_o0c.c index e867c4815c..d9b2d4add1 100644 --- a/src/ov_SC06_016/ov_SC06_016_o0c.c +++ b/src/ov_SC06_016/ov_SC06_016_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801A0148[]; D_801A0148[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801A0148[]; D_801A0148[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801A0148[]; D_801A0148[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801A0200; extern s32 D_801A0264; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801A0148"); extern s32 D_801A01E4; extern s32 D_801A01E8; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC06_018/ov_SC06_018.c b/src/ov_SC06_018/ov_SC06_018.c index 314c3c9512..8e8c5814b6 100644 --- a/src/ov_SC06_018/ov_SC06_018.c +++ b/src/ov_SC06_018/ov_SC06_018.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC06_018/ov_SC06_018_after.c b/src/ov_SC06_018/ov_SC06_018_after.c index 8b0eb436f2..c3febcaf48 100644 --- a/src/ov_SC06_018/ov_SC06_018_after.c +++ b/src/ov_SC06_018/ov_SC06_018_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC06_018/ov_SC06_018_jr_8012ACE0.c b/src/ov_SC06_018/ov_SC06_018_jr_8012ACE0.c index 25a4f913b0..7f4bad56ad 100644 --- a/src/ov_SC06_018/ov_SC06_018_jr_8012ACE0.c +++ b/src/ov_SC06_018/ov_SC06_018_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC06_018/ov_SC06_018_jr_801380E0.c b/src/ov_SC06_018/ov_SC06_018_jr_801380E0.c index 11d42d0926..5dbd7adfc1 100644 --- a/src/ov_SC06_018/ov_SC06_018_jr_801380E0.c +++ b/src/ov_SC06_018/ov_SC06_018_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80193BA4[]; u16 t; u8 b; diff --git a/src/ov_SC06_018/ov_SC06_018_jr_80140608.c b/src/ov_SC06_018/ov_SC06_018_jr_80140608.c index d4c3a6f637..45ab6e5168 100644 --- a/src/ov_SC06_018/ov_SC06_018_jr_80140608.c +++ b/src/ov_SC06_018/ov_SC06_018_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80194964[]; extern u16 D_80194474; extern u16 D_80194476; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC06_018/ov_SC06_018_jr_8016AB6C.c b/src/ov_SC06_018/ov_SC06_018_jr_8016AB6C.c index e409d0a782..4e43e2ce0b 100644 --- a/src/ov_SC06_018/ov_SC06_018_jr_8016AB6C.c +++ b/src/ov_SC06_018/ov_SC06_018_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC06_018/ov_SC06_018_jr_801734BC.c b/src/ov_SC06_018/ov_SC06_018_jr_801734BC.c index 61dccd7e64..8ae714a423 100644 --- a/src/ov_SC06_018/ov_SC06_018_jr_801734BC.c +++ b/src/ov_SC06_018/ov_SC06_018_jr_801734BC.c @@ -2918,8 +2918,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2959,8 +2959,8 @@ INCLUDE_ASM("asm/ov_SC06_018/nonmatchings/ov_SC06_018_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -3006,7 +3006,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3092,7 +3092,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3116,14 +3116,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3277,7 +3269,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC06_018/ov_SC06_018_jr_8017C24C.c b/src/ov_SC06_018/ov_SC06_018_jr_8017C24C.c index 2fc1e99eb2..6610d8d605 100644 --- a/src/ov_SC06_018/ov_SC06_018_jr_8017C24C.c +++ b/src/ov_SC06_018/ov_SC06_018_jr_8017C24C.c @@ -6926,14 +6926,6 @@ INCLUDE_ASM("asm/ov_SC06_018/nonmatchings/ov_SC06_018_jr_8017C24C", func_8018594 #include "common.h" -typedef struct { - u8 pad0[6]; - u16 f6; /* 0x06 -> D_80126B5E */ - u8 pad8[2]; - u16 fa; /* 0x0A -> D_80126B62 */ - u8 padc[2]; - u16 fe; /* 0x0E -> D_80126B66 */ -} StructB58; extern s32 D_80126B58; /* holds a pointer value */ @@ -7243,8 +7235,6 @@ extern void func_8012C218(void *a0); extern void func_8012E8A8(u8 *a0); /* §48-C2: lwl/lwr/swl/swr block copy == a plain struct assign of a 2-byte-aligned struct */ -typedef struct { u16 a, b, c, d, e, f; } UAlign12; -typedef struct { u16 a, b, c, d; } UAlign8; void func_80187DD0(s32 param_1) { @@ -8090,7 +8080,6 @@ INCLUDE_ASM("asm/ov_SC06_018/nonmatchings/ov_SC06_018_jr_8017C24C", func_8018AE6 // call -- that's what forces it into a callee-saved reg ($s1) instead of being recomputed as // `addiu $a0,$sp,0x10` at each use site. -typedef struct { s32 w[8]; } Blk20_8018AF88; extern Blk20_8018AF88 D_800AE620; extern s32 D_801CD498; @@ -8197,10 +8186,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8018BFA8; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0x4 are @@ -8974,10 +8959,8 @@ INCLUDE_ASM("asm/ov_SC06_018/nonmatchings/ov_SC06_018_jr_8017C24C", func_8018EDB #include "common.h" -typedef struct { u16 vx, vy, vz, pad; } SVEC_8018F060; /* u16 source vec -> lhu */ -typedef struct { s16 vx, vy, vz, pad; } SVECTOR_8018F060; /* 8 bytes, align 2 */ -typedef struct { u8 d[8]; } __attribute__((packed, aligned(1))) B8_8018F060; -typedef struct { u8 d[4]; } __attribute__((packed, aligned(1))) B4_8018F060; + /* u16 source vec -> lhu */ + /* 8 bytes, align 2 */ extern void func_8004914C(void *a0); extern void func_800491AC(void *a0); diff --git a/src/ov_SC06_018/ov_SC06_018_o0c.c b/src/ov_SC06_018/ov_SC06_018_o0c.c index f8d95bfa19..1397a1c041 100644 --- a/src/ov_SC06_018/ov_SC06_018_o0c.c +++ b/src/ov_SC06_018/ov_SC06_018_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801D5A78[]; D_801D5A78[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801D5A78[]; D_801D5A78[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801D5A78[]; D_801D5A78[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801D5B30; extern s32 D_801D5B94; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801D5A78"); extern s32 D_801D5B14; extern s32 D_801D5B18; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC06_020/ov_SC06_020.c b/src/ov_SC06_020/ov_SC06_020.c index 5d80b848d3..a5ceb92897 100644 --- a/src/ov_SC06_020/ov_SC06_020.c +++ b/src/ov_SC06_020/ov_SC06_020.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC06_020/ov_SC06_020_after.c b/src/ov_SC06_020/ov_SC06_020_after.c index 0e48315455..d2a7445205 100644 --- a/src/ov_SC06_020/ov_SC06_020_after.c +++ b/src/ov_SC06_020/ov_SC06_020_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC06_020/ov_SC06_020_jr_8012ACE0.c b/src/ov_SC06_020/ov_SC06_020_jr_8012ACE0.c index cefc0f79fd..255f10ade5 100644 --- a/src/ov_SC06_020/ov_SC06_020_jr_8012ACE0.c +++ b/src/ov_SC06_020/ov_SC06_020_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC06_020/ov_SC06_020_jr_801380E0.c b/src/ov_SC06_020/ov_SC06_020_jr_801380E0.c index c3791cd1f2..91e08ae076 100644 --- a/src/ov_SC06_020/ov_SC06_020_jr_801380E0.c +++ b/src/ov_SC06_020/ov_SC06_020_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018562C[]; u16 t; u8 b; diff --git a/src/ov_SC06_020/ov_SC06_020_jr_80140608.c b/src/ov_SC06_020/ov_SC06_020_jr_80140608.c index 566a48b361..2d5eb22d08 100644 --- a/src/ov_SC06_020/ov_SC06_020_jr_80140608.c +++ b/src/ov_SC06_020/ov_SC06_020_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_801863EC[]; extern u16 D_80185EFC; extern u16 D_80185EFE; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC06_020/ov_SC06_020_jr_8016AB6C.c b/src/ov_SC06_020/ov_SC06_020_jr_8016AB6C.c index 87306c8820..9694ea37a4 100644 --- a/src/ov_SC06_020/ov_SC06_020_jr_8016AB6C.c +++ b/src/ov_SC06_020/ov_SC06_020_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC06_020/ov_SC06_020_jr_801734BC.c b/src/ov_SC06_020/ov_SC06_020_jr_801734BC.c index 8270319b92..65135712c5 100644 --- a/src/ov_SC06_020/ov_SC06_020_jr_801734BC.c +++ b/src/ov_SC06_020/ov_SC06_020_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC06_020/nonmatchings/ov_SC06_020_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC06_020/ov_SC06_020_jr_8017C24C.c b/src/ov_SC06_020/ov_SC06_020_jr_8017C24C.c index 72c1d13011..4577229ea4 100644 --- a/src/ov_SC06_020/ov_SC06_020_jr_8017C24C.c +++ b/src/ov_SC06_020/ov_SC06_020_jr_8017C24C.c @@ -4087,14 +4087,6 @@ INCLUDE_ASM("asm/ov_SC06_020/nonmatchings/ov_SC06_020_jr_8017C24C", func_8017F93 INCLUDE_ASM("asm/ov_SC06_020/nonmatchings/ov_SC06_020_jr_8017C24C", func_8017FAB4); -typedef struct { - u8 pad0[6]; - u16 f6; /* 0x06 -> D_80126B5E */ - u8 pad8[2]; - u16 fa; /* 0x0A -> D_80126B62 */ - u8 padc[2]; - u16 fe; /* 0x0E -> D_80126B66 */ -} StructB58_8017FAFC; /* holds a pointer value */ diff --git a/src/ov_SC06_020/ov_SC06_020_jr_80180B04.c b/src/ov_SC06_020/ov_SC06_020_jr_80180B04.c index 7b5ed316bf..a04c52cccd 100644 --- a/src/ov_SC06_020/ov_SC06_020_jr_80180B04.c +++ b/src/ov_SC06_020/ov_SC06_020_jr_80180B04.c @@ -14,14 +14,6 @@ typedef struct { u8 pad[7]; /* -> 0x40 */ } Prim_8016E7C8; typedef void (*Handler)(struct Entry_8016E95C *); -typedef struct { - u8 pad0[6]; - u16 f6; /* 0x06 -> D_80126B5E */ - u8 pad8[2]; - u16 fa; /* 0x0A -> D_80126B62 */ - u8 padc[2]; - u16 fe; /* 0x0E -> D_80126B66 */ -} StructB58_8017FAFC; extern void func_801458E0(void); extern s32 D_800AE6AC; extern s32 D_800AE6B0; @@ -3081,8 +3073,6 @@ extern void func_8012C218(void *a0); extern void func_8012E8A8(u8 *a0); /* §48-C2: lwl/lwr/swl/swr block copy == a plain struct assign of a 2-byte-aligned struct */ -typedef struct { u16 a, b, c, d, e, f; } UAlign12_80181F40; -typedef struct { u16 a, b, c, d; } UAlign8_80181F40; void func_80181F40(s32 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 a56b6e0ea2..7fc20bdfdb 100644 --- a/src/ov_SC06_020/ov_SC06_020_o0c.c +++ b/src/ov_SC06_020/ov_SC06_020_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801BA8C8[]; D_801BA8C8[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801BA8C8[]; D_801BA8C8[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801BA8C8[]; D_801BA8C8[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801BA980; extern s32 D_801BA9E4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801BA8C8"); extern s32 D_801BA964; extern s32 D_801BA968; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC06_022/ov_SC06_022.c b/src/ov_SC06_022/ov_SC06_022.c index c382e9a458..7cd30b707f 100644 --- a/src/ov_SC06_022/ov_SC06_022.c +++ b/src/ov_SC06_022/ov_SC06_022.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC06_022/ov_SC06_022_after.c b/src/ov_SC06_022/ov_SC06_022_after.c index 9fba334519..cc4f0e6b9b 100644 --- a/src/ov_SC06_022/ov_SC06_022_after.c +++ b/src/ov_SC06_022/ov_SC06_022_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC06_022/ov_SC06_022_jr_8012ACE0.c b/src/ov_SC06_022/ov_SC06_022_jr_8012ACE0.c index 952a8fa5ff..5c8dab1a3c 100644 --- a/src/ov_SC06_022/ov_SC06_022_jr_8012ACE0.c +++ b/src/ov_SC06_022/ov_SC06_022_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC06_022/ov_SC06_022_jr_801380E0.c b/src/ov_SC06_022/ov_SC06_022_jr_801380E0.c index 2722a3225f..3df56e470c 100644 --- a/src/ov_SC06_022/ov_SC06_022_jr_801380E0.c +++ b/src/ov_SC06_022/ov_SC06_022_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018D8E8[]; u16 t; u8 b; diff --git a/src/ov_SC06_022/ov_SC06_022_jr_80140608.c b/src/ov_SC06_022/ov_SC06_022_jr_80140608.c index f7b58e113d..d7333bffbb 100644 --- a/src/ov_SC06_022/ov_SC06_022_jr_80140608.c +++ b/src/ov_SC06_022/ov_SC06_022_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8018E6A8[]; extern u16 D_8018E1B8; extern u16 D_8018E1BA; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC06_022/ov_SC06_022_jr_8016AB6C.c b/src/ov_SC06_022/ov_SC06_022_jr_8016AB6C.c index 5920c8b791..624be90638 100644 --- a/src/ov_SC06_022/ov_SC06_022_jr_8016AB6C.c +++ b/src/ov_SC06_022/ov_SC06_022_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC06_022/ov_SC06_022_jr_801734BC.c b/src/ov_SC06_022/ov_SC06_022_jr_801734BC.c index 669144d71c..9a9bba61af 100644 --- a/src/ov_SC06_022/ov_SC06_022_jr_801734BC.c +++ b/src/ov_SC06_022/ov_SC06_022_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC06_022/ov_SC06_022_jr_8017BEBC.c b/src/ov_SC06_022/ov_SC06_022_jr_8017BEBC.c index 2790a314b6..42b5679692 100644 --- a/src/ov_SC06_022/ov_SC06_022_jr_8017BEBC.c +++ b/src/ov_SC06_022/ov_SC06_022_jr_8017BEBC.c @@ -4176,14 +4176,6 @@ INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022_jr_8017BEBC", func_8018386 INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022_jr_8017BEBC", func_801839D8); -typedef struct { - u8 pad0[6]; - u16 f6; /* 0x06 -> D_80126B5E */ - u8 pad8[2]; - u16 fa; /* 0x0A -> D_80126B62 */ - u8 padc[2]; - u16 fe; /* 0x0E -> D_80126B66 */ -} StructB58_80183A20; /* holds a pointer value */ @@ -4494,8 +4486,6 @@ extern void func_8012C218(void *a0); extern void func_8012E8A8(u8 *a0); /* §48-C2: lwl/lwr/swl/swr block copy == a plain struct assign of a 2-byte-aligned struct */ -typedef struct { u16 a, b, c, d, e, f; } UAlign12_80185E64; -typedef struct { u16 a, b, c, d; } UAlign8_80185E64; void func_80185E64(s32 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 cafe5ff361..e71d8152e3 100644 --- a/src/ov_SC06_022/ov_SC06_022_o0c.c +++ b/src/ov_SC06_022/ov_SC06_022_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801E2148[]; D_801E2148[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801E2148[]; D_801E2148[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801E2148[]; D_801E2148[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801E2200; extern s32 D_801E2264; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801E2148"); extern s32 D_801E21E4; extern s32 D_801E21E8; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC06_024/ov_SC06_024.c b/src/ov_SC06_024/ov_SC06_024.c index 395c18c5d0..be5074d241 100644 --- a/src/ov_SC06_024/ov_SC06_024.c +++ b/src/ov_SC06_024/ov_SC06_024.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC06_024/ov_SC06_024_after.c b/src/ov_SC06_024/ov_SC06_024_after.c index 086f02070e..4869c3b94f 100644 --- a/src/ov_SC06_024/ov_SC06_024_after.c +++ b/src/ov_SC06_024/ov_SC06_024_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC06_024/ov_SC06_024_jr_8012ACE0.c b/src/ov_SC06_024/ov_SC06_024_jr_8012ACE0.c index b26e9d7001..6f861c6bbd 100644 --- a/src/ov_SC06_024/ov_SC06_024_jr_8012ACE0.c +++ b/src/ov_SC06_024/ov_SC06_024_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC06_024/ov_SC06_024_jr_801380E0.c b/src/ov_SC06_024/ov_SC06_024_jr_801380E0.c index c8ebb66b4a..02d657761d 100644 --- a/src/ov_SC06_024/ov_SC06_024_jr_801380E0.c +++ b/src/ov_SC06_024/ov_SC06_024_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018FDC0[]; u16 t; u8 b; diff --git a/src/ov_SC06_024/ov_SC06_024_jr_80140608.c b/src/ov_SC06_024/ov_SC06_024_jr_80140608.c index a6041ed87c..1834a71278 100644 --- a/src/ov_SC06_024/ov_SC06_024_jr_80140608.c +++ b/src/ov_SC06_024/ov_SC06_024_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80190B80[]; extern u16 D_80190690; extern u16 D_80190692; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2601,7 +2592,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC06_024/ov_SC06_024_jr_8016AB6C.c b/src/ov_SC06_024/ov_SC06_024_jr_8016AB6C.c index 36c25d4d15..359e22fecd 100644 --- a/src/ov_SC06_024/ov_SC06_024_jr_8016AB6C.c +++ b/src/ov_SC06_024/ov_SC06_024_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC06_024/ov_SC06_024_jr_801734BC.c b/src/ov_SC06_024/ov_SC06_024_jr_801734BC.c index e70fcb4ddc..2872e5f36b 100644 --- a/src/ov_SC06_024/ov_SC06_024_jr_801734BC.c +++ b/src/ov_SC06_024/ov_SC06_024_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC06_024/ov_SC06_024_jr_8017BEBC.c b/src/ov_SC06_024/ov_SC06_024_jr_8017BEBC.c index 5412c542f3..4023b4eb39 100644 --- a/src/ov_SC06_024/ov_SC06_024_jr_8017BEBC.c +++ b/src/ov_SC06_024/ov_SC06_024_jr_8017BEBC.c @@ -4711,14 +4711,6 @@ INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024_jr_8017BEBC", func_80185D3 INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024_jr_8017BEBC", func_80185EB0); -typedef struct { - u8 pad0[6]; - u16 f6; /* 0x06 -> D_80126B5E */ - u8 pad8[2]; - u16 fa; /* 0x0A -> D_80126B62 */ - u8 padc[2]; - u16 fe; /* 0x0E -> D_80126B66 */ -} StructB58_80185EF8; /* holds a pointer value */ @@ -5028,8 +5020,6 @@ extern void func_8012C218(s32); extern void func_8012E8A8(u8 *a0); /* §48-C2: lwl/lwr/swl/swr block copy == a plain struct assign of a 2-byte-aligned struct */ -typedef struct { u16 a, b, c, d, e, f; } UAlign12_8018833C; -typedef struct { u16 a, b, c, d; } UAlign8_8018833C; void func_8018833C(s32 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 eb5cccb4cd..6843fbbeb1 100644 --- a/src/ov_SC06_024/ov_SC06_024_o0c.c +++ b/src/ov_SC06_024/ov_SC06_024_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801E1840[]; D_801E1840[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801E1840[]; D_801E1840[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801E1840[]; D_801E1840[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801E18F8; extern s32 D_801E195C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801E1840"); extern s32 D_801E18DC; extern s32 D_801E18E0; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC06_025/ov_SC06_025.c b/src/ov_SC06_025/ov_SC06_025.c index a48072a22e..6ad28fe10d 100644 --- a/src/ov_SC06_025/ov_SC06_025.c +++ b/src/ov_SC06_025/ov_SC06_025.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC06_025/ov_SC06_025_after.c b/src/ov_SC06_025/ov_SC06_025_after.c index 24b65c5d48..2693dfc42b 100644 --- a/src/ov_SC06_025/ov_SC06_025_after.c +++ b/src/ov_SC06_025/ov_SC06_025_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC06_025/ov_SC06_025_jr_8012ACE0.c b/src/ov_SC06_025/ov_SC06_025_jr_8012ACE0.c index 17d8074b21..642ffaf070 100644 --- a/src/ov_SC06_025/ov_SC06_025_jr_8012ACE0.c +++ b/src/ov_SC06_025/ov_SC06_025_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC06_025/ov_SC06_025_jr_801380E0.c b/src/ov_SC06_025/ov_SC06_025_jr_801380E0.c index 6df1837627..326db76e1a 100644 --- a/src/ov_SC06_025/ov_SC06_025_jr_801380E0.c +++ b/src/ov_SC06_025/ov_SC06_025_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80185264[]; u16 t; u8 b; diff --git a/src/ov_SC06_025/ov_SC06_025_jr_80140608.c b/src/ov_SC06_025/ov_SC06_025_jr_80140608.c index 91278f3d06..81400fc71b 100644 --- a/src/ov_SC06_025/ov_SC06_025_jr_80140608.c +++ b/src/ov_SC06_025/ov_SC06_025_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80186024[]; extern u16 D_80185B34; extern u16 D_80185B36; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC06_025/ov_SC06_025_jr_8016AB6C.c b/src/ov_SC06_025/ov_SC06_025_jr_8016AB6C.c index d6ab2a3a4b..67f4154134 100644 --- a/src/ov_SC06_025/ov_SC06_025_jr_8016AB6C.c +++ b/src/ov_SC06_025/ov_SC06_025_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC06_025/ov_SC06_025_jr_801734BC.c b/src/ov_SC06_025/ov_SC06_025_jr_801734BC.c index c0b49e2339..2d618dc7f0 100644 --- a/src/ov_SC06_025/ov_SC06_025_jr_801734BC.c +++ b/src/ov_SC06_025/ov_SC06_025_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC06_025/nonmatchings/ov_SC06_025_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC06_025/ov_SC06_025_o0c.c b/src/ov_SC06_025/ov_SC06_025_o0c.c index 71a3c9c9c7..05a2e69970 100644 --- a/src/ov_SC06_025/ov_SC06_025_o0c.c +++ b/src/ov_SC06_025/ov_SC06_025_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801B2160[]; D_801B2160[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801B2160[]; D_801B2160[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801B2160[]; D_801B2160[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801B2218; extern s32 D_801B227C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801B2160"); extern s32 D_801B21FC; extern s32 D_801B2200; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC06_027/ov_SC06_027.c b/src/ov_SC06_027/ov_SC06_027.c index 97400eff1d..0ce7699083 100644 --- a/src/ov_SC06_027/ov_SC06_027.c +++ b/src/ov_SC06_027/ov_SC06_027.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC06_027/ov_SC06_027_after.c b/src/ov_SC06_027/ov_SC06_027_after.c index 1c9c214b61..6469359cf0 100644 --- a/src/ov_SC06_027/ov_SC06_027_after.c +++ b/src/ov_SC06_027/ov_SC06_027_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC06_027/ov_SC06_027_jr_8012ACE0.c b/src/ov_SC06_027/ov_SC06_027_jr_8012ACE0.c index d965a09927..968f4edb50 100644 --- a/src/ov_SC06_027/ov_SC06_027_jr_8012ACE0.c +++ b/src/ov_SC06_027/ov_SC06_027_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC06_027/ov_SC06_027_jr_801380E0.c b/src/ov_SC06_027/ov_SC06_027_jr_801380E0.c index c1f8792752..0e8d6038a8 100644 --- a/src/ov_SC06_027/ov_SC06_027_jr_801380E0.c +++ b/src/ov_SC06_027/ov_SC06_027_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017E5A4[]; u16 t; u8 b; diff --git a/src/ov_SC06_027/ov_SC06_027_jr_80140608.c b/src/ov_SC06_027/ov_SC06_027_jr_80140608.c index aaec09cec0..e437772471 100644 --- a/src/ov_SC06_027/ov_SC06_027_jr_80140608.c +++ b/src/ov_SC06_027/ov_SC06_027_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8017F364[]; extern u16 D_8017EE74; extern u16 D_8017EE76; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC06_027/ov_SC06_027_jr_8016AB6C.c b/src/ov_SC06_027/ov_SC06_027_jr_8016AB6C.c index 0df78b916b..646466c116 100644 --- a/src/ov_SC06_027/ov_SC06_027_jr_8016AB6C.c +++ b/src/ov_SC06_027/ov_SC06_027_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC06_027/ov_SC06_027_jr_801734BC.c b/src/ov_SC06_027/ov_SC06_027_jr_801734BC.c index ad663cdb46..6be5a1bb3a 100644 --- a/src/ov_SC06_027/ov_SC06_027_jr_801734BC.c +++ b/src/ov_SC06_027/ov_SC06_027_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC06_027/nonmatchings/ov_SC06_027_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC06_027/ov_SC06_027_o0c.c b/src/ov_SC06_027/ov_SC06_027_o0c.c index e0e8aa5150..5e1135e852 100644 --- a/src/ov_SC06_027/ov_SC06_027_o0c.c +++ b/src/ov_SC06_027/ov_SC06_027_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_8019D308[]; D_8019D308[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_8019D308[]; D_8019D308[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_8019D308[]; D_8019D308[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_8019D3C0; extern s32 D_8019D424; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_8019D308"); extern s32 D_8019D3A4; extern s32 D_8019D3A8; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC06_029/ov_SC06_029.c b/src/ov_SC06_029/ov_SC06_029.c index 70abc473df..2b649d3cf5 100644 --- a/src/ov_SC06_029/ov_SC06_029.c +++ b/src/ov_SC06_029/ov_SC06_029.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC06_029/ov_SC06_029_after.c b/src/ov_SC06_029/ov_SC06_029_after.c index 0dbbe70645..303b7174f6 100644 --- a/src/ov_SC06_029/ov_SC06_029_after.c +++ b/src/ov_SC06_029/ov_SC06_029_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC06_029/ov_SC06_029_jr_8012ACE0.c b/src/ov_SC06_029/ov_SC06_029_jr_8012ACE0.c index 82181f2b82..2997583d9a 100644 --- a/src/ov_SC06_029/ov_SC06_029_jr_8012ACE0.c +++ b/src/ov_SC06_029/ov_SC06_029_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC06_029/ov_SC06_029_jr_801380E0.c b/src/ov_SC06_029/ov_SC06_029_jr_801380E0.c index 10ad759431..699ef389d5 100644 --- a/src/ov_SC06_029/ov_SC06_029_jr_801380E0.c +++ b/src/ov_SC06_029/ov_SC06_029_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018CB38[]; u16 t; u8 b; diff --git a/src/ov_SC06_029/ov_SC06_029_jr_80140608.c b/src/ov_SC06_029/ov_SC06_029_jr_80140608.c index aabe1eef48..d64b8cd568 100644 --- a/src/ov_SC06_029/ov_SC06_029_jr_80140608.c +++ b/src/ov_SC06_029/ov_SC06_029_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8018D8F8[]; extern u16 D_8018D408; extern u16 D_8018D40A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC06_029/ov_SC06_029_jr_8016AB6C.c b/src/ov_SC06_029/ov_SC06_029_jr_8016AB6C.c index a860697098..ec9ddf0289 100644 --- a/src/ov_SC06_029/ov_SC06_029_jr_8016AB6C.c +++ b/src/ov_SC06_029/ov_SC06_029_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC06_029/ov_SC06_029_jr_801734BC.c b/src/ov_SC06_029/ov_SC06_029_jr_801734BC.c index 00a025e78b..9677a56b91 100644 --- a/src/ov_SC06_029/ov_SC06_029_jr_801734BC.c +++ b/src/ov_SC06_029/ov_SC06_029_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC06_029/ov_SC06_029_jr_8017AE2C.c b/src/ov_SC06_029/ov_SC06_029_jr_8017AE2C.c index 46bf072b79..3e6cd139b2 100644 --- a/src/ov_SC06_029/ov_SC06_029_jr_8017AE2C.c +++ b/src/ov_SC06_029/ov_SC06_029_jr_8017AE2C.c @@ -3329,17 +3329,6 @@ extern void func_8017BF34(s32 arg0, s32 arg1, s32 arg2, s32 arg3); extern s32 func_8012C750(s32 a0); -typedef struct { - s16 unk00; - s16 unk02; - s16 unk04; - s16 unk06; - s16 unk08; - s16 unk0A; - s16 unk0C; - s16 unk0E; - s32 unk10; -} Buf8017BF34_8017BF34; void func_8017BF34(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { diff --git a/src/ov_SC06_029/ov_SC06_029_jr_8017C954.c b/src/ov_SC06_029/ov_SC06_029_jr_8017C954.c index a55faf922f..0cad146bad 100644 --- a/src/ov_SC06_029/ov_SC06_029_jr_8017C954.c +++ b/src/ov_SC06_029/ov_SC06_029_jr_8017C954.c @@ -3432,17 +3432,8 @@ extern s32 func_80017DC4(void *a0, void *a1); extern s32 func_80017E30(void *a0, void *a1); extern void func_80016ED4(void *a0); -typedef struct { short vx, vy, vz, pad; } SVECTOR_8017F40C_8017DF74; -typedef struct { - SVECTOR_8017F40C_8017DF74 v[4]; /* 0x00 */ - s16 k30, k32, k34, k36, k38, k3a, k3c, k3e; /* 0x20 */ - u32 bcast; /* 0x30 */ - s32 tag; /* 0x34 */ - u8 code; /* 0x38 */ - u8 pad39[7]; /* -> 0x40 */ -} Prim_8017F40C_8017DF74; void func_8017DF74(s32 a0, s32 a1) { @@ -4635,12 +4626,6 @@ void func_8018AF0C(void *a0) { -typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; -} EffectSlot4_8018AF48; extern void func_801465C0(void); extern void func_80146C3C(void); diff --git a/src/ov_SC06_029/ov_SC06_029_o0c.c b/src/ov_SC06_029/ov_SC06_029_o0c.c index ddc29595bd..0438c12d3d 100644 --- a/src/ov_SC06_029/ov_SC06_029_o0c.c +++ b/src/ov_SC06_029/ov_SC06_029_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801E2068[]; D_801E2068[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801E2068[]; D_801E2068[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801E2068[]; D_801E2068[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801E2120; extern s32 D_801E2184; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801E2068"); extern s32 D_801E2104; extern s32 D_801E2108; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC06_030/ov_SC06_030.c b/src/ov_SC06_030/ov_SC06_030.c index b5d8240355..d34f80b007 100644 --- a/src/ov_SC06_030/ov_SC06_030.c +++ b/src/ov_SC06_030/ov_SC06_030.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC06_030/ov_SC06_030_after.c b/src/ov_SC06_030/ov_SC06_030_after.c index e6ca504a75..30b8cdf31c 100644 --- a/src/ov_SC06_030/ov_SC06_030_after.c +++ b/src/ov_SC06_030/ov_SC06_030_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC06_030/ov_SC06_030_jr_8012ACE0.c b/src/ov_SC06_030/ov_SC06_030_jr_8012ACE0.c index 8ee1cfbcab..d85bcd515e 100644 --- a/src/ov_SC06_030/ov_SC06_030_jr_8012ACE0.c +++ b/src/ov_SC06_030/ov_SC06_030_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC06_030/ov_SC06_030_jr_801380E0.c b/src/ov_SC06_030/ov_SC06_030_jr_801380E0.c index 7ce414c96c..7cd5bd3683 100644 --- a/src/ov_SC06_030/ov_SC06_030_jr_801380E0.c +++ b/src/ov_SC06_030/ov_SC06_030_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80182428[]; u16 t; u8 b; diff --git a/src/ov_SC06_030/ov_SC06_030_jr_80140608.c b/src/ov_SC06_030/ov_SC06_030_jr_80140608.c index 4e7cb75b0c..f23dfb4ae0 100644 --- a/src/ov_SC06_030/ov_SC06_030_jr_80140608.c +++ b/src/ov_SC06_030/ov_SC06_030_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_801831E8[]; extern u16 D_80182CF8; extern u16 D_80182CFA; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC06_030/ov_SC06_030_jr_8016AB6C.c b/src/ov_SC06_030/ov_SC06_030_jr_8016AB6C.c index c973468754..9ed3857f2f 100644 --- a/src/ov_SC06_030/ov_SC06_030_jr_8016AB6C.c +++ b/src/ov_SC06_030/ov_SC06_030_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC06_030/ov_SC06_030_jr_801734BC.c b/src/ov_SC06_030/ov_SC06_030_jr_801734BC.c index 864b740774..af4abbbb5e 100644 --- a/src/ov_SC06_030/ov_SC06_030_jr_801734BC.c +++ b/src/ov_SC06_030/ov_SC06_030_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC06_030/nonmatchings/ov_SC06_030_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC06_030/ov_SC06_030_jr_8017AE2C.c b/src/ov_SC06_030/ov_SC06_030_jr_8017AE2C.c index ad7844a31c..3f65a9c66e 100644 --- a/src/ov_SC06_030/ov_SC06_030_jr_8017AE2C.c +++ b/src/ov_SC06_030/ov_SC06_030_jr_8017AE2C.c @@ -3329,17 +3329,6 @@ extern void func_8017BF34(s32 arg0, s32 arg1, s32 arg2, s32 arg3); extern s32 func_8012C750(s32 a0); -typedef struct { - s16 unk00; - s16 unk02; - s16 unk04; - s16 unk06; - s16 unk08; - s16 unk0A; - s16 unk0C; - s16 unk0E; - s32 unk10; -} Buf8017BF34_8017BF34; void func_8017BF34(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { diff --git a/src/ov_SC06_030/ov_SC06_030_o0c.c b/src/ov_SC06_030/ov_SC06_030_o0c.c index 09a67fa33e..0e75c4f340 100644 --- a/src/ov_SC06_030/ov_SC06_030_o0c.c +++ b/src/ov_SC06_030/ov_SC06_030_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801B9F60[]; D_801B9F60[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801B9F60[]; D_801B9F60[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801B9F60[]; D_801B9F60[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801BA018; extern s32 D_801BA07C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801B9F60"); extern s32 D_801B9FFC; extern s32 D_801BA000; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC06_032/ov_SC06_032.c b/src/ov_SC06_032/ov_SC06_032.c index 93fb1bb7cb..69dbbe65b5 100644 --- a/src/ov_SC06_032/ov_SC06_032.c +++ b/src/ov_SC06_032/ov_SC06_032.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC06_032/ov_SC06_032_after.c b/src/ov_SC06_032/ov_SC06_032_after.c index b171a260d5..22ab8c3eeb 100644 --- a/src/ov_SC06_032/ov_SC06_032_after.c +++ b/src/ov_SC06_032/ov_SC06_032_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC06_032/ov_SC06_032_jr_8012ACE0.c b/src/ov_SC06_032/ov_SC06_032_jr_8012ACE0.c index 69072c3293..0e261c09f3 100644 --- a/src/ov_SC06_032/ov_SC06_032_jr_8012ACE0.c +++ b/src/ov_SC06_032/ov_SC06_032_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC06_032/ov_SC06_032_jr_801380E0.c b/src/ov_SC06_032/ov_SC06_032_jr_801380E0.c index ed9a0d1c26..a328ec441b 100644 --- a/src/ov_SC06_032/ov_SC06_032_jr_801380E0.c +++ b/src/ov_SC06_032/ov_SC06_032_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_801938F4[]; u16 t; u8 b; diff --git a/src/ov_SC06_032/ov_SC06_032_jr_80140608.c b/src/ov_SC06_032/ov_SC06_032_jr_80140608.c index 8047a259dd..ef17bdedaa 100644 --- a/src/ov_SC06_032/ov_SC06_032_jr_80140608.c +++ b/src/ov_SC06_032/ov_SC06_032_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_801946B4[]; extern u16 D_801941C4; extern u16 D_801941C6; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC06_032/ov_SC06_032_jr_8016AB6C.c b/src/ov_SC06_032/ov_SC06_032_jr_8016AB6C.c index 718380d86c..9ace9dfc5c 100644 --- a/src/ov_SC06_032/ov_SC06_032_jr_8016AB6C.c +++ b/src/ov_SC06_032/ov_SC06_032_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC06_032/ov_SC06_032_jr_801734BC.c b/src/ov_SC06_032/ov_SC06_032_jr_801734BC.c index 9db52a7cbb..6499c9e430 100644 --- a/src/ov_SC06_032/ov_SC06_032_jr_801734BC.c +++ b/src/ov_SC06_032/ov_SC06_032_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC06_032/nonmatchings/ov_SC06_032_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC06_032/ov_SC06_032_jr_8017C24C.c b/src/ov_SC06_032/ov_SC06_032_jr_8017C24C.c index 8b6be637c7..2378efedb3 100644 --- a/src/ov_SC06_032/ov_SC06_032_jr_8017C24C.c +++ b/src/ov_SC06_032/ov_SC06_032_jr_8017C24C.c @@ -4522,14 +4522,6 @@ INCLUDE_ASM("asm/ov_SC06_032/nonmatchings/ov_SC06_032_jr_8017C24C", func_8018057 INCLUDE_ASM("asm/ov_SC06_032/nonmatchings/ov_SC06_032_jr_8017C24C", func_801806E8); -typedef struct { - u8 pad0[6]; - u16 f6; /* 0x06 -> D_80126B5E */ - u8 pad8[2]; - u16 fa; /* 0x0A -> D_80126B62 */ - u8 padc[2]; - u16 fe; /* 0x0E -> D_80126B66 */ -} StructB58_80180730; /* holds a pointer value */ @@ -4835,8 +4827,6 @@ extern void func_8012C218(void *a0); extern void func_8012E8A8(u8 *a0); /* §48-C2: lwl/lwr/swl/swr block copy == a plain struct assign of a 2-byte-aligned struct */ -typedef struct { u16 a, b, c, d, e, f; } UAlign12_80182B74; -typedef struct { u16 a, b, c, d; } UAlign8_80182B74; void func_80182B74(s32 param_1) { @@ -5905,7 +5895,6 @@ INCLUDE_ASM("asm/ov_SC06_032/nonmatchings/ov_SC06_032_jr_8017C24C", func_8018603 // call -- that's what forces it into a callee-saved reg ($s1) instead of being recomputed as // `addiu $a0,$sp,0x10` at each use site. -typedef struct { s32 w[8]; } Blk20_8018AF88_80186160; extern s32 func_8012B8A4(s16 *a0); @@ -6016,10 +6005,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_80187180; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0x4 are @@ -8898,10 +8883,8 @@ INCLUDE_ASM("asm/ov_SC06_032/nonmatchings/ov_SC06_032_jr_8017C24C", func_8018EB0 // — declare fresh, matching the banked sibling's exact canonical shapes. // * func_8018EDB0 has no caller anywhere in src/ (INCLUDE_ASM stub only) — signature unconstrained. -typedef struct { u16 vx, vy, vz, pad; } SVEC_8018EDB0; /* u16 source vec -> lhu */ -typedef struct { s16 vx, vy, vz, pad; } SVECTOR_8018EDB0; /* 8 bytes, align 2 */ -typedef struct { u8 d[8]; } __attribute__((packed, aligned(1))) B8_8018EDB0; -typedef struct { u8 d[4]; } __attribute__((packed, aligned(1))) B4_8018EDB0; + /* u16 source vec -> lhu */ + /* 8 bytes, align 2 */ extern void func_80017254(void *a0); extern SVEC_8018EDB0 D_801CC7FC[]; diff --git a/src/ov_SC06_032/ov_SC06_032_o0c.c b/src/ov_SC06_032/ov_SC06_032_o0c.c index 3746379a0f..c0e13b7912 100644 --- a/src/ov_SC06_032/ov_SC06_032_o0c.c +++ b/src/ov_SC06_032/ov_SC06_032_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801D1048[]; D_801D1048[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801D1048[]; D_801D1048[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801D1048[]; D_801D1048[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801D1100; extern s32 D_801D1164; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801D1048"); extern s32 D_801D10E4; extern s32 D_801D10E8; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC06_033/ov_SC06_033.c b/src/ov_SC06_033/ov_SC06_033.c index 26c262fe30..3a3276925d 100644 --- a/src/ov_SC06_033/ov_SC06_033.c +++ b/src/ov_SC06_033/ov_SC06_033.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC06_033/ov_SC06_033_after.c b/src/ov_SC06_033/ov_SC06_033_after.c index dc4c7ff66f..078108817c 100644 --- a/src/ov_SC06_033/ov_SC06_033_after.c +++ b/src/ov_SC06_033/ov_SC06_033_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC06_033/ov_SC06_033_jr_8012ACE0.c b/src/ov_SC06_033/ov_SC06_033_jr_8012ACE0.c index e0a843d6e0..b896fb1616 100644 --- a/src/ov_SC06_033/ov_SC06_033_jr_8012ACE0.c +++ b/src/ov_SC06_033/ov_SC06_033_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC06_033/ov_SC06_033_jr_801380E0.c b/src/ov_SC06_033/ov_SC06_033_jr_801380E0.c index d5e6e3f653..8004ad799f 100644 --- a/src/ov_SC06_033/ov_SC06_033_jr_801380E0.c +++ b/src/ov_SC06_033/ov_SC06_033_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80191E04[]; u16 t; u8 b; diff --git a/src/ov_SC06_033/ov_SC06_033_jr_80140608.c b/src/ov_SC06_033/ov_SC06_033_jr_80140608.c index 88d488bc15..f7f4582362 100644 --- a/src/ov_SC06_033/ov_SC06_033_jr_80140608.c +++ b/src/ov_SC06_033/ov_SC06_033_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80192BC4[]; extern u16 D_801926D4; extern u16 D_801926D6; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC06_033/ov_SC06_033_jr_8016AB6C.c b/src/ov_SC06_033/ov_SC06_033_jr_8016AB6C.c index 08954f086e..82d1f62151 100644 --- a/src/ov_SC06_033/ov_SC06_033_jr_8016AB6C.c +++ b/src/ov_SC06_033/ov_SC06_033_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC06_033/ov_SC06_033_jr_801734BC.c b/src/ov_SC06_033/ov_SC06_033_jr_801734BC.c index db1fc773ef..fab60b67aa 100644 --- a/src/ov_SC06_033/ov_SC06_033_jr_801734BC.c +++ b/src/ov_SC06_033/ov_SC06_033_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC06_033/ov_SC06_033_jr_8017C24C.c b/src/ov_SC06_033/ov_SC06_033_jr_8017C24C.c index c06d7449a1..4481d7c7bb 100644 --- a/src/ov_SC06_033/ov_SC06_033_jr_8017C24C.c +++ b/src/ov_SC06_033/ov_SC06_033_jr_8017C24C.c @@ -6119,14 +6119,6 @@ INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033_jr_8017C24C", func_8018425 INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033_jr_8017C24C", func_801843CC); -typedef struct { - u8 pad0[6]; - u16 f6; /* 0x06 -> D_80126B5E */ - u8 pad8[2]; - u16 fa; /* 0x0A -> D_80126B62 */ - u8 padc[2]; - u16 fe; /* 0x0E -> D_80126B66 */ -} StructB58_80184414; /* holds a pointer value */ @@ -6432,8 +6424,6 @@ extern void func_8012C218(void *a0); extern void func_8012E8A8(u8 *a0); /* §48-C2: lwl/lwr/swl/swr block copy == a plain struct assign of a 2-byte-aligned struct */ -typedef struct { u16 a, b, c, d, e, f; } UAlign12_80186858; -typedef struct { u16 a, b, c, d; } UAlign8_80186858; void func_80186858(s32 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 f3e146f322..82e43af7b0 100644 --- a/src/ov_SC06_033/ov_SC06_033_o0c.c +++ b/src/ov_SC06_033/ov_SC06_033_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801D0EC8[]; D_801D0EC8[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801D0EC8[]; D_801D0EC8[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801D0EC8[]; D_801D0EC8[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801D0F80; extern s32 D_801D0FE4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801D0EC8"); extern s32 D_801D0F64; extern s32 D_801D0F68; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC07_000/ov_SC07_000.c b/src/ov_SC07_000/ov_SC07_000.c index cbadccc721..3a4d5a8eda 100644 --- a/src/ov_SC07_000/ov_SC07_000.c +++ b/src/ov_SC07_000/ov_SC07_000.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC07_000/ov_SC07_000_after.c b/src/ov_SC07_000/ov_SC07_000_after.c index 71a5a789ba..58bf48c3c6 100644 --- a/src/ov_SC07_000/ov_SC07_000_after.c +++ b/src/ov_SC07_000/ov_SC07_000_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC07_000/ov_SC07_000_jr_8012ACE0.c b/src/ov_SC07_000/ov_SC07_000_jr_8012ACE0.c index baffc7955f..59637dfb22 100644 --- a/src/ov_SC07_000/ov_SC07_000_jr_8012ACE0.c +++ b/src/ov_SC07_000/ov_SC07_000_jr_8012ACE0.c @@ -342,10 +342,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -591,7 +587,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2448,7 +2443,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2612,7 +2606,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC07_000/ov_SC07_000_jr_801380E0.c b/src/ov_SC07_000/ov_SC07_000_jr_801380E0.c index bf8ba1c322..e80ffb6ed2 100644 --- a/src/ov_SC07_000/ov_SC07_000_jr_801380E0.c +++ b/src/ov_SC07_000/ov_SC07_000_jr_801380E0.c @@ -1048,12 +1048,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80182C4C[]; u16 t; u8 b; diff --git a/src/ov_SC07_000/ov_SC07_000_jr_80140608.c b/src/ov_SC07_000/ov_SC07_000_jr_80140608.c index d7e87e2e40..95755f291e 100644 --- a/src/ov_SC07_000/ov_SC07_000_jr_80140608.c +++ b/src/ov_SC07_000/ov_SC07_000_jr_80140608.c @@ -1111,11 +1111,6 @@ s16 n; extern s16 D_80183A0C[]; extern u16 D_8018351C; extern u16 D_8018351E; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1254,13 +1249,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2587,7 +2578,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC07_000/ov_SC07_000_jr_8016AB6C.c b/src/ov_SC07_000/ov_SC07_000_jr_8016AB6C.c index 82a9352c2a..04ca7a1bc2 100644 --- a/src/ov_SC07_000/ov_SC07_000_jr_8016AB6C.c +++ b/src/ov_SC07_000/ov_SC07_000_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC07_000/ov_SC07_000_jr_801734BC.c b/src/ov_SC07_000/ov_SC07_000_jr_801734BC.c index 805a3111f3..5ecca91bc7 100644 --- a/src/ov_SC07_000/ov_SC07_000_jr_801734BC.c +++ b/src/ov_SC07_000/ov_SC07_000_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC07_000/nonmatchings/ov_SC07_000_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC07_000/ov_SC07_000_jr_8017BEBC.c b/src/ov_SC07_000/ov_SC07_000_jr_8017BEBC.c index b0025288f6..4dc97bf233 100644 --- a/src/ov_SC07_000/ov_SC07_000_jr_8017BEBC.c +++ b/src/ov_SC07_000/ov_SC07_000_jr_8017BEBC.c @@ -4122,12 +4122,6 @@ void func_80181790(void) { * puts $s1's zero-init first, which is the target order. */ -typedef struct { - s16 unk0; - s16 unk2; - s16 unk4; - s16 unk6; -} Rec_8018A6A4_801817B4; extern void func_80181854(s32 arg0, s32 arg1, s32 arg2); extern void func_80181970(s32 arg0, Rec_8018A6A4_801817B4 *arg1, s32 arg2, s32 arg3); @@ -4248,7 +4242,7 @@ void aF8018A860(s32 a0, s16 *a1, u8 *a2, u8 *a3) { extern s16 D_801D0A84; /* TU L3637 / L3671, verbatim */ - typedef struct { u8 b0, b1, b2, b3; } B4_80181970; /* align 1 — §48-C2 */ + /* align 1 — §48-C2 */ s16 *s1; u16 temp_u16; s16 temp_s16; @@ -4490,7 +4484,7 @@ void func_80181ACC(void) { void func_80181BA8(s32 arg0) { - typedef struct { s32 w[8]; } Blk32_8018AA98_80181BA8; /* 32 bytes, align 4 */ + /* 32 bytes, align 4 */ extern Blk32_8018AA98_80181BA8 D_800AE620; extern s32 D_800A5E60; @@ -4639,7 +4633,6 @@ extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3); extern void func_80181F40(void *arg0, void *arg1, s32 arg2, s32 arg3); void func_80181EB8(s32 a0) { - typedef struct { u8 a, b, c, d; } V4_80181EB8; extern u8 D_800AF648; extern V4_80181EB8 D_801CE7A8; u16 sxy[4]; @@ -4771,14 +4764,6 @@ void aF8018AFD0(s32 a0, s32 a1, s32 a2) __asm__("func_801820E0"); void aF8018AFD0(s32 a0, s32 a1, s32 a2) { - typedef struct { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ - } P_801820E0; extern s16 D_801D097C; extern s16 D_801D0976[]; @@ -4947,21 +4932,11 @@ extern void func_80016638(void *a0, s32 a1, s32 a2); /* 0x10-byte-stride record table at D_801D097C (same table as func_8018AD5C) */ -typedef struct { - u16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s16 f8; /* 0x08 */ - u16 fA; /* 0x0A */ - s16 fC; /* 0x0C */ - u16 fE; /* 0x0E */ -} Rec_8018B23C_8018234C; -typedef struct { s32 w[8]; } Mat32_8018B23C_8018234C; /* the 0x20-byte matrix */ -typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_8018234C; /* == engine_types.h OtBlk */ -typedef struct { u16 f; } Bidx_8018B23C_8018234C; /* the D_800B9A02 buffer index */ -typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_8018234C; /* libgpu P_TAG */ + /* the 0x20-byte matrix */ + /* == engine_types.h OtBlk */ + /* the D_800B9A02 buffer index */ + /* libgpu P_TAG */ void func_8018234C(s32 a0) { diff --git a/src/ov_SC07_000/ov_SC07_000_o0c.c b/src/ov_SC07_000/ov_SC07_000_o0c.c index 4cef949d36..9f10ee2d24 100644 --- a/src/ov_SC07_000/ov_SC07_000_o0c.c +++ b/src/ov_SC07_000/ov_SC07_000_o0c.c @@ -784,8 +784,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801D0BC0[]; D_801D0BC0[a0].f0 = 1; @@ -800,20 +798,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801D0BC0[]; D_801D0BC0[idx].f0 = 1; @@ -824,7 +808,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801D0BC0[]; D_801D0BC0[a0].f0 = 0; } @@ -843,16 +827,7 @@ extern s32 D_801D0C78; extern s32 D_801D0CDC; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801D0BC0"); extern s32 D_801D0C5C; extern s32 D_801D0C60; @@ -942,7 +917,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -989,17 +963,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1065,11 +1028,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC07_001/ov_SC07_001.c b/src/ov_SC07_001/ov_SC07_001.c index 677f23e973..15f13dba0c 100644 --- a/src/ov_SC07_001/ov_SC07_001.c +++ b/src/ov_SC07_001/ov_SC07_001.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC07_001/ov_SC07_001_after.c b/src/ov_SC07_001/ov_SC07_001_after.c index 5bab6eb139..068ebcbc28 100644 --- a/src/ov_SC07_001/ov_SC07_001_after.c +++ b/src/ov_SC07_001/ov_SC07_001_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC07_001/ov_SC07_001_jr_8012ACE0.c b/src/ov_SC07_001/ov_SC07_001_jr_8012ACE0.c index 1c602c06b6..163ef30792 100644 --- a/src/ov_SC07_001/ov_SC07_001_jr_8012ACE0.c +++ b/src/ov_SC07_001/ov_SC07_001_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC07_001/ov_SC07_001_jr_801380E0.c b/src/ov_SC07_001/ov_SC07_001_jr_801380E0.c index 66dc1db368..8c9fdf1938 100644 --- a/src/ov_SC07_001/ov_SC07_001_jr_801380E0.c +++ b/src/ov_SC07_001/ov_SC07_001_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80181AFC[]; u16 t; u8 b; diff --git a/src/ov_SC07_001/ov_SC07_001_jr_80140608.c b/src/ov_SC07_001/ov_SC07_001_jr_80140608.c index ed403a6bf9..e85b1923c3 100644 --- a/src/ov_SC07_001/ov_SC07_001_jr_80140608.c +++ b/src/ov_SC07_001/ov_SC07_001_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_801828BC[]; extern u16 D_801823CC; extern u16 D_801823CE; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC07_001/ov_SC07_001_jr_8016AB6C.c b/src/ov_SC07_001/ov_SC07_001_jr_8016AB6C.c index 062b908e6f..58493fda75 100644 --- a/src/ov_SC07_001/ov_SC07_001_jr_8016AB6C.c +++ b/src/ov_SC07_001/ov_SC07_001_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC07_001/ov_SC07_001_jr_801734BC.c b/src/ov_SC07_001/ov_SC07_001_jr_801734BC.c index a22998628e..4e848430ac 100644 --- a/src/ov_SC07_001/ov_SC07_001_jr_801734BC.c +++ b/src/ov_SC07_001/ov_SC07_001_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC07_001/nonmatchings/ov_SC07_001_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC07_001/ov_SC07_001_jr_8017BEBC.c b/src/ov_SC07_001/ov_SC07_001_jr_8017BEBC.c index 1034ef92b4..a50f3b885b 100644 --- a/src/ov_SC07_001/ov_SC07_001_jr_8017BEBC.c +++ b/src/ov_SC07_001/ov_SC07_001_jr_8017BEBC.c @@ -3331,13 +3331,6 @@ INCLUDE_ASM("asm/ov_SC07_001/nonmatchings/ov_SC07_001_jr_8017BEBC", func_8017CD9 void func_8017CDF0(s32 a0, s32 a1, s32 a2) { - typedef struct { u32 w0, w1, w2; } Prim_8017CDF0; - typedef struct { s16 vx, vy; } DVECTOR2_8017CDF0; - typedef struct { s16 vx, vy, vz, pad; } SVECTOR2_8017CDF0; - typedef struct { s16 m[3][3]; s32 t[3]; } MATRIX2_8017CDF0; - typedef struct { u32 xx, yy, zz; u32 nprim; u32 *prim; } Part_8017CDF0; - typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PolyFT3_8017CDF0; - typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PolyFT4_8017CDF0; extern s32 func_800491EC(void); extern void func_800547D8(s32, MATRIX2_8017CDF0 *); diff --git a/src/ov_SC07_001/ov_SC07_001_o0c.c b/src/ov_SC07_001/ov_SC07_001_o0c.c index 6ce335859f..956f0d7ecc 100644 --- a/src/ov_SC07_001/ov_SC07_001_o0c.c +++ b/src/ov_SC07_001/ov_SC07_001_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801AADE8[]; D_801AADE8[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801AADE8[]; D_801AADE8[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801AADE8[]; D_801AADE8[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801AAEA0; extern s32 D_801AAF04; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801AADE8"); extern s32 D_801AAE84; extern s32 D_801AAE88; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC07_002/ov_SC07_002.c b/src/ov_SC07_002/ov_SC07_002.c index f199c9e5ed..325dcac8e5 100644 --- a/src/ov_SC07_002/ov_SC07_002.c +++ b/src/ov_SC07_002/ov_SC07_002.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC07_002/ov_SC07_002_after.c b/src/ov_SC07_002/ov_SC07_002_after.c index c19db77cde..442430aa83 100644 --- a/src/ov_SC07_002/ov_SC07_002_after.c +++ b/src/ov_SC07_002/ov_SC07_002_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC07_002/ov_SC07_002_jr_8012ACE0.c b/src/ov_SC07_002/ov_SC07_002_jr_8012ACE0.c index 01d7719c9c..7f82b1b9be 100644 --- a/src/ov_SC07_002/ov_SC07_002_jr_8012ACE0.c +++ b/src/ov_SC07_002/ov_SC07_002_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC07_002/ov_SC07_002_jr_801380E0.c b/src/ov_SC07_002/ov_SC07_002_jr_801380E0.c index 3a6661662e..9741e87099 100644 --- a/src/ov_SC07_002/ov_SC07_002_jr_801380E0.c +++ b/src/ov_SC07_002/ov_SC07_002_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80186DB8[]; u16 t; u8 b; diff --git a/src/ov_SC07_002/ov_SC07_002_jr_80140608.c b/src/ov_SC07_002/ov_SC07_002_jr_80140608.c index 5df2c197ec..ff5b132fdb 100644 --- a/src/ov_SC07_002/ov_SC07_002_jr_80140608.c +++ b/src/ov_SC07_002/ov_SC07_002_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_80187B78[]; extern u16 D_80187688; extern u16 D_8018768A; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC07_002/ov_SC07_002_jr_8016AB6C.c b/src/ov_SC07_002/ov_SC07_002_jr_8016AB6C.c index b85e83a162..315b1bf06e 100644 --- a/src/ov_SC07_002/ov_SC07_002_jr_8016AB6C.c +++ b/src/ov_SC07_002/ov_SC07_002_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC07_002/ov_SC07_002_jr_801734BC.c b/src/ov_SC07_002/ov_SC07_002_jr_801734BC.c index 43498fcfb5..8a35fff195 100644 --- a/src/ov_SC07_002/ov_SC07_002_jr_801734BC.c +++ b/src/ov_SC07_002/ov_SC07_002_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC07_002/ov_SC07_002_jr_8017AE2C.c b/src/ov_SC07_002/ov_SC07_002_jr_8017AE2C.c index 60b781e6e4..b1fb4b20ff 100644 --- a/src/ov_SC07_002/ov_SC07_002_jr_8017AE2C.c +++ b/src/ov_SC07_002/ov_SC07_002_jr_8017AE2C.c @@ -3335,17 +3335,6 @@ extern void func_8017BF34(s32 arg0, s32 arg1, s32 arg2, s32 arg3); extern s32 func_8012C750(s32 a0); -typedef struct { - s16 unk00; - s16 unk02; - s16 unk04; - s16 unk06; - s16 unk08; - s16 unk0A; - s16 unk0C; - s16 unk0E; - s32 unk10; -} Buf8017BF34_8017BF34; void func_8017BF34(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { diff --git a/src/ov_SC07_002/ov_SC07_002_jr_8017C8D0.c b/src/ov_SC07_002/ov_SC07_002_jr_8017C8D0.c index b2fa1051ea..9fbc7039c5 100644 --- a/src/ov_SC07_002/ov_SC07_002_jr_8017C8D0.c +++ b/src/ov_SC07_002/ov_SC07_002_jr_8017C8D0.c @@ -3216,17 +3216,8 @@ extern s32 func_80017DC4(void *a0, void *a1); extern s32 func_80017E30(void *a0, void *a1); extern void func_80016ED4(void *a0); -typedef struct { short vx, vy, vz, pad; } SVECTOR_8017F40C_8017E97C; -typedef struct { - SVECTOR_8017F40C_8017E97C v[4]; /* 0x00 */ - s16 k30, k32, k34, k36, k38, k3a, k3c, k3e; /* 0x20 */ - u32 bcast; /* 0x30 */ - s32 tag; /* 0x34 */ - u8 code; /* 0x38 */ - u8 pad39[7]; /* -> 0x40 */ -} Prim_8017F40C_8017E97C; void func_8017E97C(s32 a0, s32 a1) { @@ -3867,12 +3858,6 @@ void func_80184594(void) { * puts $s1's zero-init first, which is the target order. */ -typedef struct { - s16 unk0; - s16 unk2; - s16 unk4; - s16 unk6; -} Rec_8018A6A4_801845B8; extern void func_80184658(s32 arg0, s32 arg1, s32 arg2); extern void func_80184774(s32 arg0, Rec_8018A6A4_801845B8 *arg1, s32 arg2, s32 arg3); @@ -3993,7 +3978,7 @@ void aF8018A860(s32 a0, s16 *a1, u8 *a2, u8 *a3) { extern s16 D_8019FE84; /* TU L3637 / L3671, verbatim */ - typedef struct { u8 b0, b1, b2, b3; } B4_80184774; /* align 1 — §48-C2 */ + /* align 1 — §48-C2 */ s16 *s1; u16 temp_u16; s16 temp_s16; @@ -4235,7 +4220,7 @@ void func_801848D0(void) { void func_801849AC(s32 arg0) { - typedef struct { s32 w[8]; } Blk32_8018AA98_801849AC; /* 32 bytes, align 4 */ + /* 32 bytes, align 4 */ extern Blk32_8018AA98_801849AC D_800AE620; extern s32 D_800A5E60; @@ -4384,7 +4369,6 @@ extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3); extern void func_80184D44(void *arg0, void *arg1, s32 arg2, s32 arg3); void func_80184CBC(s32 a0) { - typedef struct { u8 a, b, c, d; } V4_80184CBC; extern u8 D_800AF648; extern V4_80184CBC D_8019A3A8; u16 sxy[4]; @@ -4516,14 +4500,6 @@ void aF8018AFD0(s32 a0, s32 a1, s32 a2) __asm__("func_80184EE4"); void aF8018AFD0(s32 a0, s32 a1, s32 a2) { - typedef struct { - s16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s32 f8; /* 0x08 */ - s32 fC; /* 0x0C */ - } P_80184EE4; extern s16 D_8019FD7C; extern s16 D_8019FD76[]; @@ -4692,21 +4668,11 @@ extern void func_80016638(void *a0, s32 a1, s32 a2); /* 0x10-byte-stride record table at D_8019FD7C (same table as func_8018AD5C) */ -typedef struct { - u16 f0; /* 0x00 */ - s16 f2; /* 0x02 */ - s16 f4; /* 0x04 */ - s16 f6; /* 0x06 */ - s16 f8; /* 0x08 */ - u16 fA; /* 0x0A */ - s16 fC; /* 0x0C */ - u16 fE; /* 0x0E */ -} Rec_8018B23C_80185150; -typedef struct { s32 w[8]; } Mat32_8018B23C_80185150; /* the 0x20-byte matrix */ -typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_80185150; /* == engine_types.h OtBlk */ -typedef struct { u16 f; } Bidx_8018B23C_80185150; /* the D_800B9A02 buffer index */ -typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_80185150; /* libgpu P_TAG */ + /* the 0x20-byte matrix */ + /* == engine_types.h OtBlk */ + /* the D_800B9A02 buffer index */ + /* libgpu P_TAG */ void func_80185150(s32 a0) { @@ -5120,12 +5086,6 @@ void func_80186458(void *a0) { -typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; -} EffectSlot4_80186494; extern void func_801465C0(void); extern void func_80146C3C(void); diff --git a/src/ov_SC07_002/ov_SC07_002_o0c.c b/src/ov_SC07_002/ov_SC07_002_o0c.c index 48ce282014..4ef0cd01ab 100644 --- a/src/ov_SC07_002/ov_SC07_002_o0c.c +++ b/src/ov_SC07_002/ov_SC07_002_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_8019FFB0[]; D_8019FFB0[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_8019FFB0[]; D_8019FFB0[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_8019FFB0[]; D_8019FFB0[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801A0068; extern s32 D_801A00CC; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_8019FFB0"); extern s32 D_801A004C; extern s32 D_801A0050; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC07_006/ov_SC07_006.c b/src/ov_SC07_006/ov_SC07_006.c index 1c0bb700e9..a608b63d39 100644 --- a/src/ov_SC07_006/ov_SC07_006.c +++ b/src/ov_SC07_006/ov_SC07_006.c @@ -412,10 +412,6 @@ DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128c14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -813,12 +809,6 @@ void func_8012A328(void) extern s32 D_80126B58; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; @@ -1133,10 +1123,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -1456,7 +1442,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; diff --git a/src/ov_SC07_006/ov_SC07_006_jr_80131340.c b/src/ov_SC07_006/ov_SC07_006_jr_80131340.c index f79c7aba94..9d08ceba3e 100644 --- a/src/ov_SC07_006/ov_SC07_006_jr_80131340.c +++ b/src/ov_SC07_006/ov_SC07_006_jr_80131340.c @@ -1353,7 +1353,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -1517,7 +1516,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC07_006/ov_SC07_006_jr_801380E0.c b/src/ov_SC07_006/ov_SC07_006_jr_801380E0.c index 66f0ada41a..3e3f8458c5 100644 --- a/src/ov_SC07_006/ov_SC07_006_jr_801380E0.c +++ b/src/ov_SC07_006/ov_SC07_006_jr_801380E0.c @@ -1073,12 +1073,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8018A9DC[]; u16 t; u8 b; diff --git a/src/ov_SC07_006/ov_SC07_006_jr_80140608.c b/src/ov_SC07_006/ov_SC07_006_jr_80140608.c index 4302e74ce6..5fbced725d 100644 --- a/src/ov_SC07_006/ov_SC07_006_jr_80140608.c +++ b/src/ov_SC07_006/ov_SC07_006_jr_80140608.c @@ -988,11 +988,6 @@ s16 n; extern s16 D_8018B79C[]; extern u16 D_8018B2AC; extern u16 D_8018B2AE; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1131,13 +1126,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2689,7 +2680,6 @@ extern unsigned short D_80126B5E; extern unsigned short D_80126B62; extern unsigned short D_80126B66; -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { @@ -2983,7 +2973,7 @@ void func_80146360(void) */ #include "common.h" -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(u8*); extern void func_80155150(s32 a0); @@ -4286,21 +4276,6 @@ DEFINE_func_8014A71C() /* dedup: shared engine-core @0x8014a71c (src/shared) */ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -4587,7 +4562,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -4664,7 +4639,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014c6e0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -5364,17 +5338,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC07_006/ov_SC07_006_jr_8015444C.c b/src/ov_SC07_006/ov_SC07_006_jr_8015444C.c index 8d105f064f..ff4d7a8428 100644 --- a/src/ov_SC07_006/ov_SC07_006_jr_8015444C.c +++ b/src/ov_SC07_006/ov_SC07_006_jr_8015444C.c @@ -6,9 +6,7 @@ * file-local types, col-0 decls, DEFINE_func macro externs, and each earlier * definition's implied prototype (types first, then decls in original order). * Decls emit no code => byte-neutral. See cookbook §8c. */ -typedef struct { short vx, vy, vz, pad; } Vec; -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ -typedef struct { char _b[8]; } M8_8014C6F4; + /* size 8, align 1 -> unaligned block move */ extern void func_80128288(void); extern void func_80128158(void); extern void func_801285E4(void); diff --git a/src/ov_SC07_006/ov_SC07_006_jr_8016AE5C.c b/src/ov_SC07_006/ov_SC07_006_jr_8016AE5C.c index a8223b8244..714f949b66 100644 --- a/src/ov_SC07_006/ov_SC07_006_jr_8016AE5C.c +++ b/src/ov_SC07_006/ov_SC07_006_jr_8016AE5C.c @@ -4400,12 +4400,6 @@ extern s32 func_80017DC4(void *a0, void *a1); /* 0x08 */ /* 0x20 */ -typedef struct { - SVECTOR v[4]; /* 0x00 */ - s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */ - u8 f6; /* 0x38 */ - u8 pad[7]; /* -> 0x40 */ -} Prim_8016E7C8_8016E7C8; void func_8016E7C8(int param_1, short *param_2, unsigned int *param_3) @@ -4627,22 +4621,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC07_006/ov_SC07_006_jr_80171B4C.c b/src/ov_SC07_006/ov_SC07_006_jr_80171B4C.c index 37db9237c1..b634aa7509 100644 --- a/src/ov_SC07_006/ov_SC07_006_jr_80171B4C.c +++ b/src/ov_SC07_006/ov_SC07_006_jr_80171B4C.c @@ -4028,8 +4028,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757e0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -4073,8 +4073,8 @@ INCLUDE_ASM("asm/ov_SC07_006/nonmatchings/ov_SC07_006_jr_80171B4C", func_801758F extern u8 D_8011F7B1; extern s16 D_800B9A02; -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ extern S_AE7BC D_800AE7BC[]; extern S_AF634 D_800AF634[]; @@ -4117,7 +4117,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF638[]; extern u8 D_8011F7F0; @@ -4226,14 +4226,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; diff --git a/src/ov_SC07_006/ov_SC07_006_jr_801789AC.c b/src/ov_SC07_006/ov_SC07_006_jr_801789AC.c index d65e69cba3..07de4caeb7 100644 --- a/src/ov_SC07_006/ov_SC07_006_jr_801789AC.c +++ b/src/ov_SC07_006/ov_SC07_006_jr_801789AC.c @@ -6,8 +6,8 @@ * file-local types, col-0 decls, DEFINE_func macro externs, and each earlier * definition's implied prototype (types first, then decls in original order). * Decls emit no code => byte-neutral. See cookbook §8c. */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ extern void func_80128288(void); extern void func_80128158(void); extern void func_801285E4(void); diff --git a/src/ov_SC07_006/ov_SC07_006_jr_80179B74.c b/src/ov_SC07_006/ov_SC07_006_jr_80179B74.c index 663319f428..03d452222b 100644 --- a/src/ov_SC07_006/ov_SC07_006_jr_80179B74.c +++ b/src/ov_SC07_006/ov_SC07_006_jr_80179B74.c @@ -6,8 +6,8 @@ * file-local types, col-0 decls, DEFINE_func macro externs, and each earlier * definition's implied prototype (types first, then decls in original order). * Decls emit no code => byte-neutral. See cookbook §8c. */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ extern void func_80128288(void); extern void func_80128158(void); extern void func_801285E4(void); diff --git a/src/ov_SC07_006/ov_SC07_006_jr_8017BEBC.c b/src/ov_SC07_006/ov_SC07_006_jr_8017BEBC.c index 44bdd1a88e..a8e7609983 100644 --- a/src/ov_SC07_006/ov_SC07_006_jr_8017BEBC.c +++ b/src/ov_SC07_006/ov_SC07_006_jr_8017BEBC.c @@ -3779,9 +3779,6 @@ void func_8017D0F4(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D130; extern u16 func_80148800(s32 *a0); extern void func_8017D4E4(s32 param_1, s16 *param_2); @@ -3944,13 +3941,6 @@ INCLUDE_ASM("asm/ov_SC07_006/nonmatchings/ov_SC07_006_jr_8017BEBC", func_8017DA3 * otherwise : the vertex block is INLINE and `dst` is a byte count; the data * starts at ((u32 *)&o->dst)[o->dst >> 2]. * `n` (+0x10) is the vertex count either way. */ -typedef struct { - s32 unk0; /* 0x00 */ - s32 mode; /* 0x04 */ - s32 unk8; /* 0x08 */ - u32 dst; /* 0x0C */ - s32 n; /* 0x10 */ -} Morph_8017DC1C; /* ---- per-overlay globals (ov_SC07_006 tail.data) ------------------------- * * Every one of these is an initialised POINTER word in asm/ov_SC07_006/data/ diff --git a/src/ov_SC07_006/ov_SC07_006_o0c.c b/src/ov_SC07_006/ov_SC07_006_o0c.c index 570611b7f3..301cbccf63 100644 --- a/src/ov_SC07_006/ov_SC07_006_o0c.c +++ b/src/ov_SC07_006/ov_SC07_006_o0c.c @@ -727,8 +727,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801F6248[]; D_801F6248[a0].f0 = 1; @@ -743,20 +741,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801F6248[]; D_801F6248[idx].f0 = 1; @@ -767,7 +751,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801F6248[]; D_801F6248[a0].f0 = 0; } @@ -786,16 +770,7 @@ extern s32 D_801F6300; extern s32 D_801F6364; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801F6248"); extern s32 D_801F62E4; extern s32 D_801F62E8; @@ -885,7 +860,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -932,17 +906,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1008,11 +971,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC07_007/ov_SC07_007.c b/src/ov_SC07_007/ov_SC07_007.c index 0edc40e18e..c3c06fa569 100644 --- a/src/ov_SC07_007/ov_SC07_007.c +++ b/src/ov_SC07_007/ov_SC07_007.c @@ -412,10 +412,6 @@ DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128c14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -823,12 +819,6 @@ void func_8012A328(void) extern s32 D_80126B58; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; @@ -1121,10 +1111,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -1414,7 +1400,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; diff --git a/src/ov_SC07_007/ov_SC07_007_jr_80131340.c b/src/ov_SC07_007/ov_SC07_007_jr_80131340.c index 1044215096..e32d6a989e 100644 --- a/src/ov_SC07_007/ov_SC07_007_jr_80131340.c +++ b/src/ov_SC07_007/ov_SC07_007_jr_80131340.c @@ -1350,7 +1350,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -1514,7 +1513,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC07_007/ov_SC07_007_jr_80135D20.c b/src/ov_SC07_007/ov_SC07_007_jr_80135D20.c index 3e37fbd491..22b79e306b 100644 --- a/src/ov_SC07_007/ov_SC07_007_jr_80135D20.c +++ b/src/ov_SC07_007/ov_SC07_007_jr_80135D20.c @@ -1526,12 +1526,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80183500[]; u16 t; u8 b; diff --git a/src/ov_SC07_007/ov_SC07_007_jr_80140608.c b/src/ov_SC07_007/ov_SC07_007_jr_80140608.c index 31fad6785a..784fba01f1 100644 --- a/src/ov_SC07_007/ov_SC07_007_jr_80140608.c +++ b/src/ov_SC07_007/ov_SC07_007_jr_80140608.c @@ -981,11 +981,6 @@ s16 n; extern s16 D_801842C0[]; extern u16 D_80183DD0; extern u16 D_80183DD2; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1124,13 +1119,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2672,7 +2663,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144aec (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { @@ -2943,7 +2933,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -4240,21 +4230,6 @@ s32 func_8014A738(void *arg0) { LATER function in this TU, which blocks a byte-true decl of a different type. Declaration-only move (cookbook §103); the whole-binary byte-gate is the arbiter. */ extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -4541,7 +4516,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -4620,7 +4595,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014c6e0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -5217,17 +5191,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC07_007/ov_SC07_007_jr_8015444C.c b/src/ov_SC07_007/ov_SC07_007_jr_8015444C.c index c9b64f5e10..82b94caabe 100644 --- a/src/ov_SC07_007/ov_SC07_007_jr_8015444C.c +++ b/src/ov_SC07_007/ov_SC07_007_jr_8015444C.c @@ -6,9 +6,7 @@ * file-local types, col-0 decls, DEFINE_func macro externs, and each earlier * definition's implied prototype (types first, then decls in original order). * Decls emit no code => byte-neutral. See cookbook §8c. */ -typedef struct { short vx, vy, vz, pad; } Vec; -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ -typedef struct { char _b[8]; } M8_8014C6F4; + /* size 8, align 1 -> unaligned block move */ extern void func_80128288(void); extern void func_80128158(void); extern void func_801285E4(void); diff --git a/src/ov_SC07_007/ov_SC07_007_jr_8016AE5C.c b/src/ov_SC07_007/ov_SC07_007_jr_8016AE5C.c index a86082dc23..f8fdf1b309 100644 --- a/src/ov_SC07_007/ov_SC07_007_jr_8016AE5C.c +++ b/src/ov_SC07_007/ov_SC07_007_jr_8016AE5C.c @@ -4388,12 +4388,6 @@ extern s32 func_80017DC4(void *a0, void *a1); /* 0x08 */ /* 0x20 */ -typedef struct { - SVECTOR v[4]; /* 0x00 */ - s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */ - u8 f6; /* 0x38 */ - u8 pad[7]; /* -> 0x40 */ -} Prim_8016E7C8_8016E7C8; void func_8016E7C8(int param_1, short *param_2, unsigned int *param_3) @@ -4615,22 +4609,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC07_007/ov_SC07_007_jr_80171B4C.c b/src/ov_SC07_007/ov_SC07_007_jr_80171B4C.c index e12a9318ce..429a5ee8a9 100644 --- a/src/ov_SC07_007/ov_SC07_007_jr_80171B4C.c +++ b/src/ov_SC07_007/ov_SC07_007_jr_80171B4C.c @@ -3964,8 +3964,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757e0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -4004,8 +4004,8 @@ INCLUDE_ASM("asm/ov_SC07_007/nonmatchings/ov_SC07_007_jr_80171B4C", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -4050,7 +4050,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -4137,7 +4137,7 @@ void func_80175AB8(param_1) extern u8 D_800B9A13; -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -4160,14 +4160,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -4321,7 +4313,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC07_007/ov_SC07_007_o0c.c b/src/ov_SC07_007/ov_SC07_007_o0c.c index 76db1d5501..f46442be61 100644 --- a/src/ov_SC07_007/ov_SC07_007_o0c.c +++ b/src/ov_SC07_007/ov_SC07_007_o0c.c @@ -727,8 +727,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801C7A10[]; D_801C7A10[a0].f0 = 1; @@ -743,20 +741,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801C7A10[]; D_801C7A10[idx].f0 = 1; @@ -767,7 +751,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801C7A10[]; D_801C7A10[a0].f0 = 0; } @@ -786,16 +770,7 @@ extern s32 D_801C7AC8; extern s32 D_801C7B2C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801C7A10"); extern s32 D_801C7AAC; extern s32 D_801C7AB0; @@ -885,7 +860,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -932,17 +906,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1008,11 +971,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC07_008/ov_SC07_008.c b/src/ov_SC07_008/ov_SC07_008.c index ca8eeed956..c8353432e9 100644 --- a/src/ov_SC07_008/ov_SC07_008.c +++ b/src/ov_SC07_008/ov_SC07_008.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC07_008/ov_SC07_008_after.c b/src/ov_SC07_008/ov_SC07_008_after.c index b9c442d65b..2da3b59b0a 100644 --- a/src/ov_SC07_008/ov_SC07_008_after.c +++ b/src/ov_SC07_008/ov_SC07_008_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC07_008/ov_SC07_008_jr_8012ACE0.c b/src/ov_SC07_008/ov_SC07_008_jr_8012ACE0.c index 115cc6eb7e..141906d607 100644 --- a/src/ov_SC07_008/ov_SC07_008_jr_8012ACE0.c +++ b/src/ov_SC07_008/ov_SC07_008_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC07_008/ov_SC07_008_jr_801380E0.c b/src/ov_SC07_008/ov_SC07_008_jr_801380E0.c index b8ef51b397..3679e35f7d 100644 --- a/src/ov_SC07_008/ov_SC07_008_jr_801380E0.c +++ b/src/ov_SC07_008/ov_SC07_008_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017D8D0[]; u16 t; u8 b; diff --git a/src/ov_SC07_008/ov_SC07_008_jr_80140608.c b/src/ov_SC07_008/ov_SC07_008_jr_80140608.c index 642f06c08b..e1a4a2cae5 100644 --- a/src/ov_SC07_008/ov_SC07_008_jr_80140608.c +++ b/src/ov_SC07_008/ov_SC07_008_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8017E690[]; extern u16 D_8017E1A0; extern u16 D_8017E1A2; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC07_008/ov_SC07_008_jr_8016AB6C.c b/src/ov_SC07_008/ov_SC07_008_jr_8016AB6C.c index a3433343a9..763ffbbc05 100644 --- a/src/ov_SC07_008/ov_SC07_008_jr_8016AB6C.c +++ b/src/ov_SC07_008/ov_SC07_008_jr_8016AB6C.c @@ -3782,22 +3782,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC07_008/ov_SC07_008_jr_801734BC.c b/src/ov_SC07_008/ov_SC07_008_jr_801734BC.c index 313b4e2369..5c3f08f4d2 100644 --- a/src/ov_SC07_008/ov_SC07_008_jr_801734BC.c +++ b/src/ov_SC07_008/ov_SC07_008_jr_801734BC.c @@ -2857,8 +2857,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2898,8 +2898,8 @@ INCLUDE_ASM("asm/ov_SC07_008/nonmatchings/ov_SC07_008_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2945,7 +2945,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3031,7 +3031,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3055,14 +3055,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3216,7 +3208,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC07_008/ov_SC07_008_jr_8017BEBC.c b/src/ov_SC07_008/ov_SC07_008_jr_8017BEBC.c index 5068ef2cae..92da7c94f8 100644 --- a/src/ov_SC07_008/ov_SC07_008_jr_8017BEBC.c +++ b/src/ov_SC07_008/ov_SC07_008_jr_8017BEBC.c @@ -3290,9 +3290,6 @@ void func_8017D040(void *a0) { /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ -typedef struct { - s16 v[4]; -} Blk8_80126940_8017D07C; extern u16 func_80148800(s32 *a0); extern void func_8017D11C(s32 param_1, s16 *param_2); diff --git a/src/ov_SC07_008/ov_SC07_008_o0c.c b/src/ov_SC07_008/ov_SC07_008_o0c.c index afd78352e6..a2fcc8efd8 100644 --- a/src/ov_SC07_008/ov_SC07_008_o0c.c +++ b/src/ov_SC07_008/ov_SC07_008_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_80196620[]; D_80196620[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_80196620[]; D_80196620[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_80196620[]; D_80196620[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801966D8; extern s32 D_8019673C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_80196620"); extern s32 D_801966BC; extern s32 D_801966C0; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC07_009/ov_SC07_009.c b/src/ov_SC07_009/ov_SC07_009.c index 2d05c428ff..8771c8bfd6 100644 --- a/src/ov_SC07_009/ov_SC07_009.c +++ b/src/ov_SC07_009/ov_SC07_009.c @@ -388,10 +388,6 @@ void func_80128AF4(void) { DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -758,12 +754,6 @@ void func_8012A328(void) extern s16 D_80126944; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; diff --git a/src/ov_SC07_009/ov_SC07_009_after.c b/src/ov_SC07_009/ov_SC07_009_after.c index 1989e03ed8..6ae4355ce4 100644 --- a/src/ov_SC07_009/ov_SC07_009_after.c +++ b/src/ov_SC07_009/ov_SC07_009_after.c @@ -340,7 +340,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32); s32 func_8014A738(void *arg0) { extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -1447,7 +1432,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC07_009/ov_SC07_009_jr_8012ACE0.c b/src/ov_SC07_009/ov_SC07_009_jr_8012ACE0.c index 65e4d46ace..70f8b425a8 100644 --- a/src/ov_SC07_009/ov_SC07_009_jr_8012ACE0.c +++ b/src/ov_SC07_009/ov_SC07_009_jr_8012ACE0.c @@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -589,7 +585,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; @@ -2446,7 +2441,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -2610,7 +2604,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC07_009/ov_SC07_009_jr_801380E0.c b/src/ov_SC07_009/ov_SC07_009_jr_801380E0.c index 4712f3105f..a2819fb6c7 100644 --- a/src/ov_SC07_009/ov_SC07_009_jr_801380E0.c +++ b/src/ov_SC07_009/ov_SC07_009_jr_801380E0.c @@ -1053,12 +1053,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017E374[]; u16 t; u8 b; diff --git a/src/ov_SC07_009/ov_SC07_009_jr_80140608.c b/src/ov_SC07_009/ov_SC07_009_jr_80140608.c index e6fd9cd40b..b27dd904bf 100644 --- a/src/ov_SC07_009/ov_SC07_009_jr_80140608.c +++ b/src/ov_SC07_009/ov_SC07_009_jr_80140608.c @@ -1109,11 +1109,6 @@ s16 n; extern s16 D_8017F134[]; extern u16 D_8017EC44; extern u16 D_8017EC46; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1252,13 +1247,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2585,7 +2576,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { diff --git a/src/ov_SC07_009/ov_SC07_009_jr_8016AB6C.c b/src/ov_SC07_009/ov_SC07_009_jr_8016AB6C.c index d0afe4f483..07ed0243fa 100644 --- a/src/ov_SC07_009/ov_SC07_009_jr_8016AB6C.c +++ b/src/ov_SC07_009/ov_SC07_009_jr_8016AB6C.c @@ -3783,22 +3783,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC07_009/ov_SC07_009_jr_801734BC.c b/src/ov_SC07_009/ov_SC07_009_jr_801734BC.c index 66cf0d4fae..3733032391 100644 --- a/src/ov_SC07_009/ov_SC07_009_jr_801734BC.c +++ b/src/ov_SC07_009/ov_SC07_009_jr_801734BC.c @@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC07_009/nonmatchings/ov_SC07_009_jr_801734BC", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -2946,7 +2946,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3032,7 +3032,7 @@ void func_80175AB8(param_1) -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3056,14 +3056,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3217,7 +3209,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC07_009/ov_SC07_009_o0c.c b/src/ov_SC07_009/ov_SC07_009_o0c.c index 274b30c87a..8f4a7576ef 100644 --- a/src/ov_SC07_009/ov_SC07_009_o0c.c +++ b/src/ov_SC07_009/ov_SC07_009_o0c.c @@ -782,8 +782,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801A3CB0[]; D_801A3CB0[a0].f0 = 1; @@ -798,20 +796,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801A3CB0[]; D_801A3CB0[idx].f0 = 1; @@ -822,7 +806,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801A3CB0[]; D_801A3CB0[a0].f0 = 0; } @@ -841,16 +825,7 @@ extern s32 D_801A3D68; extern s32 D_801A3DCC; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801A3CB0"); extern s32 D_801A3D4C; extern s32 D_801A3D50; @@ -940,7 +915,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -987,17 +961,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1063,11 +1026,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC07_010/ov_SC07_010.c b/src/ov_SC07_010/ov_SC07_010.c index c96c082eb7..4ad89612d9 100644 --- a/src/ov_SC07_010/ov_SC07_010.c +++ b/src/ov_SC07_010/ov_SC07_010.c @@ -412,10 +412,6 @@ DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128c14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -823,12 +819,6 @@ void func_8012A328(void) extern s32 D_80126B58; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; @@ -1121,10 +1111,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -1414,7 +1400,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; diff --git a/src/ov_SC07_010/ov_SC07_010_jr_80131340.c b/src/ov_SC07_010/ov_SC07_010_jr_80131340.c index 469d2fe662..f7d3a5d102 100644 --- a/src/ov_SC07_010/ov_SC07_010_jr_80131340.c +++ b/src/ov_SC07_010/ov_SC07_010_jr_80131340.c @@ -1355,7 +1355,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -1519,7 +1518,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC07_010/ov_SC07_010_jr_80135D20.c b/src/ov_SC07_010/ov_SC07_010_jr_80135D20.c index d03acb6896..e313e07de3 100644 --- a/src/ov_SC07_010/ov_SC07_010_jr_80135D20.c +++ b/src/ov_SC07_010/ov_SC07_010_jr_80135D20.c @@ -1531,12 +1531,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_80182590[]; u16 t; u8 b; diff --git a/src/ov_SC07_010/ov_SC07_010_jr_80140608.c b/src/ov_SC07_010/ov_SC07_010_jr_80140608.c index eb24572707..a4cb2e69a2 100644 --- a/src/ov_SC07_010/ov_SC07_010_jr_80140608.c +++ b/src/ov_SC07_010/ov_SC07_010_jr_80140608.c @@ -360,11 +360,6 @@ s16 n; extern s16 D_80183350[]; extern u16 D_80182E60; extern u16 D_80182E62; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -503,13 +498,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -1933,7 +1924,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144aec (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { @@ -2204,7 +2194,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -3281,21 +3271,6 @@ s32 func_8014A738(void *arg0) { LATER function in this TU, which blocks a byte-true decl of a different type. Declaration-only move (cookbook §103); the whole-binary byte-gate is the arbiter. */ extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -3582,7 +3557,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -3661,7 +3636,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014c6e0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -4257,17 +4231,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC07_010/ov_SC07_010_jr_8015444C.c b/src/ov_SC07_010/ov_SC07_010_jr_8015444C.c index fbac07f0c7..c256212cac 100644 --- a/src/ov_SC07_010/ov_SC07_010_jr_8015444C.c +++ b/src/ov_SC07_010/ov_SC07_010_jr_8015444C.c @@ -6,9 +6,7 @@ * file-local types, col-0 decls, DEFINE_func macro externs, and each earlier * definition's implied prototype (types first, then decls in original order). * Decls emit no code => byte-neutral. See cookbook §8c. */ -typedef struct { short vx, vy, vz, pad; } Vec; -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ -typedef struct { char _b[8]; } M8_8014C6F4; + /* size 8, align 1 -> unaligned block move */ extern void func_80016714(void *a0, s32 a1); extern void func_8013C98C(void); extern void func_80019064(void *a0); diff --git a/src/ov_SC07_010/ov_SC07_010_jr_8016AE5C.c b/src/ov_SC07_010/ov_SC07_010_jr_8016AE5C.c index 6d96209041..4f53ebf7ef 100644 --- a/src/ov_SC07_010/ov_SC07_010_jr_8016AE5C.c +++ b/src/ov_SC07_010/ov_SC07_010_jr_8016AE5C.c @@ -3837,12 +3837,6 @@ extern s32 func_80017DC4(void *a0, void *a1); /* 0x08 */ /* 0x20 */ -typedef struct { - SVECTOR v[4]; /* 0x00 */ - s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */ - u8 f6; /* 0x38 */ - u8 pad[7]; /* -> 0x40 */ -} Prim_8016E7C8_8016E7C8; void func_8016E7C8(int param_1, short *param_2, unsigned int *param_3) @@ -4064,22 +4058,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC07_010/ov_SC07_010_jr_80171B4C.c b/src/ov_SC07_010/ov_SC07_010_jr_80171B4C.c index 2d4b7532d6..c58d8271ed 100644 --- a/src/ov_SC07_010/ov_SC07_010_jr_80171B4C.c +++ b/src/ov_SC07_010/ov_SC07_010_jr_80171B4C.c @@ -3409,8 +3409,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757e0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -3450,8 +3450,8 @@ INCLUDE_ASM("asm/ov_SC07_010/nonmatchings/ov_SC07_010_jr_80171B4C", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -3497,7 +3497,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -3584,7 +3584,7 @@ void func_80175AB8(param_1) extern u8 D_800B9A13; -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -3607,14 +3607,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -3768,7 +3760,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC07_010/ov_SC07_010_jr_8017AE2C.c b/src/ov_SC07_010/ov_SC07_010_jr_8017AE2C.c index bb0304f8ee..3114269d31 100644 --- a/src/ov_SC07_010/ov_SC07_010_jr_8017AE2C.c +++ b/src/ov_SC07_010/ov_SC07_010_jr_8017AE2C.c @@ -3654,9 +3654,6 @@ void func_8017DE68(void *a0) { /* 8-byte, alignment-1 blob: the target copies it with lwl/lwr + swl/swr, * which is gcc's emit_block_move for align < 4. */ -typedef struct { - char b[8]; -} Blob8_8018A47C_8017DEA4; extern void func_8017DEEC(s32, s16*); diff --git a/src/ov_SC07_010/ov_SC07_010_o0.c b/src/ov_SC07_010/ov_SC07_010_o0.c index 0fa60bca8c..4c957dfbd4 100644 --- a/src/ov_SC07_010/ov_SC07_010_o0.c +++ b/src/ov_SC07_010/ov_SC07_010_o0.c @@ -34,8 +34,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598; extern Spr_8013B598 D_801A9420[]; D_801A9420[a0].f0 = 1; @@ -50,20 +48,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0; extern Ent_8013B6A0 D_801A9420[]; D_801A9420[idx].f0 = 1; @@ -93,16 +77,7 @@ extern s32 D_801A94D8; extern s32 D_801A953C; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801A9420"); extern s32 D_801A94BC; extern s32 D_801A94C0; @@ -238,17 +213,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -314,11 +278,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/ov_SC07_011/ov_SC07_011.c b/src/ov_SC07_011/ov_SC07_011.c index 088922d195..1732792e67 100644 --- a/src/ov_SC07_011/ov_SC07_011.c +++ b/src/ov_SC07_011/ov_SC07_011.c @@ -412,10 +412,6 @@ DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128c14 (src/shared) */ -typedef struct { - s32 word0; - s32 word4; -} CdFileLoc_80128C98; extern CdFileLoc_80128C98 cdFileLocTable[]; extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4); @@ -823,12 +819,6 @@ void func_8012A328(void) extern s32 D_80126B58; extern s16 D_80127080; extern s16 D_80126CAE; - typedef struct { - u8 pad[0x154]; - u16 f154; - s16 f156; - u16 f158; - } Obj_80126B58; Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58; s16 *q; s32 a, b; @@ -1121,10 +1111,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed * * A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack * and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a * u32 container give the SImode, align-4 struct gcc keeps in a register. */ -typedef struct { - u32 lo : 16; - u32 hi : 16; -} Ang2_8012B77C_8012B77C; /* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity. * Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are @@ -1414,7 +1400,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); * Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one * is written back to the entity's hi-16 fixed-point position after the offset is removed. */ s32 func_8012CC88(s32 a0, s32 a1, s32 a2) { - typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; SV3_8012CC88 sp10; SV3_8012CC88 sp18; s32 v0; diff --git a/src/ov_SC07_011/ov_SC07_011_jr_80131340.c b/src/ov_SC07_011/ov_SC07_011_jr_80131340.c index a5322dda02..cddc1f418b 100644 --- a/src/ov_SC07_011/ov_SC07_011_jr_80131340.c +++ b/src/ov_SC07_011/ov_SC07_011_jr_80131340.c @@ -1350,7 +1350,6 @@ void func_80132F40(s32 arg0) { extern u8 D_80126BE0[]; - typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; Svec_80132F40 v[4]; register Svec_80132F40 *q __asm__("$17"); @@ -1514,7 +1513,6 @@ void func_801330E0(param_1, param_2, param_3) * struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's * identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here * is a C89 error in the real TU). */ -typedef struct { s32 w[8]; } Blk32L_80133298; extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2); diff --git a/src/ov_SC07_011/ov_SC07_011_jr_80135D20.c b/src/ov_SC07_011/ov_SC07_011_jr_80135D20.c index fabd29ec7d..47b99333e1 100644 --- a/src/ov_SC07_011/ov_SC07_011_jr_80135D20.c +++ b/src/ov_SC07_011/ov_SC07_011_jr_80135D20.c @@ -1526,12 +1526,6 @@ extern s32 func_80139BE0(s32); s32 func_80138C60(s32 arg0) { - typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; - } Q_80138C60; extern Q_80138C60 D_8017EC50[]; u16 t; u8 b; diff --git a/src/ov_SC07_011/ov_SC07_011_jr_80140608.c b/src/ov_SC07_011/ov_SC07_011_jr_80140608.c index a3d40a55cd..fb9d56963b 100644 --- a/src/ov_SC07_011/ov_SC07_011_jr_80140608.c +++ b/src/ov_SC07_011/ov_SC07_011_jr_80140608.c @@ -983,11 +983,6 @@ s16 n; extern s16 D_8017FA10[]; extern u16 D_8017F520; extern u16 D_8017F522; - typedef struct - { - u32 *ot; - u32 pad[4]; - } Env_80140958; extern Env_80140958 D_800AE7BC[]; Prim4 *p; s16 t; @@ -1126,13 +1121,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs) NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below is the proof), so it lives here. */ - typedef struct { - u32 *ot; /* 0x00 */ - u32 pad[4]; /* 0x04..0x13 */ - } Env_800D29F8; /* 0x14 stride */ + /* 0x14 stride */ extern Env_800D29F8 D_800AE7BC[]; - typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; register u32 mhi __asm__("$8"); s16 *q; @@ -2674,7 +2665,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144aec (src/shared) */ extern int func_80013294(void *a0, void *a1); -typedef struct { short vx, vy, vz, pad; } Vec; int func_80144B14(int param_1) { @@ -2945,7 +2935,7 @@ void func_80146360(void) -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ + /* size 8, align 1 -> unaligned block move */ extern void func_8014C6F4(); extern void func_80155150(s32 a0); @@ -4242,21 +4232,6 @@ s32 func_8014A738(void *arg0) { LATER function in this TU, which blocks a byte-true decl of a different type. Declaration-only move (cookbook §103); the whole-binary byte-gate is the arbiter. */ extern u8 D_801202A0[]; - typedef struct { - s16 vx; - s16 vy; - s16 vz; - s16 pad; - } Vec_8014A738; - typedef struct { - u8 pad0[6]; - u16 x; - u8 pad8[6]; - u16 z; - u8 pad10[0xB1]; - u8 state; - u8 padC2[0x4A]; - } Ent_801202A0; Vec_8014A738 d; u32 i; Ent_801202A0 *base; @@ -4543,7 +4518,7 @@ s32 a2; s16 *a3; u16 a4; { - typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */ + /* block-scope: no file-scope conflict (§100) */ extern s32 D_80126CD0; extern u16 D_8012693A; extern u16 D_801152B8; @@ -4622,7 +4597,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014c6e0 (src/shared) */ // the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving // the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own. -typedef struct { char _b[8]; } M8_8014C6F4; void func_8014C6F4(u8 *a) { extern u8 D_80078E78[]; @@ -5219,17 +5193,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) u16 z; u16 w; } V4; - typedef struct - { - u16 x; - u16 y; - u16 z; - u16 w; - s32 pad[4]; - s32 f18; - s32 f1C; - s32 f20; - } Desc; typedef struct EntD820 { u16 f0; diff --git a/src/ov_SC07_011/ov_SC07_011_jr_8015444C.c b/src/ov_SC07_011/ov_SC07_011_jr_8015444C.c index 0f0674916a..f0e9eb2b79 100644 --- a/src/ov_SC07_011/ov_SC07_011_jr_8015444C.c +++ b/src/ov_SC07_011/ov_SC07_011_jr_8015444C.c @@ -6,9 +6,7 @@ * file-local types, col-0 decls, DEFINE_func macro externs, and each earlier * definition's implied prototype (types first, then decls in original order). * Decls emit no code => byte-neutral. See cookbook §8c. */ -typedef struct { short vx, vy, vz, pad; } Vec; -typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */ -typedef struct { char _b[8]; } M8_8014C6F4; + /* size 8, align 1 -> unaligned block move */ extern void func_80128288(void); extern void func_80128158(void); extern void func_801285E4(void); diff --git a/src/ov_SC07_011/ov_SC07_011_jr_8016AE5C.c b/src/ov_SC07_011/ov_SC07_011_jr_8016AE5C.c index 93e79bfa65..3b9574bb92 100644 --- a/src/ov_SC07_011/ov_SC07_011_jr_8016AE5C.c +++ b/src/ov_SC07_011/ov_SC07_011_jr_8016AE5C.c @@ -4388,12 +4388,6 @@ extern s32 func_80017DC4(void *a0, void *a1); /* 0x08 */ /* 0x20 */ -typedef struct { - SVECTOR v[4]; /* 0x00 */ - s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */ - u8 f6; /* 0x38 */ - u8 pad[7]; /* -> 0x40 */ -} Prim_8016E7C8_8016E7C8; void func_8016E7C8(int param_1, short *param_2, unsigned int *param_3) @@ -4615,22 +4609,7 @@ void func_8016EC0C(s32 a0, s32 a1) /* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/ remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared` (measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */ - typedef struct { - /* 0x00 */ s16 x; - /* 0x02 */ s16 y; - /* 0x04 */ s32 u04; - /* 0x08 */ s16 u08; - /* 0x0A */ s16 u0A; - /* 0x0C */ s16 u0C; - /* 0x0E */ s16 u0E; - /* 0x10 */ u8 r; - /* 0x11 */ u8 g; - /* 0x12 */ u8 b; - /* 0x13 */ u8 pad13; - /* 0x14 */ s32 u14; - /* 0x18 */ u8 u18; - /* 0x19 */ u8 pad19[3]; - } T8016EC0C; /* 0x1C */ + /* 0x1C */ T8016EC0C s; u16 *p; s32 x; diff --git a/src/ov_SC07_011/ov_SC07_011_jr_80171B4C.c b/src/ov_SC07_011/ov_SC07_011_jr_80171B4C.c index 627bac3e83..a2b99483d4 100644 --- a/src/ov_SC07_011/ov_SC07_011_jr_80171B4C.c +++ b/src/ov_SC07_011/ov_SC07_011_jr_80171B4C.c @@ -3965,8 +3965,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757e0 (src/shared) */ * shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements). */ -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_80175820(void) { @@ -4005,8 +4005,8 @@ INCLUDE_ASM("asm/ov_SC07_011/nonmatchings/ov_SC07_011_jr_80171B4C", func_801758F -typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */ -typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */ + /* size 0x14 */ + /* size 0x0C */ s32 func_801759D8(void) { @@ -4051,7 +4051,7 @@ s32 func_801759D8(void) void func_80175AB8(param_1) s16 param_1; { - typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern S_AF634 D_800AF634[]; extern S_AF634 D_800AF638[]; @@ -4138,7 +4138,7 @@ void func_80175AB8(param_1) extern u8 D_800B9A13; -typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */ + /* size 0x0C */ extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); extern void func_800183E0(s32 a0); @@ -4161,14 +4161,6 @@ void func_80175DA8(param_1) extern u8 D_800D43D4; extern u8 D_800D4414; extern u8 D_800D45D4; - typedef struct { - u32 tag; /* 0x00 */ - u32 code; /* 0x04 */ - u16 x; /* 0x08 */ - u16 y; /* 0x0A */ - u32 uv; /* 0x0C */ - u32 wh; /* 0x10 */ - } Sp_80175DA8; u8 *base = &D_8011F7F0; u8 *s = base - 0x48; @@ -4322,7 +4314,7 @@ void func_80175DA8(param_1) void func_80176144(s32 a0) { - typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */ + /* size 0x0C */ /* §37 asm-label alias: private C names, canonical relocations. */ extern S_AF634_80176144 aAF634[] __asm__("D_800AF634"); extern S_AF634_80176144 aAF638[] __asm__("D_800AF638"); diff --git a/src/ov_SC07_011/ov_SC07_011_jr_8017BEBC.c b/src/ov_SC07_011/ov_SC07_011_jr_8017BEBC.c index 21e54063ff..4e1fdc5b28 100644 --- a/src/ov_SC07_011/ov_SC07_011_jr_8017BEBC.c +++ b/src/ov_SC07_011/ov_SC07_011_jr_8017BEBC.c @@ -4153,9 +4153,6 @@ void func_8017D930(void *a0) { /* 8-byte, alignment-1 blob: the target copies it with lwl/lwr + swl/swr, * which is gcc's emit_block_move for align < 4. */ -typedef struct { - char b[8]; -} Blob8_8018A47C_8017D96C; extern void func_8017D9B4(s32, s16*); @@ -4290,12 +4287,6 @@ void func_8017E2F0(void *a0) { -typedef struct { - u8 b0; - u8 b1; - u8 b2; - u8 b3; -} EffectSlot4_8017E32C; extern void func_801465C0(void); extern void func_80146C3C(u8*); diff --git a/src/ov_SC07_011/ov_SC07_011_o0c.c b/src/ov_SC07_011/ov_SC07_011_o0c.c index 614f0a36e6..7e9f68eae8 100644 --- a/src/ov_SC07_011/ov_SC07_011_o0c.c +++ b/src/ov_SC07_011/ov_SC07_011_o0c.c @@ -727,8 +727,6 @@ void func_8013B568(s32 arg0) { * 66/66 instructions byte-identical (match_one --o0). */ void func_8013B598(s32 a0, u16 *a1) { - typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; - typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; extern Spr_8013B598_8013B598 D_801903D8[]; D_801903D8[a0].f0 = 1; @@ -743,20 +741,6 @@ void func_8013B598(s32 a0, u16 *a1) { void func_8013B6A0(s32 idx, u16 *src, s32 val) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[0xC]; - } Ent_8013B6A0_8013B6A0; - typedef struct { - u16 f0; - u16 f2; - u16 f4; - } Src_8013B6A0_8013B6A0; extern Ent_8013B6A0_8013B6A0 D_801903D8[]; D_801903D8[idx].f0 = 1; @@ -767,7 +751,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val) } -typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */ + /* sizeof 0x1C stride */ void func_8013B7AC(int a0) { extern E_3B7AC_8013B7AC D_801903D8[]; D_801903D8[a0].f0 = 0; } @@ -786,16 +770,7 @@ extern s32 D_80190490; extern s32 D_801904F4; void func_8013B83C(s32 a0, s32 a1, s32 a2) { - typedef struct { - s32 f0; - u16 f4; - u16 f6; - u16 f8; - u16 fA; - s32 fC; - u8 pad[8]; - s32 f18; - } Ent_8013B83C; /* sizeof 0x1C */ + /* sizeof 0x1C */ extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801903D8"); extern s32 D_80190474; extern s32 D_80190478; @@ -885,7 +860,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) { } -typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; void func_8013BC7C(void *arg0) { @@ -932,17 +906,6 @@ void func_8013BD74(void *a0, s32 a1) { file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74' undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the body and is byte-neutral (a type emits no code). */ - typedef struct { - u8 pad0[8]; - void *f8; - void *fC; - } E_13BD74; - typedef struct { - u8 pad0[3]; - u8 code; - s32 f4; - s32 f8; - } P_13BD74; s32 *q; s32 *p; s32 i; @@ -1008,11 +971,6 @@ void func_8013C08C(void *a0, void *a1) { * 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; diff --git a/src/shared/engine_types.h b/src/shared/engine_types.h index 3237047e9c..97c41bbb81 100644 --- a/src/shared/engine_types.h +++ b/src/shared/engine_types.h @@ -1320,6 +1320,3283 @@ typedef struct { u8 u3, v3; u16 pad3; } Ft4_801833F0; + +/* --- lift_types.py fleet lift --- */ +struct B16_801841C8 { s32 w[4]; }; +struct B16_80185634 { s32 w[4]; }; +struct B16_801856E4 { s32 w[4]; }; +struct B16_80185794 { s32 w[4]; }; +struct B16_8018584C { s32 w[4]; }; +struct B16_8018A758 { s32 w[4]; }; +struct Hd4a4 { s16 h; }; +struct Hd4a4_8017D47C { s16 h; }; +struct Hd4a4_8017D5DC { s16 h; }; +struct Hd4a4_8017DC48 { s16 h; }; +struct PW8017C290 { int w; } __attribute__((packed, aligned(1))); +struct PW8017E72C { int w; } __attribute__((packed, aligned(1))); +struct S80190C84 { + s16 f0, f2, f4, f6, f8, fA, fC, fE; + s32 f10; +}; +struct Un8_8018613C { + u8 b0, b1, b2, b3, b4, b5, b6, b7; +}; +typedef struct { + u32 lo : 16; + u32 hi : 16; +} Ang2_8012B77C; +typedef struct { + u32 lo : 16; + u32 hi : 16; +} Ang2_8012B77C_8012B77C; +typedef struct { + u32 lo : 16; + u32 hi : 16; +} Ang2_8012B77C_80187180; +typedef struct { + u32 lo : 16; + u32 hi : 16; +} Ang2_8012B77C_8018BFA8; +typedef struct { u8 b0, b1, b2, b3; } B4_80181970; +typedef struct { u8 b0, b1, b2, b3; } B4_80181ABC; +typedef struct { u8 b0, b1, b2, b3; } B4_8018201C; +typedef struct { u8 b0, b1, b2, b3; } B4_80183AF8; +typedef struct { u8 b0, b1, b2, b3; } B4_80183F3C; +typedef struct { u8 b0, b1, b2, b3; } B4_80184774; +typedef struct { u8 b0, b1, b2, b3; } B4_80185458; +typedef struct { u8 b0, b1, b2, b3; } B4_8018570C; +typedef struct { u8 b0, b1, b2, b3; } B4_80185C00; +typedef struct { u8 b0, b1, b2, b3; } B4_80186938; +typedef struct { u8 b0, b1, b2, b3; } B4_8018A860; +typedef struct { u8 b0, b1, b2, b3; } B4_8018A8E8; +typedef struct { u8 b0, b1, b2, b3; } B4_8018E1F0; +typedef struct { u8 d[4]; } __attribute__((packed, aligned(1))) B4_8018EDB0; +typedef struct { u8 d[4]; } __attribute__((packed, aligned(1))) B4_8018F060; +typedef struct { u8 d[8]; } __attribute__((packed, aligned(1))) B8_8018EDB0; +typedef struct { u8 d[8]; } __attribute__((packed, aligned(1))) B8_8018F060; +typedef struct { u16 f; } Bidx_8018B23C; +typedef struct { u16 f; } Bidx_8018B23C_8018234C; +typedef struct { u16 f; } Bidx_8018B23C_80182498; +typedef struct { u16 f; } Bidx_8018B23C_801829F8; +typedef struct { u16 f; } Bidx_8018B23C_801844D4; +typedef struct { u16 f; } Bidx_8018B23C_80184918; +typedef struct { u16 f; } Bidx_8018B23C_80185150; +typedef struct { u16 f; } Bidx_8018B23C_80185E34; +typedef struct { u16 f; } Bidx_8018B23C_801860E8; +typedef struct { u16 f; } Bidx_8018B23C_801865DC; +typedef struct { u16 f; } Bidx_8018B23C_80187314; +typedef struct { u16 f; } Bidx_8018B23C_8018B23C; +typedef struct { u16 f; } Bidx_8018B23C_8018B2C4; +typedef struct { u16 f; } Bidx_8018B23C_8018EBCC; +typedef struct { u8 b[12]; } Blk12_801854C4; +typedef struct { u8 b[12]; } Blk12_801854C4_80181830; +typedef struct { u8 b[12]; } Blk12_801854C4_80181CA0; +typedef struct { u8 b[12]; } Blk12_801854C4_801822F4; +typedef struct { u8 b[12]; } Blk12_801854C4_80183A70; +typedef struct { u8 b[12]; } Blk12_801854C4_80184BEC; +typedef struct { u8 b[12]; } Blk12_801854C4_80184EA8; +typedef struct { u8 b[12]; } Blk12_801854C4_801851C4; +typedef struct { u8 b[12]; } Blk12_801854C4_801854C4; +typedef struct { u8 b[12]; } Blk12_801854C4_80187F84; +typedef struct { s32 w[4]; } Blk16_80184328; +typedef struct { s32 w[4]; } Blk16_8018A8B8; +typedef struct { s32 w[4]; } Blk16_8018B13C; +typedef struct { s32 w[4]; } Blk16_8018B29C; +typedef struct { s32 w[8]; } Blk20_8018AF88; +typedef struct { s32 w[8]; } Blk20_8018AF88_80186160; +typedef struct { s32 w[8]; } Blk32L; +typedef struct { s32 w[8]; } Blk32L_80133298; +typedef struct { s32 w[8]; } Blk32_8018AA98; +typedef struct { s32 w[8]; } Blk32_8018AA98_80181BA8; +typedef struct { s32 w[8]; } Blk32_8018AA98_80181CF4; +typedef struct { s32 w[8]; } Blk32_8018AA98_80182254; +typedef struct { s32 w[8]; } Blk32_8018AA98_80183D30; +typedef struct { s32 w[8]; } Blk32_8018AA98_80184174; +typedef struct { s32 w[8]; } Blk32_8018AA98_801849AC; +typedef struct { s32 w[8]; } Blk32_8018AA98_80185690; +typedef struct { s32 w[8]; } Blk32_8018AA98_80185944; +typedef struct { s32 w[8]; } Blk32_8018AA98_80185E38; +typedef struct { s32 w[8]; } Blk32_8018AA98_80186B70; +typedef struct { s32 w[8]; } Blk32_8018AA98_8018AA98; +typedef struct { s32 w[8]; } Blk32_8018AA98_8018AB20; +typedef struct { s32 w[8]; } Blk32_8018AA98_8018E428; +typedef struct { u8 b[4]; } Blk4_8018CE04; +typedef struct { u8 b[4]; } Blk4_8018CE04_80186D40; +typedef struct { u8 b[4]; } Blk4_8018CE04_80188C34; +typedef struct { u8 b[4]; } Blk4_8018CE04_8018A724; +typedef struct { + s16 v[4]; +} Blk8_80126940; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D044; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D04C; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D07C; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D09C; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D130; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D1D8; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D1F0; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D208; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D20C; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D210; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D25C; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D268; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D2FC; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D308; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D344; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D3B8; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D590; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D5D0; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D630; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D634; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D670; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D6D0; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D6D0_8017F3E8; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D6D0_8017F48C; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D6D0_8017F558; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D6D0_8017F624; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D6D0_8017F794; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D6D0_8017F844; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D6D0_80181AA0; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D6D0_80181C80; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D6D0_801828B8; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D6D0_80182A98; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D6D4; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D710; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D7B0; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017D850; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017E01C; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017E1DC; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017E2CC; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017E36C; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017E374; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017EA10; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017EBE4; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017EC20; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017EC44; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017EC8C; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017ECC0; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017ECE4; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017ECF8; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017ED98; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017EFA8; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017F15C; +typedef struct { + s16 v[4]; +} Blk8_80126940_8017FC98; +typedef struct { + s16 v[4]; +} Blk8_80126940_80180D08; +typedef struct { + s16 v[4]; +} Blk8_80126940_80180D40; +typedef struct { char _b[8]; } Blk8_801463A0; +typedef struct { u8 b[8]; } Blk8_80182BDC; +typedef struct { u8 b[8]; } Blk8_80183084; +typedef struct { u8 b[8]; } Blk8_801838C8; +typedef struct { u8 b[8]; } Blk8_801838EC; +typedef struct { u8 b[8]; } Blk8_80185E28; +typedef struct { u8 b[8]; } Blk8_80189FF0; +typedef struct { u8 b[8]; } Blk8_8018AC00; +typedef struct { + char b[8]; +} Blob8_8018A47C; +typedef struct { + char b[8]; +} Blob8_8018A47C_8017D2B0; +typedef struct { + char b[8]; +} Blob8_8018A47C_8017D2F8; +typedef struct { + char b[8]; +} Blob8_8018A47C_8017D96C; +typedef struct { + char b[8]; +} Blob8_8018A47C_8017DEA4; +typedef struct { + char b[8]; +} Blob8_8018A47C_8017EC44; +typedef struct { + char b[8]; +} Blob8_8018A47C_8017EF60; +typedef struct { + char b[8]; +} Blob8_8018A47C_80180E60; +typedef struct { + s16 unk00; + s16 unk02; + s16 unk04; + s16 unk06; + s16 unk08; + s16 unk0A; + s16 unk0C; + s16 unk0E; + s32 unk10; +} Buf8017BF34; +typedef struct { + s16 unk00; + s16 unk02; + s16 unk04; + s16 unk06; + s16 unk08; + s16 unk0A; + s16 unk0C; + s16 unk0E; + s32 unk10; +} Buf8017BF34_8017BF14; +typedef struct { + s16 unk00; + s16 unk02; + s16 unk04; + s16 unk06; + s16 unk08; + s16 unk0A; + s16 unk0C; + s16 unk0E; + s32 unk10; +} Buf8017BF34_8017BF34; +typedef struct { + s16 unk00; + s16 unk02; + s16 unk04; + s16 unk06; + s16 unk08; + s16 unk0A; + s16 unk0C; + s16 unk0E; + s32 unk10; +} Buf8017BF34_8017CAF8; +typedef struct { + s16 unk00; + s16 unk02; + s16 unk04; + s16 unk06; + s16 unk08; + s16 unk0A; + s16 unk0C; + s16 unk0E; + s32 unk10; +} Buf8017BF34_80182C28; +typedef struct { + s16 unk00; + s16 unk02; + s16 unk04; + s16 unk06; + s16 unk08; + s16 unk0A; + s16 unk0C; + s16 unk0E; + s32 unk10; +} Buf8017BF50; +typedef struct { + s16 unk00; + s16 unk02; + s16 unk04; + s16 unk06; + s16 unk08; + s16 unk0A; + s16 unk0C; + s16 unk0E; + s32 unk10; +} Buf8017BF50_8017BF50; +typedef struct { + s16 unk00; + s16 unk02; + s16 unk04; + s16 unk06; + s16 unk08; + s16 unk0A; + s16 unk0C; + s16 unk0E; + s32 unk10; +} Buf8017BF50_8017BF70; +typedef struct { + s16 unk00; + s16 unk02; + s16 unk04; + s16 unk06; + s16 unk08; + s16 unk0A; + s16 unk0C; + s16 unk0E; + s32 unk10; +} Buf8017BF50_8017C234; +typedef struct { u8 r, g, b, cd; } CV_801837B0; +typedef struct { + u8 r, g, b, cd; +} CVec4_8017C218; +typedef struct { + u8 r, g, b, cd; +} CVec4_8017C218_8017C218; +typedef struct { + u8 r, g, b, cd; +} CVec4_8017C218_8017D030; +typedef struct { + u8 r, g, b, cd; +} CVec4_8017C218_8017D0F8; +typedef struct { + u8 r, g, b, cd; +} CVec4_8017C218_8017D2F4; +typedef struct { + u8 r, g, b, cd; +} CVec4_8017C218_8017D408; +typedef struct { + u8 r, g, b, cd; +} CVec4_8017C218_8017DF10; +typedef struct { + u8 r, g, b, cd; +} CVec4_8017C218_8017E22C; +typedef struct { + u8 r, g, b, cd; +} CVec4_8017C218_8017E3F0; +typedef struct { + u8 r, g, b, cd; +} CVec4_8017C218_801801E8; +typedef struct { + u8 r, g, b, cd; +} CVec4_8017C218_8018077C; +typedef struct { + u8 r, g, b, cd; +} CVec4_8017C218_80182348; +typedef struct { + s32 word0; + s32 word4; +} CdFileLoc; +typedef struct { + s32 word0; + s32 word4; +} CdFileLoc_80128C98; +typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910; +typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017C910; +typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017D728; +typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017D7F0; +typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017D9EC; +typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017DB00; +typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017E608; +typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017E924; +typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_8017EAE8; +typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_801808E0; +typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_80180E74; +typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910_80182A40; +typedef struct { s16 vx, vy; } DVECTOR2_8017CDF0; +typedef struct { s16 vx, vy; } DVec35C; +typedef struct { + u16 a, b, c, d; + } Data_t; +typedef struct { + u16 a, b, c, d; + } Data_t_80181CE0; +typedef struct { + u16 a, b, c, d; + } Data_t_80182704; +typedef struct { + u16 a, b, c, d; + } Data_t_801829CC; +typedef struct { + u16 a, b, c, d; + } Data_t_801829F0; +typedef struct { + u16 a, b, c, d; + } Data_t_80183DE4; +typedef struct { + u16 a, b, c, d; + } Data_t_80184294; +typedef struct { + u16 a, b, c, d; + } Data_t_80184A40; +typedef struct { + u16 a, b, c, d; + } Data_t_80186848; +typedef struct { + u16 a, b, c, d; + } Data_t_8018767C; +typedef struct { + u16 a, b, c, d; + } Data_t_80189320; +typedef struct { + u16 a, b, c, d; + } Data_t_80189454; +typedef struct { + u16 a, b, c, d; + } Data_t_80189AA0; +typedef struct { + u16 a, b, c, d; + } Data_t_80189D04; +typedef struct { + u16 a, b, c, d; + } Data_t_8018A948; +typedef struct + { + u16 x; + u16 y; + u16 z; + u16 w; + s32 pad[4]; + s32 f18; + s32 f1C; + s32 f20; + } Desc; +typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13BD74; +typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C; +typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; +typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; +typedef struct { + u8 b0; + u8 b1; + u8 b2; + u8 b3; +} EffectSlot4; +typedef struct { + u8 b0; + u8 b1; + u8 b2; + u8 b3; +} EffectSlot4_8017E32C; +typedef struct { + u8 b0; + u8 b1; + u8 b2; + u8 b3; +} EffectSlot4_801811D4; +typedef struct { + u8 b0; + u8 b1; + u8 b2; + u8 b3; +} EffectSlot4_80186494; +typedef struct { + u8 b0; + u8 b1; + u8 b2; + u8 b3; +} EffectSlot4_801878E8; +typedef struct { + u8 b0; + u8 b1; + u8 b2; + u8 b3; +} EffectSlot4_80189454; +typedef struct { + u8 b0; + u8 b1; + u8 b2; + u8 b3; +} EffectSlot4_8018AF48; +typedef struct { + u8 b0; + u8 b1; + u8 b2; + u8 b3; +} EffectSlot4_8018AF9C; +typedef struct { + u8 b0; + u8 b1; + u8 b2; + u8 b3; +} EffectSlot4_8018F9C0; +typedef struct Ent80183F28 { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ u8 pad04[0xD8]; + /* 0xDC */ s16 unkDC; + /* 0xDE */ s16 unkDE; + /* 0xE0 */ s16 unkE0; + /* 0xE2 */ s16 unkE2; + /* 0xE4 */ s16 unkE4; + /* 0xE6 */ s16 unkE6; + /* 0xE8 */ s16 unkE8; + /* 0xEA */ s16 unkEA; +} Ent80183F28; +typedef struct Ent80183F28_80183F28 { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ u8 pad04[0xD8]; + /* 0xDC */ s16 unkDC; + /* 0xDE */ s16 unkDE; + /* 0xE0 */ s16 unkE0; + /* 0xE2 */ s16 unkE2; + /* 0xE4 */ s16 unkE4; + /* 0xE6 */ s16 unkE6; + /* 0xE8 */ s16 unkE8; + /* 0xEA */ s16 unkEA; +} Ent80183F28_80183F28; +typedef struct { + u8 pad0[6]; + u16 x; + u8 pad8[6]; + u16 z; + u8 pad10[0xB1]; + u8 state; + u8 padC2[0x4A]; + } Ent_801202A0; +typedef struct { + s32 f0; + u16 f4; + u16 f6; + u16 f8; + u16 fA; + s32 fC; + u8 pad[0xC]; + } Ent_8013B6A0; +typedef struct { + s32 f0; + u16 f4; + u16 f6; + u16 f8; + u16 fA; + s32 fC; + u8 pad[0xC]; + } Ent_8013B6A0_8013B6A0; +typedef struct { + s32 f0; + u16 f4; + u16 f6; + u16 f8; + u16 fA; + s32 fC; + u8 pad[8]; + s32 f18; + } Ent_8013B83C; +typedef struct Ent_8017BFE0 { + u8 pad00[2]; /* 0x00 */ + u16 f02; /* 0x02 */ + u8 pad04[0x18];/* 0x04 */ + s32 f1c; /* 0x1C */ + u8 pad20[0xA]; /* 0x20 */ + u16 f2a; /* 0x2A */ + u16 f2c; /* 0x2C */ + u8 pad2e[2]; /* 0x2E */ + s32 f30; /* 0x30 */ +} Ent_8017BFE0; +typedef struct Ent_8017BFE0_8017BFE0 { + u8 pad00[2]; /* 0x00 */ + u16 f02; /* 0x02 */ + u8 pad04[0x18];/* 0x04 */ + s32 f1c; /* 0x1C */ + u8 pad20[0xA]; /* 0x20 */ + u16 f2a; /* 0x2A */ + u16 f2c; /* 0x2C */ + u8 pad2e[2]; /* 0x2E */ + s32 f30; /* 0x30 */ +} Ent_8017BFE0_8017BFE0; +typedef struct Ent_8017BFE0_8017CDF8 { + u8 pad00[2]; /* 0x00 */ + u16 f02; /* 0x02 */ + u8 pad04[0x18];/* 0x04 */ + s32 f1c; /* 0x1C */ + u8 pad20[0xA]; /* 0x20 */ + u16 f2a; /* 0x2A */ + u16 f2c; /* 0x2C */ + u8 pad2e[2]; /* 0x2E */ + s32 f30; /* 0x30 */ +} Ent_8017BFE0_8017CDF8; +typedef struct Ent_8017BFE0_8017CEC0 { + u8 pad00[2]; /* 0x00 */ + u16 f02; /* 0x02 */ + u8 pad04[0x18];/* 0x04 */ + s32 f1c; /* 0x1C */ + u8 pad20[0xA]; /* 0x20 */ + u16 f2a; /* 0x2A */ + u16 f2c; /* 0x2C */ + u8 pad2e[2]; /* 0x2E */ + s32 f30; /* 0x30 */ +} Ent_8017BFE0_8017CEC0; +typedef struct Ent_8017BFE0_8017D0BC { + u8 pad00[2]; /* 0x00 */ + u16 f02; /* 0x02 */ + u8 pad04[0x18];/* 0x04 */ + s32 f1c; /* 0x1C */ + u8 pad20[0xA]; /* 0x20 */ + u16 f2a; /* 0x2A */ + u16 f2c; /* 0x2C */ + u8 pad2e[2]; /* 0x2E */ + s32 f30; /* 0x30 */ +} Ent_8017BFE0_8017D0BC; +typedef struct Ent_8017BFE0_8017D1D0 { + u8 pad00[2]; /* 0x00 */ + u16 f02; /* 0x02 */ + u8 pad04[0x18];/* 0x04 */ + s32 f1c; /* 0x1C */ + u8 pad20[0xA]; /* 0x20 */ + u16 f2a; /* 0x2A */ + u16 f2c; /* 0x2C */ + u8 pad2e[2]; /* 0x2E */ + s32 f30; /* 0x30 */ +} Ent_8017BFE0_8017D1D0; +typedef struct Ent_8017BFE0_8017DCD8 { + u8 pad00[2]; /* 0x00 */ + u16 f02; /* 0x02 */ + u8 pad04[0x18];/* 0x04 */ + s32 f1c; /* 0x1C */ + u8 pad20[0xA]; /* 0x20 */ + u16 f2a; /* 0x2A */ + u16 f2c; /* 0x2C */ + u8 pad2e[2]; /* 0x2E */ + s32 f30; /* 0x30 */ +} Ent_8017BFE0_8017DCD8; +typedef struct Ent_8017BFE0_8017DFF4 { + u8 pad00[2]; /* 0x00 */ + u16 f02; /* 0x02 */ + u8 pad04[0x18];/* 0x04 */ + s32 f1c; /* 0x1C */ + u8 pad20[0xA]; /* 0x20 */ + u16 f2a; /* 0x2A */ + u16 f2c; /* 0x2C */ + u8 pad2e[2]; /* 0x2E */ + s32 f30; /* 0x30 */ +} Ent_8017BFE0_8017DFF4; +typedef struct Ent_8017BFE0_8017E1B8 { + u8 pad00[2]; /* 0x00 */ + u16 f02; /* 0x02 */ + u8 pad04[0x18];/* 0x04 */ + s32 f1c; /* 0x1C */ + u8 pad20[0xA]; /* 0x20 */ + u16 f2a; /* 0x2A */ + u16 f2c; /* 0x2C */ + u8 pad2e[2]; /* 0x2E */ + s32 f30; /* 0x30 */ +} Ent_8017BFE0_8017E1B8; +typedef struct Ent_8017BFE0_8017FFB0 { + u8 pad00[2]; /* 0x00 */ + u16 f02; /* 0x02 */ + u8 pad04[0x18];/* 0x04 */ + s32 f1c; /* 0x1C */ + u8 pad20[0xA]; /* 0x20 */ + u16 f2a; /* 0x2A */ + u16 f2c; /* 0x2C */ + u8 pad2e[2]; /* 0x2E */ + s32 f30; /* 0x30 */ +} Ent_8017BFE0_8017FFB0; +typedef struct Ent_8017BFE0_80180544 { + u8 pad00[2]; /* 0x00 */ + u16 f02; /* 0x02 */ + u8 pad04[0x18];/* 0x04 */ + s32 f1c; /* 0x1C */ + u8 pad20[0xA]; /* 0x20 */ + u16 f2a; /* 0x2A */ + u16 f2c; /* 0x2C */ + u8 pad2e[2]; /* 0x2E */ + s32 f30; /* 0x30 */ +} Ent_8017BFE0_80180544; +typedef struct Ent_8017BFE0_80182110 { + u8 pad00[2]; /* 0x00 */ + u16 f02; /* 0x02 */ + u8 pad04[0x18];/* 0x04 */ + s32 f1c; /* 0x1C */ + u8 pad20[0xA]; /* 0x20 */ + u16 f2a; /* 0x2A */ + u16 f2c; /* 0x2C */ + u8 pad2e[2]; /* 0x2E */ + s32 f30; /* 0x30 */ +} Ent_8017BFE0_80182110; +typedef struct { + u8 unk00[0x16]; + s16 unk16; + u8 unk18[4]; + s32 unk1C; + u8 unk20[4]; +} Ent_8017D6EC; +typedef struct { + u8 unk00[0x16]; + s16 unk16; + u8 unk18[4]; + s32 unk1C; + u8 unk20[4]; +} Ent_8017D6EC_8017D6EC; +typedef struct { + u8 unk00[0x16]; + s16 unk16; + u8 unk18[4]; + s32 unk1C; + u8 unk20[4]; +} Ent_8017D6EC_8017DEE8; +typedef struct { + u8 unk00[0x16]; + s16 unk16; + u8 unk18[4]; + s32 unk1C; + u8 unk20[4]; +} Ent_8017D6EC_8017F5F8; +typedef struct { + u8 unk00[0x16]; + s16 unk16; + u8 unk18[4]; + s32 unk1C; + u8 unk20[4]; +} Ent_8017D6EC_80180064; +typedef struct { + u8 unk00[0x16]; + s16 unk16; + u8 unk18[4]; + s32 unk1C; + u8 unk20[4]; +} Ent_8017D6EC_80180618; +typedef struct { + u8 unk00[0x16]; + s16 unk16; + u8 unk18[4]; + s32 unk1C; + u8 unk20[4]; +} Ent_8017D6EC_801807C0; +typedef struct { + u8 unk00[0x16]; + s16 unk16; + u8 unk18[4]; + s32 unk1C; + u8 unk20[4]; +} Ent_8017D6EC_80181884; +typedef struct { + u8 unk00[0x16]; + s16 unk16; + u8 unk18[4]; + s32 unk1C; + u8 unk20[4]; +} Ent_8017D6EC_8018326C; +typedef struct { + u8 unk00[0x16]; + s16 unk16; + u8 unk18[4]; + s32 unk1C; + u8 unk20[4]; +} Ent_8017D6EC_80183918; +typedef struct { + u8 unk00[0x16]; + s16 unk16; + u8 unk18[4]; + s32 unk1C; + u8 unk20[4]; +} Ent_8017F688; +typedef struct { + u16 f0; /* 0x00 */ + u16 f2; /* 0x02 */ + u16 f4; /* 0x04 */ + u16 x; /* 0x06 */ + u16 f8; /* 0x08 */ + u16 y; /* 0x0A */ + u16 fC; /* 0x0C */ + u16 z; /* 0x0E */ + u8 p10[0x10]; + s32 f20; /* 0x20 */ + u8 p24[0x34]; + s32 f58; /* 0x58 */ + u8 p5C[8]; + s32 f64; /* 0x64 */ + u8 p68[0x10C - 0x68]; + } Ent_8017FD58; +typedef struct { + u16 f0; /* 0x00 */ + u16 f2; /* 0x02 */ + u16 f4; /* 0x04 */ + u16 x; /* 0x06 */ + u16 f8; /* 0x08 */ + u16 y; /* 0x0A */ + u16 fC; /* 0x0C */ + u16 z; /* 0x0E */ + u8 p10[0x10]; + s32 f20; /* 0x20 */ + u8 p24[0x34]; + s32 f58; /* 0x58 */ + u8 p5C[8]; + s32 f64; /* 0x64 */ + u8 p68[0x10C - 0x68]; + } Ent_8017FD58_8017D6B8; +typedef struct { + u16 f0; /* 0x00 */ + u16 f2; /* 0x02 */ + u16 f4; /* 0x04 */ + u16 x; /* 0x06 */ + u16 f8; /* 0x08 */ + u16 y; /* 0x0A */ + u16 fC; /* 0x0C */ + u16 z; /* 0x0E */ + u8 p10[0x10]; + s32 f20; /* 0x20 */ + u8 p24[0x34]; + s32 f58; /* 0x58 */ + u8 p5C[8]; + s32 f64; /* 0x64 */ + u8 p68[0x10C - 0x68]; + } Ent_8017FD58_8017D9A0; +typedef struct { + u16 f0; /* 0x00 */ + u16 f2; /* 0x02 */ + u16 f4; /* 0x04 */ + u16 x; /* 0x06 */ + u16 f8; /* 0x08 */ + u16 y; /* 0x0A */ + u16 fC; /* 0x0C */ + u16 z; /* 0x0E */ + u8 p10[0x10]; + s32 f20; /* 0x20 */ + u8 p24[0x34]; + s32 f58; /* 0x58 */ + u8 p5C[8]; + s32 f64; /* 0x64 */ + u8 p68[0x10C - 0x68]; + } Ent_8017FD58_8017DBAC; +typedef struct { + u16 f0; /* 0x00 */ + u16 f2; /* 0x02 */ + u16 f4; /* 0x04 */ + u16 x; /* 0x06 */ + u16 f8; /* 0x08 */ + u16 y; /* 0x0A */ + u16 fC; /* 0x0C */ + u16 z; /* 0x0E */ + u8 p10[0x10]; + s32 f20; /* 0x20 */ + u8 p24[0x34]; + s32 f58; /* 0x58 */ + u8 p5C[8]; + s32 f64; /* 0x64 */ + u8 p68[0x10C - 0x68]; + } Ent_8017FD58_8017E2B4; +typedef struct { + u16 f0; /* 0x00 */ + u16 f2; /* 0x02 */ + u16 f4; /* 0x04 */ + u16 x; /* 0x06 */ + u16 f8; /* 0x08 */ + u16 y; /* 0x0A */ + u16 fC; /* 0x0C */ + u16 z; /* 0x0E */ + u8 p10[0x10]; + s32 f20; /* 0x20 */ + u8 p24[0x34]; + s32 f58; /* 0x58 */ + u8 p5C[8]; + s32 f64; /* 0x64 */ + u8 p68[0x10C - 0x68]; + } Ent_8017FD58_8017E7B0; +typedef struct { + u16 f0; /* 0x00 */ + u16 f2; /* 0x02 */ + u16 f4; /* 0x04 */ + u16 x; /* 0x06 */ + u16 f8; /* 0x08 */ + u16 y; /* 0x0A */ + u16 fC; /* 0x0C */ + u16 z; /* 0x0E */ + u8 p10[0x10]; + s32 f20; /* 0x20 */ + u8 p24[0x34]; + s32 f58; /* 0x58 */ + u8 p5C[8]; + s32 f64; /* 0x64 */ + u8 p68[0x10C - 0x68]; + } Ent_8017FD58_8017EC0C; +typedef struct { + u16 f0; /* 0x00 */ + u16 f2; /* 0x02 */ + u16 f4; /* 0x04 */ + u16 x; /* 0x06 */ + u16 f8; /* 0x08 */ + u16 y; /* 0x0A */ + u16 fC; /* 0x0C */ + u16 z; /* 0x0E */ + u8 p10[0x10]; + s32 f20; /* 0x20 */ + u8 p24[0x34]; + s32 f58; /* 0x58 */ + u8 p5C[8]; + s32 f64; /* 0x64 */ + u8 p68[0x10C - 0x68]; + } Ent_8017FD58_8017EF34; +typedef struct { + u16 f0; /* 0x00 */ + u16 f2; /* 0x02 */ + u16 f4; /* 0x04 */ + u16 x; /* 0x06 */ + u16 f8; /* 0x08 */ + u16 y; /* 0x0A */ + u16 fC; /* 0x0C */ + u16 z; /* 0x0E */ + u8 p10[0x10]; + s32 f20; /* 0x20 */ + u8 p24[0x34]; + s32 f58; /* 0x58 */ + u8 p5C[8]; + s32 f64; /* 0x64 */ + u8 p68[0x10C - 0x68]; + } Ent_8017FD58_8017F3CC; +typedef struct { + u16 f0; /* 0x00 */ + u16 f2; /* 0x02 */ + u16 f4; /* 0x04 */ + u16 x; /* 0x06 */ + u16 f8; /* 0x08 */ + u16 y; /* 0x0A */ + u16 fC; /* 0x0C */ + u16 z; /* 0x0E */ + u8 p10[0x10]; + s32 f20; /* 0x20 */ + u8 p24[0x34]; + s32 f58; /* 0x58 */ + u8 p5C[8]; + s32 f64; /* 0x64 */ + u8 p68[0x10C - 0x68]; + } Ent_8017FD58_8017F73C; +typedef struct { + u16 f0; /* 0x00 */ + u16 f2; /* 0x02 */ + u16 f4; /* 0x04 */ + u16 x; /* 0x06 */ + u16 f8; /* 0x08 */ + u16 y; /* 0x0A */ + u16 fC; /* 0x0C */ + u16 z; /* 0x0E */ + u8 p10[0x10]; + s32 f20; /* 0x20 */ + u8 p24[0x34]; + s32 f58; /* 0x58 */ + u8 p5C[8]; + s32 f64; /* 0x64 */ + u8 p68[0x10C - 0x68]; + } Ent_8017FD58_8017FCEC; +typedef struct { + u16 f0; /* 0x00 */ + u16 f2; /* 0x02 */ + u16 f4; /* 0x04 */ + u16 x; /* 0x06 */ + u16 f8; /* 0x08 */ + u16 y; /* 0x0A */ + u16 fC; /* 0x0C */ + u16 z; /* 0x0E */ + u8 p10[0x10]; + s32 f20; /* 0x20 */ + u8 p24[0x34]; + s32 f58; /* 0x58 */ + u8 p5C[8]; + s32 f64; /* 0x64 */ + u8 p68[0x10C - 0x68]; + } Ent_8017FD58_8018150C; +typedef struct { + u16 f0; /* 0x00 */ + u16 f2; /* 0x02 */ + u16 f4; /* 0x04 */ + u16 x; /* 0x06 */ + u16 f8; /* 0x08 */ + u16 y; /* 0x0A */ + u16 fC; /* 0x0C */ + u16 z; /* 0x0E */ + u8 p10[0x10]; + s32 f20; /* 0x20 */ + u8 p24[0x34]; + s32 f58; /* 0x58 */ + u8 p5C[8]; + s32 f64; /* 0x64 */ + u8 p68[0x10C - 0x68]; + } Ent_8017FD58_8018199C; +typedef struct { + u16 f0; /* 0x00 */ + u16 f2; /* 0x02 */ + u16 f4; /* 0x04 */ + u16 x; /* 0x06 */ + u16 f8; /* 0x08 */ + u16 y; /* 0x0A */ + u16 fC; /* 0x0C */ + u16 z; /* 0x0E */ + u8 p10[0x10]; + s32 f20; /* 0x20 */ + u8 p24[0x34]; + s32 f58; /* 0x58 */ + u8 p5C[8]; + s32 f64; /* 0x64 */ + u8 p68[0x10C - 0x68]; + } Ent_8017FD58_8018223C; +typedef struct { + u16 f0; /* 0x00 */ + u16 f2; /* 0x02 */ + u16 f4; /* 0x04 */ + u16 x; /* 0x06 */ + u16 f8; /* 0x08 */ + u16 y; /* 0x0A */ + u16 fC; /* 0x0C */ + u16 z; /* 0x0E */ + u8 p10[0x10]; + s32 f20; /* 0x20 */ + u8 p24[0x34]; + s32 f58; /* 0x58 */ + u8 p5C[8]; + s32 f64; /* 0x64 */ + u8 p68[0x10C - 0x68]; + } Ent_8017FD58_80182560; +typedef struct { + u16 f0; /* 0x00 */ + u16 f2; /* 0x02 */ + u16 f4; /* 0x04 */ + u16 x; /* 0x06 */ + u16 f8; /* 0x08 */ + u16 y; /* 0x0A */ + u16 fC; /* 0x0C */ + u16 z; /* 0x0E */ + u8 p10[0x10]; + s32 f20; /* 0x20 */ + u8 p24[0x34]; + s32 f58; /* 0x58 */ + u8 p5C[8]; + s32 f64; /* 0x64 */ + u8 p68[0x10C - 0x68]; + } Ent_8017FD58_80182A14; +typedef struct { + u16 f0; /* 0x00 */ + u16 f2; /* 0x02 */ + u16 f4; /* 0x04 */ + u16 x; /* 0x06 */ + u16 f8; /* 0x08 */ + u16 y; /* 0x0A */ + u16 fC; /* 0x0C */ + u16 z; /* 0x0E */ + u8 p10[0x10]; + s32 f20; /* 0x20 */ + u8 p24[0x34]; + s32 f58; /* 0x58 */ + u8 p5C[8]; + s32 f64; /* 0x64 */ + u8 p68[0x10C - 0x68]; + } Ent_8017FD58_801830E4; +typedef struct { + u16 f0; /* 0x00 */ + u16 f2; /* 0x02 */ + u16 f4; /* 0x04 */ + u16 x; /* 0x06 */ + u16 f8; /* 0x08 */ + u16 y; /* 0x0A */ + u16 fC; /* 0x0C */ + u16 z; /* 0x0E */ + u8 p10[0x10]; + s32 f20; /* 0x20 */ + u8 p24[0x34]; + s32 f58; /* 0x58 */ + u8 p5C[8]; + s32 f64; /* 0x64 */ + u8 p68[0x10C - 0x68]; + } Ent_8017FD58_8018406C; +typedef struct { + u16 f0; /* 0x00 */ + u16 f2; /* 0x02 */ + u16 f4; /* 0x04 */ + u16 x; /* 0x06 */ + u16 f8; /* 0x08 */ + u16 y; /* 0x0A */ + u16 fC; /* 0x0C */ + u16 z; /* 0x0E */ + u8 p10[0x10]; + s32 f20; /* 0x20 */ + u8 p24[0x34]; + s32 f58; /* 0x58 */ + u8 p5C[8]; + s32 f64; /* 0x64 */ + u8 p68[0x10C - 0x68]; + } Ent_8017FD58_80184A50; +typedef struct { + u16 f0; /* 0x00 */ + u16 f2; /* 0x02 */ + u16 f4; /* 0x04 */ + u16 x; /* 0x06 */ + u16 f8; /* 0x08 */ + u16 y; /* 0x0A */ + u16 fC; /* 0x0C */ + u16 z; /* 0x0E */ + u8 p10[0x10]; + s32 f20; /* 0x20 */ + u8 p24[0x34]; + s32 f58; /* 0x58 */ + u8 p5C[8]; + s32 f64; /* 0x64 */ + u8 p68[0x10C - 0x68]; + } Ent_8017FD58_801863B0; +typedef struct { + u8 unk00[0x16]; + s16 unk16; + u8 unk18[4]; + s32 unk1C; + u8 unk20[4]; +} Ent_80181914; +typedef struct Ent_80183CF0 { + u8 unk0[2]; /* 0x00 */ + u16 unk2; /* 0x02 */ +} Ent_80183CF0; +typedef struct Ent_80183CF0_80183CF0 { + u8 unk0[2]; /* 0x00 */ + u16 unk2; /* 0x02 */ +} Ent_80183CF0_80183CF0; +typedef struct Ent_80183D50 { + u8 unk0[2]; /* 0x00 */ + u16 unk2; /* 0x02 */ + u8 unk4[0xD8]; /* 0x04 */ + s16 unkDC; /* 0xDC */ + u8 unkDE[4]; /* 0xDE */ + s16 unkE2; /* 0xE2 */ + s16 unkE4; /* 0xE4 */ + u8 unkE6[2]; /* 0xE6 */ + s16 unkE8; /* 0xE8 */ + s16 unkEA; /* 0xEA */ +} Ent_80183D50; +typedef struct Ent_80183D50_80183D50 { + u8 unk0[2]; /* 0x00 */ + u16 unk2; /* 0x02 */ + u8 unk4[0xD8]; /* 0x04 */ + s16 unkDC; /* 0xDC */ + u8 unkDE[4]; /* 0xDE */ + s16 unkE2; /* 0xE2 */ + s16 unkE4; /* 0xE4 */ + u8 unkE6[2]; /* 0xE6 */ + s16 unkE8; /* 0xE8 */ + s16 unkEA; /* 0xEA */ +} Ent_80183D50_80183D50; +typedef struct Ent_80184264 { + u8 pad0[0xE2]; + s16 unkE2; + s16 unkE4; +} Ent_80184264; +typedef struct Ent_80184264_80184264 { + u8 pad0[0xE2]; + s16 unkE2; + s16 unkE4; +} Ent_80184264_80184264; +typedef struct { + u8 unk00[0x1C]; + s32 unk1C; + u8 unk20[4]; +} Ent_801F7618; +typedef struct { + u32 *ot; /* 0x00 */ + u32 pad[4]; /* 0x04..0x13 */ + } Env_800D29F8; +typedef struct + { + u32 *ot; + u32 pad[4]; + } Env_80140958; +typedef struct { + u32 *ot; /* 0x00 */ + u32 pad[4]; /* 0x04..0x13 */ + } Env_8017EFA8; +typedef struct { + u32 *ot; /* 0x00 */ + u32 pad[4]; /* 0x04..0x13 */ + } Env_8017EFA8_8017E7DC; +typedef struct { + u32 *ot; /* 0x00 */ + u32 pad[4]; /* 0x04..0x13 */ + } Env_8017EFA8_8017E804; +typedef struct { + u32 *ot; /* 0x00 */ + u32 pad[4]; /* 0x04..0x13 */ + } Env_8017EFA8_8017E93C; +typedef struct { + u32 *ot; /* 0x00 */ + u32 pad[4]; /* 0x04..0x13 */ + } Env_8017EFA8_8017EFA8; +typedef struct { + u32 *ot; /* 0x00 */ + u32 pad[4]; /* 0x04..0x13 -> 0x14 stride */ + } Env_8018893C; +typedef struct { + u32 *ot; /* 0x00 */ + u32 pad[4]; /* 0x04..0x13 -> 0x14 stride */ + } Env_8018BCD4; +typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; + s16 x2, y2; u16 uv2, p2; } Ft3_35C; +typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; + s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } Ft4_35C; +typedef struct Gs_80078E78 { + u8 pad0[0x37]; /* 0x00 */ + u8 unk37; /* 0x37 */ +} Gs_80078E78; +typedef struct Gs_80078E78_80183D50 { + u8 pad0[0x37]; /* 0x00 */ + u8 unk37; /* 0x37 */ +} Gs_80078E78_80183D50; +typedef struct LVec1CDC { s32 vx, vy, vz, pad; } LVec1CDC; +typedef struct { char _b[8]; } M8_8014C6F4; +typedef struct { s16 m[3][3]; s32 t[3]; } MATRIX2_8017CDF0; +typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MATRIX_8017C290; +typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MATRIX_8017E72C; +typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L; +typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017BEBC; +typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017C180; +typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017C294; +typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017C558; +typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017CA80; +typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017CD9C; +typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017D0B8; +typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017D27C; +typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_8017D960; +typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_801811D4; +typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_L_80184B80; +typedef struct { s32 w[8]; } Mat32_8018A390; +typedef struct { s32 w[8]; } Mat32_8018A390_8018523C; +typedef struct { s32 w[8]; } Mat32_8018A390_80185730; +typedef struct { s32 w[8]; } Mat32_8018A390_80186468; +typedef struct { s32 w[8]; } Mat32_8018A390_8018A390; +typedef struct { s32 w[8]; } Mat32_8018A390_8018FE94; +typedef struct { s32 w[8]; } Mat32_8018B23C; +typedef struct { s32 w[8]; } Mat32_8018B23C_8018234C; +typedef struct { s32 w[8]; } Mat32_8018B23C_80182498; +typedef struct { s32 w[8]; } Mat32_8018B23C_801829F8; +typedef struct { s32 w[8]; } Mat32_8018B23C_801844D4; +typedef struct { s32 w[8]; } Mat32_8018B23C_80184918; +typedef struct { s32 w[8]; } Mat32_8018B23C_80185150; +typedef struct { s32 w[8]; } Mat32_8018B23C_80185E34; +typedef struct { s32 w[8]; } Mat32_8018B23C_801860E8; +typedef struct { s32 w[8]; } Mat32_8018B23C_801865DC; +typedef struct { s32 w[8]; } Mat32_8018B23C_80187314; +typedef struct { s32 w[8]; } Mat32_8018B23C_8018B23C; +typedef struct { s32 w[8]; } Mat32_8018B23C_8018B2C4; +typedef struct { s32 w[8]; } Mat32_8018B23C_8018EBCC; +typedef struct { + s32 unk0; /* 0x00 */ + s32 mode; /* 0x04 */ + s32 unk8; /* 0x08 */ + u32 dst; /* 0x0C */ + s32 n; /* 0x10 */ +} Morph_8017DC1C; +typedef struct { s16 m[3][3]; s32 t[3]; } Mtx35C; +typedef struct { s32 w[8]; } Mtx8_8017C910; +typedef struct { s32 w[8]; } Mtx8_8017C910_8017C910; +typedef struct { s32 w[8]; } Mtx8_8017C910_8017D728; +typedef struct { s32 w[8]; } Mtx8_8017C910_8017D7F0; +typedef struct { s32 w[8]; } Mtx8_8017C910_8017D9EC; +typedef struct { s32 w[8]; } Mtx8_8017C910_8017DB00; +typedef struct { s32 w[8]; } Mtx8_8017C910_8017E608; +typedef struct { s32 w[8]; } Mtx8_8017C910_8017E924; +typedef struct { s32 w[8]; } Mtx8_8017C910_8017EAE8; +typedef struct { s32 w[8]; } Mtx8_8017C910_801808E0; +typedef struct { s32 w[8]; } Mtx8_8017C910_80180E74; +typedef struct { s32 w[8]; } Mtx8_8017C910_80182A40; +typedef struct { s32 w[8]; } Mtx8_8017D0BC; +typedef struct { s32 w[8]; } Mtx8_8017DE10; +typedef struct { s32 w[8]; } Mtx8_8017DE10_8017C95C; +typedef struct { s32 w[8]; } Mtx8_8017DE10_8017D0BC; +typedef struct { s32 w[8]; } Mtx8_8017DE10_8017D370; +typedef struct { s32 w[8]; } Mtx8_8017DE10_8017DB00; +typedef struct { s32 w[8]; } Mtx8_8017DE10_8017E710; +typedef struct { s32 w[8]; } Mtx8_8017DE10_8017E878; +typedef struct { s32 w[8]; } Mtx8_8017DE10_8017EA24; +typedef struct { s32 w[8]; } Mtx8_8017DE10_8017EE3C; +typedef struct { s32 w[8]; } Mtx8_8017DE10_8017FBC8; +typedef struct { + s16 m[3][3]; + s32 t[3]; +} Mtx_8017C218; +typedef struct { + s16 m[3][3]; + s32 t[3]; +} Mtx_8017C218_8017C218; +typedef struct { + s16 m[3][3]; + s32 t[3]; +} Mtx_8017C218_8017D030; +typedef struct { + s16 m[3][3]; + s32 t[3]; +} Mtx_8017C218_8017D0F8; +typedef struct { + s16 m[3][3]; + s32 t[3]; +} Mtx_8017C218_8017D2F4; +typedef struct { + s16 m[3][3]; + s32 t[3]; +} Mtx_8017C218_8017D408; +typedef struct { + s16 m[3][3]; + s32 t[3]; +} Mtx_8017C218_8017DF10; +typedef struct { + s16 m[3][3]; + s32 t[3]; +} Mtx_8017C218_8017E22C; +typedef struct { + s16 m[3][3]; + s32 t[3]; +} Mtx_8017C218_8017E3F0; +typedef struct { + s16 m[3][3]; + s32 t[3]; +} Mtx_8017C218_801801E8; +typedef struct { + s16 m[3][3]; + s32 t[3]; +} Mtx_8017C218_8018077C; +typedef struct { + s16 m[3][3]; + s32 t[3]; +} Mtx_8017C218_80182348; +typedef struct { + u8 pad[0x154]; + u16 f154; + s16 f156; + u16 f158; + } Obj_80126B58; +typedef struct Obj_8018A550 { + s32 f0; /* 0x00 */ + u32 f4; /* 0x04 */ + s32 f8; /* 0x08 */ + s32 fC; /* 0x0C */ + s32 f10; /* 0x10 */ + s32 f14; /* 0x14 */ + s16 f18; /* 0x18 */ + s16 f1A; /* 0x1A */ + s16 f1C; /* 0x1C */ + s16 f1E; /* 0x1E */ +} Obj_8018A550; +typedef struct Ctl_8018A550 { + s32 f0; /* 0x00 */ + s16 ids[8]; /* 0x04 */ + Obj_8018A550 *slots[8]; /* 0x14 */ +} Ctl_8018A550; +typedef struct Obj_8018A550_801878A8 { + s32 f0; /* 0x00 */ + u32 f4; /* 0x04 */ + s32 f8; /* 0x08 */ + s32 fC; /* 0x0C */ + s32 f10; /* 0x10 */ + s32 f14; /* 0x14 */ + s16 f18; /* 0x18 */ + s16 f1A; /* 0x1A */ + s16 f1C; /* 0x1C */ + s16 f1E; /* 0x1E */ +} Obj_8018A550_801878A8; +typedef struct Ctl_8018A550_801878A8 { + s32 f0; /* 0x00 */ + s16 ids[8]; /* 0x04 */ + Obj_8018A550_801878A8 *slots[8]; /* 0x14 */ +} Ctl_8018A550_801878A8; +typedef struct Obj_8018A550_8018A550 { + s32 f0; /* 0x00 */ + u32 f4; /* 0x04 */ + s32 f8; /* 0x08 */ + s32 fC; /* 0x0C */ + s32 f10; /* 0x10 */ + s32 f14; /* 0x14 */ + s16 f18; /* 0x18 */ + s16 f1A; /* 0x1A */ + s16 f1C; /* 0x1C */ + s16 f1E; /* 0x1E */ +} Obj_8018A550_8018A550; +typedef struct Ctl_8018A550_8018A550 { + s32 f0; /* 0x00 */ + s16 ids[8]; /* 0x04 */ + Obj_8018A550_8018A550 *slots[8]; /* 0x14 */ +} Ctl_8018A550_8018A550; +typedef struct { s32 a; s32 b[4]; } Ot_80182A78; +typedef struct { s32 a; s32 b[4]; } Ot_80182A78_8017EE80; +typedef struct { s32 a; s32 b[4]; } Ot_80182A78_80180894; +typedef struct { s32 a; s32 b[4]; } Ot_80182A78_801812FC; +typedef struct { s32 a; s32 b[4]; } Ot_80182A78_801819E0; +typedef struct { s32 a; s32 b[4]; } Ot_8018B23C; +typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_8018234C; +typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_80182498; +typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_801829F8; +typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_801844D4; +typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_80184918; +typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_80185150; +typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_80185E34; +typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_801860E8; +typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_801865DC; +typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_80187314; +typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_8018B23C; +typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_8018B2C4; +typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_8018EBCC; +typedef struct { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s32 f8; /* 0x08 */ + s32 fC; /* 0x0C */ + } P; +typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68; +typedef struct { + u32 addr : 24; + u32 len : 8; +} PTag_8018478C; +typedef struct { + PTag_8018478C tag; + u32 code0; +} Drm_8018478C; +typedef struct { + PTag_8018478C tag; + u8 r0, g0, b0, code; + u16 x0, y0; + u8 u0, v0; + u16 clut; + u16 x1, y1; + u8 u1, v1; + u16 tpage; + u16 x2, y2; + u8 u2, v2; + u16 pad2; + u16 x3, y3; + u8 u3, v3; + u16 pad3; +} Ft4_8018478C; +typedef struct { u32 addr : 24; u32 len : 8; } PTag_8018893C; +typedef struct { + u32 addr : 24; + u32 len : 8; +} PTag_80188C04; +typedef struct { + PTag_80188C04 tag; + u32 code0; +} Drm_80188C04; +typedef struct { + PTag_80188C04 tag; + u8 r0, g0, b0, code; + u16 x0, y0; + u8 u0, v0; + u16 clut; + u16 x1, y1; + u8 u1, v1; + u16 tpage; + u16 x2, y2; + u8 u2, v2; + u16 pad2; + u16 x3, y3; + u8 u3, v3; + u16 pad3; +} Ft4_80188C04; +typedef struct { + u32 addr : 24; + u32 len : 8; +} PTag_8018B028; +typedef struct { + PTag_8018B028 tag; + u32 code0; +} Drm_8018B028; +typedef struct { + PTag_8018B028 tag; + u8 r0, g0, b0, code; + u16 x0, y0; + u8 u0, v0; + u16 clut; + u16 x1, y1; + u8 u1, v1; + u16 tpage; + u16 x2, y2; + u8 u2, v2; + u16 pad2; + u16 x3, y3; + u8 u3, v3; + u16 pad3; +} Ft4_8018B028; +typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C; +typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_8018234C; +typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_80182498; +typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_801829F8; +typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_801844D4; +typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_80184918; +typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_80185150; +typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_80185E34; +typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_801860E8; +typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_801865DC; +typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_80187314; +typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_8018B23C; +typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_8018B2C4; +typedef struct { u32 addr:24; u32 len:8; } PTag_8018B23C_8018EBCC; +typedef struct { u32 addr : 24; u32 len : 8; } PTag_8018BCD4; +typedef struct { + u32 addr : 24; + u32 len : 8; +} PTag_8018BED0; +typedef struct { + PTag_8018BED0 tag; + u32 code0; +} Drm_8018BED0; +typedef struct { + PTag_8018BED0 tag; + u8 r0, g0, b0, code; + u16 x0, y0; + u8 u0, v0; + u16 clut; + u16 x1, y1; + u8 u1, v1; + u16 tpage; + u16 x2, y2; + u8 u2, v2; + u16 pad2; + u16 x3, y3; + u8 u3, v3; + u16 pad3; +} Ft4_8018BED0; +typedef struct { + u8 pad0[3]; + u8 code; + s32 f4; + s32 f8; + } P_13BD74; +typedef struct { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s32 f8; /* 0x08 */ + s32 fC; /* 0x0C */ + } P_801820E0; +typedef struct { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s32 f8; /* 0x08 */ + s32 fC; /* 0x0C */ + } P_8018222C; +typedef struct { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s32 f8; /* 0x08 */ + s32 fC; /* 0x0C */ + } P_8018278C; +typedef struct { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s32 f8; /* 0x08 */ + s32 fC; /* 0x0C */ + } P_80184268; +typedef struct { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s32 f8; /* 0x08 */ + s32 fC; /* 0x0C */ + } P_801846AC; +typedef struct { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s32 f8; /* 0x08 */ + s32 fC; /* 0x0C */ + } P_80184EE4; +typedef struct { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s32 f8; /* 0x08 */ + s32 fC; /* 0x0C */ + } P_80185BC8; +typedef struct { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s32 f8; /* 0x08 */ + s32 fC; /* 0x0C */ + } P_80185E7C; +typedef struct { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s32 f8; /* 0x08 */ + s32 fC; /* 0x0C */ + } P_80186370; +typedef struct { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s32 f8; /* 0x08 */ + s32 fC; /* 0x0C */ + } P_801870A8; +typedef struct { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s32 f8; /* 0x08 */ + s32 fC; /* 0x0C */ + } P_8018AFD0; +typedef struct { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s32 f8; /* 0x08 */ + s32 fC; /* 0x0C */ + } P_8018B058; +typedef struct { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s32 f8; /* 0x08 */ + s32 fC; /* 0x0C */ + } P_8018E960; +typedef struct { u32 xx, yy, zz; u32 nprim; u32 *prim; } Part35C; +typedef struct { u32 xx, yy, zz; u32 nprim; u32 *prim; } Part_8017CDF0; +typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PolyFT3_8017CDF0; +typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PolyFT4_8017CDF0; +typedef struct { + u32 tag; + u32 rgb0; s16 x0, y0; u32 uv0; + u32 rgb1; s16 x1, y1; u32 uv1; + u32 rgb2; s16 x2, y2; u16 uv2, p2; +} PolyGT3; +typedef struct { + u32 tag; + u32 rgb0; s16 x0, y0; u32 uv0; + u32 rgb1; s16 x1, y1; u32 uv1; + u32 rgb2; s16 x2, y2; u16 uv2, p2; + u32 rgb3; s16 x3, y3; u16 uv3, p3; +} PolyGT4; +typedef struct Prim4_8017E978 { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ +} Prim4_8017E978; +typedef struct Panel_8017E978 { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + void *f4; /* 0x04 */ + void *f8; /* 0x08 */ + s16 fC; /* 0x0C */ + s16 fE; /* 0x0E */ + s16 f10; /* 0x10 */ + s16 f12; /* 0x12 */ + void *f14; /* 0x14 */ + Prim4_8017E978 *f18; /* 0x18 */ + void *f1C; /* 0x1C */ +} Panel_8017E978; +typedef struct Prim4_8017E978_8017E1AC { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ +} Prim4_8017E978_8017E1AC; +typedef struct Panel_8017E978_8017E1AC { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + void *f4; /* 0x04 */ + void *f8; /* 0x08 */ + s16 fC; /* 0x0C */ + s16 fE; /* 0x0E */ + s16 f10; /* 0x10 */ + s16 f12; /* 0x12 */ + void *f14; /* 0x14 */ + Prim4_8017E978_8017E1AC *f18; /* 0x18 */ + void *f1C; /* 0x1C */ +} Panel_8017E978_8017E1AC; +typedef struct Prim4_8017E978_8017E1D4 { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ +} Prim4_8017E978_8017E1D4; +typedef struct Panel_8017E978_8017E1D4 { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + void *f4; /* 0x04 */ + void *f8; /* 0x08 */ + s16 fC; /* 0x0C */ + s16 fE; /* 0x0E */ + s16 f10; /* 0x10 */ + s16 f12; /* 0x12 */ + void *f14; /* 0x14 */ + Prim4_8017E978_8017E1D4 *f18; /* 0x18 */ + void *f1C; /* 0x1C */ +} Panel_8017E978_8017E1D4; +typedef struct Prim4_8017E978_8017E30C { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ +} Prim4_8017E978_8017E30C; +typedef struct Panel_8017E978_8017E30C { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + void *f4; /* 0x04 */ + void *f8; /* 0x08 */ + s16 fC; /* 0x0C */ + s16 fE; /* 0x0E */ + s16 f10; /* 0x10 */ + s16 f12; /* 0x12 */ + void *f14; /* 0x14 */ + Prim4_8017E978_8017E30C *f18; /* 0x18 */ + void *f1C; /* 0x1C */ +} Panel_8017E978_8017E30C; +typedef struct Prim4_8017E978_8017E978 { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ +} Prim4_8017E978_8017E978; +typedef struct Panel_8017E978_8017E978 { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + void *f4; /* 0x04 */ + void *f8; /* 0x08 */ + s16 fC; /* 0x0C */ + s16 fE; /* 0x0E */ + s16 f10; /* 0x10 */ + s16 f12; /* 0x12 */ + void *f14; /* 0x14 */ + Prim4_8017E978_8017E978 *f18; /* 0x18 */ + void *f1C; /* 0x1C */ +} Panel_8017E978_8017E978; +typedef struct Prim4_8017E978_801880E0 { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ +} Prim4_8017E978_801880E0; +typedef struct Panel_8017E978_801880E0 { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + void *f4; /* 0x04 */ + void *f8; /* 0x08 */ + s16 fC; /* 0x0C */ + s16 fE; /* 0x0E */ + s16 f10; /* 0x10 */ + s16 f12; /* 0x12 */ + void *f14; /* 0x14 */ + Prim4_8017E978_801880E0 *f18; /* 0x18 */ + void *f1C; /* 0x1C */ +} Panel_8017E978_801880E0; +typedef struct Prim4_8017E978_801886B8 { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ +} Prim4_8017E978_801886B8; +typedef struct Panel_8017E978_801886B8 { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + void *f4; /* 0x04 */ + void *f8; /* 0x08 */ + s16 fC; /* 0x0C */ + s16 fE; /* 0x0E */ + s16 f10; /* 0x10 */ + s16 f12; /* 0x12 */ + void *f14; /* 0x14 */ + Prim4_8017E978_801886B8 *f18; /* 0x18 */ + void *f1C; /* 0x1C */ +} Panel_8017E978_801886B8; +typedef struct Prim4_8017E978_801889B8 { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ +} Prim4_8017E978_801889B8; +typedef struct Panel_8017E978_801889B8 { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + void *f4; /* 0x04 */ + void *f8; /* 0x08 */ + s16 fC; /* 0x0C */ + s16 fE; /* 0x0E */ + s16 f10; /* 0x10 */ + s16 f12; /* 0x12 */ + void *f14; /* 0x14 */ + Prim4_8017E978_801889B8 *f18; /* 0x18 */ + void *f1C; /* 0x1C */ +} Panel_8017E978_801889B8; +typedef struct Prim4_8017E978_8018B478 { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ +} Prim4_8017E978_8018B478; +typedef struct Panel_8017E978_8018B478 { + s16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + void *f4; /* 0x04 */ + void *f8; /* 0x08 */ + s16 fC; /* 0x0C */ + s16 fE; /* 0x0E */ + s16 f10; /* 0x10 */ + s16 f12; /* 0x12 */ + void *f14; /* 0x14 */ + Prim4_8017E978_8018B478 *f18; /* 0x18 */ + void *f1C; /* 0x1C */ +} Panel_8017E978_8018B478; +typedef struct { + SVECTOR v[4]; /* 0x00 */ + s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */ + u8 f6; /* 0x38 */ + u8 pad[7]; /* -> 0x40 */ +} Prim_8016E7C8_8016E7C8; +typedef struct { u32 w0, w1, w2; } Prim_8017CD9C; +typedef struct { u32 w0, w1, w2; } Prim_8017CDF0; +typedef struct { u32 w0, w1, w2; } Prim_8017D174; +typedef struct { u32 w0, w1, w2; } Prim_8017DF84; +typedef struct { u32 w0, w1, w2; } Prim_8017FA5C; +typedef struct { u32 w0, w1, w2; } Prim_8017FB38; +typedef struct { u32 w0, w1, w2; } Prim_80180A64; +typedef struct { u16 vx, vy; } Pt2_80180F98; +typedef struct { u16 vx, vy; } Pt2_80182FD4; +typedef struct { u16 vx, vy; } Pt2_80184370; +typedef struct { u16 vx, vy; } Pt2_801887E8; +typedef struct { u16 vx, vy; } Pt2_8018AC0C; +typedef struct { u16 vx, vy; } Pt2_8018BAB4; +typedef struct { u16 x, y, z, w; } Pt_80187940; +typedef struct { u16 x, y, z, w; } Pt_80187940_80180D24; +typedef struct { + u8 b0; + u8 b1; + u8 b2; + u8 b3; + } Q_80138C60; +typedef struct { + s32 f0, f1, f2, f3; +} Quad_8018797C; +typedef struct { + s32 f0, f1, f2, f3; +} Quad_8018797C_8017F26C; +typedef struct { + s32 f0, f1, f2, f3; +} Quad_8018797C_8017FCD0; +typedef struct { + s32 f0, f1, f2, f3; +} Quad_8018797C_80181A30; +typedef struct { + s32 f0, f1, f2, f3; +} Quad_8018797C_80182B44; +typedef struct { + u8 b0, b1, b2, b3; +} Quad_801EA880; +typedef struct { + u8 b0, b1, b2, b3; +} Quad_801EA880_8017D900; +typedef struct { + u8 b0, b1, b2, b3; +} Quad_801EA880_8017FD9C; +typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027; +typedef struct { Rec027 r[9]; } Blk027; +typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017BFEC; +typedef struct { Rec027_8017BFEC r[9]; } Blk027_8017BFEC; +typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017C2B0; +typedef struct { Rec027_8017C2B0 r[9]; } Blk027_8017C2B0; +typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017C3C4; +typedef struct { Rec027_8017C3C4 r[9]; } Blk027_8017C3C4; +typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017C688; +typedef struct { Rec027_8017C688 r[9]; } Blk027_8017C688; +typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017CBB0; +typedef struct { Rec027_8017CBB0 r[9]; } Blk027_8017CBB0; +typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017CECC; +typedef struct { Rec027_8017CECC r[9]; } Blk027_8017CECC; +typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017D1E8; +typedef struct { Rec027_8017D1E8 r[9]; } Blk027_8017D1E8; +typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017D3AC; +typedef struct { Rec027_8017D3AC r[9]; } Blk027_8017D3AC; +typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_8017DA90; +typedef struct { Rec027_8017DA90 r[9]; } Blk027_8017DA90; +typedef struct { u16 f0; s16 f2; u16 f4; u16 f6; u16 f8; u16 fA; } Rec027_80181304; +typedef struct { Rec027_80181304 r[9]; } Blk027_80181304; +typedef struct { + s32 f0; /* 0x00 */ + u32 *f4; /* 0x04 == D_800AE7BC */ + s32 f8; /* 0x08 */ + s32 fC; /* 0x0C */ + s32 f10; /* 0x10 */ + } Rec20_8017DF18; +typedef struct { + s32 f0; /* 0x00 */ + u32 *f4; /* 0x04 == D_800AE7BC */ + s32 f8; /* 0x08 */ + s32 fC; /* 0x0C */ + s32 f10; /* 0x10 */ + } Rec20_8017DF18_8017DEF0; +typedef struct { + s32 f0; /* 0x00 */ + u32 *f4; /* 0x04 == D_800AE7BC */ + s32 f8; /* 0x08 */ + s32 fC; /* 0x0C */ + s32 f10; /* 0x10 */ + } Rec20_8017DF18_8017E050; +typedef struct { + s32 f0; /* 0x00 */ + u32 *f4; /* 0x04 == D_800AE7BC */ + s32 f8; /* 0x08 */ + s32 fC; /* 0x0C */ + s32 f10; /* 0x10 */ + } Rec20_8017DF18_8017E6BC; +typedef struct { u16 x; u16 y; u16 z; s16 w; } Rec8_8018A390; +typedef struct { u16 x; u16 y; u16 z; s16 w; } Rec8_8018A390_8018523C; +typedef struct { u16 x; u16 y; u16 z; s16 w; } Rec8_8018A390_80185730; +typedef struct { u16 x; u16 y; u16 z; s16 w; } Rec8_8018A390_80186468; +typedef struct { u16 x; u16 y; u16 z; s16 w; } Rec8_8018A390_8018A390; +typedef struct { u16 x; u16 y; u16 z; s16 w; } Rec8_8018A390_8018FE94; +typedef struct { + u16 f0; + s16 f2; + u16 f4; + u16 f6; + u16 f8; + u16 fA; + } Rec_8017C738; +typedef struct { + u16 f0; + s16 f2; + u16 f4; + u16 f6; + u16 f8; + u16 fA; + } Rec_8017C738_8017C738; +typedef struct { + u16 f0; + s16 f2; + u16 f4; + u16 f6; + u16 f8; + u16 fA; + } Rec_8017C738_8017C9FC; +typedef struct { + u16 f0; + s16 f2; + u16 f4; + u16 f6; + u16 f8; + u16 fA; + } Rec_8017C738_8017CB10; +typedef struct { + u16 f0; + s16 f2; + u16 f4; + u16 f6; + u16 f8; + u16 fA; + } Rec_8017C738_8017CDD4; +typedef struct { + u16 f0; + s16 f2; + u16 f4; + u16 f6; + u16 f8; + u16 fA; + } Rec_8017C738_8017D2FC; +typedef struct { + u16 f0; + s16 f2; + u16 f4; + u16 f6; + u16 f8; + u16 fA; + } Rec_8017C738_8017D618; +typedef struct { + u16 f0; + s16 f2; + u16 f4; + u16 f6; + u16 f8; + u16 fA; + } Rec_8017C738_8017D934; +typedef struct { + u16 f0; + s16 f2; + u16 f4; + u16 f6; + u16 f8; + u16 fA; + } Rec_8017C738_8017DAF8; +typedef struct { + u16 f0; + s16 f2; + u16 f4; + u16 f6; + u16 f8; + u16 fA; + } Rec_8017C738_8017E1DC; +typedef struct { + u16 f0; + s16 f2; + u16 f4; + u16 f6; + u16 f8; + u16 fA; + } Rec_8017C738_80181A50; +typedef struct Rec_8018A550 { + u16 f0; /* 0x00 */ + u16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s32 f8; /* 0x08 */ + s32 fC; /* 0x0C */ +} Rec_8018A550; +typedef struct Rec_8018A550_801878A8 { + u16 f0; /* 0x00 */ + u16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s32 f8; /* 0x08 */ + s32 fC; /* 0x0C */ +} Rec_8018A550_801878A8; +typedef struct Rec_8018A550_8018A550 { + u16 f0; /* 0x00 */ + u16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s32 f8; /* 0x08 */ + s32 fC; /* 0x0C */ +} Rec_8018A550_8018A550; +typedef struct { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; +} Rec_8018A6A4; +typedef struct { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; +} Rec_8018A6A4_801817B4; +typedef struct { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; +} Rec_8018A6A4_80181900; +typedef struct { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; +} Rec_8018A6A4_80181E60; +typedef struct { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; +} Rec_8018A6A4_8018393C; +typedef struct { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; +} Rec_8018A6A4_80183D80; +typedef struct { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; +} Rec_8018A6A4_801845B8; +typedef struct { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; +} Rec_8018A6A4_8018529C; +typedef struct { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; +} Rec_8018A6A4_80185550; +typedef struct { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; +} Rec_8018A6A4_80185A44; +typedef struct { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; +} Rec_8018A6A4_8018677C; +typedef struct { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; +} Rec_8018A6A4_8018A6A4; +typedef struct { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; +} Rec_8018A6A4_8018A72C; +typedef struct { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; +} Rec_8018A6A4_8018E034; +typedef struct { + u16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s16 f8; /* 0x08 */ + u16 fA; /* 0x0A */ + s16 fC; /* 0x0C */ + u16 fE; /* 0x0E */ +} Rec_8018B23C; +typedef struct { + u16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s16 f8; /* 0x08 */ + u16 fA; /* 0x0A */ + s16 fC; /* 0x0C */ + u16 fE; /* 0x0E */ +} Rec_8018B23C_8018234C; +typedef struct { + u16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s16 f8; /* 0x08 */ + u16 fA; /* 0x0A */ + s16 fC; /* 0x0C */ + u16 fE; /* 0x0E */ +} Rec_8018B23C_80182498; +typedef struct { + u16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s16 f8; /* 0x08 */ + u16 fA; /* 0x0A */ + s16 fC; /* 0x0C */ + u16 fE; /* 0x0E */ +} Rec_8018B23C_801829F8; +typedef struct { + u16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s16 f8; /* 0x08 */ + u16 fA; /* 0x0A */ + s16 fC; /* 0x0C */ + u16 fE; /* 0x0E */ +} Rec_8018B23C_801844D4; +typedef struct { + u16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s16 f8; /* 0x08 */ + u16 fA; /* 0x0A */ + s16 fC; /* 0x0C */ + u16 fE; /* 0x0E */ +} Rec_8018B23C_80184918; +typedef struct { + u16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s16 f8; /* 0x08 */ + u16 fA; /* 0x0A */ + s16 fC; /* 0x0C */ + u16 fE; /* 0x0E */ +} Rec_8018B23C_80185150; +typedef struct { + u16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s16 f8; /* 0x08 */ + u16 fA; /* 0x0A */ + s16 fC; /* 0x0C */ + u16 fE; /* 0x0E */ +} Rec_8018B23C_80185E34; +typedef struct { + u16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s16 f8; /* 0x08 */ + u16 fA; /* 0x0A */ + s16 fC; /* 0x0C */ + u16 fE; /* 0x0E */ +} Rec_8018B23C_801860E8; +typedef struct { + u16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s16 f8; /* 0x08 */ + u16 fA; /* 0x0A */ + s16 fC; /* 0x0C */ + u16 fE; /* 0x0E */ +} Rec_8018B23C_801865DC; +typedef struct { + u16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s16 f8; /* 0x08 */ + u16 fA; /* 0x0A */ + s16 fC; /* 0x0C */ + u16 fE; /* 0x0E */ +} Rec_8018B23C_80187314; +typedef struct { + u16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s16 f8; /* 0x08 */ + u16 fA; /* 0x0A */ + s16 fC; /* 0x0C */ + u16 fE; /* 0x0E */ +} Rec_8018B23C_8018B23C; +typedef struct { + u16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s16 f8; /* 0x08 */ + u16 fA; /* 0x0A */ + s16 fC; /* 0x0C */ + u16 fE; /* 0x0E */ +} Rec_8018B23C_8018B2C4; +typedef struct { + u16 f0; /* 0x00 */ + s16 f2; /* 0x02 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s16 f8; /* 0x08 */ + u16 fA; /* 0x0A */ + s16 fC; /* 0x0C */ + u16 fE; /* 0x0E */ +} Rec_8018B23C_8018EBCC; +typedef struct Rot1CDC { s32 a : 16; s32 b : 16; } Rot1CDC; +typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88; +typedef struct { s16 a, b, c, d; } SV4_L; +typedef struct { s16 a, b, c, d; } SV4_L_8017BEBC; +typedef struct { s16 a, b, c, d; } SV4_L_8017C180; +typedef struct { s16 a, b, c, d; } SV4_L_8017C294; +typedef struct { s16 a, b, c, d; } SV4_L_8017C558; +typedef struct { s16 a, b, c, d; } SV4_L_8017CA80; +typedef struct { s16 a, b, c, d; } SV4_L_8017CD9C; +typedef struct { s16 a, b, c, d; } SV4_L_8017D0B8; +typedef struct { s16 a, b, c, d; } SV4_L_8017D27C; +typedef struct { s16 a, b, c, d; } SV4_L_8017D960; +typedef struct { s16 a, b, c, d; } SV4_L_801811D4; +typedef struct { s16 a, b, c, d; } SV4_L_80184B80; +typedef struct { s16 vx, vy, vz, pad; } SVECTOR2_8017CDF0; +typedef struct { u16 vx, vy, vz, pad; } SVECTOR_8017C290; +typedef struct { u16 vx, vy, vz, pad; } SVECTOR_8017E72C; +typedef struct { short vx, vy, vz, pad; } SVECTOR_8017F40C; +typedef struct { + SVECTOR_8017F40C v[4]; /* 0x00 */ + s16 k30, k32, k34, k36, k38, k3a, k3c, k3e; /* 0x20 */ + u32 bcast; /* 0x30 */ + s32 tag; /* 0x34 */ + u8 code; /* 0x38 */ + u8 pad39[7]; /* -> 0x40 */ +} Prim_8017F40C; +typedef struct { short vx, vy, vz, pad; } SVECTOR_8017F40C_8017DB28; +typedef struct { + SVECTOR_8017F40C_8017DB28 v[4]; /* 0x00 */ + s16 k30, k32, k34, k36, k38, k3a, k3c, k3e; /* 0x20 */ + u32 bcast; /* 0x30 */ + s32 tag; /* 0x34 */ + u8 code; /* 0x38 */ + u8 pad39[7]; /* -> 0x40 */ +} Prim_8017F40C_8017DB28; +typedef struct { short vx, vy, vz, pad; } SVECTOR_8017F40C_8017DF74; +typedef struct { + SVECTOR_8017F40C_8017DF74 v[4]; /* 0x00 */ + s16 k30, k32, k34, k36, k38, k3a, k3c, k3e; /* 0x20 */ + u32 bcast; /* 0x30 */ + s32 tag; /* 0x34 */ + u8 code; /* 0x38 */ + u8 pad39[7]; /* -> 0x40 */ +} Prim_8017F40C_8017DF74; +typedef struct { short vx, vy, vz, pad; } SVECTOR_8017F40C_8017E368; +typedef struct { + SVECTOR_8017F40C_8017E368 v[4]; /* 0x00 */ + s16 k30, k32, k34, k36, k38, k3a, k3c, k3e; /* 0x20 */ + u32 bcast; /* 0x30 */ + s32 tag; /* 0x34 */ + u8 code; /* 0x38 */ + u8 pad39[7]; /* -> 0x40 */ +} Prim_8017F40C_8017E368; +typedef struct { short vx, vy, vz, pad; } SVECTOR_8017F40C_8017E6EC; +typedef struct { + SVECTOR_8017F40C_8017E6EC v[4]; /* 0x00 */ + s16 k30, k32, k34, k36, k38, k3a, k3c, k3e; /* 0x20 */ + u32 bcast; /* 0x30 */ + s32 tag; /* 0x34 */ + u8 code; /* 0x38 */ + u8 pad39[7]; /* -> 0x40 */ +} Prim_8017F40C_8017E6EC; +typedef struct { short vx, vy, vz, pad; } SVECTOR_8017F40C_8017E97C; +typedef struct { + SVECTOR_8017F40C_8017E97C v[4]; /* 0x00 */ + s16 k30, k32, k34, k36, k38, k3a, k3c, k3e; /* 0x20 */ + u32 bcast; /* 0x30 */ + s32 tag; /* 0x34 */ + u8 code; /* 0x38 */ + u8 pad39[7]; /* -> 0x40 */ +} Prim_8017F40C_8017E97C; +typedef struct { s16 vx, vy, vz, pad; } SVECTOR_8018EDB0; +typedef struct { s16 vx, vy, vz, pad; } SVECTOR_8018F060; +typedef struct { u16 vx, vy, vz, pad; } SVEC_8018EDB0; +typedef struct { u16 vx, vy, vz, pad; } SVEC_8018F060; +typedef struct { short vx, vy, vz, pad; } SV_8017DAC4; +typedef struct { + SV_8017DAC4 v[4]; /* 0x00 .. 0x20 */ + s32 f20, f24, f28, f2C, f30, f34; /* 0x20 .. 0x38 */ +} Prim_8017DAC4; +typedef struct { short vx, vy, vz, pad; } SV_8017DAC4_8017DAC4; +typedef struct { + SV_8017DAC4_8017DAC4 v[4]; /* 0x00 .. 0x20 */ + s32 f20, f24, f28, f2C, f30, f34; /* 0x20 .. 0x38 */ +} Prim_8017DAC4_8017DAC4; +typedef struct { short vx, vy, vz, pad; } SV_8017DAC4_8017E2C0; +typedef struct { + SV_8017DAC4_8017E2C0 v[4]; /* 0x00 .. 0x20 */ + s32 f20, f24, f28, f2C, f30, f34; /* 0x20 .. 0x38 */ +} Prim_8017DAC4_8017E2C0; +typedef struct { short vx, vy, vz, pad; } SV_8017DAC4_8017F9D0; +typedef struct { + SV_8017DAC4_8017F9D0 v[4]; /* 0x00 .. 0x20 */ + s32 f20, f24, f28, f2C, f30, f34; /* 0x20 .. 0x38 */ +} Prim_8017DAC4_8017F9D0; +typedef struct { short vx, vy, vz, pad; } SV_8017DAC4_8018043C; +typedef struct { + SV_8017DAC4_8018043C v[4]; /* 0x00 .. 0x20 */ + s32 f20, f24, f28, f2C, f30, f34; /* 0x20 .. 0x38 */ +} Prim_8017DAC4_8018043C; +typedef struct { short vx, vy, vz, pad; } SV_8017DAC4_801809F0; +typedef struct { + SV_8017DAC4_801809F0 v[4]; /* 0x00 .. 0x20 */ + s32 f20, f24, f28, f2C, f30, f34; /* 0x20 .. 0x38 */ +} Prim_8017DAC4_801809F0; +typedef struct { short vx, vy, vz, pad; } SV_8017DAC4_80180B98; +typedef struct { + SV_8017DAC4_80180B98 v[4]; /* 0x00 .. 0x20 */ + s32 f20, f24, f28, f2C, f30, f34; /* 0x20 .. 0x38 */ +} Prim_8017DAC4_80180B98; +typedef struct { short vx, vy, vz, pad; } SV_8017DAC4_80181C5C; +typedef struct { + SV_8017DAC4_80181C5C v[4]; /* 0x00 .. 0x20 */ + s32 f20, f24, f28, f2C, f30, f34; /* 0x20 .. 0x38 */ +} Prim_8017DAC4_80181C5C; +typedef struct { short vx, vy, vz, pad; } SV_8017DAC4_80183644; +typedef struct { + SV_8017DAC4_80183644 v[4]; /* 0x00 .. 0x20 */ + s32 f20, f24, f28, f2C, f30, f34; /* 0x20 .. 0x38 */ +} Prim_8017DAC4_80183644; +typedef struct { short vx, vy, vz, pad; } SV_8017DAC4_80183CF0; +typedef struct { + SV_8017DAC4_80183CF0 v[4]; /* 0x00 .. 0x20 */ + s32 f20, f24, f28, f2C, f30, f34; /* 0x20 .. 0x38 */ +} Prim_8017DAC4_80183CF0; +typedef struct { s16 vx, vy, vz, pad; } SV_801837B0; +typedef struct { + SV_801837B0 v[4]; /* +0x00 : sxy0..3 (v[0].vz doubles as the otz slot) */ + CV_801837B0 rgb[4]; /* +0x20 */ + u32 code; /* +0x30 */ + u32 pad; /* +0x34 */ +} PKT_801837B0; +typedef struct SVec1CDC { s16 vx, vy, vz, pad; } SVec1CDC; +typedef struct { s16 vx, vy, vz, pad; } SVec35C; +typedef struct { + s16 vx, vy, vz, pad; +} SVec8_8017C218; +typedef struct { + SVec8_8017C218 v[4]; /* 0x00 */ + CVec4_8017C218 c[4]; /* 0x20 */ + s32 code; /* 0x30 */ +} Prim_8017C218; +typedef struct { + s16 vx, vy, vz, pad; +} SVec8_8017C218_8017C218; +typedef struct { + SVec8_8017C218_8017C218 v[4]; /* 0x00 */ + CVec4_8017C218_8017C218 c[4]; /* 0x20 */ + s32 code; /* 0x30 */ +} Prim_8017C218_8017C218; +typedef struct { + s16 vx, vy, vz, pad; +} SVec8_8017C218_8017D030; +typedef struct { + SVec8_8017C218_8017D030 v[4]; /* 0x00 */ + CVec4_8017C218_8017D030 c[4]; /* 0x20 */ + s32 code; /* 0x30 */ +} Prim_8017C218_8017D030; +typedef struct { + s16 vx, vy, vz, pad; +} SVec8_8017C218_8017D0F8; +typedef struct { + SVec8_8017C218_8017D0F8 v[4]; /* 0x00 */ + CVec4_8017C218_8017D0F8 c[4]; /* 0x20 */ + s32 code; /* 0x30 */ +} Prim_8017C218_8017D0F8; +typedef struct { + s16 vx, vy, vz, pad; +} SVec8_8017C218_8017D2F4; +typedef struct { + SVec8_8017C218_8017D2F4 v[4]; /* 0x00 */ + CVec4_8017C218_8017D2F4 c[4]; /* 0x20 */ + s32 code; /* 0x30 */ +} Prim_8017C218_8017D2F4; +typedef struct { + s16 vx, vy, vz, pad; +} SVec8_8017C218_8017D408; +typedef struct { + SVec8_8017C218_8017D408 v[4]; /* 0x00 */ + CVec4_8017C218_8017D408 c[4]; /* 0x20 */ + s32 code; /* 0x30 */ +} Prim_8017C218_8017D408; +typedef struct { + s16 vx, vy, vz, pad; +} SVec8_8017C218_8017DF10; +typedef struct { + SVec8_8017C218_8017DF10 v[4]; /* 0x00 */ + CVec4_8017C218_8017DF10 c[4]; /* 0x20 */ + s32 code; /* 0x30 */ +} Prim_8017C218_8017DF10; +typedef struct { + s16 vx, vy, vz, pad; +} SVec8_8017C218_8017E22C; +typedef struct { + SVec8_8017C218_8017E22C v[4]; /* 0x00 */ + CVec4_8017C218_8017E22C c[4]; /* 0x20 */ + s32 code; /* 0x30 */ +} Prim_8017C218_8017E22C; +typedef struct { + s16 vx, vy, vz, pad; +} SVec8_8017C218_8017E3F0; +typedef struct { + SVec8_8017C218_8017E3F0 v[4]; /* 0x00 */ + CVec4_8017C218_8017E3F0 c[4]; /* 0x20 */ + s32 code; /* 0x30 */ +} Prim_8017C218_8017E3F0; +typedef struct { + s16 vx, vy, vz, pad; +} SVec8_8017C218_801801E8; +typedef struct { + SVec8_8017C218_801801E8 v[4]; /* 0x00 */ + CVec4_8017C218_801801E8 c[4]; /* 0x20 */ + s32 code; /* 0x30 */ +} Prim_8017C218_801801E8; +typedef struct { + s16 vx, vy, vz, pad; +} SVec8_8017C218_8018077C; +typedef struct { + SVec8_8017C218_8018077C v[4]; /* 0x00 */ + CVec4_8017C218_8018077C c[4]; /* 0x20 */ + s32 code; /* 0x30 */ +} Prim_8017C218_8018077C; +typedef struct { + s16 vx, vy, vz, pad; +} SVec8_8017C218_80182348; +typedef struct { + SVec8_8017C218_80182348 v[4]; /* 0x00 */ + CVec4_8017C218_80182348 c[4]; /* 0x20 */ + s32 code; /* 0x30 */ +} Prim_8017C218_80182348; +typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910; +typedef struct { SVec_8017C910 v[2]; Clr_8017C910 col[2]; s32 tag; s32 pad; } Prim_8017C910; +typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017C910; +typedef struct { SVec_8017C910_8017C910 v[2]; Clr_8017C910_8017C910 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017C910; +typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017D728; +typedef struct { SVec_8017C910_8017D728 v[2]; Clr_8017C910_8017D728 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017D728; +typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017D7F0; +typedef struct { SVec_8017C910_8017D7F0 v[2]; Clr_8017C910_8017D7F0 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017D7F0; +typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017D9EC; +typedef struct { SVec_8017C910_8017D9EC v[2]; Clr_8017C910_8017D9EC col[2]; s32 tag; s32 pad; } Prim_8017C910_8017D9EC; +typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017DB00; +typedef struct { SVec_8017C910_8017DB00 v[2]; Clr_8017C910_8017DB00 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017DB00; +typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017E608; +typedef struct { SVec_8017C910_8017E608 v[2]; Clr_8017C910_8017E608 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017E608; +typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017E924; +typedef struct { SVec_8017C910_8017E924 v[2]; Clr_8017C910_8017E924 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017E924; +typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_8017EAE8; +typedef struct { SVec_8017C910_8017EAE8 v[2]; Clr_8017C910_8017EAE8 col[2]; s32 tag; s32 pad; } Prim_8017C910_8017EAE8; +typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_801808E0; +typedef struct { SVec_8017C910_801808E0 v[2]; Clr_8017C910_801808E0 col[2]; s32 tag; s32 pad; } Prim_8017C910_801808E0; +typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_80180E74; +typedef struct { SVec_8017C910_80180E74 v[2]; Clr_8017C910_80180E74 col[2]; s32 tag; s32 pad; } Prim_8017C910_80180E74; +typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910_80182A40; +typedef struct { SVec_8017C910_80182A40 v[2]; Clr_8017C910_80182A40 col[2]; s32 tag; s32 pad; } Prim_8017C910_80182A40; +typedef struct { s16 vx; u16 vy; s16 vz, pad; } SVec_8017DF84; +typedef struct { s16 vx; u16 vy; s16 vz, pad; } SVec_8017FA5C; +typedef struct { s16 vx; u16 vy; s16 vz, pad; } SVec_8017FB38; +typedef struct { s16 vx; u16 vy; s16 vz, pad; } SVec_80180A64; +typedef struct { s16 vx, vy, vz, pad; } SVec_80181CDC; +typedef struct { s16 vx, vy, vz, pad; } SVec_80181CDC_80181DE4; +typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C; +typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC; +typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820; +typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; +typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801758FC; +typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; +typedef struct { s32 g0; s32 pad[2]; } S_AF634; +typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820; +typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; +typedef struct { s32 g0; s32 pad[2]; } S_AF634_801758FC; +typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; +typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; +typedef struct { + u32 tag; /* 0x00 */ + u32 code; /* 0x04 */ + u16 x; /* 0x08 */ + u16 y; /* 0x0A */ + u32 uv; /* 0x0C */ + u32 wh; /* 0x10 */ + } Sp_80175DA8; +typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598; +typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598; +typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598; +typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598; +typedef struct { + u16 f0; + u16 f2; + u16 f4; + } Src_8013B6A0; +typedef struct { + u16 f0; + u16 f2; + u16 f4; + } Src_8013B6A0_8013B6A0; +typedef struct { u8 pad[0x10]; Pt2_80180F98 pt[12]; } Src_80180F98; +typedef struct { u8 pad[0x10]; Pt2_80182FD4 pt[12]; } Src_80182FD4; +typedef struct { u8 pad[0x10]; Pt2_80184370 pt[12]; } Src_80184370; +typedef struct { u8 pad[0x10]; Pt2_801887E8 pt[12]; } Src_801887E8; +typedef struct { u8 pad[0x10]; Pt2_8018AC0C pt[12]; } Src_8018AC0C; +typedef struct { u8 pad[0x10]; Pt2_8018BAB4 pt[12]; } Src_8018BAB4; +typedef struct { s32 f0; s32 f1; } Struct; +typedef struct { + u8 pad0[6]; + u16 f6; /* 0x06 -> D_80126B5E */ + u8 pad8[2]; + u16 fa; /* 0x0A -> D_80126B62 */ + u8 padc[2]; + u16 fe; /* 0x0E -> D_80126B66 */ +} StructB58; +typedef struct { + u8 pad0[6]; + u16 f6; /* 0x06 -> D_80126B5E */ + u8 pad8[2]; + u16 fa; /* 0x0A -> D_80126B62 */ + u8 padc[2]; + u16 fe; /* 0x0E -> D_80126B66 */ +} StructB58_8017FAFC; +typedef struct { + u8 pad0[6]; + u16 f6; /* 0x06 -> D_80126B5E */ + u8 pad8[2]; + u16 fa; /* 0x0A -> D_80126B62 */ + u8 padc[2]; + u16 fe; /* 0x0E -> D_80126B66 */ +} StructB58_80180730; +typedef struct { + u8 pad0[6]; + u16 f6; /* 0x06 -> D_80126B5E */ + u8 pad8[2]; + u16 fa; /* 0x0A -> D_80126B62 */ + u8 padc[2]; + u16 fe; /* 0x0E -> D_80126B66 */ +} StructB58_80183A20; +typedef struct { + u8 pad0[6]; + u16 f6; /* 0x06 -> D_80126B5E */ + u8 pad8[2]; + u16 fa; /* 0x0A -> D_80126B62 */ + u8 padc[2]; + u16 fe; /* 0x0E -> D_80126B66 */ +} StructB58_80184414; +typedef struct { + u8 pad0[6]; + u16 f6; /* 0x06 -> D_80126B5E */ + u8 pad8[2]; + u16 fa; /* 0x0A -> D_80126B62 */ + u8 padc[2]; + u16 fe; /* 0x0E -> D_80126B66 */ +} StructB58_80185EF8; +typedef struct { s32 f0; s32 f1; } Struct_8017E784; +typedef struct { s32 f0; s32 f1; } Struct_8017EA6C; +typedef struct { s32 f0; s32 f1; } Struct_8017EC78; +typedef struct { s32 f0; s32 f1; } Struct_8017F380; +typedef struct { s32 f0; s32 f1; } Struct_8017F87C; +typedef struct { s32 f0; s32 f1; } Struct_8017FCD8; +typedef struct { s32 f0; s32 f1; } Struct_80180000; +typedef struct { s32 f0; s32 f1; } Struct_80180498; +typedef struct { s32 f0; s32 f1; } Struct_80180808; +typedef struct { s32 f0; s32 f1; } Struct_80180DB8; +typedef struct { s32 f0; s32 f1; } Struct_801825D8; +typedef struct { s32 f0; s32 f1; } Struct_80182A68; +typedef struct { s32 f0; s32 f1; } Struct_80183308; +typedef struct { s32 f0; s32 f1; } Struct_8018362C; +typedef struct { s32 f0; s32 f1; } Struct_80183AE0; +typedef struct { s32 f0; s32 f1; } Struct_801841B0; +typedef struct { s32 f0; s32 f1; } Struct_80185138; +typedef struct { s32 f0; s32 f1; } Struct_80185B1C; +typedef struct { s32 f0; s32 f1; } Struct_8018747C; +typedef struct Sub20_1CDC { + u8 pad0[0x14]; + u16 unk14; /* 0x14 */ +} Sub20_1CDC; +typedef struct Sub64_1CDC { + u8 pad0[0x34]; + u16 unk34; /* 0x34 */ + u8 pad36[0xCA]; + u16 unk100; /* 0x100 */ +} Sub64_1CDC; +typedef struct Obj1CDC { + s16 unk0, unk2, unk4; + s16 x; /* 0x06 */ + s16 unk8; + s16 y; /* 0x0A */ + s16 unkC; + s16 z; /* 0x0E */ + s16 unk10[8]; /* 0x10 */ + Sub20_1CDC *unk20; /* 0x20 */ + s32 unk24[16]; /* 0x24 */ + Sub64_1CDC *unk64; /* 0x64 */ + s32 unk68[37]; /* 0x68 */ + s16 unkFC; /* 0xFC */ + s16 unkFE; /* 0xFE */ + s16 unk100; /* 0x100 */ + s16 unk102; /* 0x102 */ + u16 unk104[3]; /* 0x104 */ + s16 unk10A; /* 0x10A */ +} Obj1CDC; +typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40; +typedef struct { + /* 0x00 */ s16 x; + /* 0x02 */ s16 y; + /* 0x04 */ s32 u04; + /* 0x08 */ s16 u08; + /* 0x0A */ s16 u0A; + /* 0x0C */ s16 u0C; + /* 0x0E */ s16 u0E; + /* 0x10 */ u8 r; + /* 0x11 */ u8 g; + /* 0x12 */ u8 b; + /* 0x13 */ u8 pad13; + /* 0x14 */ s32 u14; + /* 0x18 */ u8 u18; + /* 0x19 */ u8 pad19[3]; + } T8016EC0C; +typedef struct { u16 a, b, c, d, e, f; } UAlign12; +typedef struct { u16 a, b, c, d, e, f; } UAlign12_80181F40; +typedef struct { u16 a, b, c, d, e, f; } UAlign12_80182B74; +typedef struct { u16 a, b, c, d, e, f; } UAlign12_80185E64; +typedef struct { u16 a, b, c, d, e, f; } UAlign12_80186858; +typedef struct { u16 a, b, c, d, e, f; } UAlign12_8018833C; +typedef struct { u16 a, b, c, d; } UAlign8; +typedef struct { u16 a, b, c, d; } UAlign8_80181F40; +typedef struct { u16 a, b, c, d; } UAlign8_80182B74; +typedef struct { u16 a, b, c, d; } UAlign8_80185E64; +typedef struct { u16 a, b, c, d; } UAlign8_80186858; +typedef struct { u16 a, b, c, d; } UAlign8_8018833C; +typedef struct { + unsigned short vx, vy, vz, pad; +} UVec_8017EA1C; +typedef struct { + unsigned short vx, vy, vz, pad; +} UVec_8017EA1C_8017DA78; +typedef struct { + unsigned short vx, vy, vz, pad; +} UVec_8017EA1C_8017DB34; +typedef struct { + unsigned short vx, vy, vz, pad; +} UVec_8017EA1C_8017DD4C; +typedef struct { + unsigned short vx, vy, vz, pad; +} UVec_8017EA1C_8017E064; +typedef struct { + unsigned short vx, vy, vz, pad; +} UVec_8017EA1C_8017E2A8; +typedef struct { + unsigned short vx, vy, vz, pad; +} UVec_8017EA1C_8017E4C8; +typedef struct { + unsigned short vx, vy, vz, pad; +} UVec_8017EA1C_8017F548; +typedef struct { + unsigned short vx, vy, vz, pad; +} UVec_8017EA1C_8017F8A0; +typedef struct { + unsigned short vx, vy, vz, pad; +} UVec_8017EA1C_8017FB0C; +typedef struct { + unsigned short vx, vy, vz, pad; +} UVec_8017EA1C_801800C0; +typedef struct { + unsigned short vx, vy, vz, pad; +} UVec_8017EA1C_801806F4; +typedef struct { + unsigned short vx, vy, vz, pad; +} UVec_8017EA1C_8018D468; +typedef struct { + s32 unk00; /* 0x00 */ + s32 unk04; /* 0x04 */ + u16 unk08; /* 0x08 */ + u16 unk0A; /* 0x0A */ + u16 unk0C; /* 0x0C */ + u16 unk0E; /* 0x0E */ + u16 unk10; /* 0x10 */ + u16 unk12; /* 0x12 */ +} Unk8018F8C4; +typedef struct { + s32 unk00; /* 0x00 */ + s32 unk04; /* 0x04 */ + u16 unk08; /* 0x08 */ + u16 unk0A; /* 0x0A */ + u16 unk0C; /* 0x0C */ + u16 unk0E; /* 0x0E */ + u16 unk10; /* 0x10 */ + u16 unk12; /* 0x12 */ +} Unk8018F8C4_80184538; +typedef struct { u16 a, b, c, d; } V4U; +typedef struct { u16 a, b, c, d; } V4U_8014C4AC; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FAC0; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FAC0_8017D420; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FAC0_8017D708; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FAC0_8017D914; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FAC0_8017E01C; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FAC0_8017E518; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FAC0_8017E974; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FAC0_8017EC9C; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FAC0_8017F134; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FAC0_8017F4A4; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FAC0_8017FA54; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FAC0_80181274; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FAC0_80181704; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FAC0_80181FA4; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FAC0_801822C8; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FAC0_8018277C; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FAC0_80182E4C; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FAC0_80183DD4; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FAC0_801847B8; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FAC0_80186118; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FD58; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FD58_8017D6B8; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FD58_8017D9A0; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FD58_8017DBAC; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FD58_8017E2B4; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FD58_8017E7B0; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FD58_8017EC0C; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FD58_8017EF34; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FD58_8017F3CC; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FD58_8017F73C; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FD58_8017FCEC; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FD58_8018150C; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FD58_8018199C; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FD58_8018223C; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FD58_80182560; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FD58_80182A14; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FD58_801830E4; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FD58_8018406C; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FD58_80184A50; +typedef struct { + u16 x; /* 0x00 */ + u16 y; /* 0x02 */ + u16 z; /* 0x04 */ + u16 w; /* 0x06 */ + } V4_8017FD58_801863B0; +typedef struct { u8 a, b, c, d; } V4_80181EB8; +typedef struct { u8 a, b, c, d; } V4_80182004; +typedef struct { u8 a, b, c, d; } V4_80182564; +typedef struct { u8 a, b, c, d; } V4_80184040; +typedef struct { u8 a, b, c, d; } V4_80184484; +typedef struct { u8 a, b, c, d; } V4_80184CBC; +typedef struct { u8 a, b, c, d; } V4_801859A0; +typedef struct { u8 a, b, c, d; } V4_80185C54; +typedef struct { u8 a, b, c, d; } V4_80186148; +typedef struct { u8 a, b, c, d; } V4_80186E80; +typedef struct { u8 a, b, c, d; } V4_8018ADA8; +typedef struct { u8 a, b, c, d; } V4_8018AE30; +typedef struct { u8 a, b, c, d; } V4_8018E738; +typedef struct { + u16 x, y, z, w; + } V8_801806D8; +typedef struct { + u16 x, y, z, w; + } V8_80180A8C; +typedef struct { + u16 x, y, z, w; + } V8_80180F34; +typedef struct { + u16 x, y, z, w; + } V8_801810FC; +typedef struct { + u16 x, y, z, w; + } V8_801813C4; +typedef struct { + u16 x, y, z, w; + } V8_801813E8; +typedef struct { + u16 x, y, z, w; + } V8_801814B0; +typedef struct { + u16 x, y, z, w; + } V8_80181778; +typedef struct { + u16 x, y, z, w; + } V8_8018179C; +typedef struct { + u16 x, y, z, w; + } V8_80181958; +typedef struct { u16 x, y, z, w; } V8_80181AC0; +typedef struct { + u16 x, y, z, w; + } V8_80181C20; +typedef struct { + u16 x, y, z, w; + } V8_80181C44; +typedef struct { u16 x, y, z, w; } V8_801824E4; +typedef struct { u16 x, y, z, w; } V8_801827AC; +typedef struct { u16 x, y, z, w; } V8_801827D0; +typedef struct { + u16 x, y, z, w; + } V8_801827DC; +typedef struct { + u16 x, y, z, w; + } V8_80182B90; +typedef struct { + u16 x, y, z, w; + } V8_80182C8C; +typedef struct { + u16 x, y, z, w; + } V8_80183038; +typedef struct { + u16 x, y, z, w; + } V8_80183040; +typedef struct { + u16 x, y, z, w; + } V8_80183438; +typedef struct { + u16 x, y, z, w; + } V8_801834E8; +typedef struct { + u16 x, y, z, w; + } V8_801837EC; +typedef struct { u16 x, y, z, w; } V8_80183BC4; +typedef struct { + u16 x, y, z, w; + } V8_80183C94; +typedef struct { u16 x, y, z, w; } V8_80184074; +typedef struct { u16 x, y, z, w; } V8_80184820; +typedef struct { + u16 x, y, z, w; + } V8_80185240; +typedef struct { + u16 x, y, z, w; + } V8_801855F4; +typedef struct { + u16 x, y, z, w; + } V8_80185A9C; +typedef struct { + u16 x, y, z, w; + } V8_80186074; +typedef struct { + u16 x, y, z, w; + } V8_80186428; +typedef struct { u16 x, y, z, w; } V8_80186628; +typedef struct { + u16 x, y, z, w; + } V8_801868D0; +typedef struct { u16 x, y, z, w; } V8_8018745C; +typedef struct { + u16 x, y, z, w; + } V8_80187D18; +typedef struct { + u16 x, y, z, w; + } V8_80187E4C; +typedef struct { + u16 x, y, z, w; + } V8_801880CC; +typedef struct { + u16 x, y, z, w; + } V8_80188200; +typedef struct { + u16 x, y, z, w; + } V8_80188498; +typedef struct { + u16 x, y, z, w; + } V8_80188574; +typedef struct { + u16 x, y, z, w; + } V8_801886A8; +typedef struct { + u16 x, y, z, w; + } V8_801886FC; +typedef struct { + u16 x, y, z, w; + } V8_8018884C; +typedef struct { + u16 x, y, z, w; + } V8_80188AB0; +typedef struct { + u16 x, y, z, w; + } V8_80188CF4; +typedef struct { + u16 x, y, z, w; + } V8_80188F58; +typedef struct { u16 x, y, z, w; } V8_80189100; +typedef struct { u16 x, y, z, w; } V8_80189234; +typedef struct { + u16 x, y, z, w; + } V8_80189340; +typedef struct { + u16 x, y, z, w; + } V8_801896F4; +typedef struct { u16 x, y, z, w; } V8_80189880; +typedef struct { u16 x, y, z, w; } V8_80189AE4; +typedef struct { + u16 x, y, z, w; + } V8_80189B9C; +typedef struct { u16 x, y, z, w; } V8_8018A728; +typedef struct { short vx, vy, vz, pad; } Vec; +typedef struct { + s16 f0, f1, f2, f3; +} Vec4s; +typedef struct { + s16 f0, f1, f2, f3; +} Vec4s_80180F94; +typedef struct { + s16 f0, f1, f2, f3; +} Vec4s_80181404; +typedef struct { + s16 f0, f1, f2, f3; +} Vec4s_80181A58; +typedef struct { + s16 f0, f1, f2, f3; +} Vec4s_801831D4; +typedef struct { + s16 f0, f1, f2, f3; +} Vec4s_80184350; +typedef struct { + s16 f0, f1, f2, f3; +} Vec4s_8018460C; +typedef struct { + s16 f0, f1, f2, f3; +} Vec4s_80184928; +typedef struct { + s16 f0, f1, f2, f3; +} Vec4s_80184C28; +typedef struct { + s16 f0, f1, f2, f3; +} Vec4s_801876E8; +typedef struct { + s16 vx, vy, vz, pad; +} Vec8_8017E0B4; +typedef struct { u16 vx, vy, vz, pad; } Vec8_80180F98; +typedef struct { u16 vx, vy, vz, pad; } Vec8_80182FD4; +typedef struct { u16 vx, vy, vz, pad; } Vec8_80184370; +typedef struct { u16 vx, vy, vz, pad; } Vec8_801887E8; +typedef struct { u16 vx, vy, vz, pad; } Vec8_8018AC0C; +typedef struct { u16 vx, vy, vz, pad; } Vec8_8018BAB4; +typedef struct { + s16 vx; + s16 vy; + s16 vz; + s16 pad; + } Vec_8014A738; +typedef struct { u32 w; } W_8018893C; +typedef struct { u32 w; } W_8018BCD4; +typedef struct { s16 vx, vy; } XDV2; +typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; + s16 x2, y2; u16 uv2, p2; } XFT3; +typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; + s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } XFT4; +typedef struct { s16 m[3][3]; s32 t[3]; } XMTX2; +typedef struct { u32 xx, yy, zz; u32 nprim; u32 *prim; } XPart; +typedef struct { u32 w0, w1, w2; } XPrim; +typedef struct { s16 vx, vy, vz, pad; } XSV2; +typedef struct { u8 b[8]; } XV8; #endif /* BFM_ENGINE_TYPES_H */ /* SESSION-19: moved here — 11 typedefs (the * Phase-29 crack-wave lift onward) were sitting OUTSIDE the guard, so any TU that * included this header twice re-declared them. gcc-2.7.2 rejects a repeated typedef