Example #1
0
        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);
                    }
                }
            }
        }
Example #2
0
        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);
        }