Exemplo n.º 1
0
        private void OnClickRevertToOriginal(object sender, EventArgs eventArgs)
        {
            TreeNode pknNode  = treeView1.SelectedNode;
            BaseFile baseFile = (BaseFile)pknNode.Tag;

            foreach (PKNFile pknFile in _state.ProjectFile.OriginalImage.PKNFiles)
            {
                foreach (BaseFile file in pknFile.Files)
                {
                    if (file.FileName == baseFile.FileName)
                    {
                        File.Copy(file.FilePath, baseFile.FilePath, true);
                        if (baseFile.GetType() == typeof(LZBFile))
                        {
                            LZBFile lzbFile = (LZBFile)baseFile;
                            if (lzbFile.DecompressedFile != null)
                            {
                                lzbFile.DecompressedFile.Delete();
                                lzbFile.DecompressedFile = null;
                            }
                            if (lzbFile.HeaderFile != null)
                            {
                                lzbFile.HeaderFile.Delete();
                                lzbFile.HeaderFile = null;
                            }
                        }
                        return;
                    }
                }
            }

            MessageBox.Show("Couldn't find the original file", "Error!");
        }
Exemplo n.º 2
0
        public ScriptDocument(BaseFile baseFile)
        {
            BaseFile = baseFile;

            string filePath;

            if (baseFile.GetType() == typeof(LZBFile))
            {
                LZBFile lzbFile = (LZBFile)baseFile;
                if (lzbFile.DecompressedFile == null)
                {
                    lzbFile.Decompress();
                }
                filePath = lzbFile.DecompressedFile.FilePath;
            }
            else
            {
                filePath = baseFile.FilePath;
            }

            using (BinaryReader reader = new BinaryReader(new FileStream(filePath, FileMode.Open)))
            {
                byte[] charArray = new byte[reader.BaseStream.Length];
                reader.Read(charArray, 0, charArray.Length);
                TextBuffer = _shiftJist.GetString(charArray);
                TextBuffer = TextBuffer.Trim('\0');
            }
        }
Exemplo n.º 3
0
        public void WriteToOriginalFile()
        {
            string outputPath = BaseFile.FilePath;

            if (BaseFile.GetType() == typeof(LZBFile))
            {
                LZBFile lzbFile = (LZBFile)BaseFile;
                outputPath = lzbFile.DecompressedFile.FilePath;
            }
            using (BinaryWriter writer = new BinaryWriter(new FileStream(outputPath, FileMode.Create)))
            {
                writer.Write(_shiftJist.GetBytes(TextBuffer));
            }
        }
Exemplo n.º 4
0
        public void DecompressScripts()
        {
            if (ApplicationState.Instance.ProjectFile == null)
            {
                MessageBox.Show("Open a project file before decompressing!", "Project file not found!");
                return;
            }
            PSXImage modifiedImage = ApplicationState.Instance.ProjectFile.ModifiedImage;

            _scriptPKN = modifiedImage.PKNFiles.Find(pkn => pkn.Name == "SCRIPT");
            if (_scriptPKN == null)
            {
                return;
            }
            if (_scriptPKN.Files.Count == 0) //cheap fix for when pkn files dont save files
            {
                _scriptPKN.Unpack();
            }
            Enabled = false;

            ScriptFile = new ScriptFile();

            richTextBox_ScriptFile.Text = "";
            for (int i = 0; i < _scriptPKN.Files.Count; i++)
            {
                BaseFile baseFile = _scriptPKN.Files[i];
                if (baseFile.GetType() == typeof(LZBFile))
                {
                    LZBFile lzbFile = (LZBFile)baseFile;
                    lzbFile.Decompress();
                }
                ScriptDocument scriptFile = new ScriptDocument(baseFile);
                ScriptFile.Scripts.Add(scriptFile);
                progressBar_Progress.Value = (int)((double)i / _scriptPKN.Files.Count * 100);
            }
            listBox_ScriptFiles.Items.Clear();
            foreach (ScriptDocument scriptFile in ScriptFile.Scripts)
            {
                listBox_ScriptFiles.Items.Add(scriptFile);
            }

            progressBar_Progress.Value = 0;
            Enabled = true;
        }
Exemplo n.º 5
0
        public void Update(BaseFile baseFile)
        {
            if (baseFile == null)
            {
                if (EnabledLZB)
                {
                    lzbControl.Visible = false;
                }
                if (EnabledTIM)
                {
                    timControl.Visible = false;
                }
                if (EnabledPB)
                {
                    pbControl.Visible = false;
                }
                if (EnabledBG)
                {
                    bgControl.Visible = false;
                }
                textControl.Visible = false;
                return;
            }
            if (baseFile.GetType() == typeof(TIMFile) && EnabledTIM)
            {
                TIMFile timFile = (TIMFile)baseFile;
                timControl.Update(timFile);
                timControl.Visible = true;
                if (EnabledLZB)
                {
                    lzbControl.Visible = false;
                }
                if (EnabledPB)
                {
                    pbControl.Visible = false;
                }
                if (EnabledBG)
                {
                    bgControl.Visible = false;
                }
                textControl.Visible = false;
                return;
            }
            if (baseFile.GetType() == typeof(LZBFile) && EnabledLZB)
            {
                LZBFile lzbFile = (LZBFile)baseFile;
                lzbControl.Update(lzbFile);
                lzbControl.Visible = true;
                if (EnabledTIM)
                {
                    timControl.Visible = false;
                }
                if (EnabledPB)
                {
                    pbControl.Visible = false;
                }
                if (EnabledBG)
                {
                    bgControl.Visible = false;
                }
                textControl.Visible = false;
                return;
            }
            if (baseFile.GetType() == typeof(PBFile) && EnabledPB)
            {
                PBFile pbFile = (PBFile)baseFile;
                pbControl.Update(pbFile);
                pbControl.Visible = true;
                if (EnabledTIM)
                {
                    timControl.Visible = false;
                }
                if (EnabledLZB)
                {
                    lzbControl.Visible = false;
                }
                if (EnabledBG)
                {
                    bgControl.Visible = false;
                }
                textControl.Visible = false;
                return;
            }
            if (baseFile.GetType() == typeof(BGFile) && EnabledBG)
            {
                BGFile bgFile = (BGFile)baseFile;
                bgControl.Update(bgFile);
                bgControl.Visible = true;
                if (EnabledTIM)
                {
                    timControl.Visible = false;
                }
                if (EnabledLZB)
                {
                    lzbControl.Visible = false;
                }
                if (EnabledPB)
                {
                    pbControl.Visible = false;
                }
                textControl.Visible = false;
                return;
            }

            textControl.Update(baseFile);
            textControl.Visible = true;
            if (EnabledLZB)
            {
                lzbControl.Visible = false;
            }
            if (EnabledTIM)
            {
                timControl.Visible = false;
            }
            if (EnabledPB)
            {
                pbControl.Visible = false;
            }
            if (EnabledBG)
            {
                bgControl.Visible = false;
            }
        }