Example #1
0
    public Recrdng(string filename)
    {
        Filename = filename;
        BinaryFormatter bf = new BinaryFormatter();

        if (File.Exists(Application.persistentDataPath + "/" + Filename))
        {
            FileStream    file      = File.Open(Application.persistentDataPath + "/" + Filename, FileMode.Open);
            RecrdngSerial rs        = (RecrdngSerial)bf.Deserialize(file);
            int           _vehCount = rs.Data.GetLength(1);
            Main.Instance.Vehicles = rs.Vehicles.ToList();
            FrameCount             = rs.Data.GetLength(0);
            Data = new List <List <RecFrameData> >();
            for (int f = 0; f < FrameCount; f++)
            {
                List <RecFrameData> lf = new List <RecFrameData>();
                for (int v = 0; v < _vehCount; v++)
                {
                    RecFrameData       rfd  = new RecFrameData();
                    RecFrameDataSerial rfds = rs.Data[f, v];
                    rfd.VId       = rfds.VId;
                    rfd.FAV       = (sbyte)rfds.FAngularVelocity;
                    rfd.RAV       = (sbyte)rfds.RAngularVelocity;
                    rfd.FLSprL    = rfds.FLSprL;
                    rfd.FRSprL    = rfds.FRSprL;
                    rfd.RLSprL    = rfds.RLSprL;
                    rfd.RRSprL    = rfds.RRSprL;
                    rfd.FLGnd     = rfds.FLGnd;
                    rfd.FRGnd     = rfds.FRGnd;
                    rfd.RLGnd     = rfds.RLGnd;
                    rfd.RRGnd     = rfds.RRGnd;
                    rfd.Pos       = rfds.Pos.V3;
                    rfd.Rot       = rfds.Rot.Decode;
                    rfd.XMovement = rfds.XMovement;
                    if (rfds.Events != null)
                    {
                        rfd.Events = rfds.Events.ToList();
                    }
                    //rfd.Event = new RecEvent {Type = (RecEventType)rfds.EventType, Data = rfds.EventData };
                    lf.Add(rfd);
                }
                Data.Add(lf);
            }
            file.Close();
            CurrFrame = 0;
        }
    }
Example #2
0
    public void SaveGhost(LapStat ls)
    {
        GhostDataSerial[] Gst;
        int SavedFrameCount = FrameCount;

        Gst = new GhostDataSerial[ls.finFr - ls.stFr];
        for (int f = ls.stFr; f < ls.finFr; f++)
        {
            GhostDataSerial gf   = new GhostDataSerial();
            RecFrameData    rfdg = this.Data[f][PlayerCarId];
            gf.Pos           = new Vector3Serial(rfdg.Pos);
            gf.Rot           = new QuaternionSerial(rfdg.Rot);
            Gst[f - ls.stFr] = gf;
        }
        string          nameOfTheFileToSave = Application.persistentDataPath + "/" + Game.current.Filename + ".gst";
        BinaryFormatter bf = new BinaryFormatter();
        FileStream      file;

        file = File.Create(nameOfTheFileToSave);
        bf.Serialize(file, Gst);
        file.Close();
    }