/// <summary> /// Simply return true and does nothing else. It depends on the implementation of the game. /// </summary> /// <param name="chunk"></param> /// <returns></returns> public virtual async ValueTask <bool> ParseGameSpecificHeaderChunk(CustomBinaryReaderAsync binaryReader) { if (await binaryReader.ReadUInt32Async() != DemoHeaderMagic) { return(false); } NetworkVersionHistory version = (NetworkVersionHistory)await binaryReader.ReadUInt32Async(); if (version < NetworkVersionHistory.saveFullEngineVersion) { return(false); } uint networkChecksum = await binaryReader.ReadUInt32Async(); EngineNetworkVersionHistory engineNetworkProtocolVersion = (EngineNetworkVersionHistory)await binaryReader.ReadUInt32Async(); uint gameNetworkProtocolVersion = await binaryReader.ReadUInt32Async(); Guid guid = Guid.Empty; if (version >= NetworkVersionHistory.guidDemoHeader) { guid = new Guid((await binaryReader.ReadBytesAsync(16)).Span); } ushort major = await binaryReader.ReadUInt16Async(); ushort minor = await binaryReader.ReadUInt16Async(); ushort patch = await binaryReader.ReadUInt16Async(); uint changeList = await binaryReader.ReadUInt32Async(); string branch = await binaryReader.ReadStringAsync(); (string, uint)[] levelNamesAndTimes = await binaryReader.ReadArrayAsync(async() => (await binaryReader.ReadStringAsync(), await binaryReader.ReadUInt32Async()));
1463u)] // replay 6.30 public void PlaylistInfoTest1(byte[] rawData, int bitCount, NetworkVersionHistory networkVersion, EngineNetworkVersionHistory engineNetworkVersion, uint id) { var reader = new NetBitReader(rawData, bitCount) { NetworkVersion = networkVersion, EngineNetworkVersion = engineNetworkVersion }; var playlist = new PlaylistInfo(); playlist.Serialize(reader); Assert.Equal(id, playlist.Id); Assert.True(reader.AtEnd()); Assert.False(reader.IsError); }
public DemoHeader(NetworkVersionHistory version, uint networkChecksum, EngineNetworkVersionHistory engineNetworkProtocolVersion, uint gameNetworkProtocolVerrsion, Guid guid, ushort major, ushort minor, ushort patch, uint changeList, string branch, (string, uint)[] levelNamesAndTimes, ReplayHeaderFlags headerFlags, string[] gameSpecificData)