public override void OnPopulate()
        {
            hkVariant *    v         = (hkVariant *)Data;
            hkClass *      classData = (hkClass *)v->_classPtr.OffsetAddress;
            HavokClassNode entry     = HavokNode.GetClassNode(new String((sbyte *)classData->_namePtr.OffsetAddress), true);

            if (entry != null)
            {
                new HavokMetaObjectNode(entry as hkClassNode)
                .Initialize(this, v->_objectPtr.OffsetAddress, classData->_size);
            }
        }
Exemplo n.º 2
0
        public override bool OnInitialize()
        {
            if (Header->_namePtr > 0)
            {
                _name = new string((sbyte *)Header->_namePtr.OffsetAddress);
            }

            _interfaceCount = Header->_interfaceCount;
            _enumCount      = Header->_enumCount;
            _memberCount    = Header->_propertyCount;
            _version        = Header->_version;
            _size           = Header->_size;
            _flags          = Header->_flags;
            _defaultsPtr    = Header->_defaultsPtr;

            if (Header->_parentPtr != 0)
            {
                hkClass *parent = (hkClass *)Header->_parentPtr.OffsetAddress;
                _parentName = new string((sbyte *)parent->_namePtr.OffsetAddress);
            }

            int attribCount = 0;

            if (Header->_attribPtr != 0)
            {
                hkCustomAttributes *attribHeader = (hkCustomAttributes *)Header->_attribPtr.OffsetAddress;
                attribCount = attribHeader->_count;
            }

            if (Header->_defaultsPtr != 0)
            {
                Console.WriteLine(Name + " has defaults");
            }

            SetSizeInternal(48);

            return(Header->_propertyCount > 0 || Header->_enumCount > 0 || attribCount > 0);
        }
Exemplo n.º 3
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);
        }