Exemple #1
0
        public static string SaveTrack(Track track, string savename)
        {
            var dir = TrackIO.GetTrackDirectory(track);

            if (!Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }
            var             filename = dir + savename + ".sol";
            BigEndianWriter bw       = new BigEndianWriter();

            bw.WriteShort(0x00BF); //sol version
            bw.WriteInt(0);        //length, placeholder
            bw.WriteString("TCSO");
            bw.WriteBytes(new byte[] { 0, 4, 0, 0, 0, 0 });
            bw.WriteMapleString("savedLines");
            bw.WriteInt(0);//padding
            Amf0Object rootobj = new Amf0Object();

            rootobj.name = "trackList";
            rootobj.type = Amf0Object.Amf0Type.AMF0_ECMA_ARRAY;
            var tracks = new List <Amf0Object>();

            rootobj.data = tracks;
            WriteTrack(tracks, track);
            Amf0 amf = new Amf0(bw);

            amf.WriteAmf0Object(rootobj);
            bw.WriteByte(0);
            bw.Reset(2);
            bw.WriteInt(bw.Length - 6);
            File.WriteAllBytes(filename, bw.ToArray());
            return(filename);
        }
Exemple #2
0
        public static void SaveTrack(Track track)
        {
            var             location = Program.UserDirectory + "Tracks" + Path.DirectorySeparatorChar + track.Name + "savedLines.sol";
            BigEndianWriter bw       = new BigEndianWriter();

            bw.WriteShort(0x00BF); //sol version
            bw.WriteInt(0);        //length, placeholder
            bw.WriteString("TCSO");
            bw.WriteBytes(new byte[] { 0, 4, 0, 0, 0, 0 });
            bw.WriteMapleString("savedLines");
            bw.WriteInt(0);//padding
            Amf0Object rootobj = new Amf0Object();

            rootobj.name = "trackList";
            rootobj.type = Amf0Object.Amf0Type.AMF0_ECMA_ARRAY;
            var tracks = new List <Amf0Object>();

            rootobj.data = tracks;
            WriteTrack(tracks, track);
            Amf0 amf = new Amf0(bw);

            amf.WriteAmf0Object(rootobj);
            bw.WriteByte(0);
            bw.Reset(2);
            bw.WriteInt(bw.Length - 6);
            File.WriteAllBytes(location, bw.ToArray());
        }