public MOGI(BinaryReader br, uint version) { if (version == 14) { Offset = br.ReadUInt32(); Size = br.ReadUInt32(); } Flags = br.ReadEnum <MOGP_Flags>(); AaBox = br.ReadStruct <CAaBox>(); NameIndex = br.ReadInt32(); }
private void ReadHeader(BinaryReader br) { GroupName = br.ReadUInt32(); DbgName = br.ReadUInt32(); Flags = br.ReadEnum <MOGP_Flags>(); BoundingBox = br.ReadStruct <CAaBox>(); PortalStart = Version == 14 ? br.ReadInt32() : br.ReadInt16(); PortalCount = Version == 14 ? br.ReadUInt32() : br.ReadUInt16(); if (Version != 14) { TransBatchCount = br.ReadUInt16(); IntBatchCount = br.ReadUInt16(); ExtBatchCount = br.ReadUInt16(); Padding = br.ReadUInt16(); if (Padding.Value != 0) { throw new Exception("NOT PADDING"); } } FogIds = br.ReadBytes(4); GroupLiquid = br.ReadUInt32(); if (Version == 14) { IntBatch = br.ReadStructArray <SMOGxBatch>(4); ExtBatch = br.ReadStructArray <SMOGxBatch>(4); } UniqueId = br.ReadInt32(); if (Version != 14) { Flags2 = br.ReadUInt32(); Unknown_0x40 = br.ReadUInt32(); if (Flags2 > 0 || Unknown_0x40 > 0) { throw new Exception("NOT PADDING"); } } else { br.BaseStream.Position += 8; // pad } }