using LibXom.Data; using LibXom.Streams; using System; using System.Collections.Generic; using System.Linq; using System.Reflection.PortableExecutable; using System.Text; using System.Threading.Tasks; namespace LibW4M.Data.Highscores { public class HighscoreData : SaveDataEntry { public override string FriendlyName { get { return WinnerName.Value + " - " + WinnerTime.ToString(); } } public XomString WinnerName; public int WinnerTime; public HighscoreData(W4SaveFile fileBelongs, XomContainer mainContainer, bool load = true) : base(fileBelongs, mainContainer, load) { } internal override void loadDefaults() { this.WinnerName = fileBelongs.LookupString("Untitled Highscore"); this.WinnerTime = 0; } public override void Load() { using (XomStreamReader reader = new XomStreamReader(new MemoryStream(mainContainer.GetData()))) { reader.Skip(3); WinnerName = fileBelongs.LookupStringFromId(reader.ReadCompressedInt()); WinnerTime = reader.ReadInt32(); } } public override void Save() { using (MemoryStream ms = new MemoryStream()) { using (XomStreamWriter writer = new XomStreamWriter(ms)) { writer.Skip(3); writer.WriteCompressedInt(WinnerName.Id); writer.WriteInt32(WinnerTime); ms.Seek(0x00, SeekOrigin.Begin); mainContainer.SetData(ms.ToArray()); } } } } }