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); }
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()); }
AmfWriter(ByteWriter writer, SerializationContext context, byte _) { this.context = Check.NotNull(context); this.writer = writer; this.core = new Base(writer); this.amf3 = new Amf3(context, this, core); this.amf0 = new Amf0(context, core, amf3); }
public AmfReader(byte[] data, SerializationContext context) { Check.NotNull(data, context); this.context = context; reader = new ByteReader(data); core = new Base(reader); amf3 = new Amf3(context, this, core); amf0 = new Amf0(context, core, amf3); }