예제 #1
0
            public override void ReadWrite(CGameGhost n, GameBoxReaderWriter rw)
            {
                Data    = rw.Bytes(Data);
                Samples = rw.Array(Samples);

                rw.Int32(Unknown);
                rw.Boolean(Unknown);
                SamplePeriod = rw.Int32(SamplePeriod);
                rw.Int32(Unknown);

                n.Data = Task.Run(() =>
                {
                    var ghostData = new CGameGhostData
                    {
                        SamplePeriod = TimeSpan.FromMilliseconds(SamplePeriod)
                    };

                    using (var ms = new MemoryStream(Data))
                    {
                        ghostData.ReadSamples(ms, Samples.Length, 56);
                    }

                    return(ghostData);
                });

                n.Data.ContinueWith(n.dataExceptionHandle);
            }
예제 #2
0
            public override void ReadWrite(CGameGhost n, GameBoxReaderWriter rw)
            {
                UncompressedSize = rw.Int32(UncompressedSize);
                CompressedSize   = rw.Int32(CompressedSize);
                Data             = rw.Bytes(Data, CompressedSize);

                if (rw.Mode == GameBoxReaderWriterMode.Read)
                {
                    n.Data = Task.Run(() =>
                    {
                        var ghostData = new CGameGhostData();
                        using (var ms = new MemoryStream(Data))
                            ghostData.Read(ms, true);
                        return(ghostData);
                    });

                    n.Data.ContinueWith(n.dataExceptionHandle);
                }
            }