mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-12 10:17:22 +01:00
fix: internal TSM entries must always come first
This commit is contained in:
parent
d2e463247c
commit
3c8e474fe5
2 changed files with 22 additions and 10 deletions
|
|
@ -97,16 +97,17 @@ internal class TitleScreenMenuWindow : Window, IDisposable
|
|||
public override void Draw()
|
||||
{
|
||||
var scale = ImGui.GetIO().FontGlobalScale;
|
||||
|
||||
var tsm = Service<TitleScreenMenu>.Get();
|
||||
var entries = Service<TitleScreenMenu>.Get().Entries
|
||||
.OrderByDescending(x => x.IsInternal)
|
||||
.ToList();
|
||||
|
||||
switch (this.state)
|
||||
{
|
||||
case State.Show:
|
||||
{
|
||||
for (var i = 0; i < tsm.Entries.Count; i++)
|
||||
for (var i = 0; i < entries.Count; i++)
|
||||
{
|
||||
var entry = tsm.Entries[i];
|
||||
var entry = entries[i];
|
||||
|
||||
if (!this.moveEasings.TryGetValue(entry.Id, out var moveEasing))
|
||||
{
|
||||
|
|
@ -172,9 +173,9 @@ internal class TitleScreenMenuWindow : Window, IDisposable
|
|||
|
||||
using (ImRaii.PushStyle(ImGuiStyleVar.Alpha, (float)this.fadeOutEasing.Value))
|
||||
{
|
||||
for (var i = 0; i < tsm.Entries.Count; i++)
|
||||
for (var i = 0; i < entries.Count; i++)
|
||||
{
|
||||
var entry = tsm.Entries[i];
|
||||
var entry = entries[i];
|
||||
|
||||
var finalPos = (i + 1) * this.shadeTexture.Height * scale;
|
||||
|
||||
|
|
@ -205,7 +206,7 @@ internal class TitleScreenMenuWindow : Window, IDisposable
|
|||
|
||||
case State.Hide:
|
||||
{
|
||||
if (this.DrawEntry(tsm.Entries[0], true, false, true, true, false))
|
||||
if (this.DrawEntry(entries[0], true, false, true, true, false))
|
||||
{
|
||||
this.state = State.Show;
|
||||
}
|
||||
|
|
@ -217,7 +218,7 @@ internal class TitleScreenMenuWindow : Window, IDisposable
|
|||
}
|
||||
}
|
||||
|
||||
var srcText = tsm.Entries.Select(e => e.Name).ToHashSet();
|
||||
var srcText = entries.Select(e => e.Name).ToHashSet();
|
||||
var keys = this.specialGlyphRequests.Keys.ToHashSet();
|
||||
keys.RemoveWhere(x => srcText.Contains(x));
|
||||
foreach (var key in keys)
|
||||
|
|
|
|||
|
|
@ -121,7 +121,10 @@ public class TitleScreenMenu : IServiceType
|
|||
|
||||
lock (this.entries)
|
||||
{
|
||||
var entry = new TitleScreenMenuEntry(null, priority, text, texture, onTriggered);
|
||||
var entry = new TitleScreenMenuEntry(null, priority, text, texture, onTriggered)
|
||||
{
|
||||
IsInternal = true,
|
||||
};
|
||||
this.entries.Add(entry);
|
||||
return entry;
|
||||
}
|
||||
|
|
@ -148,7 +151,10 @@ public class TitleScreenMenu : IServiceType
|
|||
var priority = entriesOfAssembly.Any()
|
||||
? unchecked(entriesOfAssembly.Select(x => x.Priority).Max() + 1)
|
||||
: 0;
|
||||
var entry = new TitleScreenMenuEntry(null, priority, text, texture, onTriggered);
|
||||
var entry = new TitleScreenMenuEntry(null, priority, text, texture, onTriggered)
|
||||
{
|
||||
IsInternal = true,
|
||||
};
|
||||
this.entries.Add(entry);
|
||||
return entry;
|
||||
}
|
||||
|
|
@ -192,6 +198,11 @@ public class TitleScreenMenu : IServiceType
|
|||
/// Gets or sets the texture of this entry.
|
||||
/// </summary>
|
||||
public TextureWrap Texture { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether or not this entry is internal.
|
||||
/// </summary>
|
||||
internal bool IsInternal { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the calling assembly of this entry.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue