Esempio n. 1
0
        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());
            }
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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();
            }
        }