public override void OnPopulate() { if (Header->_propertyPtr != 0 && Header->_propertyCount > 0) { HavokGroupNode memberGroup = new HavokGroupNode() { _name = "Members" }; memberGroup.Parent = this; hkClassMember *member = (hkClassMember *)Header->_propertyPtr.OffsetAddress; for (int i = 0; i < Header->_propertyCount; i++, member++) { new hkClassMemberNode().Initialize(memberGroup, member, 20); } } if (Header->_enumPtr != 0 && Header->_enumCount > 0) { HavokGroupNode enumGroup = new HavokGroupNode() { _name = "Enums" }; enumGroup.Parent = this; hkClassEnum *Enum = (hkClassEnum *)Header->_enumPtr.OffsetAddress; for (int i = 0; i < Header->_enumCount; i++, Enum++) { new hkClassEnumNode().Initialize(enumGroup, Enum, 16); } } if (Header->_attribPtr != 0) { hkCustomAttributes *attribHeader = (hkCustomAttributes *)Header->_attribPtr.OffsetAddress; if (attribHeader->_count > 0) { HavokGroupNode attribGroup = new HavokGroupNode() { _name = "Attributes" }; attribGroup.Parent = this; HavokAttribute *attrib = (HavokAttribute *)attribHeader->_attribPtr.OffsetAddress; for (int i = 0; i < attribHeader->_count; i++, attrib++) { new HavokAttributeNode().Initialize(attribGroup, attrib, 12); } } } }
public override bool OnInitialize() { _name = new String((sbyte *)Header->_namePtr.OffsetAddress); _type = (hkClassMember.Type)Header->_type; _subType = (hkClassMember.Type)Header->_pointedType; _structOffset = Header->_structOffset; _flags = (hkClassMember.Flags)(ushort) Header->_flags; _arraySize = Header->_arraySize; if (Header->_enumPtr != 0) { hkClassEnum *e = (hkClassEnum *)Header->_enumPtr.OffsetAddress; _enum = new String((sbyte *)e->_namePtr.OffsetAddress); } if (Header->_classPtr != 0) { hkClass *c = (hkClass *)Header->_classPtr.OffsetAddress; _class = new String((sbyte *)c->_namePtr.OffsetAddress); } return(false); }