diff --git a/docs/struct-map.md b/docs/struct-map.md index ce82df1a2d..295399b57f 100644 --- a/docs/struct-map.md +++ b/docs/struct-map.md @@ -1,6 +1,6 @@ # The struct map — the types the fleet's cast sites need (Phase 37 T1) -> **Generated by `tools/type_census.py` at `ead6a3f0ee` (2026-09-30T20:21:22Z); never typed (R75).** Every raw pointer-cast dereference in `src/` was assigned to a base (a parameter, a local, a global by value or by address, an absolute address) and the bases were clustered by EVIDENCE only — the same global symbol, an argument passed to a callee's parameter, an assignment or return, a pointer field read, a shared body's fleet-wide identity — never by a similar offset signature. Each cluster is one type the tree needs. Names are placeholders (`Unkstruct_`: the lowest global instance's address, else the lowest member function's); fields are placeholders (`unk`) until Phase 38 cites evidence. +> **Generated by `tools/type_census.py` at `1c842e2563` (2026-09-30T20:31:08Z); never typed (R75).** Every raw pointer-cast dereference in `src/` was assigned to a base (a parameter, a local, a global by value or by address, an absolute address) and the bases were clustered by EVIDENCE only — the same global symbol, an argument passed to a callee's parameter, an assignment or return, a pointer field read, a shared body's fleet-wide identity — never by a similar offset signature. Each cluster is one type the tree needs. Names are placeholders (`Unkstruct_`: the lowest global instance's address, else the lowest member function's); fields are placeholders (`unk`) until Phase 38 cites evidence. **19124 types explain 498868 of 502988 dereference sites (99.2 %); 4120 sites have a base the census could not classify; 857 types carry a width conflict.** Merges by evidence: param 38876, assign 16783, arg 10825, field 9904, ret-of 4335, return 1524, assign& 1184, arg& 270. diff --git a/include/struct_types.h b/include/struct_types.h index adb13bafb1..d94ead0aa1 100644 --- a/include/struct_types.h +++ b/include/struct_types.h @@ -1090,7 +1090,8 @@ typedef struct { } S1254; typedef struct { s32 f10, f14, f18; } S12_801AD700; typedef struct { s32 f10, f14, f18; } S12_801AD914; -typedef struct { u16 v; } S16_800CF3E8; +typedef struct { u16 h; } H16; +typedef H16 S16_800CF3E8; typedef struct { s32 w[4]; } S16_md_MAIN_014_800CB254; typedef struct { s8 pad00[4]; @@ -1382,7 +1383,7 @@ typedef struct { typedef struct { u32 a; u32 b; } U8x __attribute__((packed, aligned(1))); struct UnkS1 { s32 pad0; s32 f4; s32 pad8; s32 fC; s32 pad10; s32 pad14; s32 f18; u32 f1C; }; typedef struct {char c [ 4 ] ;} Unkstruct_801A01E8; -typedef struct { u16 v; } Unkstruct_801AF368; +typedef H16 Unkstruct_801AF368; typedef struct { u32 v; } Unkstruct_801AF368_2; typedef struct { s16 h; } Unkstruct_8017D2A4; typedef Unkstruct_8017D2A4 Unkstruct_801E3C1C; @@ -2757,7 +2758,7 @@ typedef struct Ent30D80 { /* 0x51 */ u8 unk51; } Ent30D80; typedef struct { u8 _0[0x12]; u16 f12; } F20T; -typedef struct { u16 f0; } H2; +typedef H16 H2; typedef struct { /* func_801457A4 buffer (hdr) */ s16 f0, f2, f4, f6, f8, fA; u8 fC, fD, fE, _F; diff --git a/src/800_b_2.c b/src/800_b_2.c index 3c675c4d4b..f589a7b0c3 100644 --- a/src/800_b_2.c +++ b/src/800_b_2.c @@ -1039,7 +1039,7 @@ void func_8002D904(s32 arg0) { } pa2 = &D_800A4EA2; - q = D_800652F0[D_80065438[*(s16 *)(D_80068B60 + i * 0x10)].f0]; + q = D_800652F0[D_80065438[*(s16 *)(D_80068B60 + i * 0x10)].h]; if ((*pa2 & 4) != 0 && D_800A4EA0 == i) { D_800A4EA0 = 0; D_800A4E8E = *pa2; diff --git a/src/800_c.c b/src/800_c.c index a77081a3d2..a9ac170c2d 100644 --- a/src/800_c.c +++ b/src/800_c.c @@ -1763,12 +1763,12 @@ void func_80037144(s32 idx) { D_80076244[i].unk0D = one; D_80076244[i].unk04 = idx | 0x2000; D_80076244[i].unk0E = 4; - v = D_800652F0[D_80065438[idx].f0]; + v = D_800652F0[D_80065438[idx].h]; D_800A469C = v; D_80076244[i].unk08 = v; k = 4; if (D_800A46B0 == 0) { - if (D_800A46A0 == (D_80065438[idx].f0 | 0x4000)) { + if (D_800A46A0 == (D_80065438[idx].h | 0x4000)) { D_80076244[i].unk04 |= 0x1000; goto after; } @@ -1866,7 +1866,7 @@ void func_800373D0(void) { sp2->unk06 |= 0x20; func_8002D7FC((s32) sp3); if (!(p->unk00 & 0x1000)) { - func_8002FDE8(D_80065438[sp2->unk00].f0, sp3 + 0x7000); + func_8002FDE8(D_80065438[sp2->unk00].h, sp3 + 0x7000); } } } diff --git a/src/md_MAIN_003/md_MAIN_003.c b/src/md_MAIN_003/md_MAIN_003.c index 21fa636759..8843db31a6 100644 --- a/src/md_MAIN_003/md_MAIN_003.c +++ b/src/md_MAIN_003/md_MAIN_003.c @@ -255,7 +255,7 @@ extern u8 D_800AA60C[]; #define ADDPRIMB(ot, p) setaddr_((p), getaddr_(ot)); setaddr_((ot), (p)); extern S16_800CF3E8 sD800B9A02 __asm__("D_800B9A02"); -#define OTIDX ((fr = sD800B9A02), fr.v) +#define OTIDX ((fr = sD800B9A02), fr.h) extern Sprt24 D_800EC7C8[]; extern Sprt24 D_800EC7F8[]; extern Sprt24 D_800EC828[]; diff --git a/src/md_SC07_004/md_SC07_004.c b/src/md_SC07_004/md_SC07_004.c index 811fa6b88c..eb9b2191ab 100644 --- a/src/md_SC07_004/md_SC07_004.c +++ b/src/md_SC07_004/md_SC07_004.c @@ -10404,7 +10404,7 @@ void func_801AF2EC(void *a0) { -#define RD16(p) (((Unkstruct_801AF368 *)(p))->v) +#define RD16(p) (((Unkstruct_801AF368 *)(p))->h) #define RW32(p) (((Unkstruct_801AF368_2 *)(p))->v) void func_801AF368(void *a0) diff --git a/src/ov_SC02_005/ov_SC02_005_jr_80181D30.c b/src/ov_SC02_005/ov_SC02_005_jr_80181D30.c index 960c3804b9..b66e01d640 100644 --- a/src/ov_SC02_005/ov_SC02_005_jr_80181D30.c +++ b/src/ov_SC02_005/ov_SC02_005_jr_80181D30.c @@ -4837,7 +4837,7 @@ void func_80184A8C(void *a0) { s32 tmp[3]; timer -= 1; - ((struct S34_80184A8C *)(s0 + 0x34))->v = timer; + ((S34_80184A8C *)(s0 + 0x34))->h = timer; tmp[0] = (*(s16 *)(s0 + 0xDC) - *(s32 *)(*(s32 *)(s0 + 0x20) + 0x48)) >> 2; diff --git a/src/ov_SC02_011/ov_SC02_011_jr_80183178.c b/src/ov_SC02_011/ov_SC02_011_jr_80183178.c index 04ea0478a8..9ea3b975f7 100644 --- a/src/ov_SC02_011/ov_SC02_011_jr_80183178.c +++ b/src/ov_SC02_011/ov_SC02_011_jr_80183178.c @@ -2586,7 +2586,7 @@ void func_80186868(s32 a0) } if ((*(s32 *)(self + 0x1C) & 0x1F) >= 8) { if (func_80186B1C((void *)self, D_80195D30) != 0) { - ((Unkstruct_80126B96 *)&D_80126B96)->w |= 0x4000; + ((Unkstruct_80126B96 *)&D_80126B96)->h |= 0x4000; D_80126B98 = 0xC; } } diff --git a/src/ov_SC02_011/ov_SC02_011_jr_80188E3C.c b/src/ov_SC02_011/ov_SC02_011_jr_80188E3C.c index c132fc2efd..589f635827 100644 --- a/src/ov_SC02_011/ov_SC02_011_jr_80188E3C.c +++ b/src/ov_SC02_011/ov_SC02_011_jr_80188E3C.c @@ -2000,9 +2000,9 @@ void func_8018B2C4(s32 a0) { /* addPrim(&D_800A651C[bp->f].a[0x10], q) */ ((PTag_8018B23C_8018B2C4 *)q)->addr = - ((PTag_8018B23C_8018B2C4 *)(D_800A651C[bp->f].a + 0x40))->addr; - ((PTag_8018B23C_8018B2C4 *)(D_800A651C[bp->f].a + 0x40))->addr = (u32)q; - func_80016638(&D_800A6518[bp->f * 20], 0x10, 1); + ((PTag_8018B23C_8018B2C4 *)(D_800A651C[bp->h].a + 0x40))->addr; + ((PTag_8018B23C_8018B2C4 *)(D_800A651C[bp->h].a + 0x40))->addr = (u32)q; + func_80016638(&D_800A6518[bp->h * 20], 0x10, 1); } } 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 5ae409b363..d0f1c6894e 100644 --- a/src/ov_SC02_028/ov_SC02_028_jr_8017D898.c +++ b/src/ov_SC02_028/ov_SC02_028_jr_8017D898.c @@ -7434,9 +7434,9 @@ void func_801844D4(s32 a0) { /* addPrim(&D_800A651C[bp->f].a[0x10], q) */ ((PTag_8018B23C_801844D4 *)q)->addr = - ((PTag_8018B23C_801844D4 *)(D_800A651C[bp->f].a + 0x40))->addr; - ((PTag_8018B23C_801844D4 *)(D_800A651C[bp->f].a + 0x40))->addr = (u32)q; - func_80016638(&D_800A6518[bp->f * 20], 0x10, 1); + ((PTag_8018B23C_801844D4 *)(D_800A651C[bp->h].a + 0x40))->addr; + ((PTag_8018B23C_801844D4 *)(D_800A651C[bp->h].a + 0x40))->addr = (u32)q; + func_80016638(&D_800A6518[bp->h * 20], 0x10, 1); } } 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 a648bcae5b..ad87b506fa 100644 --- a/src/ov_SC03_014/ov_SC03_014_jr_801848E4.c +++ b/src/ov_SC03_014/ov_SC03_014_jr_801848E4.c @@ -7239,9 +7239,9 @@ void func_8018B23C(s32 a0) { /* addPrim(&D_800A651C[bp->f].a[0x10], q) */ ((PTag_8018B23C *)q)->addr = - ((PTag_8018B23C *)(D_800A651C[bp->f].a + 0x40))->addr; - ((PTag_8018B23C *)(D_800A651C[bp->f].a + 0x40))->addr = (u32)q; - func_80016638(&D_800A6518[bp->f * 20], 0x10, 1); + ((PTag_8018B23C *)(D_800A651C[bp->h].a + 0x40))->addr; + ((PTag_8018B23C *)(D_800A651C[bp->h].a + 0x40))->addr = (u32)q; + func_80016638(&D_800A6518[bp->h * 20], 0x10, 1); } } diff --git a/src/ov_SC03_024/ov_SC03_024_jr_80183BF8.c b/src/ov_SC03_024/ov_SC03_024_jr_80183BF8.c index 1365dcba09..a4e5dae214 100644 --- a/src/ov_SC03_024/ov_SC03_024_jr_80183BF8.c +++ b/src/ov_SC03_024/ov_SC03_024_jr_80183BF8.c @@ -5129,9 +5129,9 @@ void func_801865DC(s32 a0) { /* addPrim(&D_800A651C[bp->f].a[0x10], q) */ ((PTag_8018B23C_801865DC *)q)->addr = - ((PTag_8018B23C_801865DC *)(D_800A651C[bp->f].a + 0x40))->addr; - ((PTag_8018B23C_801865DC *)(D_800A651C[bp->f].a + 0x40))->addr = (u32)q; - func_80016638(&D_800A6518[bp->f * 20], 0x10, 1); + ((PTag_8018B23C_801865DC *)(D_800A651C[bp->h].a + 0x40))->addr; + ((PTag_8018B23C_801865DC *)(D_800A651C[bp->h].a + 0x40))->addr = (u32)q; + func_80016638(&D_800A6518[bp->h * 20], 0x10, 1); } } 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 56a2947e21..4db3791ff0 100644 --- a/src/ov_SC03_097/ov_SC03_097_jr_8017D898.c +++ b/src/ov_SC03_097/ov_SC03_097_jr_8017D898.c @@ -5786,9 +5786,9 @@ void func_80182498(s32 a0) { /* addPrim(&D_800A651C[bp->f].a[0x10], q) */ ((PTag_8018B23C_80182498 *)q)->addr = - ((PTag_8018B23C_80182498 *)(D_800A651C[bp->f].a + 0x40))->addr; - ((PTag_8018B23C_80182498 *)(D_800A651C[bp->f].a + 0x40))->addr = (u32)q; - func_80016638(&D_800A6518[bp->f * 20], 0x10, 1); + ((PTag_8018B23C_80182498 *)(D_800A651C[bp->h].a + 0x40))->addr; + ((PTag_8018B23C_80182498 *)(D_800A651C[bp->h].a + 0x40))->addr = (u32)q; + func_80016638(&D_800A6518[bp->h * 20], 0x10, 1); } } 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 ead38b0b1b..fa1a079370 100644 --- a/src/ov_SC03_101/ov_SC03_101_jr_8017CA80.c +++ b/src/ov_SC03_101/ov_SC03_101_jr_8017CA80.c @@ -6342,9 +6342,9 @@ void func_801829F8(s32 a0) { /* addPrim(&D_800A651C[bp->f].a[0x10], q) */ ((PTag_8018B23C_801829F8 *)q)->addr = - ((PTag_8018B23C_801829F8 *)(D_800A651C[bp->f].a + 0x40))->addr; - ((PTag_8018B23C_801829F8 *)(D_800A651C[bp->f].a + 0x40))->addr = (u32)q; - func_80016638(&D_800A6518[bp->f * 20], 0x10, 1); + ((PTag_8018B23C_801829F8 *)(D_800A651C[bp->h].a + 0x40))->addr; + ((PTag_8018B23C_801829F8 *)(D_800A651C[bp->h].a + 0x40))->addr = (u32)q; + func_80016638(&D_800A6518[bp->h * 20], 0x10, 1); } } diff --git a/src/ov_SC03_104/ov_SC03_104_jr_80182038.c b/src/ov_SC03_104/ov_SC03_104_jr_80182038.c index aa2a5fa7df..e29b1ae947 100644 --- a/src/ov_SC03_104/ov_SC03_104_jr_80182038.c +++ b/src/ov_SC03_104/ov_SC03_104_jr_80182038.c @@ -5818,9 +5818,9 @@ void func_80185E34(s32 a0) { /* addPrim(&D_800A651C[bp->f].a[0x10], q) */ ((PTag_8018B23C_80185E34 *)q)->addr = - ((PTag_8018B23C_80185E34 *)(D_800A651C[bp->f].a + 0x40))->addr; - ((PTag_8018B23C_80185E34 *)(D_800A651C[bp->f].a + 0x40))->addr = (u32)q; - func_80016638(&D_800A6518[bp->f * 20], 0x10, 1); + ((PTag_8018B23C_80185E34 *)(D_800A651C[bp->h].a + 0x40))->addr; + ((PTag_8018B23C_80185E34 *)(D_800A651C[bp->h].a + 0x40))->addr = (u32)q; + func_80016638(&D_800A6518[bp->h * 20], 0x10, 1); } } diff --git a/src/ov_SC03_105/ov_SC03_105_jr_8018624C.c b/src/ov_SC03_105/ov_SC03_105_jr_8018624C.c index eee182d087..8390fb4515 100644 --- a/src/ov_SC03_105/ov_SC03_105_jr_8018624C.c +++ b/src/ov_SC03_105/ov_SC03_105_jr_8018624C.c @@ -285,7 +285,7 @@ void func_801867D0(s32 a0) if (func_8012E544(0x222) == 0) { func_8012A828(s0, D_801B2E28); func_8012A828(*(s32 *)(s0 + 0x6C), D_801B2FC0); - ((struct Ctr34 *)(s0 + 0x34))->h = ((struct Ctr34 *)(s0 + 0x34))->h + 1; + ((Ctr34 *)(s0 + 0x34))->h = ((Ctr34 *)(s0 + 0x34))->h + 1; D_801BCBBC = D_801BCBBC + 1; return; } 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 c14e4fac27..299ae179f4 100644 --- a/src/ov_SC03_114/ov_SC03_114_jr_8017BEBC.c +++ b/src/ov_SC03_114/ov_SC03_114_jr_8017BEBC.c @@ -3625,7 +3625,7 @@ void func_8017E270(void *a0) { -#define RD16(p) (((Unkstruct_8017E2EC *)(p))->v) +#define RD16(p) (((Unkstruct_8017E2EC *)(p))->h) #define RW32(p) (((Unkstruct_8017E2EC_2 *)(p))->v) void func_8017E2EC(void *a0) diff --git a/src/ov_SC03_118/ov_SC03_118_jr_80183830.c b/src/ov_SC03_118/ov_SC03_118_jr_80183830.c index d5f0234ab4..b52889e21d 100644 --- a/src/ov_SC03_118/ov_SC03_118_jr_80183830.c +++ b/src/ov_SC03_118/ov_SC03_118_jr_80183830.c @@ -4928,9 +4928,9 @@ void func_801860E8(s32 a0) { /* addPrim(&D_800A651C[bp->f].a[0x10], q) */ ((PTag_8018B23C_801860E8 *)q)->addr = - ((PTag_8018B23C_801860E8 *)(D_800A651C[bp->f].a + 0x40))->addr; - ((PTag_8018B23C_801860E8 *)(D_800A651C[bp->f].a + 0x40))->addr = (u32)q; - func_80016638(&D_800A6518[bp->f * 20], 0x10, 1); + ((PTag_8018B23C_801860E8 *)(D_800A651C[bp->h].a + 0x40))->addr; + ((PTag_8018B23C_801860E8 *)(D_800A651C[bp->h].a + 0x40))->addr = (u32)q; + func_80016638(&D_800A6518[bp->h * 20], 0x10, 1); } } 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 3d2fe5af4a..b19efdc48e 100644 --- a/src/ov_SC04_011/ov_SC04_011_jr_8017D494.c +++ b/src/ov_SC04_011/ov_SC04_011_jr_8017D494.c @@ -15693,9 +15693,9 @@ void func_8018EBCC(s32 a0) { /* addPrim(&D_800A651C[bp->f].a[0x10], q) */ ((PTag_8018B23C_8018EBCC *)q)->addr = - ((PTag_8018B23C_8018EBCC *)(D_800A651C[bp->f].a + 0x40))->addr; - ((PTag_8018B23C_8018EBCC *)(D_800A651C[bp->f].a + 0x40))->addr = (u32)q; - func_80016638(&D_800A6518[bp->f * 20], 0x10, 1); + ((PTag_8018B23C_8018EBCC *)(D_800A651C[bp->h].a + 0x40))->addr; + ((PTag_8018B23C_8018EBCC *)(D_800A651C[bp->h].a + 0x40))->addr = (u32)q; + func_80016638(&D_800A6518[bp->h * 20], 0x10, 1); } } @@ -15778,7 +15778,7 @@ void func_8018EFB0(void *a0) { } -#define RD16(p) (((Unkstruct_8018F02C *)(p))->v) +#define RD16(p) (((Unkstruct_8018F02C *)(p))->h) #define RW32(p) (((Unkstruct_8018F02C_2 *)(p))->v) void func_8018F02C(void *a0) diff --git a/src/ov_SC04_016/ov_SC04_016_jr_8017F03C.c b/src/ov_SC04_016/ov_SC04_016_jr_8017F03C.c index 52aa5dfc5b..d2a9e175e3 100644 --- a/src/ov_SC04_016/ov_SC04_016_jr_8017F03C.c +++ b/src/ov_SC04_016/ov_SC04_016_jr_8017F03C.c @@ -3077,7 +3077,7 @@ void func_8017F82C(void *a0) { } -#define RD16(p) (((Unkstruct_8017F8A8 *)(p))->v) +#define RD16(p) (((Unkstruct_8017F8A8 *)(p))->h) #define RW32(p) (((Unkstruct_8017F8A8_2 *)(p))->v) void func_8017F8A8(void *a0) 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 b0b50bcfb8..0f51318252 100644 --- a/src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c +++ b/src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c @@ -11012,9 +11012,9 @@ void func_80187314(s32 a0) { /* addPrim(&D_800A651C[bp->f].a[0x10], q) */ ((PTag_8018B23C_80187314 *)q)->addr = - ((PTag_8018B23C_80187314 *)(D_800A651C[bp->f].a + 0x40))->addr; - ((PTag_8018B23C_80187314 *)(D_800A651C[bp->f].a + 0x40))->addr = (u32)q; - func_80016638(&D_800A6518[bp->f * 20], 0x10, 1); + ((PTag_8018B23C_80187314 *)(D_800A651C[bp->h].a + 0x40))->addr; + ((PTag_8018B23C_80187314 *)(D_800A651C[bp->h].a + 0x40))->addr = (u32)q; + func_80016638(&D_800A6518[bp->h * 20], 0x10, 1); } } @@ -11283,7 +11283,7 @@ void func_80187AB8(void *a0) { } -#define RD16(p) (((Unkstruct_80187B34 *)(p))->v) +#define RD16(p) (((Unkstruct_80187B34 *)(p))->h) #define RW32(p) (((Unkstruct_80187B34_2 *)(p))->v) void func_80187B34(void *a0) diff --git a/src/ov_SC06_006/ov_SC06_006_jr_8017DB90.c b/src/ov_SC06_006/ov_SC06_006_jr_8017DB90.c index b528bc1ee1..189d06d494 100644 --- a/src/ov_SC06_006/ov_SC06_006_jr_8017DB90.c +++ b/src/ov_SC06_006/ov_SC06_006_jr_8017DB90.c @@ -5220,7 +5220,7 @@ void func_801815DC(void *a0) { } -#define RD16(p) (((Unkstruct_80181658 *)(p))->v) +#define RD16(p) (((Unkstruct_80181658 *)(p))->h) #define RW32(p) (((Unkstruct_80181658_2 *)(p))->v) void func_80181658(void *a0) diff --git a/src/ov_SC06_016/ov_SC06_016_jr_801839D0.c b/src/ov_SC06_016/ov_SC06_016_jr_801839D0.c index a62ad1d60e..9bfeebc284 100644 --- a/src/ov_SC06_016/ov_SC06_016_jr_801839D0.c +++ b/src/ov_SC06_016/ov_SC06_016_jr_801839D0.c @@ -3847,9 +3847,9 @@ void func_80184918(s32 a0) { /* addPrim(&D_800A651C[bp->f].a[0x10], q) */ ((PTag_8018B23C_80184918 *)q)->addr = - ((PTag_8018B23C_80184918 *)(D_800A651C[bp->f].a + 0x40))->addr; - ((PTag_8018B23C_80184918 *)(D_800A651C[bp->f].a + 0x40))->addr = (u32)q; - func_80016638(&D_800A6518[bp->f * 20], 0x10, 1); + ((PTag_8018B23C_80184918 *)(D_800A651C[bp->h].a + 0x40))->addr; + ((PTag_8018B23C_80184918 *)(D_800A651C[bp->h].a + 0x40))->addr = (u32)q; + func_80016638(&D_800A6518[bp->h * 20], 0x10, 1); } } diff --git a/src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c b/src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c index fa505038b4..d26c535b78 100644 --- a/src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c +++ b/src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c @@ -6555,7 +6555,7 @@ void func_8018CC88(void *a0) { } -#define RD16(p) (((Unkstruct_8018CD04 *)(p))->v) +#define RD16(p) (((Unkstruct_8018CD04 *)(p))->h) #define RW32(p) (((Unkstruct_8018CD04_2 *)(p))->v) void func_8018CD04(void *a0) diff --git a/src/ov_SC06_032/ov_SC06_032_jr_80182890.c b/src/ov_SC06_032/ov_SC06_032_jr_80182890.c index 6ae9506e2c..bc176617e7 100644 --- a/src/ov_SC06_032/ov_SC06_032_jr_80182890.c +++ b/src/ov_SC06_032/ov_SC06_032_jr_80182890.c @@ -6457,7 +6457,7 @@ void func_80187E60(void *a0) { } -#define RD16(p) (((Unkstruct_80187EDC *)(p))->v) +#define RD16(p) (((Unkstruct_80187EDC *)(p))->h) #define RW32(p) (((Unkstruct_80187EDC_2 *)(p))->v) void func_80187EDC(void *a0) diff --git a/src/ov_SC07_000/ov_SC07_000_jr_8017F8B8.c b/src/ov_SC07_000/ov_SC07_000_jr_8017F8B8.c index 7d302e3d70..6a2333a6e9 100644 --- a/src/ov_SC07_000/ov_SC07_000_jr_8017F8B8.c +++ b/src/ov_SC07_000/ov_SC07_000_jr_8017F8B8.c @@ -4845,9 +4845,9 @@ void func_8018234C(s32 a0) { /* addPrim(&D_800A651C[bp->f].a[0x10], q) */ ((PTag_8018B23C_8018234C *)q)->addr = - ((PTag_8018B23C_8018234C *)(D_800A651C[bp->f].a + 0x40))->addr; - ((PTag_8018B23C_8018234C *)(D_800A651C[bp->f].a + 0x40))->addr = (u32)q; - func_80016638(&D_800A6518[bp->f * 20], 0x10, 1); + ((PTag_8018B23C_8018234C *)(D_800A651C[bp->h].a + 0x40))->addr; + ((PTag_8018B23C_8018234C *)(D_800A651C[bp->h].a + 0x40))->addr = (u32)q; + func_80016638(&D_800A6518[bp->h * 20], 0x10, 1); } } 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 95223057cc..8dfb13cb98 100644 --- a/src/ov_SC07_002/ov_SC07_002_jr_8017C8D0.c +++ b/src/ov_SC07_002/ov_SC07_002_jr_8017C8D0.c @@ -7939,11 +7939,11 @@ void func_80185150(s32 a0) { { Bidx_8018B23C_80185150 *bp = (Bidx_8018B23C_80185150 *)&D_800B9A02; - /* addPrim(&D_800A651C[bp->f].a[0x10], q) */ + /* addPrim(&D_800A651C[bp->h].a[0x10], q) */ ((PTag_8018B23C_80185150 *)q)->addr = - ((PTag_8018B23C_80185150 *)(D_800A651C[bp->f].a + 0x40))->addr; - ((PTag_8018B23C_80185150 *)(D_800A651C[bp->f].a + 0x40))->addr = (u32)q; - func_80016638(&D_800A6518[bp->f * 20], 0x10, 1); + ((PTag_8018B23C_80185150 *)(D_800A651C[bp->h].a + 0x40))->addr; + ((PTag_8018B23C_80185150 *)(D_800A651C[bp->h].a + 0x40))->addr = (u32)q; + func_80016638(&D_800A6518[bp->h * 20], 0x10, 1); } } diff --git a/src/shared/engine_types.h b/src/shared/engine_types.h index dda97dfa0c..c2ba105bec 100644 --- a/src/shared/engine_types.h +++ b/src/shared/engine_types.h @@ -731,7 +731,6 @@ typedef struct { int tag; /* 0x30 -> struct size 0x34; tag lands at sp+0x40 */ } Frame_80166690_80166690; typedef Frame_80166690_80166690 Frame_80166690; -typedef struct { u16 h; } H16; typedef struct { s16 x, y; } Pair_8013AD38; typedef Pair_8013AD38 Hw4; typedef struct { char _b[8]; } M8; @@ -1181,19 +1180,19 @@ 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_8018B2C4; -typedef struct { u16 f; } Bidx_8018B23C_8018EBCC; +typedef H16 Bidx_8018B23C; +typedef H16 Bidx_8018B23C_8018234C; +typedef H16 Bidx_8018B23C_80182498; +typedef H16 Bidx_8018B23C_801829F8; +typedef H16 Bidx_8018B23C_801844D4; +typedef H16 Bidx_8018B23C_80184918; +typedef H16 Bidx_8018B23C_80185150; +typedef H16 Bidx_8018B23C_80185E34; +typedef H16 Bidx_8018B23C_801860E8; +typedef H16 Bidx_8018B23C_801865DC; +typedef H16 Bidx_8018B23C_80187314; +typedef H16 Bidx_8018B23C_8018B2C4; +typedef H16 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; @@ -3337,9 +3336,7 @@ typedef struct Rec80182744_s Rec80182744; /* --- lift_types.py fleet lift --- */ struct B16_8017CDE4 { s32 w[4]; }; struct B16_8018FC38 { s32 w[4]; }; -struct Ctr34 { - u16 h; -}; +typedef H16 Ctr34; struct D_801D0630_s { u16 f0; u16 f2; u16 pad[2]; }; struct D_801D0660_s { u16 f0; u16 f2; }; struct EntF2_80181F0C { @@ -3435,7 +3432,7 @@ struct Rec80182744_s { s32 f2; } __attribute__((packed, aligned(1))); typedef Unkstruct_8017D2A4 S0E_80184828; -struct S34_80184A8C { u16 v; }; +typedef H16 S34_80184A8C; struct S6C { u8 pad[8]; }; struct S72 { s16 unk0; u8 pad[6]; }; struct S80190C84_846B4 { @@ -5821,19 +5818,19 @@ typedef struct { u8 pad_D8[0x10]; s32 f_E8; } MainStruct; -typedef struct { u16 v; } Unkstruct_8017E2EC; +typedef H16 Unkstruct_8017E2EC; typedef struct { u32 v; } Unkstruct_8017E2EC_2; -typedef struct { u16 v; } Unkstruct_8017F8A8; +typedef H16 Unkstruct_8017F8A8; typedef struct { u32 v; } Unkstruct_8017F8A8_2; -typedef struct { u16 v; } Unkstruct_80181658; +typedef H16 Unkstruct_80181658; typedef struct { u32 v; } Unkstruct_80181658_2; -typedef struct { u16 v; } Unkstruct_80187B34; +typedef H16 Unkstruct_80187B34; typedef struct { u32 v; } Unkstruct_80187B34_2; -typedef struct { u16 v; } Unkstruct_80187EDC; +typedef H16 Unkstruct_80187EDC; typedef struct { u32 v; } Unkstruct_80187EDC_2; -typedef struct { u16 v; } Unkstruct_8018CD04; +typedef H16 Unkstruct_8018CD04; typedef struct { u32 v; } Unkstruct_8018CD04_2; -typedef struct { u16 v; } Unkstruct_8018F02C; +typedef H16 Unkstruct_8018F02C; typedef struct { u32 v; } Unkstruct_8018F02C_2; typedef struct { u16 a, b, c, d; } V8_SC07_002_8017C8D0; @@ -6520,13 +6517,13 @@ typedef struct { typedef SVECTOR_8017E6D8 UV8; typedef SVECTOR_8017E6D8 UV_85810; typedef SVECTOR_8017E6D8 UVec8; -typedef struct { u16 w; } Unkstruct_80126B96; +typedef H16 Unkstruct_80126B96; typedef struct { s32 f; } Unkstruct_801270C8; typedef struct { s32 w; } Unkstruct_801270D8; typedef struct { s32 w; } Unkstruct_80133CD4; typedef struct { u8 pad[2]; u16 f; } Unkstruct_801824D4; typedef struct { u8 pad[2]; u16 f; } Unkstruct_80182560; -typedef struct { unsigned short h; } Unkstruct_8018528C; +typedef H16 Unkstruct_8018528C; typedef struct { s32 f; } Unkstruct_8018528C_2; typedef struct { s32 a, b, c, d, e, f, g, h, f20; } Unkstruct_8018637C; typedef struct { s32 f; } Unkstruct_80188988; @@ -6775,10 +6772,10 @@ typedef struct { u32 w0, w1, w2; } Prim_8017C8D0_t67f11bf2; typedef struct { u32 w0, w1, w2; } Prim_8017CA80_t67f11bf2; typedef struct { u32 w0, w1, w2; } Prim_8017D5C0_e98d5a37; typedef struct { u32 w0, w1, w2; } Prim_8017D898_t67f11bf2; -typedef struct { u16 h; } Unkstruct_8011F82A; -typedef struct { u16 h; } Unkstruct_8011F82C; -typedef struct { u16 h; } Unkstruct_8011F82E; -typedef struct { u16 h; } Unkstruct_8011F830; +typedef H16 Unkstruct_8011F82A; +typedef H16 Unkstruct_8011F82C; +typedef H16 Unkstruct_8011F82E; +typedef H16 Unkstruct_8011F830; typedef struct { s32 w; } Unkstruct_8014EA4C; typedef struct { s32 w; } Unkstruct_8014EE14; typedef struct { s32 field; } Unkstruct_8014F2E0;