mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-12 18:27:23 +01:00
Merge remote-tracking branch 'origin/master' into api14-rollup
This commit is contained in:
commit
5ea8ae7941
7 changed files with 70 additions and 8 deletions
|
|
@ -487,6 +487,14 @@ internal sealed class DalamudConfiguration : IInternalDisposableService
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Vector2 NotificationAnchorPosition { get; set; } = new(1f, 1f);
|
public Vector2 NotificationAnchorPosition { get; set; } = new(1f, 1f);
|
||||||
|
|
||||||
|
#pragma warning disable SA1600
|
||||||
|
#pragma warning disable SA1516
|
||||||
|
// XLCore/XoM compatibility until they move it out
|
||||||
|
public string? DalamudBetaKey { get; set; } = null;
|
||||||
|
public string? DalamudBetaKind { get; set; }
|
||||||
|
#pragma warning restore SA1516
|
||||||
|
#pragma warning restore SA1600
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Load a configuration from the provided path.
|
/// Load a configuration from the provided path.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
<PropertyGroup Label="Feature">
|
<PropertyGroup Label="Feature">
|
||||||
<Description>XIV Launcher addon framework</Description>
|
<Description>XIV Launcher addon framework</Description>
|
||||||
<DalamudVersion>13.0.0.11</DalamudVersion>
|
<DalamudVersion>13.0.0.12</DalamudVersion>
|
||||||
<AssemblyVersion>$(DalamudVersion)</AssemblyVersion>
|
<AssemblyVersion>$(DalamudVersion)</AssemblyVersion>
|
||||||
<Version>$(DalamudVersion)</Version>
|
<Version>$(DalamudVersion)</Version>
|
||||||
<FileVersion>$(DalamudVersion)</FileVersion>
|
<FileVersion>$(DalamudVersion)</FileVersion>
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@ internal unsafe class PlayerState : IServiceType, IPlayerState
|
||||||
public RowRef<ClassJob> ClassJob => this.IsLoaded ? LuminaUtils.CreateRef<ClassJob>(CSPlayerState.Instance()->CurrentClassJobId) : default;
|
public RowRef<ClassJob> ClassJob => this.IsLoaded ? LuminaUtils.CreateRef<ClassJob>(CSPlayerState.Instance()->CurrentClassJobId) : default;
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public short Level => this.IsLoaded ? CSPlayerState.Instance()->CurrentLevel : default;
|
public short Level => this.IsLoaded && this.ClassJob.IsValid ? this.GetClassJobLevel(this.ClassJob.Value) : this.EffectiveLevel;
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public bool IsLevelSynced => this.IsLoaded && CSPlayerState.Instance()->IsLevelSynced;
|
public bool IsLevelSynced => this.IsLoaded && CSPlayerState.Instance()->IsLevelSynced;
|
||||||
|
|
|
||||||
|
|
@ -60,8 +60,8 @@ internal record struct NounParams()
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public readonly int ColumnOffset => this.SheetName switch
|
public readonly int ColumnOffset => this.SheetName switch
|
||||||
{
|
{
|
||||||
// See "E8 ?? ?? ?? ?? 44 8B 6B 08"
|
// See "E8 ?? ?? ?? ?? 44 8B 66 ?? 8B E8"
|
||||||
nameof(LSheets.BeastTribe) => 10,
|
nameof(LSheets.BeastTribe) => 11,
|
||||||
nameof(LSheets.DeepDungeonItem) => 1,
|
nameof(LSheets.DeepDungeonItem) => 1,
|
||||||
nameof(LSheets.DeepDungeonEquipment) => 1,
|
nameof(LSheets.DeepDungeonEquipment) => 1,
|
||||||
nameof(LSheets.DeepDungeonMagicStone) => 1,
|
nameof(LSheets.DeepDungeonMagicStone) => 1,
|
||||||
|
|
|
||||||
|
|
@ -191,6 +191,29 @@ internal class NounProcessorSelfTestStep : ISelfTestStep
|
||||||
new(nameof(LSheets.Item), 44348, ClientLanguage.French, 2, (int)FrenchArticleType.PossessiveFirstPerson, 1, "mes mémoquartz inhabituels fantasmagoriques"),
|
new(nameof(LSheets.Item), 44348, ClientLanguage.French, 2, (int)FrenchArticleType.PossessiveFirstPerson, 1, "mes mémoquartz inhabituels fantasmagoriques"),
|
||||||
new(nameof(LSheets.Item), 44348, ClientLanguage.French, 2, (int)FrenchArticleType.PossessiveSecondPerson, 1, "tes mémoquartz inhabituels fantasmagoriques"),
|
new(nameof(LSheets.Item), 44348, ClientLanguage.French, 2, (int)FrenchArticleType.PossessiveSecondPerson, 1, "tes mémoquartz inhabituels fantasmagoriques"),
|
||||||
new(nameof(LSheets.Item), 44348, ClientLanguage.French, 2, (int)FrenchArticleType.PossessiveThirdPerson, 1, "ses mémoquartz inhabituels fantasmagoriques"),
|
new(nameof(LSheets.Item), 44348, ClientLanguage.French, 2, (int)FrenchArticleType.PossessiveThirdPerson, 1, "ses mémoquartz inhabituels fantasmagoriques"),
|
||||||
|
|
||||||
|
// ColumnOffset tests
|
||||||
|
|
||||||
|
new(nameof(LSheets.BeastTribe), 1, ClientLanguage.English, 1, (int)EnglishArticleType.Indefinite, 1, "a Amalj'aa"),
|
||||||
|
new(nameof(LSheets.BeastTribe), 1, ClientLanguage.English, 1, (int)EnglishArticleType.Definite, 1, "the Amalj'aa"),
|
||||||
|
|
||||||
|
new(nameof(LSheets.DeepDungeonEquipment), 1, ClientLanguage.English, 1, (int)EnglishArticleType.Indefinite, 1, "an aetherpool arm"),
|
||||||
|
new(nameof(LSheets.DeepDungeonEquipment), 1, ClientLanguage.English, 1, (int)EnglishArticleType.Definite, 1, "the aetherpool arm"),
|
||||||
|
|
||||||
|
new(nameof(LSheets.DeepDungeonItem), 1, ClientLanguage.English, 1, (int)EnglishArticleType.Indefinite, 1, "a pomander of safety"),
|
||||||
|
new(nameof(LSheets.DeepDungeonItem), 1, ClientLanguage.English, 1, (int)EnglishArticleType.Definite, 1, "the pomander of safety"),
|
||||||
|
|
||||||
|
new(nameof(LSheets.DeepDungeonMagicStone), 1, ClientLanguage.English, 1, (int)EnglishArticleType.Indefinite, 1, "a splinter of Inferno magicite"),
|
||||||
|
new(nameof(LSheets.DeepDungeonMagicStone), 1, ClientLanguage.English, 1, (int)EnglishArticleType.Definite, 1, "the splinter of Inferno magicite"),
|
||||||
|
|
||||||
|
new(nameof(LSheets.DeepDungeonDemiclone), 1, ClientLanguage.English, 1, (int)EnglishArticleType.Indefinite, 1, "an Unei demiclone"),
|
||||||
|
new(nameof(LSheets.DeepDungeonDemiclone), 1, ClientLanguage.English, 1, (int)EnglishArticleType.Definite, 1, "the Unei demiclone"),
|
||||||
|
|
||||||
|
new(nameof(LSheets.Glasses), 1, ClientLanguage.English, 1, (int)EnglishArticleType.Indefinite, 1, "a pair of oval spectacles"),
|
||||||
|
new(nameof(LSheets.Glasses), 1, ClientLanguage.English, 1, (int)EnglishArticleType.Definite, 1, "the pair of oval spectacles"),
|
||||||
|
|
||||||
|
new(nameof(LSheets.GlassesStyle), 1, ClientLanguage.English, 1, (int)EnglishArticleType.Indefinite, 1, "a shaded spectacles"),
|
||||||
|
new(nameof(LSheets.GlassesStyle), 1, ClientLanguage.English, 1, (int)EnglishArticleType.Definite, 1, "the shaded spectacles"),
|
||||||
];
|
];
|
||||||
|
|
||||||
private enum GermanCases
|
private enum GermanCases
|
||||||
|
|
|
||||||
|
|
@ -425,8 +425,17 @@ public abstract class Window
|
||||||
UIGlobals.PlaySoundEffect(this.OnOpenSfxId);
|
UIGlobals.PlaySoundEffect(this.OnOpenSfxId);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.PreDraw();
|
var isErrorStylePushed = false;
|
||||||
this.ApplyConditionals();
|
if (!this.hasError)
|
||||||
|
{
|
||||||
|
this.PreDraw();
|
||||||
|
this.ApplyConditionals();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Style.StyleModelV1.DalamudStandard.Push();
|
||||||
|
isErrorStylePushed = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (this.ForceMainWindow)
|
if (this.ForceMainWindow)
|
||||||
ImGuiHelpers.ForceNextWindowMainViewport();
|
ImGuiHelpers.ForceNextWindowMainViewport();
|
||||||
|
|
@ -448,10 +457,22 @@ public abstract class Window
|
||||||
var flags = this.Flags;
|
var flags = this.Flags;
|
||||||
|
|
||||||
if (this.internalIsPinned || this.internalIsClickthrough)
|
if (this.internalIsPinned || this.internalIsClickthrough)
|
||||||
|
{
|
||||||
flags |= ImGuiWindowFlags.NoMove | ImGuiWindowFlags.NoResize;
|
flags |= ImGuiWindowFlags.NoMove | ImGuiWindowFlags.NoResize;
|
||||||
|
}
|
||||||
|
|
||||||
if (this.internalIsClickthrough)
|
if (this.internalIsClickthrough)
|
||||||
|
{
|
||||||
flags |= ImGuiWindowFlags.NoInputs | ImGuiWindowFlags.NoNav | ImGuiWindowFlags.NoCollapse | ImGuiWindowFlags.NoScrollWithMouse | ImGuiWindowFlags.NoMouseInputs;
|
flags |= ImGuiWindowFlags.NoInputs | ImGuiWindowFlags.NoNav | ImGuiWindowFlags.NoCollapse | ImGuiWindowFlags.NoScrollWithMouse | ImGuiWindowFlags.NoMouseInputs;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we have an error, reset all flags to default, and unlock window size.
|
||||||
|
if (this.hasError)
|
||||||
|
{
|
||||||
|
flags = ImGuiWindowFlags.None;
|
||||||
|
ImGui.SetNextWindowCollapsed(false, ImGuiCond.Once);
|
||||||
|
ImGui.SetNextWindowSizeConstraints(Vector2.Zero, Vector2.PositiveInfinity);
|
||||||
|
}
|
||||||
|
|
||||||
if (this.CanShowCloseButton ? ImGui.Begin(this.WindowName, ref this.internalIsOpen, flags) : ImGui.Begin(this.WindowName, flags))
|
if (this.CanShowCloseButton ? ImGui.Begin(this.WindowName, ref this.internalIsOpen, flags) : ImGui.Begin(this.WindowName, flags))
|
||||||
{
|
{
|
||||||
|
|
@ -670,7 +691,17 @@ public abstract class Window
|
||||||
Task.FromResult<IDalamudTextureWrap>(tex));
|
Task.FromResult<IDalamudTextureWrap>(tex));
|
||||||
}
|
}
|
||||||
|
|
||||||
this.PostDraw();
|
if (!this.hasError)
|
||||||
|
{
|
||||||
|
this.PostDraw();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (isErrorStylePushed)
|
||||||
|
{
|
||||||
|
Style.StyleModelV1.DalamudStandard.Pop();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.PostHandlePreset(persistence);
|
this.PostHandlePreset(persistence);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@ public interface IPlayerState : IDalamudService
|
||||||
bool IsLevelSynced { get; }
|
bool IsLevelSynced { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the effective level of the local character.
|
/// Gets the effective level of the local character, taking level sync into account.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
short EffectiveLevel { get; }
|
short EffectiveLevel { get; }
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue