public override void OnPopulate() { VoidPtr dataPtr = dataAddr; int size = 0; for (int i = 0; i < count; i++, dataPtr += size) { switch (_memberType) { case hkClassMember.Type.TYPE_STRUCT: new HavokMetaObjectNode(_classNode) .Initialize(this, dataPtr, size = _classNode == null ? 0 : _classNode.Size); break; case hkClassMember.Type.TYPE_ENUM: case hkClassMember.Type.TYPE_FLAGS: new cmEnumNode() { _enumNode = _enumNode } .Initialize(this, dataPtr, size = (int)_memberFlags & 0x3F); break; case hkClassMember.Type.TYPE_ARRAY: case hkClassMember.Type.TYPE_HOMOGENEOUSARRAY: case hkClassMember.Type.TYPE_INPLACEARRAY: case hkClassMember.Type.TYPE_SIMPLEARRAY: case hkClassMember.Type.TYPE_FUNCTIONPOINTER: case hkClassMember.Type.TYPE_ZERO: Console.WriteLine("This shouldn't happen"); break; default: ClassMemberInstanceNode instance = HavokMetaObjectNode.TryGetMember(_memberType); if (instance != null) { hkClassMember.Type tempType = _memberType; if (tempType == hkClassMember.Type.TYPE_POINTER) { tempType = hkClassMember.Type.TYPE_STRUCT; //Pointer to class object } instance._isZero = false; instance._name = "Entry" + i; instance._memberType = tempType; instance._memberFlags = _memberFlags; instance._classNode = _classNode; instance._enumNode = _enumNode; instance.Initialize(this, dataPtr, size = instance.GetSize()); } break; } } }
public override void OnPopulate() { VoidPtr dataPtr = ((bint *)Data)->OffsetAddress; switch (_memberType) { case hkClassMember.Type.TYPE_STRUCT: new HavokMetaObjectNode(_classNode) .Initialize(this, dataPtr, _classNode.Size); break; case hkClassMember.Type.TYPE_ENUM: case hkClassMember.Type.TYPE_FLAGS: new cmEnumNode { _enumNode = _enumNode } .Initialize(this, dataPtr, (int)_memberFlags & 0x3F); break; case hkClassMember.Type.TYPE_ARRAY: case hkClassMember.Type.TYPE_HOMOGENEOUSARRAY: case hkClassMember.Type.TYPE_INPLACEARRAY: case hkClassMember.Type.TYPE_SIMPLEARRAY: case hkClassMember.Type.TYPE_ZERO: Console.WriteLine("This shouldn't happen"); break; default: ClassMemberInstanceNode instance = HavokMetaObjectNode.TryGetMember(_memberType); if (instance != null) { instance._isZero = false; instance._name = ""; instance._memberType = _memberType; instance._memberFlags = _memberFlags; instance._classNode = _classNode; instance._enumNode = _enumNode; instance.Initialize(this, dataPtr, instance.GetSize()); } break; } }