public static SDataSave ReadSave(byte[] saveFile) { var save = new DataBuffer(saveFile, Game.XB2, 0); var saveData = new SDataSave(save); return(saveData); }
public void ReadSave(string filename) { var file = File.ReadAllBytes(filename); var save = new SDataSave(new DataBuffer(file, Game.XB2, 0)); SaveFile = save; SaveFilename = filename; }
public static byte[] WriteSave(SDataSave saveFile) { var saveBytes = new byte[0x1176A0]; var save = new DataBuffer(saveBytes, Game.XB2, 0); saveFile.WriteSave(save); return(saveBytes); }
public MainViewModel() { ReadSaveCommand = new RelayCommand(ReadSaveDialog); WriteSaveCommand = new RelayCommand(WriteSave); LoadBdatsCommand = new RelayCommand(LoadBdats); if (IsInDesignModeStatic) { using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("SaveEditor.bf2savefile.sav.gz")) { if (stream == null) { return; } using (var decompressionStream = new GZipStream(stream, CompressionMode.Decompress)) { var file = new byte[0x1176A0]; decompressionStream.Read(file, 0, file.Length); SaveFile = new SDataSave(new DataBuffer(file, Game.XB2, 0)); } } } using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("SaveEditor.bdats.gz")) { if (stream == null) { return; } using (var decompressionStream = new GZipStream(stream, CompressionMode.Decompress)) { var file = new byte[7394040]; decompressionStream.Read(file, 0, file.Length); var bdats = new BdatTables(file, Game.XB2, false); Tables = Deserialize.DeserializeTables(bdats); } } var s = new List <ItemDesc> { new ItemDesc { Id = 0, Name = "" } }; s.AddRange(Tables.ITM_PcEquip.Select(x => new ItemDesc { Id = x.Id, Name = x._Name?.name })); Acc = s.ToArray(); }
public static string PrintSave(SDataSave save, BdatCollection tables) { var sb = new StringBuilder(); var delim = new string('=', 25); var blades = save.GameSave.CommonBladeIds.Where(x => x > 0).Select(x => save.GameSave.Blades[x - 1001]) .OrderBy(x => x.GetName(tables)); foreach (SDataBlade blade in blades) { if (blade.BladeId < 1) { continue; } sb.AppendLine(); PrintBlade(blade, tables, sb); sb.AppendLine(delim); } return(sb.ToString()); }
private static void ReadSave(Options options) { if (options.Input == null) { throw new NullReferenceException("No input file was specified."); } if (options.Output == null) { throw new NullReferenceException("No output file was specified."); } byte[] saveFile = File.ReadAllBytes(options.Input); SDataSave saveData = Read.ReadSave(saveFile); var newSave = Write.WriteSave(saveData); File.WriteAllBytes(options.Input + "_new.sav", newSave); BdatCollection tables = GetBdatCollection(options); string printout = Print.PrintSave(saveData, tables); File.WriteAllText(options.Output, printout); }
public MainViewModel() { ReadSaveCommand = new RelayCommand(ReadSaveDialog); WriteSaveCommand = new RelayCommand(WriteSave); LoadBdatsCommand = new RelayCommand(LoadBdats); if (IsInDesignModeStatic) { using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("SaveEditor.bf2savefile.sav.gz")) { if (stream == null) { return; } using (var decompressionStream = new GZipStream(stream, CompressionMode.Decompress)) { var file = new byte[0x1176A0]; decompressionStream.Read(file, 0, file.Length); SaveFile = new SDataSave(new DataBuffer(file, Game.XB2, 0)); } } } using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("SaveEditor.bdats.gz")) { if (stream == null) { return; } using (var decompressionStream = new GZipStream(stream, CompressionMode.Decompress)) { var file = new byte[7394040]; decompressionStream.Read(file, 0, file.Length); var bdats = new BdatTables(file, Game.XB2, false); Tables = Deserialize.DeserializeTables(bdats); } } var s = new List <ItemDesc> { new ItemDesc { Id = 0, Name = "" } }; s.AddRange(Tables.ITM_PcEquip.Select(x => new ItemDesc { Id = x.Id, Name = x._Name?.name })); Acc = s.ToArray(); var t = new List <ItemDesc> { new ItemDesc { Id = 0, Name = "" } }; t.AddRange(Tables.ITM_CrystalList.Select(x => new ItemDesc { Id = x.Id, Name = x._Name?.name })); CorCrt = t.ToArray(); var u = new List <ItemDesc> { new ItemDesc { Id = 0, Name = "" } }; u.AddRange(Tables.ITM_SalvageList.Select(x => new ItemDesc { Id = x.Id, Name = x._Name?.name })); Cyl = u.ToArray(); var v = new List <ItemDesc> { new ItemDesc { Id = 0, Name = "" } }; v.AddRange(Tables.ITM_PreciousList.Select(x => new ItemDesc { Id = x.Id, Name = x._Name?.name })); Key = v.ToArray(); var w = new List <ItemDesc> { new ItemDesc { Id = 0, Name = "" } }; w.AddRange(Tables.ITM_InfoList.Select(x => new ItemDesc { Id = x.Id, Name = x._Name?.name })); Info = w.ToArray(); var xa = new List <ItemDesc> { new ItemDesc { Id = 0, Name = "" } }; xa.AddRange(Tables.ITM_HanaAssist.Select(x => new ItemDesc { Id = x.Id, Name = x._Name?.name })); SkRam = xa.ToArray(); var xb = new List <ItemDesc> { new ItemDesc { Id = 0, Name = "" } }; xb.AddRange(Tables.ITM_HanaNArtsSet.Select(x => new ItemDesc { Id = x.Id, Name = x._Name?.name })); Art = xb.ToArray(); var xc = new List <ItemDesc> { new ItemDesc { Id = 0, Name = "" } }; xc.AddRange(Tables.ITM_HanaArtsEnh.Select(x => new ItemDesc { Id = x.Id, Name = x._Name?.name })); EnRam = xc.ToArray(); var xd = new List <ItemDesc> { new ItemDesc { Id = 0, Name = "" } }; xd.AddRange(Tables.ITM_HanaAtr.Select(x => new ItemDesc { Id = x.Id, Name = x._Name?.name })); ElCore = xd.ToArray(); var xe = new List <ItemDesc> { new ItemDesc { Id = 0, Name = "" } }; xe.AddRange(Tables.ITM_HanaRole.Select(x => new ItemDesc { Id = x.Id, Name = x._Name?.name })); RCPU = xe.ToArray(); var xf = new List <ItemDesc> { new ItemDesc { Id = 0, Name = "" } }; xf.AddRange(Tables.ITM_BoosterList.Select(x => new ItemDesc { Id = x.Id, Name = x._Name?.name })); Boost = xf.ToArray(); var xg = new List <ItemDesc> { new ItemDesc { Id = 0, Name = "" } }; xg.AddRange(Tables.ITM_Orb.Select(x => new ItemDesc { Id = x.Id, Name = x._Name?.name })); ACore = xg.ToArray(); var xh = new List <ItemDesc> { new ItemDesc { Id = 0, Name = "" } }; xh.AddRange(Tables.ITM_FavoriteList.Select(x => new ItemDesc { Id = x.Id, Name = x._Name?.name })); PItem = xh.ToArray(); var xi = new List <ItemDesc> { new ItemDesc { Id = 0, Name = "" } }; xi.AddRange(Tables.ITM_TresureList.Select(x => new ItemDesc { Id = x.Id, Name = x._Name?.name })); Trs = xi.ToArray(); var xj = new List <ItemDesc> { new ItemDesc { Id = 0, Name = "" } }; xj.AddRange(Tables.ITM_CollectionList.Select(x => new ItemDesc { Id = x.Id, Name = x._Name?.name })); Col = xj.ToArray(); var xl = new List <ItemDesc> { new ItemDesc { Id = 0, Name = "" } }; xl.AddRange(Tables.ITM_PreciousList.Select(x => new ItemDesc { Id = x.Id, Name = x._Name?.name })); KItem = xl.ToArray(); var xm = new List <ItemDesc> { new ItemDesc { Id = 0, Name = "" } }; xm.AddRange(Tables.ITM_PcWpnChip.Select(x => new ItemDesc { Id = x.Id, Name = x._Name?.name })); PcWpn = xm.ToArray(); }