private void ReadClassMember5(EndianStream stream, ClassStruct classStruct, List <ClassMember> members, long stringPosition) { ushort num0 = stream.ReadUInt16(); byte level = stream.ReadByte(); bool isArray = stream.ReadBoolean(); string memberType = ReadClassType(stream, stringPosition); string memberName = ReadClassType(stream, stringPosition); int size = stream.ReadInt32(); int index = stream.ReadInt32(); int flag = stream.ReadInt32(); if (index == 0) { classStruct.BaseType = memberType; classStruct.BaseName = memberName; } else { ClassMember member = new ClassMember(); member.Level = level; member.Type = memberType; member.Name = memberName; member.Size = size; member.Index = index; member.IsArray = isArray; member.Num0 = num0; member.Flag = flag; members.Add(member); } }
private void ReadClassMember(EndianStream stream, List <ClassMember> members, int level) { ClassMember member = new ClassMember(); member.Level = level; member.Type = stream.ReadStringZeroTerm(); member.Name = stream.ReadStringZeroTerm(); member.Size = stream.ReadInt32(); member.Index = stream.ReadInt32(); member.IsArray = stream.ReadInt32() != 0; member.Num0 = stream.ReadInt32(); member.Flag = stream.ReadInt32(); member.ChildCount = stream.ReadInt32(); members.Add(member); for (int i = 0; i < member.ChildCount; i++) { ReadClassMember(stream, members, level + 1); } }