public bool xbox360_to_pc() { STFS xstfs; byte[] xfiledata; byte[] rawdata; List<byte> cleanname; string filen; // open the 360 save file OpenFileDialog odlg = new OpenFileDialog { Filter = "FalloutNV (*.fxs)|*.fxs|" + "All files (*.*)|*.*", Title = "Select your XBOX 360 save game..." }; if (odlg.ShowDialog() == DialogResult.OK) { filen = odlg.FileName; } else { return false; } xstfs = new STFS(odlg.FileName); xfiledata = xstfs.extractFile(); rawdata = xstfs.rawFile(); // get the file name int endfn = ByteFunctions.ByteSearchFirst(rawdata, new byte[] { 0x00, 0x00, 0x00, 0x00 }, 0x412); byte[] fname = ByteFunctions.BytePeice(rawdata, 0x412, (endfn - 0x412)); cleanname = new List<byte>(); // remove all 00's for (int i = 0; i < fname.Length; i++) { if (fname[i] != 0x00) cleanname.Add(fname[i]); } // write out the save file FolderBrowserDialog fdlg = new FolderBrowserDialog { Description = "Select save destination..." }; if (fdlg.ShowDialog() == DialogResult.OK) { FileStream fs = new FileStream(fdlg.SelectedPath + "\\" + Encoding.Default.GetString(cleanname.ToArray()) + ".fos", FileMode.Create, FileAccess.Write); fs.Write(xfiledata, 0, xfiledata.Length); fs.Close(); } else { return false; } XtraMessageBox.Show("File Saved!"); return true; }
public bool load_file(string filename) { _form.barStatus.Caption = "Status: Reading..."; _form.pBar.Properties.Maximum = 5; // setup file and tempfile tmpfile = Path.GetTempFileName(); file = filename; _form.progressbar_inc(); FileStream fsOut = new FileStream(tmpfile, FileMode.Create, FileAccess.Write); // get & witeout clean file data xpack = new STFS(filename); byte[] cleanbuffer = xpack.extractFile(); _form.progressbar_inc(); fsOut.Write(cleanbuffer, 0, cleanbuffer.Length); fsOut.Close(); _form.progressbar_inc(); offsets = new OffsetsClass(tmpfile); _form.progressbar_inc(); savegame = new Savegame(tmpfile, offsets); _form.progressbar_inc(); _form.barStatus.Caption = "Status: Done"; return true; }