public void Compiler(string repackPath, bool is64) { if (repackPath == null) { return; } if (multiworker != null && multiworker.IsBusy) { multiworker.CancelAsync(); } try { GboxTranslator.Enabled = false; RunWithWorker(((o, args) => { BNSDat m_bnsDat = new BNSDat(); new BNSDat().Compress(repackPath, (number, of) => { richOut.Text = "Compressing Files: " + number + "/" + of; }, is64, 9); GboxTranslator.Enabled = true; })); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
public void Read(BinaryReader br) { StartAndEndFieldId = br.ReadBytes(16); SizeCompressed = Ultily.ReadIntFrom2Bytes(br.ReadBytes(2)); byte[] DataCompressed = br.ReadBytes(SizeCompressed); SizeDecompressed = Ultily.ReadIntFrom2Bytes(br.ReadBytes(2)); if (SizeDecompressed < 0) { Console.WriteLine("SizeCompressed: " + SizeCompressed + "|SizeDecompressed: " + SizeDecompressed); //throw new Exception("SizeDecompressed is wrong!"); } byte[] DataDecompressed = BNSDat.Deflate(DataCompressed, SizeCompressed, SizeDecompressed); FieldLookupCount = br.ReadInt32(); Fields = new BDAT_FIELDTABLE[FieldLookupCount]; Lookups = new BDAT_LOOKUPTABLE[FieldLookupCount]; //Console.WriteLine("FieldLookupCount: " + FieldLookupCount); BinaryReader mis = new BinaryReader(new MemoryStream(DataDecompressed)); int DataOffset = Ultily.ReadIntFrom2Bytes(br.ReadBytes(2)); for (int i = 1; i <= FieldLookupCount; i++) { mis.BaseStream.Seek(DataOffset, SeekOrigin.Begin); //Console.WriteLine("test: " + mis.BaseStream.Position + " - " + DataOffset); Fields[i - 1] = new BDAT_FIELDTABLE(); Fields[i - 1].Read(mis); if (i < FieldLookupCount) { DataOffset = Ultily.ReadIntFrom2Bytes(br.ReadBytes(2)); } else { DataOffset = SizeDecompressed; } Lookups[i - 1] = new BDAT_LOOKUPTABLE(); Lookups[i - 1].Size = DataOffset - (int)mis.BaseStream.Position; Lookups[i - 1].Read(mis); } }
private void openXmldatToolStripMenuItem_Click(object sender, EventArgs e) { if (OfileDat.ShowDialog() != DialogResult.OK) { return; } FulldatPath = OfileDat.FileName; DatfileName = OfileDat.SafeFileName; // Check if 64bit or 32bit if (FulldatPath.Contains("64")) { DatIs64 = true; } else { DatIs64 = false; } try { Dictionary <string, byte[]> dictionary = new BNSDat().ExtractFile(FulldatPath, new List <string> { nametofile }, FulldatPath.Contains("64")); var bytes = dictionary[nametofile]; File.WriteAllText(tempsliders, Encoding.UTF8.GetString(bytes)); } catch { ststripLabel.Text = "Could not open file!"; } if (comboBox1.SelectedIndex > -1) { RaceSexSelection(); } }