From 4d052a086e473a7a8a1ff77251bb67a3cf8c61ca Mon Sep 17 00:00:00 2001 From: MattNL Date: Wed, 1 Mar 2023 03:50:48 -0500 Subject: [PATCH] Added WIP PCK File Sorter --- PCK-Studio/MainForm.cs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/PCK-Studio/MainForm.cs b/PCK-Studio/MainForm.cs index 4d3e0015..a5f6da06 100644 --- a/PCK-Studio/MainForm.cs +++ b/PCK-Studio/MainForm.cs @@ -40,6 +40,7 @@ namespace PckStudio public MainForm() { InitializeComponent(); + treeViewMain.TreeViewNodeSorter = new PckNodeSorter(); imageList.Images.Add(Resources.ZZFolder); // Icon for folders imageList.Images.Add(Resources.BINKA_ICON); // Icon for music cue file (audio.pck) imageList.Images.Add(Resources.IMAGE_ICON); // Icon for images (unused for now) @@ -2190,5 +2191,27 @@ namespace PckStudio } } } + public class PckNodeSorter : System.Collections.IComparer + { + int System.Collections.IComparer.Compare(Object x, Object y) + { + TreeNode NodeX = x as TreeNode; + TreeNode NodeY = y as TreeNode; + + if (NodeX.Tag is PCKFile.FileData file) + { + switch (file.Filetype) + { + case PCKFile.FileData.FileType.SkinFile: + case PCKFile.FileData.FileType.CapeFile: + return 0; // ignore these files in order to preserve skin files + } + } + + int result = NodeX.Text.CompareTo(NodeY.Text); + if (result != 0) return result; + + return NodeX.ImageIndex.CompareTo(NodeY.ImageIndex); + } } } \ No newline at end of file