mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-06-20 18:35:33 +00:00
Added PCK Endianness Conversion
commit95bd1957d8Author: MattN-L <MattNL.XBLD@gmail.com> Date: Sun Mar 31 19:26:17 2024 -0400 Added endianness conversion feature Redone because it originally included a bunch of sub pck support, which is no longer planned. commit03ebbd3d58Author: MattN-L <MattNL.XBLD@gmail.com> Date: Sun Mar 31 18:53:46 2024 -0400 Revert "Added PCK Endianness conversion features" This reverts commit565dabf38a. commit565dabf38aAuthor: MattN-L <MattNL.XBLD@gmail.com> Date: Mon Dec 11 21:02:14 2023 -0500 Added PCK Endianness conversion features
This commit is contained in:
29
PCK-Studio/MainForm.Designer.cs
generated
29
PCK-Studio/MainForm.Designer.cs
generated
@@ -150,6 +150,9 @@
|
||||
toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||
toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.setSubPCKEndiannessToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.bigEndianXbox360PS3WiiUToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.littleEndianPS4PSVitaSwitchToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
((System.ComponentModel.ISupportInitialize)(logoPictureBox)).BeginInit();
|
||||
this.contextMenuPCKEntries.SuspendLayout();
|
||||
this.menuStrip.SuspendLayout();
|
||||
@@ -406,7 +409,8 @@
|
||||
this.miscFunctionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.generateMipMapTextureToolStripMenuItem1,
|
||||
this.viewFileInfoToolStripMenuItem,
|
||||
this.correctSkinDecimalsToolStripMenuItem});
|
||||
this.correctSkinDecimalsToolStripMenuItem,
|
||||
this.setSubPCKEndiannessToolStripMenuItem});
|
||||
this.miscFunctionsToolStripMenuItem.Name = "miscFunctionsToolStripMenuItem";
|
||||
resources.ApplyResources(this.miscFunctionsToolStripMenuItem, "miscFunctionsToolStripMenuItem");
|
||||
//
|
||||
@@ -1095,6 +1099,26 @@
|
||||
this.LittleEndianCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
|
||||
this.LittleEndianCheckBox.UseSelectable = true;
|
||||
//
|
||||
// setSubPCKEndiannessToolStripMenuItem
|
||||
//
|
||||
this.setSubPCKEndiannessToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.bigEndianXbox360PS3WiiUToolStripMenuItem,
|
||||
this.littleEndianPS4PSVitaSwitchToolStripMenuItem});
|
||||
this.setSubPCKEndiannessToolStripMenuItem.Name = "setSubPCKEndiannessToolStripMenuItem";
|
||||
resources.ApplyResources(this.setSubPCKEndiannessToolStripMenuItem, "setSubPCKEndiannessToolStripMenuItem");
|
||||
//
|
||||
// bigEndianXbox360PS3WiiUToolStripMenuItem
|
||||
//
|
||||
this.bigEndianXbox360PS3WiiUToolStripMenuItem.Name = "bigEndianXbox360PS3WiiUToolStripMenuItem";
|
||||
resources.ApplyResources(this.bigEndianXbox360PS3WiiUToolStripMenuItem, "bigEndianXbox360PS3WiiUToolStripMenuItem");
|
||||
this.bigEndianXbox360PS3WiiUToolStripMenuItem.Click += new System.EventHandler(this.bigEndianToolStripMenuItem_Click);
|
||||
//
|
||||
// littleEndianPS4PSVitaSwitchToolStripMenuItem
|
||||
//
|
||||
this.littleEndianPS4PSVitaSwitchToolStripMenuItem.Name = "littleEndianPS4PSVitaSwitchToolStripMenuItem";
|
||||
resources.ApplyResources(this.littleEndianPS4PSVitaSwitchToolStripMenuItem, "littleEndianPS4PSVitaSwitchToolStripMenuItem");
|
||||
this.littleEndianPS4PSVitaSwitchToolStripMenuItem.Click += new System.EventHandler(this.littleEndianToolStripMenuItem_Click);
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
this.ApplyImageInvert = true;
|
||||
@@ -1245,6 +1269,9 @@
|
||||
private System.Windows.Forms.ToolStripMenuItem trelloBoardToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem recentlyOpenToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem setSubPCKEndiannessToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem bigEndianXbox360PS3WiiUToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem littleEndianPS4PSVitaSwitchToolStripMenuItem;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -571,8 +571,22 @@ namespace PckStudio
|
||||
|
||||
private void HandleAudioFile(PckFileData file)
|
||||
{
|
||||
using AudioEditor audioEditor = new AudioEditor(file, LittleEndianCheckBox.Checked);
|
||||
wasModified = audioEditor.ShowDialog(this) == DialogResult.OK;
|
||||
try
|
||||
{
|
||||
using AudioEditor audioEditor = new AudioEditor(file, LittleEndianCheckBox.Checked);
|
||||
wasModified = audioEditor.ShowDialog(this) == DialogResult.OK;
|
||||
}
|
||||
catch (OverflowException)
|
||||
{
|
||||
MessageBox.Show(this, $"Failed to open {file.Filename}\n" +
|
||||
"Try converting the file by using the \"Misc. Functions/Set PCK Endianness\" tool and try again.",
|
||||
"Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show($"Failed to open {file.Filename}\n" + ex.Message,
|
||||
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void HandleLocalisationFile(PckFileData file)
|
||||
@@ -2382,5 +2396,42 @@ namespace PckStudio
|
||||
{
|
||||
Application.Exit();
|
||||
}
|
||||
|
||||
private void setPCKEndiannessStripMenuItem_Click(OMI.Endianness endianness)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (treeViewMain.SelectedNode.Tag is PckFileData file && (file.Filetype is PckFileType.AudioFile || file.Filetype is PckFileType.SkinDataFile || file.Filetype is PckFileType.TexturePackInfoFile))
|
||||
{
|
||||
using (var stream = new MemoryStream())
|
||||
{
|
||||
dynamic reader = file.Filetype is PckFileType.AudioFile
|
||||
? new PckAudioFileReader(endianness == OMI.Endianness.BigEndian ? OMI.Endianness.LittleEndian : OMI.Endianness.BigEndian)
|
||||
: new PckFileReader(endianness == OMI.Endianness.BigEndian ? OMI.Endianness.LittleEndian : OMI.Endianness.BigEndian);
|
||||
var pck = reader.FromStream(new MemoryStream(file.Data));
|
||||
dynamic writer = file.Filetype is PckFileType.AudioFile
|
||||
? new PckAudioFileWriter(pck, endianness)
|
||||
: new PckFileWriter(pck, endianness);
|
||||
writer.WriteToStream(stream);
|
||||
file.SetData(stream.ToArray());
|
||||
}
|
||||
wasModified = true;
|
||||
MessageBox.Show($"\"{file.Filename}\" successfully converted to {(endianness == OMI.Endianness.LittleEndian ? "little" : "big")} endian.", "Converted PCK file");
|
||||
}
|
||||
}
|
||||
catch (OverflowException)
|
||||
{
|
||||
MessageBox.Show(this, $"File was not a valid {(endianness != OMI.Endianness.LittleEndian ? "little" : "big")} endian PCK File.", "Not a valid PCK file");
|
||||
return;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(this, ex.Message, "Not a valid PCK file");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private void littleEndianToolStripMenuItem_Click(object sender, EventArgs e) => setPCKEndiannessStripMenuItem_Click(OMI.Endianness.LittleEndian);
|
||||
private void bigEndianToolStripMenuItem_Click(object sender, EventArgs e) => setPCKEndiannessStripMenuItem_Click(OMI.Endianness.BigEndian);
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user