Example #1
0
        /// <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);
        }
Example #3
0
 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)