public DataCenter(Stream stream, DataCenterMode mode, DataCenterStringOptions options) { options.CheckFlagsValidity(nameof(options)); Mode = mode.CheckValidity(nameof(mode)); using var reader = new GameBinaryReader(stream, true); Header = ReadHeader(reader); Extensions = ReadSimpleRegion(reader, false, ExtensionSize); Attributes = ReadSegmentedRegion(reader, AttributeSize); Elements = ReadSegmentedRegion(reader, ElementSize); Values = ReadStringTable(reader, 1024, false, options); Names = ReadStringTable(reader, 512, true, options); Footer = ReadFooter(reader); var diff = stream.Length - stream.Position; if (diff != 0) { throw new InvalidDataException($"{diff} bytes remain unread."); } }
public DataCenter(uint version) { Mode = DataCenterMode.Persistent; Header = new DataCenterHeader(Version, 0, 0, -16400, version, 0, 0, 0, 0); Footer = new DataCenterFooter(0); }
public DataCenter(uint version) { Header = new DataCenterHeader(0, 0, 0, version, 0, 0, 0, 0); Footer = new DataCenterFooter(0); Root = new DataCenterElement(this, DataCenterAddress.Zero); }