Link botw actors to msbt for defining and organsing. Load msbt labels.
This commit is contained in:
parent
3fd07bd46b
commit
9f829b714b
Binary file not shown.
@ -7,8 +7,9 @@ using Toolbox.Library;
|
|||||||
using Toolbox.Library.Forms;
|
using Toolbox.Library.Forms;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using OpenTK;
|
using OpenTK;
|
||||||
|
using FirstPlugin;
|
||||||
|
|
||||||
namespace FirstPlugin
|
namespace UKing.Actors
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// A class that holds methods to load actor data for botw.
|
/// A class that holds methods to load actor data for botw.
|
||||||
@ -20,6 +21,34 @@ namespace FirstPlugin
|
|||||||
|
|
||||||
private static string ActorInfoTable = $"/Actor/ActorInfo.product.sbyml";
|
private static string ActorInfoTable = $"/Actor/ActorInfo.product.sbyml";
|
||||||
|
|
||||||
|
//MSBT stores certain properties and helps define our actor names
|
||||||
|
private string ActorMessageData
|
||||||
|
{
|
||||||
|
get { return $"/Pack/Bootup_{MessageRegion}{MessageLanguage}.pack"; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public Language MessageLanguage = Language.en;
|
||||||
|
public Region MessageRegion = Region.US;
|
||||||
|
|
||||||
|
public enum Region
|
||||||
|
{
|
||||||
|
US,
|
||||||
|
EU,
|
||||||
|
JP,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum Language
|
||||||
|
{
|
||||||
|
en, //English
|
||||||
|
de, //German
|
||||||
|
es, //Spanish
|
||||||
|
fr, //Frence
|
||||||
|
it, //Italian
|
||||||
|
nl, //
|
||||||
|
ru, //Russian
|
||||||
|
ja, //Japanese
|
||||||
|
}
|
||||||
|
|
||||||
public enum ActorCategory
|
public enum ActorCategory
|
||||||
{
|
{
|
||||||
Armour,
|
Armour,
|
||||||
@ -47,6 +76,10 @@ namespace FirstPlugin
|
|||||||
private const string N_aabbMin = "aabbMin";
|
private const string N_aabbMin = "aabbMin";
|
||||||
private const string N_aabbMax = "aabbMax";
|
private const string N_aabbMax = "aabbMax";
|
||||||
|
|
||||||
|
public string MessageName = "";
|
||||||
|
public string MessageDescription = "";
|
||||||
|
public string MessageFile = "";
|
||||||
|
|
||||||
public string Name
|
public string Name
|
||||||
{
|
{
|
||||||
get { return this[N_name] != null ? this[N_name] : ""; }
|
get { return this[N_name] != null ? this[N_name] : ""; }
|
||||||
@ -121,32 +154,6 @@ namespace FirstPlugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Dictionary<string, ActorDefineInfo> ArmorActorDefine = new Dictionary<string, ActorDefineInfo>()
|
|
||||||
{
|
|
||||||
{"001", new ActorDefineInfo("Hylian Tunic Set") },
|
|
||||||
{"002",new ActorDefineInfo("Hylian Tunic Set Upgraded") },
|
|
||||||
{"003",new ActorDefineInfo("Hylian Tunic Set Upgraded 2") },
|
|
||||||
{"004",new ActorDefineInfo("Hylian Tunic Set Upgraded 3") },
|
|
||||||
{"005",new ActorDefineInfo("Tunic of the Wild Set") },
|
|
||||||
{"006",new ActorDefineInfo("Zora Set") },
|
|
||||||
{"007",new ActorDefineInfo("Zora Set Upgraded") },
|
|
||||||
{"008",new ActorDefineInfo("Desert Voe Set") },
|
|
||||||
{"009",new ActorDefineInfo("Snowquill Set" )},
|
|
||||||
{"011",new ActorDefineInfo("Flamebreaker Set") },
|
|
||||||
{"012",new ActorDefineInfo("Stealth Set" )},
|
|
||||||
{"014",new ActorDefineInfo("Climbing Gear Set" )},
|
|
||||||
{"017",new ActorDefineInfo("Radiant Set" )},
|
|
||||||
{"020",new ActorDefineInfo("Soldier's Armor Set" )},
|
|
||||||
{"021",new ActorDefineInfo("Ancient Set") },
|
|
||||||
{"022",new ActorDefineInfo("Bokoblin Mask") },
|
|
||||||
{"024",new ActorDefineInfo("Diamond Circlet") },
|
|
||||||
{"025",new ActorDefineInfo("Ruby Circlet") },
|
|
||||||
{"026",new ActorDefineInfo("Sapphire Circlet") },
|
|
||||||
{"027",new ActorDefineInfo("Topaz Circlet") },
|
|
||||||
{"028",new ActorDefineInfo("Opal Circlet") },
|
|
||||||
{"029",new ActorDefineInfo("Amber Circlet") },
|
|
||||||
};
|
|
||||||
|
|
||||||
private ObjectEditor editor;
|
private ObjectEditor editor;
|
||||||
|
|
||||||
public BotwActorLoader()
|
public BotwActorLoader()
|
||||||
@ -154,6 +161,7 @@ namespace FirstPlugin
|
|||||||
editor = new ObjectEditor();
|
editor = new ObjectEditor();
|
||||||
editor.Text = "Actor Editor BOTW";
|
editor.Text = "Actor Editor BOTW";
|
||||||
LibraryGUI.CreateMdiWindow(editor);
|
LibraryGUI.CreateMdiWindow(editor);
|
||||||
|
editor.SortTreeAscending();
|
||||||
|
|
||||||
LoadActors();
|
LoadActors();
|
||||||
}
|
}
|
||||||
@ -194,52 +202,90 @@ namespace FirstPlugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Parse message data for our actor names, and additional info to add to the editor
|
||||||
|
|
||||||
|
Console.WriteLine("msbtEXT " + File.Exists($"{Runtime.BotwGamePath}{ActorMessageData}"));
|
||||||
|
Console.WriteLine($"{Runtime.BotwGamePath}{ActorMessageData}");
|
||||||
|
|
||||||
|
if (File.Exists($"{Runtime.BotwGamePath}{ActorMessageData}"))
|
||||||
|
{
|
||||||
|
var msgPack = SARCExt.SARC.UnpackRamN(File.Open($"{Runtime.BotwGamePath}{ActorMessageData}", FileMode.Open));
|
||||||
|
|
||||||
|
//Get the other sarc inside
|
||||||
|
foreach (var pack in msgPack.Files)
|
||||||
|
{
|
||||||
|
var msgProductPack = SARCExt.SARC.UnpackRamN(EveryFileExplorer.YAZ0.Decompress(pack.Value));
|
||||||
|
|
||||||
|
//Folders are setup with actors
|
||||||
|
foreach (var msbtFile in msgProductPack.Files)
|
||||||
|
{
|
||||||
|
using (var stream = new MemoryStream(msbtFile.Value))
|
||||||
|
{
|
||||||
|
MSBT msbt = new MSBT();
|
||||||
|
if (!msbt.Identify(stream))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
msbt.Load(new MemoryStream(msbtFile.Value));
|
||||||
|
|
||||||
|
|
||||||
|
//Get our labels and match up with our actors
|
||||||
|
if (msbt.header.Label1 != null)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < msbt.header.Label1.Labels.Count; i++)
|
||||||
|
{
|
||||||
|
var lbl = msbt.header.Label1.Labels[i];
|
||||||
|
|
||||||
|
if (lbl.Name.Contains("_Name"))
|
||||||
|
{
|
||||||
|
string actorName = lbl.Name.Replace("_Name", string.Empty);
|
||||||
|
if (Actors.ContainsKey(actorName))
|
||||||
|
{
|
||||||
|
Actors[actorName].MessageFile = Path.GetFileNameWithoutExtension(msbtFile.Key);
|
||||||
|
Actors[actorName].MessageName = lbl.String.GetText(msbt.header.StringEncoding);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (lbl.Name.Contains("_Desc"))
|
||||||
|
{
|
||||||
|
string actorName = lbl.Name.Replace("_Desc", string.Empty);
|
||||||
|
if (Actors.ContainsKey(actorName))
|
||||||
|
{
|
||||||
|
Actors[actorName].MessageFile = Path.GetFileNameWithoutExtension(msbtFile.Key);
|
||||||
|
Actors[actorName].MessageDescription = lbl.String.GetText(msbt.header.StringEncoding);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
msbt.Unload();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Dictionary<string, TreeNode> Categories = new Dictionary<string, TreeNode>();
|
||||||
|
|
||||||
foreach (var info in Actors)
|
foreach (var info in Actors)
|
||||||
{
|
{
|
||||||
|
if (info.Value.MessageName != string.Empty)
|
||||||
|
{
|
||||||
|
//Temp atm. Use message file name for organing
|
||||||
|
string catgeory = info.Value.MessageFile;
|
||||||
|
|
||||||
|
if (!Categories.ContainsKey(catgeory))
|
||||||
|
{
|
||||||
|
TreeNode node = new TreeNode(catgeory);
|
||||||
|
editor.AddNode(node);
|
||||||
|
Categories.Add(catgeory, node);
|
||||||
|
}
|
||||||
|
|
||||||
ActorEntry entry = new ActorEntry();
|
ActorEntry entry = new ActorEntry();
|
||||||
entry.Text = info.Key;
|
entry.Text = info.Value.MessageName;
|
||||||
ArmourFolder.Nodes.Add(entry);
|
Categories[catgeory].Nodes.Add(entry);
|
||||||
}
|
|
||||||
|
|
||||||
/* //Load all our actors into a class
|
|
||||||
foreach (var file in Directory.GetFiles($"{Runtime.BotwGamePath}{ActorPath}"))
|
|
||||||
{
|
|
||||||
string name = Path.GetFileNameWithoutExtension(file);
|
|
||||||
|
|
||||||
var actorType = name.Split('_').First();
|
|
||||||
var actorID = name.Split('_').Skip(1).FirstOrDefault();
|
|
||||||
var actorProperty = name.Split('_').Last();
|
|
||||||
|
|
||||||
if (actorType == "Armor")
|
|
||||||
{
|
|
||||||
if (ArmorActorDefine.ContainsKey(actorID))
|
|
||||||
{
|
|
||||||
ActorDefineInfo info = ArmorActorDefine[actorID];
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (actorType == "Animal")
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
Categories.Clear();
|
||||||
else if (actorType == "Npc")
|
GC.Collect();
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
//The game also caches certain actors to the pack folder at boot
|
|
||||||
|
|
||||||
|
|
||||||
if (ArmourFolder.Nodes.Count != 0)
|
|
||||||
editor.AddNode(ArmourFolder);
|
|
||||||
if (EnemyFolder.Nodes.Count != 0)
|
|
||||||
editor.AddNode(EnemyFolder);
|
|
||||||
if (ItemsFolder.Nodes.Count != 0)
|
|
||||||
editor.AddNode(ItemsFolder);
|
|
||||||
if (WeaponsFolder.Nodes.Count != 0)
|
|
||||||
editor.AddNode(WeaponsFolder);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool NotifySetGamePath()
|
private bool NotifySetGamePath()
|
||||||
@ -254,7 +300,7 @@ namespace FirstPlugin
|
|||||||
{
|
{
|
||||||
dir = folderSelect.SelectedPath;
|
dir = folderSelect.SelectedPath;
|
||||||
Runtime.BotwGamePath = dir;
|
Runtime.BotwGamePath = dir;
|
||||||
Config.Save();
|
Toolbox.Library.Config.Save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -150,6 +150,13 @@ namespace FirstPlugin
|
|||||||
reader.ReadByte();
|
reader.ReadByte();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Setup labels to text properly
|
||||||
|
if (Label1 != null && Text2 != null)
|
||||||
|
{
|
||||||
|
foreach (var label in Label1.Labels)
|
||||||
|
label.String = Text2.TextData[(int)label.Index];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Write(FileWriter writer)
|
public void Write(FileWriter writer)
|
||||||
@ -488,6 +495,8 @@ namespace FirstPlugin
|
|||||||
entry.Index = reader.ReadUInt32();
|
entry.Index = reader.ReadUInt32();
|
||||||
entry.Checksum = (uint)Groups.IndexOf(group);
|
entry.Checksum = (uint)Groups.IndexOf(group);
|
||||||
Labels.Add(entry);
|
Labels.Add(entry);
|
||||||
|
|
||||||
|
Console.WriteLine("label entry " + entry.Name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
185
File_Format_Library/GUI/Message/MSBTEditor.Designer.cs
generated
185
File_Format_Library/GUI/Message/MSBTEditor.Designer.cs
generated
@ -31,14 +31,16 @@
|
|||||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||||
this.listViewCustom1 = new Toolbox.Library.Forms.ListViewCustom();
|
this.listViewCustom1 = new Toolbox.Library.Forms.ListViewCustom();
|
||||||
this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||||
this.editTextTB = new Toolbox.Library.Forms.STTextBox();
|
|
||||||
this.stLabel1 = new Toolbox.Library.Forms.STLabel();
|
|
||||||
this.stLabel2 = new Toolbox.Library.Forms.STLabel();
|
|
||||||
this.originalTextTB = new Toolbox.Library.Forms.STTextBox();
|
|
||||||
this.stLabel3 = new Toolbox.Library.Forms.STLabel();
|
|
||||||
this.hexEditor1 = new Toolbox.Library.Forms.HexEditor();
|
|
||||||
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
|
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
|
||||||
this.splitContainer3 = new System.Windows.Forms.SplitContainer();
|
this.splitContainer3 = new System.Windows.Forms.SplitContainer();
|
||||||
|
this.editTextTB = new Toolbox.Library.Forms.STTextBox();
|
||||||
|
this.stLabel1 = new Toolbox.Library.Forms.STLabel();
|
||||||
|
this.originalTextTB = new Toolbox.Library.Forms.STTextBox();
|
||||||
|
this.stLabel2 = new Toolbox.Library.Forms.STLabel();
|
||||||
|
this.hexEditor1 = new Toolbox.Library.Forms.HexEditor();
|
||||||
|
this.stLabel3 = new Toolbox.Library.Forms.STLabel();
|
||||||
|
this.stMenuStrip1 = new Toolbox.Library.Forms.STMenuStrip();
|
||||||
|
this.viewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||||
this.splitContainer1.Panel1.SuspendLayout();
|
this.splitContainer1.Panel1.SuspendLayout();
|
||||||
this.splitContainer1.Panel2.SuspendLayout();
|
this.splitContainer1.Panel2.SuspendLayout();
|
||||||
@ -51,13 +53,15 @@
|
|||||||
this.splitContainer3.Panel1.SuspendLayout();
|
this.splitContainer3.Panel1.SuspendLayout();
|
||||||
this.splitContainer3.Panel2.SuspendLayout();
|
this.splitContainer3.Panel2.SuspendLayout();
|
||||||
this.splitContainer3.SuspendLayout();
|
this.splitContainer3.SuspendLayout();
|
||||||
|
this.stMenuStrip1.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
this.Controls.Add(this.splitContainer1);
|
|
||||||
//
|
//
|
||||||
// splitContainer1
|
// splitContainer1
|
||||||
//
|
//
|
||||||
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.splitContainer1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||||
this.splitContainer1.Location = new System.Drawing.Point(0, 25);
|
| System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.splitContainer1.Location = new System.Drawing.Point(0, 27);
|
||||||
this.splitContainer1.Name = "splitContainer1";
|
this.splitContainer1.Name = "splitContainer1";
|
||||||
//
|
//
|
||||||
// splitContainer1.Panel1
|
// splitContainer1.Panel1
|
||||||
@ -67,7 +71,7 @@
|
|||||||
// splitContainer1.Panel2
|
// splitContainer1.Panel2
|
||||||
//
|
//
|
||||||
this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
|
this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
|
||||||
this.splitContainer1.Size = new System.Drawing.Size(916, 495);
|
this.splitContainer1.Size = new System.Drawing.Size(916, 493);
|
||||||
this.splitContainer1.SplitterDistance = 305;
|
this.splitContainer1.SplitterDistance = 305;
|
||||||
this.splitContainer1.TabIndex = 11;
|
this.splitContainer1.TabIndex = 11;
|
||||||
//
|
//
|
||||||
@ -80,7 +84,7 @@
|
|||||||
this.listViewCustom1.Location = new System.Drawing.Point(0, 0);
|
this.listViewCustom1.Location = new System.Drawing.Point(0, 0);
|
||||||
this.listViewCustom1.Name = "listViewCustom1";
|
this.listViewCustom1.Name = "listViewCustom1";
|
||||||
this.listViewCustom1.OwnerDraw = true;
|
this.listViewCustom1.OwnerDraw = true;
|
||||||
this.listViewCustom1.Size = new System.Drawing.Size(305, 495);
|
this.listViewCustom1.Size = new System.Drawing.Size(305, 493);
|
||||||
this.listViewCustom1.TabIndex = 0;
|
this.listViewCustom1.TabIndex = 0;
|
||||||
this.listViewCustom1.UseCompatibleStateImageBehavior = false;
|
this.listViewCustom1.UseCompatibleStateImageBehavior = false;
|
||||||
this.listViewCustom1.View = System.Windows.Forms.View.Details;
|
this.listViewCustom1.View = System.Windows.Forms.View.Details;
|
||||||
@ -88,69 +92,7 @@
|
|||||||
//
|
//
|
||||||
// columnHeader1
|
// columnHeader1
|
||||||
//
|
//
|
||||||
this.columnHeader1.Width = 181;
|
this.columnHeader1.Width = 305;
|
||||||
//
|
|
||||||
// editTextTB
|
|
||||||
//
|
|
||||||
this.editTextTB.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Left)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.editTextTB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
|
||||||
this.editTextTB.Location = new System.Drawing.Point(3, 16);
|
|
||||||
this.editTextTB.Multiline = true;
|
|
||||||
this.editTextTB.Name = "editTextTB";
|
|
||||||
this.editTextTB.Size = new System.Drawing.Size(200, 286);
|
|
||||||
this.editTextTB.TabIndex = 0;
|
|
||||||
//
|
|
||||||
// stLabel1
|
|
||||||
//
|
|
||||||
this.stLabel1.AutoSize = true;
|
|
||||||
this.stLabel1.Location = new System.Drawing.Point(0, 0);
|
|
||||||
this.stLabel1.Name = "stLabel1";
|
|
||||||
this.stLabel1.Size = new System.Drawing.Size(28, 13);
|
|
||||||
this.stLabel1.TabIndex = 1;
|
|
||||||
this.stLabel1.Text = "Edit:";
|
|
||||||
//
|
|
||||||
// stLabel2
|
|
||||||
//
|
|
||||||
this.stLabel2.AutoSize = true;
|
|
||||||
this.stLabel2.Location = new System.Drawing.Point(3, 0);
|
|
||||||
this.stLabel2.Name = "stLabel2";
|
|
||||||
this.stLabel2.Size = new System.Drawing.Size(45, 13);
|
|
||||||
this.stLabel2.TabIndex = 2;
|
|
||||||
this.stLabel2.Text = "Original:";
|
|
||||||
//
|
|
||||||
// originalTextTB
|
|
||||||
//
|
|
||||||
this.originalTextTB.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Left)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.originalTextTB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
|
||||||
this.originalTextTB.Location = new System.Drawing.Point(3, 16);
|
|
||||||
this.originalTextTB.Multiline = true;
|
|
||||||
this.originalTextTB.Name = "originalTextTB";
|
|
||||||
this.originalTextTB.ReadOnly = true;
|
|
||||||
this.originalTextTB.Size = new System.Drawing.Size(385, 286);
|
|
||||||
this.originalTextTB.TabIndex = 3;
|
|
||||||
//
|
|
||||||
// stLabel3
|
|
||||||
//
|
|
||||||
this.stLabel3.AutoSize = true;
|
|
||||||
this.stLabel3.Location = new System.Drawing.Point(13, 4);
|
|
||||||
this.stLabel3.Name = "stLabel3";
|
|
||||||
this.stLabel3.Size = new System.Drawing.Size(55, 13);
|
|
||||||
this.stLabel3.TabIndex = 4;
|
|
||||||
this.stLabel3.Text = "Hex View:";
|
|
||||||
//
|
|
||||||
// hexEditor1
|
|
||||||
//
|
|
||||||
this.hexEditor1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Left)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.hexEditor1.Location = new System.Drawing.Point(13, 29);
|
|
||||||
this.hexEditor1.Name = "hexEditor1";
|
|
||||||
this.hexEditor1.Size = new System.Drawing.Size(591, 154);
|
|
||||||
this.hexEditor1.TabIndex = 5;
|
|
||||||
//
|
//
|
||||||
// splitContainer2
|
// splitContainer2
|
||||||
//
|
//
|
||||||
@ -167,8 +109,8 @@
|
|||||||
//
|
//
|
||||||
this.splitContainer2.Panel2.Controls.Add(this.hexEditor1);
|
this.splitContainer2.Panel2.Controls.Add(this.hexEditor1);
|
||||||
this.splitContainer2.Panel2.Controls.Add(this.stLabel3);
|
this.splitContainer2.Panel2.Controls.Add(this.stLabel3);
|
||||||
this.splitContainer2.Size = new System.Drawing.Size(607, 495);
|
this.splitContainer2.Size = new System.Drawing.Size(607, 493);
|
||||||
this.splitContainer2.SplitterDistance = 305;
|
this.splitContainer2.SplitterDistance = 303;
|
||||||
this.splitContainer2.TabIndex = 6;
|
this.splitContainer2.TabIndex = 6;
|
||||||
//
|
//
|
||||||
// splitContainer3
|
// splitContainer3
|
||||||
@ -186,17 +128,97 @@
|
|||||||
//
|
//
|
||||||
this.splitContainer3.Panel2.Controls.Add(this.originalTextTB);
|
this.splitContainer3.Panel2.Controls.Add(this.originalTextTB);
|
||||||
this.splitContainer3.Panel2.Controls.Add(this.stLabel2);
|
this.splitContainer3.Panel2.Controls.Add(this.stLabel2);
|
||||||
this.splitContainer3.Size = new System.Drawing.Size(607, 305);
|
this.splitContainer3.Size = new System.Drawing.Size(607, 303);
|
||||||
this.splitContainer3.SplitterDistance = 202;
|
this.splitContainer3.SplitterDistance = 202;
|
||||||
this.splitContainer3.TabIndex = 0;
|
this.splitContainer3.TabIndex = 0;
|
||||||
//
|
//
|
||||||
|
// editTextTB
|
||||||
|
//
|
||||||
|
this.editTextTB.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.editTextTB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||||
|
this.editTextTB.Location = new System.Drawing.Point(3, 16);
|
||||||
|
this.editTextTB.Multiline = true;
|
||||||
|
this.editTextTB.Name = "editTextTB";
|
||||||
|
this.editTextTB.Size = new System.Drawing.Size(200, 284);
|
||||||
|
this.editTextTB.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// stLabel1
|
||||||
|
//
|
||||||
|
this.stLabel1.AutoSize = true;
|
||||||
|
this.stLabel1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.stLabel1.Name = "stLabel1";
|
||||||
|
this.stLabel1.Size = new System.Drawing.Size(28, 13);
|
||||||
|
this.stLabel1.TabIndex = 1;
|
||||||
|
this.stLabel1.Text = "Edit:";
|
||||||
|
//
|
||||||
|
// originalTextTB
|
||||||
|
//
|
||||||
|
this.originalTextTB.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.originalTextTB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||||
|
this.originalTextTB.Location = new System.Drawing.Point(3, 16);
|
||||||
|
this.originalTextTB.Multiline = true;
|
||||||
|
this.originalTextTB.Name = "originalTextTB";
|
||||||
|
this.originalTextTB.ReadOnly = true;
|
||||||
|
this.originalTextTB.Size = new System.Drawing.Size(385, 284);
|
||||||
|
this.originalTextTB.TabIndex = 3;
|
||||||
|
//
|
||||||
|
// stLabel2
|
||||||
|
//
|
||||||
|
this.stLabel2.AutoSize = true;
|
||||||
|
this.stLabel2.Location = new System.Drawing.Point(3, 0);
|
||||||
|
this.stLabel2.Name = "stLabel2";
|
||||||
|
this.stLabel2.Size = new System.Drawing.Size(45, 13);
|
||||||
|
this.stLabel2.TabIndex = 2;
|
||||||
|
this.stLabel2.Text = "Original:";
|
||||||
|
//
|
||||||
|
// hexEditor1
|
||||||
|
//
|
||||||
|
this.hexEditor1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.hexEditor1.EnableMenuBar = true;
|
||||||
|
this.hexEditor1.Location = new System.Drawing.Point(13, 29);
|
||||||
|
this.hexEditor1.Name = "hexEditor1";
|
||||||
|
this.hexEditor1.Size = new System.Drawing.Size(591, 154);
|
||||||
|
this.hexEditor1.TabIndex = 5;
|
||||||
|
//
|
||||||
|
// stLabel3
|
||||||
|
//
|
||||||
|
this.stLabel3.AutoSize = true;
|
||||||
|
this.stLabel3.Location = new System.Drawing.Point(13, 4);
|
||||||
|
this.stLabel3.Name = "stLabel3";
|
||||||
|
this.stLabel3.Size = new System.Drawing.Size(55, 13);
|
||||||
|
this.stLabel3.TabIndex = 4;
|
||||||
|
this.stLabel3.Text = "Hex View:";
|
||||||
|
//
|
||||||
|
// stMenuStrip1
|
||||||
|
//
|
||||||
|
this.stMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.viewToolStripMenuItem});
|
||||||
|
this.stMenuStrip1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.stMenuStrip1.Name = "stMenuStrip1";
|
||||||
|
this.stMenuStrip1.Size = new System.Drawing.Size(922, 24);
|
||||||
|
this.stMenuStrip1.TabIndex = 12;
|
||||||
|
this.stMenuStrip1.Text = "stMenuStrip1";
|
||||||
|
//
|
||||||
|
// viewToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.viewToolStripMenuItem.Name = "viewToolStripMenuItem";
|
||||||
|
this.viewToolStripMenuItem.Size = new System.Drawing.Size(44, 20);
|
||||||
|
this.viewToolStripMenuItem.Text = "View";
|
||||||
|
//
|
||||||
// MSBTEditor
|
// MSBTEditor
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(922, 525);
|
this.Controls.Add(this.splitContainer1);
|
||||||
|
this.Controls.Add(this.stMenuStrip1);
|
||||||
this.Name = "MSBTEditor";
|
this.Name = "MSBTEditor";
|
||||||
this.Text = "MSBTEditor";
|
this.Size = new System.Drawing.Size(922, 525);
|
||||||
this.splitContainer1.Panel1.ResumeLayout(false);
|
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||||
this.splitContainer1.Panel2.ResumeLayout(false);
|
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
||||||
@ -212,7 +234,10 @@
|
|||||||
this.splitContainer3.Panel2.PerformLayout();
|
this.splitContainer3.Panel2.PerformLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).EndInit();
|
||||||
this.splitContainer3.ResumeLayout(false);
|
this.splitContainer3.ResumeLayout(false);
|
||||||
|
this.stMenuStrip1.ResumeLayout(false);
|
||||||
|
this.stMenuStrip1.PerformLayout();
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -229,5 +254,7 @@
|
|||||||
private Toolbox.Library.Forms.STTextBox editTextTB;
|
private Toolbox.Library.Forms.STTextBox editTextTB;
|
||||||
private System.Windows.Forms.SplitContainer splitContainer2;
|
private System.Windows.Forms.SplitContainer splitContainer2;
|
||||||
private System.Windows.Forms.SplitContainer splitContainer3;
|
private System.Windows.Forms.SplitContainer splitContainer3;
|
||||||
|
private Toolbox.Library.Forms.STMenuStrip stMenuStrip1;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem viewToolStripMenuItem;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -15,6 +15,7 @@ namespace FirstPlugin.Forms
|
|||||||
public partial class MSBTEditor : UserControl, IFIleEditor
|
public partial class MSBTEditor : UserControl, IFIleEditor
|
||||||
{
|
{
|
||||||
public bool ShowPreviewText = true;
|
public bool ShowPreviewText = true;
|
||||||
|
public bool ShowLabels = true;
|
||||||
|
|
||||||
public List<IFileFormat> GetFileFormats()
|
public List<IFileFormat> GetFileFormats()
|
||||||
{
|
{
|
||||||
@ -41,6 +42,18 @@ namespace FirstPlugin.Forms
|
|||||||
activeMessageFile = msbt;
|
activeMessageFile = msbt;
|
||||||
|
|
||||||
if (msbt.header.Text2 != null)
|
if (msbt.header.Text2 != null)
|
||||||
|
{
|
||||||
|
if (ShowLabels)
|
||||||
|
{
|
||||||
|
foreach (var text in msbt.header.Label1.Labels)
|
||||||
|
{
|
||||||
|
string listText = text.Name;
|
||||||
|
listViewCustom1.Items.Add(listText);
|
||||||
|
}
|
||||||
|
listViewCustom1.Sorting = SortOrder.Ascending;
|
||||||
|
listViewCustom1.Sort();
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
foreach (var text in msbt.header.Text2.TextData)
|
foreach (var text in msbt.header.Text2.TextData)
|
||||||
{
|
{
|
||||||
@ -53,6 +66,7 @@ namespace FirstPlugin.Forms
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void listViewCustom1_SelectedIndexChanged(object sender, EventArgs e)
|
private void listViewCustom1_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
@ -62,7 +76,10 @@ namespace FirstPlugin.Forms
|
|||||||
if (listViewCustom1.SelectedItems.Count > 0)
|
if (listViewCustom1.SelectedItems.Count > 0)
|
||||||
{
|
{
|
||||||
int index = listViewCustom1.SelectedIndices[0];
|
int index = listViewCustom1.SelectedIndices[0];
|
||||||
|
if (ShowLabels)
|
||||||
|
{
|
||||||
|
index = (int)activeMessageFile.header.Label1.Labels[index].Index;
|
||||||
|
}
|
||||||
var textSection = activeMessageFile.header.Text2;
|
var textSection = activeMessageFile.header.Text2;
|
||||||
if (textSection != null)
|
if (textSection != null)
|
||||||
{
|
{
|
||||||
|
@ -117,4 +117,7 @@
|
|||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
|
<metadata name="stMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
</root>
|
</root>
|
@ -107,7 +107,7 @@ namespace FirstPlugin
|
|||||||
|
|
||||||
private void ActorEditor(object sender, EventArgs args)
|
private void ActorEditor(object sender, EventArgs args)
|
||||||
{
|
{
|
||||||
BotwActorLoader actorEditor = new BotwActorLoader();
|
UKing.Actors.BotwActorLoader actorEditor = new UKing.Actors.BotwActorLoader();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OpenKingdomSelector(object sender, EventArgs args)
|
private void OpenKingdomSelector(object sender, EventArgs args)
|
||||||
|
@ -107,6 +107,8 @@ namespace Toolbox.Library.Forms
|
|||||||
|
|
||||||
public void SelectFirstNode() { if (ObjectTree != null) ObjectTree.SelectFirstNode(); }
|
public void SelectFirstNode() { if (ObjectTree != null) ObjectTree.SelectFirstNode(); }
|
||||||
|
|
||||||
|
public void SortTreeAscending() { if (ObjectTree != null) ObjectTree.SortTreeAscending(); }
|
||||||
|
|
||||||
public void UpdateTextureIcon(ISingleTextureIconLoader texturIcon) {
|
public void UpdateTextureIcon(ISingleTextureIconLoader texturIcon) {
|
||||||
ObjectTree.LoadGenericTextureIcons(texturIcon);
|
ObjectTree.LoadGenericTextureIcons(texturIcon);
|
||||||
}
|
}
|
||||||
|
@ -558,6 +558,11 @@ namespace Toolbox.Library.Forms
|
|||||||
treeViewCustom1.Sort();
|
treeViewCustom1.Sort();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SortTreeAscending()
|
||||||
|
{
|
||||||
|
treeViewCustom1.Sort();
|
||||||
|
}
|
||||||
|
|
||||||
private void splitter1_Resize(object sender, EventArgs e)
|
private void splitter1_Resize(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user