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!"); }
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'); } }
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)); } }
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; }
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; } }