Esempio n. 1
0
    /// <summary>
    /// Read a file that contains save data.
    /// </summary>
    /// <param name="dir"></param>
    /// <param name="filename"></param>
    /// <returns></returns>
    public static SAVDAT ReadSav(E_SAVELOCATIONS dir, string filename)
    {
        // get path
        string path = ProfileManager.GetProfileDirectory() + string.Format("/{0}/", dir) + string.Format("{0}.SAV", filename);

        // if the file doesn't exist then return and throw an error
        if (!File.Exists(path))
        {
            Debug.LogError("Couldn't load file " + path + "!");
            SAVDAT noSav = new SAVDAT();
            noSav.exists = false;
            return noSav;
        }

        // read file
        SAVDAT newSAV = new SAVDAT();
        using (StreamReader sr = new StreamReader(path))
        {
            List<string> readStrings = new List<string>();

            // read file
            string line;
            while ((line = sr.ReadLine()) != null)
            {
                readStrings.Add(line);
            }

            // convert strings to array
            newSAV.lines = readStrings.ToArray();
        }
        newSAV.exists = true;

        return newSAV;
    }
Esempio n. 2
0
    /// <summary>
    /// Write a new file that contains save data.
    /// </summary>
    /// <param name="sav"></param>
    /// <param name="filename"></param>
    public static void WriteSav(SAVDAT sav, string filename)
    {
        // create/get path
        string path = ProfileManager.GetProfileDirectory() + string.Format("/{0}/", sav.saveLocation);
        if (!Directory.Exists(path))
            Directory.CreateDirectory(path);

        string file = path + string.Format("{0}.SAV", filename);

        // write file
        using (StreamWriter sw = new StreamWriter(file))
        {
            int i = 0;
            for (i = 0; i < sav.lines.Length; ++i)
            {
                sw.WriteLine(sav.lines[i]);
            }
        }
    }
Esempio n. 3
0
    /// <summary>
    /// Write a time record to a SAV file.
    /// </summary>
    /// <param name="trackName"></param>
    /// <param name="speed"></param>
    /// <param name="time"></param>
    public static void WriteTime(string trackName, E_SPEEDCLASS speed, float time)
    {
        SAVDAT data = new SAVDAT();
        data.saveLocation = E_SAVELOCATIONS.TIMES;
        data.lines = new string[1] { time.ToString() };

        WriteSav(data, trackName + "_" + speed);
    }
Esempio n. 4
0
    /// <summary>
    /// Sava ghost information to a SAV file.
    /// </summary>
    /// <param name="trackName"></param>
    /// <param name="speed"></param>
    /// <param name="data"></param>
    public static void SaveGhost(string trackName, E_SPEEDCLASS speed,  GhostData data)
    {
        List<string> positions = new List<string>();
        List<string> rotations = new List<string>();
        List<string> lines = new List<string>();

        // populate data to write
        int i = 0;
        for (i = 0; i < data.positions.Length; ++i)
            positions.Add(string.Format("{0} {1} {2}", data.positions[i].x, data.positions[i].y, data.positions[i].z));

        for (i = 0; i < data.rotations.Length; ++i)
            rotations.Add(string.Format("{0} {1} {2} {4}", data.rotations[i].x, data.rotations[i].y, data.rotations[i].z, data.rotations[i].w));

        // pack into single string array
        lines.Add(((int)data.ship).ToString());
        for (i = 0; i < positions.Count; ++i)
            lines.Add(positions[i]);
        for (i = 0; i < rotations.Count;  ++i)
            lines.Add(rotations[i]);

        // create new save data and write
        SAVDAT sav = new SAVDAT();
        sav.lines = lines.ToArray();
        sav.saveLocation = E_SAVELOCATIONS.GHOSTS;

        WriteSav(sav, trackName + "_" + speed);
    }