type sndcurve [display="Sound Curve"] { i32 name_ptr [ui, readonly, display="Name Ptr"]; u16 knot_count [ui, readonly, display="Knot Count"]; skip(2); // padding i32 knots_ptr [ui, readonly, display="Knots Ptr"]; // Parse inline name if (name_ptr == -1) { name = cstring() [ui, readonly, display="Name"]; _name = name; } // Parse inline knots (each knot is 2 floats = 8 bytes) if (knots_ptr == -1 && knot_count > 0) { _knots_size = knot_count * 8; knots = read(_knots_size) [ui, readonly, display="Knots"]; } }