Example #1
0
        private void mnuNewFile_Click(object sender, EventArgs e)
        {
            EditPakItem f = new EditPakItem(EditPakItemType.New);

            if (f.ShowDialog(this) == DialogResult.OK)
            {
                if (f.PakItemFilename.Trim().Length == 0)
                {
                    MessageBox.Show(this, "The pak item filename was not specified", "New File Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }

                if (pakItemExists(f.PakItemFilename, null))
                {
                    MessageBox.Show(this, string.Format("'{0}' already exists", f.PakItemFilename), "New File Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    selectPakItem(f.PakItemFilename);
                    return;
                }

                //get the unknown value from another file
                byte[] unknown = new byte[] { 0x1C, 0x08, 0x02, 0x04, 0x10, 0x04, 0x08, 0x0C, 0x0C, 0x08, 0x02, 0x04, 0x14, 0x02, 0x04, 0x0C, 0x10, 0x10, 0x0C, 0x00 };
                QbFile qbf = null;
                QbKey qbType = QbKey.Create(".qb");
                foreach (PakHeaderItem phi in _pakFile.Headers.Values)
                {
                    if (phi.FileType == qbType)
                    {
                        qbf = _pakFile.ReadQbFile(phi.Filename);
                        unknown = (byte[])((QbItemUnknown)qbf.Items[0]).UnknownData.Clone();
                        break;
                    }
                }

                //some hard coded values rather than ask the user for them... Always the same update if required
                _pakFile.NewFile(f.PakItemFilename, f.ItemType, f.IncludeFileNameInHeader, 0, unknown);
                reloadPak();
                selectPakItem(f.PakItemFilename);
            }
        }
Example #2
0
        private void mnuRenameFile_Click(object sender, EventArgs e)
        {
            EditPakItem f = new EditPakItem(EditPakItemType.Rename);
            PakHeaderItem phi = (PakHeaderItem)lstPakContents.SelectedItems[0].Tag;

            f.IncludeFileNameInHeader = ((phi.Flags & PakHeaderFlags.Filename) == PakHeaderFlags.Filename);
            if (f.IncludeFileNameInHeader) //we don't know the filename
                f.PakItemFilename = phi.Filename;
            f.ItemType = phi.FileType;

            if (f.ShowDialog(this) == DialogResult.OK)
            {
                try
                {
                    this.Cursor = Cursors.WaitCursor;

                    if (f.PakItemFilename.Trim().Length == 0)
                    {
                        MessageBox.Show(this, "The pak item filename was not specified", "Rename File Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        return;
                    }

                    if (pakItemExists(f.PakItemFilename, phi))
                    {
                        MessageBox.Show(this, string.Format("'{0}' already exists", f.PakItemFilename), "Rename File Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        selectPakItem(f.PakItemFilename);
                        return;
                    }

                    //some hard coded values rather than ask the user for them... Always the same update if required
                    _pakFile.RenameFile(phi.Filename, f.PakItemFilename, f.ItemType);
                    reloadPak();
                    selectPakItem(f.PakItemFilename);

                }
                finally
                {
                    this.Cursor = Cursors.Default;
                }
            }
        }
Example #3
0
        private void mnuAddFile_Click(object sender, EventArgs e)
        {
            EditPakItem f = new EditPakItem(EditPakItemType.Add);

            if (f.ShowDialog(this) == DialogResult.OK)
            {
                try
                {
                    this.Cursor = Cursors.WaitCursor;

                    if (!File.Exists(f.ImportFilename))
                    {
                        MessageBox.Show(this, string.Format("'{0}' does not exist", f.ImportFilename), "Add File Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        return;
                    }

                    if (f.PakItemFilename.Trim().Length == 0)
                    {
                        MessageBox.Show(this, "The pak item filename was not specified", "Add File Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        return;
                    }

                    if (pakItemExists(f.PakItemFilename, null))
                    {
                        MessageBox.Show(this, string.Format("'{0}' already exists", f.PakItemFilename), "Add File Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        selectPakItem(f.PakItemFilename);
                        return;
                    }

                    //some hard coded values rather than ask the user for them... Always the same update if required
                    _pakFile.AddFile(f.ImportFilename, f.PakItemFilename, f.ItemType, f.IncludeFileNameInHeader);
                    reloadPak();
                    selectPakItem(f.PakItemFilename);
                }
                finally
                {
                    this.Cursor = Cursors.Default;
                }
            }
        }