struct struct1_s { float f1; float f2; float f3; vector vec; }; struct struct2_s { vector vec; float f1; float f2; float f3; }; .union merged { struct1_s struct1; struct2_s struct2; }; void TestCollapse() = { entity e = spawn(); e.struct1.f1 = 1; e.struct1.f2 = 2; e.struct1.f3 = 3; e.struct1.vec = '4 5 6'; DUMP_FLOAT( e.struct1.f1 ) DUMP_FLOAT( e.struct1.f2 ) DUMP_FLOAT( e.struct1.f3 ) DUMP_VEC( e.struct1.vec ) e.struct2.f1 = 1; e.struct2.f2 = 2; e.struct2.f3 = 3; e.struct2.vec = '4 5 6'; DUMP_FLOAT( e.struct2.f1 ) DUMP_FLOAT( e.struct2.f2 ) DUMP_FLOAT( e.struct2.f3 ) DUMP_VEC( e.struct2.vec ) } /* output: e.struct1.f1 = 1 e.struct1.f2 = 2 e.struct1.f3 = 3 e.struct1.vec = ' 4.0 5.0 6.0' e.struct2.f1 = 1 e.struct2.f2 = 2 e.struct2.f3 = 3 e.struct2.vec = ' 4.0 5.0 6.0' */