diff --git a/Dalamud/DalamudCommands.cs b/Dalamud/DalamudCommands.cs
index 33749df7e..5b59f4a70 100644
--- a/Dalamud/DalamudCommands.cs
+++ b/Dalamud/DalamudCommands.cs
@@ -78,6 +78,12 @@ namespace Dalamud
ShowInHelp = false,
});
+ this.dalamud.CommandManager.AddHandler("/xldata", new CommandInfo(this.OnDebugDrawDataMenu)
+ {
+ HelpMessage = Loc.Localize("DalamudDevDataMenuHelp", "Draw dev data menu DEBUG. Usage: /xldata [Data Dropdown Type]"),
+ ShowInHelp = false,
+ });
+
this.dalamud.CommandManager.AddHandler("/xllog", new CommandInfo(this.OnOpenLog)
{
HelpMessage = Loc.Localize("DalamudDevLogHelp", "Open dev log DEBUG"),
@@ -223,6 +229,14 @@ namespace Dalamud
this.dalamud.DalamudUi.IsDevMenu = !this.dalamud.DalamudUi.IsDevMenu;
}
+ private void OnDebugDrawDataMenu(string command, string arguments)
+ {
+ if (string.IsNullOrEmpty(arguments))
+ this.dalamud.DalamudUi.ToggleData();
+ else
+ this.dalamud.DalamudUi.ToggleData(arguments);
+ }
+
private void OnOpenLog(string command, string arguments)
{
this.dalamud.DalamudUi.ToggleLog();
diff --git a/Dalamud/Interface/DalamudDataWindow.cs b/Dalamud/Interface/DalamudDataWindow.cs
index f028f417e..8fe7abebc 100644
--- a/Dalamud/Interface/DalamudDataWindow.cs
+++ b/Dalamud/Interface/DalamudDataWindow.cs
@@ -31,6 +31,11 @@ namespace Dalamud.Interface
private string serverOpString;
private int currentKind;
+ private string[] dataKinds = new[]
+ {
+ "ServerOpCode", "Address", "Actor Table", "Font Test", "Party List", "Plugin IPC", "Condition",
+ "Gauge", "Command", "Addon", "Addon Inspector", "StartInfo", "Target", "Toast",
+ };
private bool drawActors = false;
private float maxActorDrawDistance = 20;
@@ -73,6 +78,31 @@ namespace Dalamud.Interface
this.Load();
}
+ ///
+ /// Set the DataKind dropdown menu.
+ ///
+ /// Data kind name, can be lower and/or without spaces.
+ public void SetDataKind(string dataKind)
+ {
+ if (string.IsNullOrEmpty(dataKind))
+ return;
+
+ if (dataKind == "ai")
+ dataKind = "Addon Inspector";
+
+ int index;
+ dataKind = dataKind.Replace(" ", string.Empty).ToLower();
+ var dataKinds = this.dataKinds.Select(k => k.Replace(" ", string.Empty).ToLower()).ToList();
+ if ((index = dataKinds.IndexOf(dataKind)) != -1)
+ {
+ this.currentKind = index;
+ }
+ else
+ {
+ this.dalamud.Framework.Gui.Chat.PrintError("/xldata: Invalid Data Type");
+ }
+ }
+
///
/// Draw the window via ImGui.
///
@@ -87,15 +117,7 @@ namespace Dalamud.Interface
var copy = ImGui.Button("Copy all");
ImGui.SameLine();
- ImGui.Combo(
- "Data kind",
- ref this.currentKind,
- new[]
- {
- "ServerOpCode", "Address", "Actor Table", "Font Test", "Party List", "Plugin IPC", "Condition",
- "Gauge", "Command", "Addon", "Addon Inspector", "StartInfo", "Target", "Toast",
- },
- 14);
+ ImGui.Combo("Data kind", ref this.currentKind, dataKinds, dataKinds.Length);
ImGui.Checkbox("Resolve GameData", ref this.resolveGameData);
diff --git a/Dalamud/Interface/DalamudInterface.cs b/Dalamud/Interface/DalamudInterface.cs
index ae3587678..f9870e8ff 100644
--- a/Dalamud/Interface/DalamudInterface.cs
+++ b/Dalamud/Interface/DalamudInterface.cs
@@ -460,6 +460,16 @@ namespace Dalamud.Interface
this.dataWindow.IsOpen ^= true;
}
+ ///
+ /// Toggle the data window and preset the dropdown.
+ ///
+ internal void ToggleData(string dataKind)
+ {
+ this.dataWindow.IsOpen ^= true;
+ if (this.dataWindow.IsOpen)
+ this.dataWindow.SetDataKind(dataKind);
+ }
+
///
/// Toggle the credits window.
///