Revert "refactor(Dalamud): switch to file-scoped namespaces"

This reverts commit b5f34c3199.
This commit is contained in:
goat 2021-11-18 15:23:40 +01:00
parent d473826247
commit 1561fbac00
No known key found for this signature in database
GPG key ID: 7773BB5B43BA52E5
325 changed files with 45549 additions and 45209 deletions

View file

@ -1,10 +1,10 @@
namespace Dalamud;
/// <summary>
/// Enum describing the language the game loads in.
/// </summary>
public enum ClientLanguage
namespace Dalamud
{
/// <summary>
/// Enum describing the language the game loads in.
/// </summary>
public enum ClientLanguage
{
/// <summary>
/// Indicating a Japanese game client.
/// </summary>
@ -24,4 +24,5 @@ public enum ClientLanguage
/// Indicating a French game client.
/// </summary>
French,
}
}

View file

@ -1,12 +1,12 @@
using System;
namespace Dalamud;
/// <summary>
/// Extension methods for the <see cref="ClientLanguage"/> class.
/// </summary>
public static class ClientLanguageExtensions
namespace Dalamud
{
/// <summary>
/// Extension methods for the <see cref="ClientLanguage"/> class.
/// </summary>
public static class ClientLanguageExtensions
{
/// <summary>
/// Converts a Dalamud ClientLanguage to the corresponding Lumina variant.
/// </summary>
@ -23,4 +23,5 @@ public static class ClientLanguageExtensions
_ => throw new ArgumentOutOfRangeException(nameof(language)),
};
}
}
}

View file

@ -1,12 +1,13 @@
namespace Dalamud.Configuration;
/// <summary>
/// Configuration to store settings for a dalamud plugin.
/// </summary>
public interface IPluginConfiguration
namespace Dalamud.Configuration
{
/// <summary>
/// Configuration to store settings for a dalamud plugin.
/// </summary>
public interface IPluginConfiguration
{
/// <summary>
/// Gets or sets configuration version.
/// </summary>
int Version { get; set; }
}
}

View file

@ -8,14 +8,14 @@ using Newtonsoft.Json;
using Serilog;
using Serilog.Events;
namespace Dalamud.Configuration.Internal;
/// <summary>
/// Class containing Dalamud settings.
/// </summary>
[Serializable]
internal sealed class DalamudConfiguration
namespace Dalamud.Configuration.Internal
{
/// <summary>
/// Class containing Dalamud settings.
/// </summary>
[Serializable]
internal sealed class DalamudConfiguration
{
private static readonly JsonSerializerSettings SerializerSettings = new()
{
TypeNameHandling = TypeNameHandling.All,
@ -271,4 +271,5 @@ internal sealed class DalamudConfiguration
File.WriteAllText(this.configPath, JsonConvert.SerializeObject(this, SerializerSettings));
this.DalamudConfigurationSaved?.Invoke(this);
}
}
}

View file

@ -1,10 +1,10 @@
namespace Dalamud.Configuration.Internal;
/// <summary>
/// Additional locations to load dev plugins from.
/// </summary>
internal sealed class DevPluginLocationSettings
namespace Dalamud.Configuration
{
/// <summary>
/// Additional locations to load dev plugins from.
/// </summary>
internal sealed class DevPluginLocationSettings
{
/// <summary>
/// Gets or sets the dev pluign path.
/// </summary>
@ -20,4 +20,5 @@ internal sealed class DevPluginLocationSettings
/// </summary>
/// <returns>A shallow copy of this object.</returns>
public DevPluginLocationSettings Clone() => this.MemberwiseClone() as DevPluginLocationSettings;
}
}

View file

@ -1,10 +1,10 @@
namespace Dalamud.Configuration.Internal;
/// <summary>
/// Settings for DevPlugins.
/// </summary>
internal sealed class DevPluginSettings
namespace Dalamud.Configuration.Internal
{
/// <summary>
/// Settings for DevPlugins.
/// </summary>
internal sealed class DevPluginSettings
{
/// <summary>
/// Gets or sets a value indicating whether this plugin should automatically start when Dalamud boots up.
/// </summary>
@ -14,4 +14,5 @@ internal sealed class DevPluginSettings
/// Gets or sets a value indicating whether this plugin should automatically reload on file change.
/// </summary>
public bool AutomaticReloading { get; set; } = false;
}
}

View file

@ -1,12 +1,12 @@
using System;
namespace Dalamud.Configuration.Internal;
/// <summary>
/// Environmental configuration settings.
/// </summary>
internal class EnvironmentConfiguration
namespace Dalamud.Configuration.Internal
{
/// <summary>
/// Environmental configuration settings.
/// </summary>
internal class EnvironmentConfiguration
{
/// <summary>
/// Gets a value indicating whether the XL_WINEONLINUX setting has been enabled.
/// </summary>
@ -34,4 +34,5 @@ internal class EnvironmentConfiguration
private static bool GetEnvironmentVariable(string name)
=> bool.Parse(Environment.GetEnvironmentVariable(name) ?? "false");
}
}

View file

@ -1,10 +1,10 @@
namespace Dalamud.Configuration.Internal;
/// <summary>
/// Third party repository for dalamud plugins.
/// </summary>
internal sealed class ThirdPartyRepoSettings
namespace Dalamud.Configuration
{
/// <summary>
/// Third party repository for dalamud plugins.
/// </summary>
internal sealed class ThirdPartyRepoSettings
{
/// <summary>
/// Gets or sets the third party repo url.
/// </summary>
@ -25,4 +25,5 @@ internal sealed class ThirdPartyRepoSettings
/// </summary>
/// <returns>A shallow copy of this object.</returns>
public ThirdPartyRepoSettings Clone() => this.MemberwiseClone() as ThirdPartyRepoSettings;
}
}

View file

@ -2,13 +2,13 @@ using System.IO;
using Newtonsoft.Json;
namespace Dalamud.Configuration;
/// <summary>
/// Configuration to store settings for a dalamud plugin.
/// </summary>
public sealed class PluginConfigurations
namespace Dalamud.Configuration
{
/// <summary>
/// Configuration to store settings for a dalamud plugin.
/// </summary>
public sealed class PluginConfigurations
{
private readonly DirectoryInfo configDirectory;
/// <summary>
@ -126,4 +126,5 @@ public sealed class PluginConfigurations
public FileInfo GetConfigFile(string pluginName) => new(Path.Combine(this.configDirectory.FullName, $"{pluginName}.json"));
private DirectoryInfo GetDirectoryPath(string pluginName) => new(Path.Combine(this.configDirectory.FullName, pluginName));
}
}

View file

@ -33,13 +33,13 @@ using Serilog.Events;
[assembly: InternalsVisibleTo("Dalamud.Test")]
namespace Dalamud;
/// <summary>
/// The main Dalamud class containing all subsystems.
/// </summary>
internal sealed class Dalamud : IDisposable
namespace Dalamud
{
/// <summary>
/// The main Dalamud class containing all subsystems.
/// </summary>
internal sealed class Dalamud : IDisposable
{
#region Internals
private readonly ManualResetEvent unloadSignal;
@ -407,4 +407,5 @@ internal sealed class Dalamud : IDisposable
var handlePatch = typeof(Dalamud).GetMethod(nameof(Dalamud.ProcessHandlePatch), BindingFlags.NonPublic | BindingFlags.Static);
this.processMonoHook = new MonoMod.RuntimeDetour.Hook(handleTarget, handlePatch);
}
}
}

View file

@ -3,14 +3,14 @@ using System;
using Dalamud.Game;
using Newtonsoft.Json;
namespace Dalamud;
/// <summary>
/// Struct containing information needed to initialize Dalamud.
/// </summary>
[Serializable]
public record DalamudStartInfo
namespace Dalamud
{
/// <summary>
/// Struct containing information needed to initialize Dalamud.
/// </summary>
[Serializable]
public record DalamudStartInfo
{
/// <summary>
/// Gets or sets the working directory of the XIVLauncher installations.
/// </summary>
@ -56,4 +56,5 @@ public record DalamudStartInfo
/// Gets a value that specifies how much to wait before a new Dalamud session.
/// </summary>
public int DelayInitializeMs { get; init; } = 0;
}
}

View file

@ -18,15 +18,15 @@ using Lumina.Excel;
using Newtonsoft.Json;
using Serilog;
namespace Dalamud.Data;
/// <summary>
/// This class provides data for Dalamud-internal features, but can also be used by plugins if needed.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed class DataManager : IDisposable
namespace Dalamud.Data
{
/// <summary>
/// This class provides data for Dalamud-internal features, but can also be used by plugins if needed.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed class DataManager : IDisposable
{
private const string IconFileFormat = "ui/icon/{0:D3}000/{1}{2:D6}.tex";
private Thread luminaResourceThread;
@ -343,4 +343,5 @@ public sealed class DataManager : IDisposable
Log.Error(ex, "Could not download data.");
}
}
}
}

View file

@ -21,13 +21,13 @@ using Serilog.Events;
using static Dalamud.NativeFunctions;
namespace Dalamud;
/// <summary>
/// The main entrypoint for the Dalamud system.
/// </summary>
public sealed class EntryPoint
namespace Dalamud
{
/// <summary>
/// The main entrypoint for the Dalamud system.
/// </summary>
public sealed class EntryPoint
{
/// <summary>
/// A delegate used during initialization of the CLR from Dalamud.Boot.
/// </summary>
@ -278,4 +278,5 @@ public sealed class EntryPoint
if (!args.Observed)
Log.Error(args.Exception, "Unobserved exception in Task.");
}
}
}

View file

@ -3,13 +3,13 @@ using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
namespace Dalamud.Game;
/// <summary>
/// Base memory address resolver.
/// </summary>
public abstract class BaseAddressResolver
namespace Dalamud.Game
{
/// <summary>
/// Base memory address resolver.
/// </summary>
public abstract class BaseAddressResolver
{
/// <summary>
/// Gets a list of memory addresses that were found, to list in /xldata.
/// </summary>
@ -110,4 +110,5 @@ public abstract class BaseAddressResolver
{
// Do nothing
}
}
}

View file

@ -21,15 +21,15 @@ using Dalamud.Plugin.Internal;
using Dalamud.Utility;
using Serilog;
namespace Dalamud.Game;
/// <summary>
/// Chat events and public helper functions.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public class ChatHandlers
namespace Dalamud.Game
{
/// <summary>
/// Chat events and public helper functions.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public class ChatHandlers
{
// private static readonly Dictionary<string, string> UnicodeToDiscordEmojiDict = new()
// {
// { "", "<:ffxive071:585847382210642069>" },
@ -328,4 +328,5 @@ public class ChatHandlers
}
});
}
}
}

View file

@ -7,16 +7,16 @@ using Dalamud.IoC;
using Dalamud.IoC.Internal;
using Serilog;
namespace Dalamud.Game.ClientState.Buddy;
/// <summary>
/// This collection represents the buddies present in your squadron or trust party.
/// It does not include the local player.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed partial class BuddyList
namespace Dalamud.Game.ClientState.Buddy
{
/// <summary>
/// This collection represents the buddies present in your squadron or trust party.
/// It does not include the local player.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed partial class BuddyList
{
private const uint InvalidObjectID = 0xE0000000;
private readonly ClientStateAddressResolver address;
@ -161,13 +161,13 @@ public sealed partial class BuddyList
return buddy;
}
}
}
/// <summary>
/// This collection represents the buddies present in your squadron or trust party.
/// </summary>
public sealed partial class BuddyList : IReadOnlyCollection<BuddyMember>
{
/// <summary>
/// This collection represents the buddies present in your squadron or trust party.
/// </summary>
public sealed partial class BuddyList : IReadOnlyCollection<BuddyMember>
{
/// <inheritdoc/>
int IReadOnlyCollection<BuddyMember>.Count => this.Length;
@ -182,4 +182,5 @@ public sealed partial class BuddyList : IReadOnlyCollection<BuddyMember>
/// <inheritdoc/>
IEnumerator IEnumerable.GetEnumerator() => this.GetEnumerator();
}
}

View file

@ -4,13 +4,13 @@ using Dalamud.Game.ClientState.Objects;
using Dalamud.Game.ClientState.Objects.Types;
using Dalamud.Game.ClientState.Resolvers;
namespace Dalamud.Game.ClientState.Buddy;
/// <summary>
/// This class represents a buddy such as the chocobo companion, summoned pets, squadron groups and trust parties.
/// </summary>
public unsafe class BuddyMember
namespace Dalamud.Game.ClientState.Buddy
{
/// <summary>
/// This class represents a buddy such as the chocobo companion, summoned pets, squadron groups and trust parties.
/// </summary>
public unsafe class BuddyMember
{
/// <summary>
/// Initializes a new instance of the <see cref="BuddyMember"/> class.
/// </summary>
@ -69,4 +69,5 @@ public unsafe class BuddyMember
public ExcelResolver<Lumina.Excel.GeneratedSheets.DawnGrowMember> TrustData => new(this.DataID);
private FFXIVClientStructs.FFXIV.Client.Game.UI.Buddy.BuddyMember* Struct => (FFXIVClientStructs.FFXIV.Client.Game.UI.Buddy.BuddyMember*)this.Address;
}
}

View file

@ -16,15 +16,15 @@ using Dalamud.IoC;
using Dalamud.IoC.Internal;
using Serilog;
namespace Dalamud.Game.ClientState;
/// <summary>
/// This class represents the state of the game client at the time of access.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed class ClientState : IDisposable
namespace Dalamud.Game.ClientState
{
/// <summary>
/// This class represents the state of the game client at the time of access.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed class ClientState : IDisposable
{
private readonly ClientStateAddressResolver address;
private readonly Hook<SetupTerritoryTypeDelegate> setupTerritoryTypeHook;
@ -176,4 +176,5 @@ public sealed class ClientState : IDisposable
this.Logout?.Invoke(this, null);
}
}
}
}

View file

@ -1,12 +1,12 @@
using System;
namespace Dalamud.Game.ClientState;
/// <summary>
/// Client state memory address resolver.
/// </summary>
public sealed class ClientStateAddressResolver : BaseAddressResolver
namespace Dalamud.Game.ClientState
{
/// <summary>
/// Client state memory address resolver.
/// </summary>
public sealed class ClientStateAddressResolver : BaseAddressResolver
{
// Static offsets
/// <summary>
@ -110,4 +110,5 @@ public sealed class ClientStateAddressResolver : BaseAddressResolver
this.GamepadPoll = sig.ScanText("40 ?? 57 41 ?? 48 81 EC ?? ?? ?? ?? 44 0F ?? ?? ?? ?? ?? ?? ?? 48 8B");
}
}
}

View file

@ -4,15 +4,15 @@ using Dalamud.IoC;
using Dalamud.IoC.Internal;
using Serilog;
namespace Dalamud.Game.ClientState.Conditions;
/// <summary>
/// Provides access to conditions (generally player state). You can check whether a player is in combat, mounted, etc.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed partial class Condition
namespace Dalamud.Game.ClientState.Conditions
{
/// <summary>
/// Provides access to conditions (generally player state). You can check whether a player is in combat, mounted, etc.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed partial class Condition
{
/// <summary>
/// The current max number of conditions. You can get this just by looking at the condition sheet and how many rows it has.
/// </summary>
@ -116,13 +116,13 @@ public sealed partial class Condition
}
}
}
}
}
/// <summary>
/// Provides access to conditions (generally player state). You can check whether a player is in combat, mounted, etc.
/// </summary>
public sealed partial class Condition : IDisposable
{
/// <summary>
/// Provides access to conditions (generally player state). You can check whether a player is in combat, mounted, etc.
/// </summary>
public sealed partial class Condition : IDisposable
{
private bool isDisposed;
/// <summary>
@ -154,4 +154,5 @@ public sealed partial class Condition : IDisposable
this.isDisposed = true;
}
}
}

View file

@ -1,13 +1,13 @@
namespace Dalamud.Game.ClientState.Conditions;
/// <summary>
/// Possible state flags (or conditions as they're called internally) that can be set on the local client.
///
/// These come from LogMessage (somewhere) and directly map to each state field managed by the client. As of 5.25, it maps to
/// LogMessage row 7700 and onwards, which can be checked by looking at the Condition sheet and looking at what column 2 maps to.
/// </summary>
public enum ConditionFlag
namespace Dalamud.Game.ClientState.Conditions
{
/// <summary>
/// Possible state flags (or conditions as they're called internally) that can be set on the local client.
///
/// These come from LogMessage (somewhere) and directly map to each state field managed by the client. As of 5.25, it maps to
/// LogMessage row 7700 and onwards, which can be checked by looking at the Condition sheet and looking at what column 2 maps to.
/// </summary>
public enum ConditionFlag
{
/// <summary>
/// Unused.
/// </summary>
@ -449,4 +449,5 @@ public enum ConditionFlag
/// Unable to execute command while bound by duty.
/// </summary>
BoundByDuty95 = 95,
}
}

View file

@ -6,13 +6,13 @@ using Dalamud.Game.ClientState.Resolvers;
using Dalamud.Game.Text.SeStringHandling;
using Dalamud.Memory;
namespace Dalamud.Game.ClientState.Fates;
/// <summary>
/// This class represents an FFXIV Fate.
/// </summary>
public unsafe partial class Fate : IEquatable<Fate>
namespace Dalamud.Game.ClientState.Fates
{
/// <summary>
/// This class represents an FFXIV Fate.
/// </summary>
public unsafe partial class Fate : IEquatable<Fate>
{
/// <summary>
/// Initializes a new instance of the <see cref="Fate"/> class.
/// </summary>
@ -71,13 +71,13 @@ public unsafe partial class Fate : IEquatable<Fate>
/// <inheritdoc/>
public override int GetHashCode() => this.FateId.GetHashCode();
}
}
/// <summary>
/// This class represents an FFXIV Fate.
/// </summary>
public unsafe partial class Fate
{
/// <summary>
/// This class represents an FFXIV Fate.
/// </summary>
public unsafe partial class Fate
{
/// <summary>
/// Gets the Fate ID of this <see cref="Fate" />.
/// </summary>
@ -132,4 +132,5 @@ public unsafe partial class Fate
/// Gets the territory this <see cref="Fate"/> is located in.
/// </summary>
public ExcelResolver<Lumina.Excel.GeneratedSheets.TerritoryType> TerritoryType => new(this.Struct->TerritoryID);
}
}

View file

@ -1,10 +1,10 @@
namespace Dalamud.Game.ClientState.Fates;
/// <summary>
/// This represents the state of a single Fate.
/// </summary>
public enum FateState : byte
namespace Dalamud.Game.ClientState.Fates
{
/// <summary>
/// This represents the state of a single Fate.
/// </summary>
public enum FateState : byte
{
/// <summary>
/// The Fate is active.
/// </summary>
@ -29,4 +29,5 @@ public enum FateState : byte
/// The Fate is preparing to end.
/// </summary>
WaitingForEnd = 0x08,
}
}

View file

@ -6,15 +6,15 @@ using Dalamud.IoC;
using Dalamud.IoC.Internal;
using Serilog;
namespace Dalamud.Game.ClientState.Fates;
/// <summary>
/// This collection represents the currently available Fate events.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed partial class FateTable
namespace Dalamud.Game.ClientState.Fates
{
/// <summary>
/// This collection represents the currently available Fate events.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed partial class FateTable
{
private readonly ClientStateAddressResolver address;
/// <summary>
@ -123,13 +123,13 @@ public sealed partial class FateTable
return new Fate(offset);
}
}
}
/// <summary>
/// This collection represents the currently available Fate events.
/// </summary>
public sealed partial class FateTable : IReadOnlyCollection<Fate>
{
/// <summary>
/// This collection represents the currently available Fate events.
/// </summary>
public sealed partial class FateTable : IReadOnlyCollection<Fate>
{
/// <inheritdoc/>
int IReadOnlyCollection<Fate>.Count => this.Length;
@ -144,4 +144,5 @@ public sealed partial class FateTable : IReadOnlyCollection<Fate>
/// <inheritdoc/>
IEnumerator IEnumerable.GetEnumerator() => this.GetEnumerator();
}
}

View file

@ -1,13 +1,13 @@
using System;
namespace Dalamud.Game.ClientState.GamePad;
/// <summary>
/// Bitmask of the Button ushort used by the game.
/// </summary>
[Flags]
public enum GamepadButtons : ushort
namespace Dalamud.Game.ClientState.GamePad
{
/// <summary>
/// Bitmask of the Button ushort used by the game.
/// </summary>
[Flags]
public enum GamepadButtons : ushort
{
/// <summary>
/// No buttons pressed.
/// </summary>
@ -92,4 +92,5 @@ public enum GamepadButtons : ushort
/// Button on the left inner side of the controller. ??? on PS, Back on Xbox.
/// </summary>
Select = 0x4000,
}
}

View file

@ -1,18 +1,18 @@
using System.Runtime.InteropServices;
namespace Dalamud.Game.ClientState.GamePad;
/// <summary>
/// Struct which gets populated by polling the gamepads.
///
/// Has an array of gamepads, among many other things (here not mapped).
/// All we really care about is the final data which the game uses to determine input.
///
/// The size is definitely bigger than only the following fields but I do not know how big.
/// </summary>
[StructLayout(LayoutKind.Explicit)]
public struct GamepadInput
namespace Dalamud.Game.ClientState.GamePad
{
/// <summary>
/// Struct which gets populated by polling the gamepads.
///
/// Has an array of gamepads, among many other things (here not mapped).
/// All we really care about is the final data which the game uses to determine input.
///
/// The size is definitely bigger than only the following fields but I do not know how big.
/// </summary>
[StructLayout(LayoutKind.Explicit)]
public struct GamepadInput
{
/// <summary>
/// Left analogue stick's horizontal value, -99 for left, 99 for right.
/// </summary>
@ -72,4 +72,5 @@ public struct GamepadInput
/// </remarks>
[FieldOffset(0xA4)]
public ushort ButtonsRepeat;
}
}

View file

@ -4,15 +4,15 @@ using Dalamud.Hooking;
using ImGuiNET;
using Serilog;
namespace Dalamud.Game.ClientState.GamePad;
/// <summary>
/// Exposes the game gamepad state to dalamud.
///
/// Will block game's gamepad input if <see cref="ImGuiConfigFlags.NavEnableGamepad"/> is set.
/// </summary>
public unsafe class GamepadState : IDisposable
namespace Dalamud.Game.ClientState.GamePad
{
/// <summary>
/// Exposes the game gamepad state to dalamud.
///
/// Will block game's gamepad input if <see cref="ImGuiConfigFlags.NavEnableGamepad"/> is set.
/// </summary>
public unsafe class GamepadState : IDisposable
{
private readonly Hook<ControllerPoll> gamepadPoll;
private bool isDisposed;
@ -257,4 +257,5 @@ public unsafe class GamepadState : IDisposable
this.isDisposed = true;
}
}
}

View file

@ -1,10 +1,10 @@
namespace Dalamud.Game.ClientState.JobGauge.Enums;
/// <summary>
/// DRG Blood of the Dragon state types.
/// </summary>
public enum BOTDState : byte
namespace Dalamud.Game.ClientState.JobGauge.Enums
{
/// <summary>
/// DRG Blood of the Dragon state types.
/// </summary>
public enum BOTDState : byte
{
/// <summary>
/// Inactive type.
/// </summary>
@ -19,4 +19,5 @@ public enum BOTDState : byte
/// Life of the Dragon is active.
/// </summary>
LOTD = 2,
}
}

View file

@ -1,10 +1,10 @@
namespace Dalamud.Game.ClientState.JobGauge.Enums;
/// <summary>
/// AST Arcanum (card) types.
/// </summary>
public enum CardType : byte
namespace Dalamud.Game.ClientState.JobGauge.Enums
{
/// <summary>
/// AST Arcanum (card) types.
/// </summary>
public enum CardType : byte
{
/// <summary>
/// No card.
/// </summary>
@ -49,4 +49,5 @@ public enum CardType : byte
/// The Lady of Crowns card.
/// </summary>
LADY = 0x80,
}
}

View file

@ -1,10 +1,10 @@
namespace Dalamud.Game.ClientState.JobGauge.Enums;
/// <summary>
/// SCH Dismissed fairy types.
/// </summary>
public enum DismissedFairy : byte
namespace Dalamud.Game.ClientState.JobGauge.Enums
{
/// <summary>
/// SCH Dismissed fairy types.
/// </summary>
public enum DismissedFairy : byte
{
/// <summary>
/// Dismissed fairy is Eos.
/// </summary>
@ -14,4 +14,5 @@ public enum DismissedFairy : byte
/// Dismissed fairy is Selene.
/// </summary>
SELENE = 7,
}
}

View file

@ -1,10 +1,10 @@
namespace Dalamud.Game.ClientState.JobGauge.Enums;
/// <summary>
/// NIN Mudra types.
/// </summary>
public enum Mudras : byte
namespace Dalamud.Game.ClientState.JobGauge.Enums
{
/// <summary>
/// NIN Mudra types.
/// </summary>
public enum Mudras : byte
{
/// <summary>
/// Ten mudra.
/// </summary>
@ -19,4 +19,5 @@ public enum Mudras : byte
/// Jin mudra.
/// </summary>
JIN = 3,
}
}

View file

@ -1,10 +1,10 @@
namespace Dalamud.Game.ClientState.JobGauge.Enums;
/// <summary>
/// SMN summoned pet glam types.
/// </summary>
public enum PetGlam : byte
namespace Dalamud.Game.ClientState.JobGauge.Enums
{
/// <summary>
/// SMN summoned pet glam types.
/// </summary>
public enum PetGlam : byte
{
/// <summary>
/// No pet glam.
/// </summary>
@ -24,4 +24,5 @@ public enum PetGlam : byte
/// Ruby carbuncle pet glam.
/// </summary>
RUBY = 3,
}
}

View file

@ -1,10 +1,10 @@
namespace Dalamud.Game.ClientState.JobGauge.Enums;
/// <summary>
/// AST Divination seal types.
/// </summary>
public enum SealType : byte
namespace Dalamud.Game.ClientState.JobGauge.Enums
{
/// <summary>
/// AST Divination seal types.
/// </summary>
public enum SealType : byte
{
/// <summary>
/// No seal.
/// </summary>
@ -24,4 +24,5 @@ public enum SealType : byte
/// Celestial seal.
/// </summary>
CELESTIAL = 3,
}
}

View file

@ -1,13 +1,13 @@
using System;
namespace Dalamud.Game.ClientState.JobGauge.Enums;
/// <summary>
/// Samurai Sen types.
/// </summary>
[Flags]
public enum Sen : byte
namespace Dalamud.Game.ClientState.JobGauge.Enums
{
/// <summary>
/// Samurai Sen types.
/// </summary>
[Flags]
public enum Sen : byte
{
/// <summary>
/// No Sen.
/// </summary>
@ -27,4 +27,5 @@ public enum Sen : byte
/// Ka Sen type.
/// </summary>
KA = 1 << 2,
}
}

View file

@ -1,10 +1,10 @@
namespace Dalamud.Game.ClientState.JobGauge.Enums;
/// <summary>
/// BRD Song types.
/// </summary>
public enum Song : byte
namespace Dalamud.Game.ClientState.JobGauge.Enums
{
/// <summary>
/// BRD Song types.
/// </summary>
public enum Song : byte
{
/// <summary>
/// No song is active type.
/// </summary>
@ -24,4 +24,5 @@ public enum Song : byte
/// The Wanderer's Minuet type.
/// </summary>
WANDERER = 15,
}
}

View file

@ -1,10 +1,10 @@
namespace Dalamud.Game.ClientState.JobGauge.Enums;
/// <summary>
/// SMN summoned pet types.
/// </summary>
public enum SummonPet : byte
namespace Dalamud.Game.ClientState.JobGauge.Enums
{
/// <summary>
/// SMN summoned pet types.
/// </summary>
public enum SummonPet : byte
{
/// <summary>
/// No pet.
/// </summary>
@ -24,4 +24,5 @@ public enum SummonPet : byte
/// The summoned pet Garuda.
/// </summary>
GARUDA = 5,
}
}

View file

@ -7,15 +7,15 @@ using Dalamud.IoC;
using Dalamud.IoC.Internal;
using Serilog;
namespace Dalamud.Game.ClientState.JobGauge;
/// <summary>
/// This class converts in-memory Job gauge data to structs.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public class JobGauges
namespace Dalamud.Game.ClientState.JobGauge
{
/// <summary>
/// This class converts in-memory Job gauge data to structs.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public class JobGauges
{
private Dictionary<Type, JobGaugeBase> cache = new();
/// <summary>
@ -50,4 +50,5 @@ public class JobGauges
return (T)gauge;
}
}
}

View file

@ -2,13 +2,13 @@ using System;
using Dalamud.Game.ClientState.JobGauge.Enums;
namespace Dalamud.Game.ClientState.JobGauge.Types;
/// <summary>
/// In-memory AST job gauge.
/// </summary>
public unsafe class ASTGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.AstrologianGauge>
namespace Dalamud.Game.ClientState.JobGauge.Types
{
/// <summary>
/// In-memory AST job gauge.
/// </summary>
public unsafe class ASTGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.AstrologianGauge>
{
/// <summary>
/// Initializes a new instance of the <see cref="ASTGauge"/> class.
/// </summary>
@ -36,4 +36,5 @@ public unsafe class ASTGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game
if (this.Struct->Seals[2] == (byte)seal) return true;
return false;
}
}
}

View file

@ -1,12 +1,12 @@
using System;
namespace Dalamud.Game.ClientState.JobGauge.Types;
/// <summary>
/// In-memory BLM job gauge.
/// </summary>
public unsafe class BLMGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.BlackMageGauge>
namespace Dalamud.Game.ClientState.JobGauge.Types
{
/// <summary>
/// In-memory BLM job gauge.
/// </summary>
public unsafe class BLMGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.BlackMageGauge>
{
/// <summary>
/// Initializes a new instance of the <see cref="BLMGauge"/> class.
/// </summary>
@ -63,4 +63,5 @@ public unsafe class BLMGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game
/// </summary>
/// <returns><c>true</c> or <c>false</c>.</returns>
public bool IsEnochianActive => this.Struct->Enochian != 0;
}
}

View file

@ -2,13 +2,13 @@ using System;
using Dalamud.Game.ClientState.JobGauge.Enums;
namespace Dalamud.Game.ClientState.JobGauge.Types;
/// <summary>
/// In-memory BRD job gauge.
/// </summary>
public unsafe class BRDGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.BardGauge>
namespace Dalamud.Game.ClientState.JobGauge.Types
{
/// <summary>
/// In-memory BRD job gauge.
/// </summary>
public unsafe class BRDGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.BardGauge>
{
/// <summary>
/// Initializes a new instance of the <see cref="BRDGauge"/> class.
/// </summary>
@ -37,4 +37,5 @@ public unsafe class BRDGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game
/// Gets the type of song that is active.
/// </summary>
public Song Song => (Song)this.Struct->Song;
}
}

View file

@ -1,12 +1,12 @@
using System;
namespace Dalamud.Game.ClientState.JobGauge.Types;
/// <summary>
/// In-memory DNC job gauge.
/// </summary>
public unsafe class DNCGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.DancerGauge>
namespace Dalamud.Game.ClientState.JobGauge.Types
{
/// <summary>
/// In-memory DNC job gauge.
/// </summary>
public unsafe class DNCGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.DancerGauge>
{
/// <summary>
/// Initializes a new instance of the <see cref="DNCGauge"/> class.
/// </summary>
@ -56,4 +56,5 @@ public unsafe class DNCGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game
/// </summary>
/// <returns><c>true</c> or <c>false</c>.</returns>
public bool IsDancing => this.Struct->DanceSteps[0] != 0;
}
}

View file

@ -2,13 +2,13 @@ using System;
using Dalamud.Game.ClientState.JobGauge.Enums;
namespace Dalamud.Game.ClientState.JobGauge.Types;
/// <summary>
/// In-memory DRG job gauge.
/// </summary>
public unsafe class DRGGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.DragoonGauge>
namespace Dalamud.Game.ClientState.JobGauge.Types
{
/// <summary>
/// In-memory DRG job gauge.
/// </summary>
public unsafe class DRGGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.DragoonGauge>
{
/// <summary>
/// Initializes a new instance of the <see cref="DRGGauge"/> class.
/// </summary>
@ -32,4 +32,5 @@ public unsafe class DRGGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game
/// Gets the count of eyes opened during Blood of the Dragon.
/// </summary>
public byte EyeCount => this.Struct->EyeCount;
}
}

View file

@ -1,12 +1,12 @@
using System;
namespace Dalamud.Game.ClientState.JobGauge.Types;
/// <summary>
/// In-memory DRK job gauge.
/// </summary>
public unsafe class DRKGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.DarkKnightGauge>
namespace Dalamud.Game.ClientState.JobGauge.Types
{
/// <summary>
/// In-memory DRK job gauge.
/// </summary>
public unsafe class DRKGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.DarkKnightGauge>
{
/// <summary>
/// Initializes a new instance of the <see cref="DRKGauge"/> class.
/// </summary>
@ -36,4 +36,5 @@ public unsafe class DRKGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game
/// </summary>
/// <returns><c>true</c> or <c>false</c>.</returns>
public bool HasDarkArts => this.Struct->DarkArtsState > 0;
}
}

View file

@ -1,12 +1,12 @@
using System;
namespace Dalamud.Game.ClientState.JobGauge.Types;
/// <summary>
/// In-memory GNB job gauge.
/// </summary>
public unsafe class GNBGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.GunbreakerGauge>
namespace Dalamud.Game.ClientState.JobGauge.Types
{
/// <summary>
/// In-memory GNB job gauge.
/// </summary>
public unsafe class GNBGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.GunbreakerGauge>
{
/// <summary>
/// Initializes a new instance of the <see cref="GNBGauge"/> class.
/// </summary>
@ -30,4 +30,5 @@ public unsafe class GNBGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game
/// Gets the current step of the Gnashing Fang combo.
/// </summary>
public byte AmmoComboStep => this.Struct->AmmoComboStep;
}
}

View file

@ -1,12 +1,12 @@
using System;
namespace Dalamud.Game.ClientState.JobGauge.Types;
/// <summary>
/// Base job gauge class.
/// </summary>
public abstract unsafe class JobGaugeBase
namespace Dalamud.Game.ClientState.JobGauge.Types
{
/// <summary>
/// Base job gauge class.
/// </summary>
public abstract unsafe class JobGaugeBase
{
/// <summary>
/// Initializes a new instance of the <see cref="JobGaugeBase"/> class.
/// </summary>
@ -20,4 +20,5 @@ public abstract unsafe class JobGaugeBase
/// Gets the address of this job gauge in memory.
/// </summary>
public IntPtr Address { get; }
}
}

View file

@ -1,13 +1,13 @@
using System;
namespace Dalamud.Game.ClientState.JobGauge.Types;
/// <summary>
/// Base job gauge class.
/// </summary>
/// <typeparam name="T">The underlying FFXIVClientStructs type.</typeparam>
public unsafe class JobGaugeBase<T> : JobGaugeBase where T : unmanaged
namespace Dalamud.Game.ClientState.JobGauge.Types
{
/// <summary>
/// Base job gauge class.
/// </summary>
/// <typeparam name="T">The underlying FFXIVClientStructs type.</typeparam>
public unsafe class JobGaugeBase<T> : JobGaugeBase where T : unmanaged
{
/// <summary>
/// Initializes a new instance of the <see cref="JobGaugeBase{T}"/> class.
/// </summary>
@ -21,4 +21,5 @@ public unsafe class JobGaugeBase<T> : JobGaugeBase where T : unmanaged
/// Gets an unsafe struct pointer of this job gauge.
/// </summary>
private protected T* Struct => (T*)this.Address;
}
}

View file

@ -1,12 +1,12 @@
using System;
namespace Dalamud.Game.ClientState.JobGauge.Types;
/// <summary>
/// In-memory MCH job gauge.
/// </summary>
public unsafe class MCHGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.MachinistGauge>
namespace Dalamud.Game.ClientState.JobGauge.Types
{
/// <summary>
/// In-memory MCH job gauge.
/// </summary>
public unsafe class MCHGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.MachinistGauge>
{
/// <summary>
/// Initializes a new instance of the <see cref="MCHGauge"/> class.
/// </summary>
@ -52,4 +52,5 @@ public unsafe class MCHGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game
/// </summary>
/// <returns><c>true</c> or <c>false</c>.</returns>
public bool IsRobotActive => (this.Struct->TimerActive & 2) != 0;
}
}

View file

@ -1,12 +1,12 @@
using System;
namespace Dalamud.Game.ClientState.JobGauge.Types;
/// <summary>
/// In-memory MNK job gauge.
/// </summary>
public unsafe class MNKGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.MonkGauge>
namespace Dalamud.Game.ClientState.JobGauge.Types
{
/// <summary>
/// In-memory MNK job gauge.
/// </summary>
public unsafe class MNKGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.MonkGauge>
{
/// <summary>
/// Initializes a new instance of the <see cref="MNKGauge"/> class.
/// </summary>
@ -20,4 +20,5 @@ public unsafe class MNKGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game
/// Gets the number of Chakra available.
/// </summary>
public byte Chakra => this.Struct->Chakra;
}
}

View file

@ -1,12 +1,12 @@
using System;
namespace Dalamud.Game.ClientState.JobGauge.Types;
/// <summary>
/// In-memory NIN job gauge.
/// </summary>
public unsafe class NINGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.NinjaGauge>
namespace Dalamud.Game.ClientState.JobGauge.Types
{
/// <summary>
/// In-memory NIN job gauge.
/// </summary>
public unsafe class NINGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.NinjaGauge>
{
/// <summary>
/// Initializes a new instance of the <see cref="NINGauge"/> class.
/// </summary>
@ -30,4 +30,5 @@ public unsafe class NINGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game
/// Gets the number of times Huton has been cast manually.
/// </summary>
public byte HutonManualCasts => this.Struct->HutonManualCasts;
}
}

View file

@ -1,12 +1,12 @@
using System;
namespace Dalamud.Game.ClientState.JobGauge.Types;
/// <summary>
/// In-memory PLD job gauge.
/// </summary>
public unsafe class PLDGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.PaladinGauge>
namespace Dalamud.Game.ClientState.JobGauge.Types
{
/// <summary>
/// In-memory PLD job gauge.
/// </summary>
public unsafe class PLDGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.PaladinGauge>
{
/// <summary>
/// Initializes a new instance of the <see cref="PLDGauge"/> class.
/// </summary>
@ -20,4 +20,5 @@ public unsafe class PLDGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game
/// Gets the current level of the Oath gauge.
/// </summary>
public byte OathGauge => this.Struct->OathGauge;
}
}

View file

@ -1,12 +1,12 @@
using System;
namespace Dalamud.Game.ClientState.JobGauge.Types;
/// <summary>
/// In-memory RDM job gauge.
/// </summary>
public unsafe class RDMGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.RedMageGauge>
namespace Dalamud.Game.ClientState.JobGauge.Types
{
/// <summary>
/// In-memory RDM job gauge.
/// </summary>
public unsafe class RDMGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.RedMageGauge>
{
/// <summary>
/// Initializes a new instance of the <see cref="RDMGauge"/> class.
/// </summary>
@ -25,4 +25,5 @@ public unsafe class RDMGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game
/// Gets the level of the Black gauge.
/// </summary>
public byte BlackMana => this.Struct->BlackMana;
}
}

View file

@ -2,13 +2,13 @@ using System;
using Dalamud.Game.ClientState.JobGauge.Enums;
namespace Dalamud.Game.ClientState.JobGauge.Types;
/// <summary>
/// In-memory SAM job gauge.
/// </summary>
public unsafe class SAMGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.SamuraiGauge>
namespace Dalamud.Game.ClientState.JobGauge.Types
{
/// <summary>
/// In-memory SAM job gauge.
/// </summary>
public unsafe class SAMGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.SamuraiGauge>
{
/// <summary>
/// Initializes a new instance of the <see cref="SAMGauge"/> class.
/// </summary>
@ -50,4 +50,5 @@ public unsafe class SAMGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game
/// </summary>
/// <returns><c>true</c> or <c>false</c>.</returns>
public bool HasKa => (this.Sen & Sen.KA) != 0;
}
}

View file

@ -2,13 +2,13 @@ using System;
using Dalamud.Game.ClientState.JobGauge.Enums;
namespace Dalamud.Game.ClientState.JobGauge.Types;
/// <summary>
/// In-memory SCH job gauge.
/// </summary>
public unsafe class SCHGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.ScholarGauge>
namespace Dalamud.Game.ClientState.JobGauge.Types
{
/// <summary>
/// In-memory SCH job gauge.
/// </summary>
public unsafe class SCHGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.ScholarGauge>
{
/// <summary>
/// Initializes a new instance of the <see cref="SCHGauge"/> class.
/// </summary>
@ -37,4 +37,5 @@ public unsafe class SCHGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game
/// Gets the last dismissed fairy.
/// </summary>
public DismissedFairy DismissedFairy => (DismissedFairy)this.Struct->DismissedFairy;
}
}

View file

@ -2,13 +2,13 @@ using System;
using Dalamud.Game.ClientState.JobGauge.Enums;
namespace Dalamud.Game.ClientState.JobGauge.Types;
/// <summary>
/// In-memory SMN job gauge.
/// </summary>
public unsafe class SMNGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.SummonerGauge>
namespace Dalamud.Game.ClientState.JobGauge.Types
{
/// <summary>
/// In-memory SMN job gauge.
/// </summary>
public unsafe class SMNGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.SummonerGauge>
{
/// <summary>
/// Initializes a new instance of the <see cref="SMNGauge"/> class.
/// </summary>
@ -56,4 +56,5 @@ public unsafe class SMNGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game
/// </summary>
/// <returns><c>true</c> or <c>false</c>.</returns>
public bool HasAetherflowStacks => (this.AetherFlags & 3) > 0;
}
}

View file

@ -1,12 +1,12 @@
using System;
namespace Dalamud.Game.ClientState.JobGauge.Types;
/// <summary>
/// In-memory WAR job gauge.
/// </summary>
public unsafe class WARGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.WarriorGauge>
namespace Dalamud.Game.ClientState.JobGauge.Types
{
/// <summary>
/// In-memory WAR job gauge.
/// </summary>
public unsafe class WARGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.WarriorGauge>
{
/// <summary>
/// Initializes a new instance of the <see cref="WARGauge"/> class.
/// </summary>
@ -20,4 +20,5 @@ public unsafe class WARGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game
/// Gets the amount of wrath in the Beast gauge.
/// </summary>
public byte BeastGauge => this.Struct->BeastGauge;
}
}

View file

@ -1,12 +1,12 @@
using System;
namespace Dalamud.Game.ClientState.JobGauge.Types;
/// <summary>
/// In-memory WHM job gauge.
/// </summary>
public unsafe class WHMGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.WhiteMageGauge>
namespace Dalamud.Game.ClientState.JobGauge.Types
{
/// <summary>
/// In-memory WHM job gauge.
/// </summary>
public unsafe class WHMGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game.Gauge.WhiteMageGauge>
{
/// <summary>
/// Initializes a new instance of the <see cref="WHMGauge"/> class.
/// </summary>
@ -30,4 +30,5 @@ public unsafe class WHMGauge : JobGaugeBase<FFXIVClientStructs.FFXIV.Client.Game
/// Gets the number of times the blood lily has been nourished.
/// </summary>
public byte BloodLily => this.Struct->BloodLily;
}
}

View file

@ -6,24 +6,24 @@ using Dalamud.IoC;
using Dalamud.IoC.Internal;
using Serilog;
namespace Dalamud.Game.ClientState.Keys;
/// <summary>
/// Wrapper around the game keystate buffer, which contains the pressed state for all keyboard keys, indexed by virtual vkCode.
/// </summary>
/// <remarks>
/// The stored key state is actually a combination field, however the below ephemeral states are consumed each frame. Setting
/// the value may be mildly useful, however retrieving the value is largely pointless. In testing, it wasn't possible without
/// setting the statue manually.
/// index &amp; 0 = key pressed.
/// index &amp; 1 = key down (ephemeral).
/// index &amp; 2 = key up (ephemeral).
/// index &amp; 3 = short key press (ephemeral).
/// </remarks>
[PluginInterface]
[InterfaceVersion("1.0")]
public class KeyState
namespace Dalamud.Game.ClientState.Keys
{
/// <summary>
/// Wrapper around the game keystate buffer, which contains the pressed state for all keyboard keys, indexed by virtual vkCode.
/// </summary>
/// <remarks>
/// The stored key state is actually a combination field, however the below ephemeral states are consumed each frame. Setting
/// the value may be mildly useful, however retrieving the value is largely pointless. In testing, it wasn't possible without
/// setting the statue manually.
/// index &amp; 0 = key pressed.
/// index &amp; 1 = key down (ephemeral).
/// index &amp; 2 = key up (ephemeral).
/// index &amp; 3 = short key press (ephemeral).
/// </remarks>
[PluginInterface]
[InterfaceVersion("1.0")]
public class KeyState
{
// The array is accessed in a way that this limit doesn't appear to exist
// but there is other state data past this point, and keys beyond here aren't
// generally valid for most things anyway
@ -156,4 +156,5 @@ public class KeyState
return ref *(int*)(this.bufferBase + (4 * vkCode));
}
}
}

View file

@ -1,13 +1,13 @@
namespace Dalamud.Game.ClientState.Keys;
/// <summary>
/// Virtual-key codes.
/// </summary>
/// <remarks>
/// Defined in winuser.h from Windows SDK v6.1.
/// </remarks>
public enum VirtualKey : ushort
namespace Dalamud.Game.ClientState.Keys
{
/// <summary>
/// Virtual-key codes.
/// </summary>
/// <remarks>
/// Defined in winuser.h from Windows SDK v6.1.
/// </remarks>
public enum VirtualKey : ushort
{
/// <summary>
/// This is an addendum to use on functions in which you have to pass a zero value to represent no key code.
/// </summary>
@ -1040,4 +1040,5 @@ public enum VirtualKey : ushort
/// Clear key.
/// </summary>
OEM_CLEAR = 254,
}
}

View file

@ -1,10 +1,10 @@
namespace Dalamud.Game.ClientState.Objects.Enums;
/// <summary>
/// An Enum describing possible BattleNpc kinds.
/// </summary>
public enum BattleNpcSubKind : byte
namespace Dalamud.Game.ClientState.Objects.Enums
{
/// <summary>
/// An Enum describing possible BattleNpc kinds.
/// </summary>
public enum BattleNpcSubKind : byte
{
/// <summary>
/// Invalid BattleNpc.
/// </summary>
@ -24,4 +24,5 @@ public enum BattleNpcSubKind : byte
/// BattleNpc representing a standard enemy.
/// </summary>
Enemy = 5,
}
}

View file

@ -1,11 +1,11 @@
namespace Dalamud.Game.ClientState.Objects.Enums;
/// <summary>
/// This enum describes the indices of the Customize array.
/// </summary>
// TODO: This may need some rework since it may not be entirely accurate (stolen from Sapphire)
public enum CustomizeIndex
namespace Dalamud.Game.ClientState.Objects.Enums
{
/// <summary>
/// This enum describes the indices of the Customize array.
/// </summary>
// TODO: This may need some rework since it may not be entirely accurate (stolen from Sapphire)
public enum CustomizeIndex
{
/// <summary>
/// The race of the character.
/// </summary>
@ -135,4 +135,5 @@ public enum CustomizeIndex
/// The face paint color of the character.
/// </summary>
FacepaintColor = 0x19,
}
}

View file

@ -1,10 +1,10 @@
namespace Dalamud.Game.ClientState.Objects.Enums;
/// <summary>
/// Enum describing possible entity kinds.
/// </summary>
public enum ObjectKind : byte
namespace Dalamud.Game.ClientState.Objects.Enums
{
/// <summary>
/// Enum describing possible entity kinds.
/// </summary>
public enum ObjectKind : byte
{
/// <summary>
/// Invalid character.
/// </summary>
@ -79,4 +79,5 @@ public enum ObjectKind : byte
/// Objects representing card stand objects.
/// </summary>
CardStand = 0x0E,
}
}

View file

@ -1,13 +1,13 @@
using System;
namespace Dalamud.Game.ClientState.Objects.Enums;
/// <summary>
/// Enum describing possible status flags.
/// </summary>
[Flags]
public enum StatusFlags : byte
namespace Dalamud.Game.ClientState.Objects.Enums
{
/// <summary>
/// Enum describing possible status flags.
/// </summary>
[Flags]
public enum StatusFlags : byte
{
/// <summary>
/// No status flags set.
/// </summary>
@ -52,4 +52,5 @@ public enum StatusFlags : byte
/// Character is casting.
/// </summary>
IsCasting = 128,
}
}

View file

@ -9,15 +9,15 @@ using Dalamud.IoC;
using Dalamud.IoC.Internal;
using Serilog;
namespace Dalamud.Game.ClientState.Objects;
/// <summary>
/// This collection represents the currently spawned FFXIV game objects.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed partial class ObjectTable
namespace Dalamud.Game.ClientState.Objects
{
/// <summary>
/// This collection represents the currently spawned FFXIV game objects.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed partial class ObjectTable
{
private const int ObjectTableLength = 424;
private readonly ClientStateAddressResolver address;
@ -118,13 +118,13 @@ public sealed partial class ObjectTable
_ => new GameObject(address),
};
}
}
}
/// <summary>
/// This collection represents the currently spawned FFXIV game objects.
/// </summary>
public sealed partial class ObjectTable : IReadOnlyCollection<GameObject>
{
/// <summary>
/// This collection represents the currently spawned FFXIV game objects.
/// </summary>
public sealed partial class ObjectTable : IReadOnlyCollection<GameObject>
{
/// <inheritdoc/>
int IReadOnlyCollection<GameObject>.Count => this.Length;
@ -144,4 +144,5 @@ public sealed partial class ObjectTable : IReadOnlyCollection<GameObject>
/// <inheritdoc/>
IEnumerator IEnumerable.GetEnumerator() => this.GetEnumerator();
}
}

View file

@ -2,13 +2,13 @@ using System;
using Dalamud.Game.ClientState.Objects.Enums;
namespace Dalamud.Game.ClientState.Objects.Types;
/// <summary>
/// This class represents a battle NPC.
/// </summary>
public unsafe class BattleNpc : BattleChara
namespace Dalamud.Game.ClientState.Objects.Types
{
/// <summary>
/// This class represents a battle NPC.
/// </summary>
public unsafe class BattleNpc : BattleChara
{
/// <summary>
/// Initializes a new instance of the <see cref="BattleNpc"/> class.
/// Set up a new BattleNpc with the provided memory representation.
@ -26,4 +26,5 @@ public unsafe class BattleNpc : BattleChara
/// <inheritdoc/>
public override uint TargetObjectId => this.Struct->Character.TargetObjectID;
}
}

View file

@ -2,13 +2,13 @@ using System;
using Dalamud.Game.ClientState.Objects.Types;
namespace Dalamud.Game.ClientState.Objects.SubKinds;
/// <summary>
/// This class represents an EventObj.
/// </summary>
public unsafe class EventObj : GameObject
namespace Dalamud.Game.ClientState.Objects.SubKinds
{
/// <summary>
/// This class represents an EventObj.
/// </summary>
public unsafe class EventObj : GameObject
{
/// <summary>
/// Initializes a new instance of the <see cref="EventObj"/> class.
/// Set up a new EventObj with the provided memory representation.
@ -18,4 +18,5 @@ public unsafe class EventObj : GameObject
: base(address)
{
}
}
}

View file

@ -2,13 +2,13 @@ using System;
using Dalamud.Game.ClientState.Objects.Types;
namespace Dalamud.Game.ClientState.Objects.SubKinds;
/// <summary>
/// This class represents a NPC.
/// </summary>
public unsafe class Npc : Character
namespace Dalamud.Game.ClientState.Objects.SubKinds
{
/// <summary>
/// This class represents a NPC.
/// </summary>
public unsafe class Npc : Character
{
/// <summary>
/// Initializes a new instance of the <see cref="Npc"/> class.
/// Set up a new NPC with the provided memory representation.
@ -18,4 +18,5 @@ public unsafe class Npc : Character
: base(address)
{
}
}
}

View file

@ -3,13 +3,13 @@ using System;
using Dalamud.Game.ClientState.Objects.Types;
using Dalamud.Game.ClientState.Resolvers;
namespace Dalamud.Game.ClientState.Objects.SubKinds;
/// <summary>
/// This class represents a player character.
/// </summary>
public unsafe class PlayerCharacter : BattleChara
namespace Dalamud.Game.ClientState.Objects.SubKinds
{
/// <summary>
/// This class represents a player character.
/// </summary>
public unsafe class PlayerCharacter : BattleChara
{
/// <summary>
/// Initializes a new instance of the <see cref="PlayerCharacter"/> class.
/// This represents a player character.
@ -34,4 +34,5 @@ public unsafe class PlayerCharacter : BattleChara
/// Gets the target actor ID of the PlayerCharacter.
/// </summary>
public override uint TargetObjectId => this.Struct->Character.PlayerTargetObjectID;
}
}

View file

@ -4,15 +4,15 @@ using Dalamud.Game.ClientState.Objects.Types;
using Dalamud.IoC;
using Dalamud.IoC.Internal;
namespace Dalamud.Game.ClientState.Objects;
/// <summary>
/// Get and set various kinds of targets for the player.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed unsafe class TargetManager
namespace Dalamud.Game.ClientState.Objects
{
/// <summary>
/// Get and set various kinds of targets for the player.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed unsafe class TargetManager
{
private readonly ClientStateAddressResolver address;
/// <summary>
@ -160,4 +160,5 @@ public sealed unsafe class TargetManager
/// Clears the soft target.
/// </summary>
public void ClearSoftTarget() => this.SetSoftTarget(IntPtr.Zero);
}
}

View file

@ -2,13 +2,13 @@ using System;
using Dalamud.Game.ClientState.Statuses;
namespace Dalamud.Game.ClientState.Objects.Types;
/// <summary>
/// This class represents the battle characters.
/// </summary>
public unsafe class BattleChara : Character
namespace Dalamud.Game.ClientState.Objects.Types
{
/// <summary>
/// This class represents the battle characters.
/// </summary>
public unsafe class BattleChara : Character
{
/// <summary>
/// Initializes a new instance of the <see cref="BattleChara"/> class.
/// This represents a battle character.
@ -63,4 +63,5 @@ public unsafe class BattleChara : Character
/// Gets the underlying structure.
/// </summary>
private protected new FFXIVClientStructs.FFXIV.Client.Game.Character.BattleChara* Struct => (FFXIVClientStructs.FFXIV.Client.Game.Character.BattleChara*)this.Address;
}
}

View file

@ -5,13 +5,13 @@ using Dalamud.Game.ClientState.Resolvers;
using Dalamud.Game.Text.SeStringHandling;
using Dalamud.Memory;
namespace Dalamud.Game.ClientState.Objects.Types;
/// <summary>
/// This class represents the base for non-static entities.
/// </summary>
public unsafe class Character : GameObject
namespace Dalamud.Game.ClientState.Objects.Types
{
/// <summary>
/// This class represents the base for non-static entities.
/// </summary>
public unsafe class Character : GameObject
{
/// <summary>
/// Initializes a new instance of the <see cref="Character"/> class.
/// This represents a non-static entity.
@ -102,4 +102,5 @@ public unsafe class Character : GameObject
/// Gets the underlying structure.
/// </summary>
private protected new FFXIVClientStructs.FFXIV.Client.Game.Character.Character* Struct => (FFXIVClientStructs.FFXIV.Client.Game.Character.Character*)this.Address;
}
}

View file

@ -5,13 +5,13 @@ using Dalamud.Game.ClientState.Objects.Enums;
using Dalamud.Game.Text.SeStringHandling;
using Dalamud.Memory;
namespace Dalamud.Game.ClientState.Objects.Types;
/// <summary>
/// This class represents a GameObject in FFXIV.
/// </summary>
public unsafe partial class GameObject : IEquatable<GameObject>
namespace Dalamud.Game.ClientState.Objects.Types
{
/// <summary>
/// This class represents a GameObject in FFXIV.
/// </summary>
public unsafe partial class GameObject : IEquatable<GameObject>
{
/// <summary>
/// IDs of non-networked GameObjects.
/// </summary>
@ -86,13 +86,13 @@ public unsafe partial class GameObject : IEquatable<GameObject>
/// <inheritdoc/>
public override int GetHashCode() => this.ObjectId.GetHashCode();
}
}
/// <summary>
/// This class represents a basic actor (GameObject) in FFXIV.
/// </summary>
public unsafe partial class GameObject
{
/// <summary>
/// This class represents a basic actor (GameObject) in FFXIV.
/// </summary>
public unsafe partial class GameObject
{
/// <summary>
/// Gets the name of this <see cref="GameObject" />.
/// </summary>
@ -171,4 +171,5 @@ public unsafe partial class GameObject
/// <inheritdoc/>
public override string ToString() => $"{this.ObjectId:X}({this.Name.TextValue} - {this.ObjectKind}) at {this.Address:X}";
}
}

View file

@ -7,15 +7,15 @@ using Dalamud.IoC;
using Dalamud.IoC.Internal;
using Serilog;
namespace Dalamud.Game.ClientState.Party;
/// <summary>
/// This collection represents the actors present in your party or alliance.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed unsafe partial class PartyList
namespace Dalamud.Game.ClientState.Party
{
/// <summary>
/// This collection represents the actors present in your party or alliance.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed unsafe partial class PartyList
{
private const int GroupLength = 8;
private const int AllianceLength = 20;
@ -153,13 +153,13 @@ public sealed unsafe partial class PartyList
return new PartyMember(address);
}
}
}
/// <summary>
/// This collection represents the party members present in your party or alliance.
/// </summary>
public sealed partial class PartyList : IReadOnlyCollection<PartyMember>
{
/// <summary>
/// This collection represents the party members present in your party or alliance.
/// </summary>
public sealed partial class PartyList : IReadOnlyCollection<PartyMember>
{
/// <inheritdoc/>
int IReadOnlyCollection<PartyMember>.Count => this.Length;
@ -180,4 +180,5 @@ public sealed partial class PartyList : IReadOnlyCollection<PartyMember>
/// <inheritdoc/>
IEnumerator IEnumerable.GetEnumerator() => this.GetEnumerator();
}
}

View file

@ -9,13 +9,13 @@ using Dalamud.Game.Text.SeStringHandling;
using Dalamud.Memory;
using JetBrains.Annotations;
namespace Dalamud.Game.ClientState.Party;
/// <summary>
/// This class represents a party member in the group manager.
/// </summary>
public unsafe class PartyMember
namespace Dalamud.Game.ClientState.Party
{
/// <summary>
/// This class represents a party member in the group manager.
/// </summary>
public unsafe class PartyMember
{
/// <summary>
/// Initializes a new instance of the <see cref="PartyMember"/> class.
/// </summary>
@ -109,4 +109,5 @@ public unsafe class PartyMember
public byte Level => this.Struct->Level;
private FFXIVClientStructs.FFXIV.Client.Game.Group.PartyMember* Struct => (FFXIVClientStructs.FFXIV.Client.Game.Group.PartyMember*)this.Address;
}
}

View file

@ -1,14 +1,14 @@
using Dalamud.Data;
using Lumina.Excel;
namespace Dalamud.Game.ClientState.Resolvers;
/// <summary>
/// This object resolves a rowID within an Excel sheet.
/// </summary>
/// <typeparam name="T">The type of Lumina sheet to resolve.</typeparam>
public class ExcelResolver<T> where T : ExcelRow
namespace Dalamud.Game.ClientState.Resolvers
{
/// <summary>
/// This object resolves a rowID within an Excel sheet.
/// </summary>
/// <typeparam name="T">The type of Lumina sheet to resolve.</typeparam>
public class ExcelResolver<T> where T : ExcelRow
{
/// <summary>
/// Initializes a new instance of the <see cref="ExcelResolver{T}"/> class.
/// </summary>
@ -27,4 +27,5 @@ public class ExcelResolver<T> where T : ExcelRow
/// Gets GameData linked to this excel row.
/// </summary>
public T GameData => Service<DataManager>.Get().GetExcelSheet<T>().GetRow(this.Id);
}
}

View file

@ -4,13 +4,13 @@ using Dalamud.Game.ClientState.Objects;
using Dalamud.Game.ClientState.Objects.Types;
using Dalamud.Game.ClientState.Resolvers;
namespace Dalamud.Game.ClientState.Statuses;
/// <summary>
/// This class represents a status effect an actor is afflicted by.
/// </summary>
public unsafe class Status
namespace Dalamud.Game.ClientState.Statuses
{
/// <summary>
/// This class represents a status effect an actor is afflicted by.
/// </summary>
public unsafe class Status
{
/// <summary>
/// Initializes a new instance of the <see cref="Status"/> class.
/// </summary>
@ -64,4 +64,5 @@ public unsafe class Status
public GameObject? SourceObject => Service<ObjectTable>.Get().SearchById(this.SourceID);
private FFXIVClientStructs.FFXIV.Client.Game.Status* Struct => (FFXIVClientStructs.FFXIV.Client.Game.Status*)this.Address;
}
}

View file

@ -3,13 +3,13 @@ using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
namespace Dalamud.Game.ClientState.Statuses;
/// <summary>
/// This collection represents the status effects an actor is afflicted by.
/// </summary>
public sealed unsafe partial class StatusList
namespace Dalamud.Game.ClientState.Statuses
{
/// <summary>
/// This collection represents the status effects an actor is afflicted by.
/// </summary>
public sealed unsafe partial class StatusList
{
private const int StatusListLength = 30;
/// <summary>
@ -112,13 +112,13 @@ public sealed unsafe partial class StatusList
return (IntPtr)(this.Struct->Status + (index * StatusSize));
}
}
}
/// <summary>
/// This collection represents the status effects an actor is afflicted by.
/// </summary>
public sealed partial class StatusList : IReadOnlyCollection<Status>, ICollection
{
/// <summary>
/// This collection represents the status effects an actor is afflicted by.
/// </summary>
public sealed partial class StatusList : IReadOnlyCollection<Status>, ICollection
{
/// <inheritdoc/>
int IReadOnlyCollection<Status>.Count => this.Length;
@ -157,4 +157,5 @@ public sealed partial class StatusList : IReadOnlyCollection<Status>, ICollectio
index++;
}
}
}
}

View file

@ -1,13 +1,13 @@
using System.Runtime.InteropServices;
namespace Dalamud.Game.ClientState.Structs;
/// <summary>
/// Native memory representation of a FFXIV status effect.
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public struct StatusEffect
namespace Dalamud.Game.ClientState.Structs
{
/// <summary>
/// Native memory representation of a FFXIV status effect.
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public struct StatusEffect
{
/// <summary>
/// The effect ID.
/// </summary>
@ -32,4 +32,5 @@ public struct StatusEffect
/// The ID of the actor that caused this effect.
/// </summary>
public int OwnerId;
}
}

View file

@ -1,12 +1,12 @@
using System.Reflection;
namespace Dalamud.Game.Command;
/// <summary>
/// This class describes a registered command.
/// </summary>
public sealed class CommandInfo
namespace Dalamud.Game.Command
{
/// <summary>
/// This class describes a registered command.
/// </summary>
public sealed class CommandInfo
{
/// <summary>
/// Initializes a new instance of the <see cref="CommandInfo"/> class.
/// Create a new CommandInfo with the provided handler.
@ -44,4 +44,5 @@ public sealed class CommandInfo
/// Gets or sets the name of the assembly responsible for this command.
/// </summary>
internal string LoaderAssemblyName { get; set; } = string.Empty;
}
}

View file

@ -10,15 +10,15 @@ using Dalamud.IoC;
using Dalamud.IoC.Internal;
using Serilog;
namespace Dalamud.Game.Command;
/// <summary>
/// This class manages registered in-game slash commands.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed class CommandManager
namespace Dalamud.Game.Command
{
/// <summary>
/// This class manages registered in-game slash commands.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed class CommandManager
{
private readonly Dictionary<string, CommandInfo> commandMap = new();
private readonly Regex commandRegexEn = new(@"^The command (?<command>.+) does not exist\.$", RegexOptions.Compiled);
private readonly Regex commandRegexJp = new(@"^そのコマンドはありません。: (?<command>.+)$", RegexOptions.Compiled);
@ -173,4 +173,5 @@ public sealed class CommandManager
}
}
}
}
}

View file

@ -16,15 +16,15 @@ using Dalamud.IoC.Internal;
using Dalamud.Utility;
using Serilog;
namespace Dalamud.Game;
/// <summary>
/// This class represents the Framework of the native game client and grants access to various subsystems.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed class Framework : IDisposable
namespace Dalamud.Game
{
/// <summary>
/// This class represents the Framework of the native game client and grants access to various subsystems.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed class Framework : IDisposable
{
private static Stopwatch statsStopwatch = new();
private Stopwatch updateStopwatch = new();
@ -312,4 +312,5 @@ public sealed class Framework : IDisposable
// Return the original trampoline location to cleanly exit
return originalPtr;
}
}
}

View file

@ -1,13 +1,15 @@
using System;
using System.Runtime.InteropServices;
namespace Dalamud.Game;
using Dalamud.Game.Internal;
/// <summary>
/// The address resolver for the <see cref="Framework"/> class.
/// </summary>
public sealed class FrameworkAddressResolver : BaseAddressResolver
namespace Dalamud.Game
{
/// <summary>
/// The address resolver for the <see cref="Framework"/> class.
/// </summary>
public sealed class FrameworkAddressResolver : BaseAddressResolver
{
/// <summary>
/// Gets the base address native Framework class.
/// </summary>
@ -51,4 +53,5 @@ public sealed class FrameworkAddressResolver : BaseAddressResolver
// Framework does not change once initialized in startup so don't bother to deref again and again.
this.BaseAddress = Marshal.ReadIntPtr(pFramework);
}
}
}

View file

@ -5,20 +5,20 @@ using System.Text;
using Newtonsoft.Json;
namespace Dalamud.Game;
/// <summary>
/// A GameVersion object contains give hierarchical numeric components: year, month,
/// day, major and minor. All components may be unspecified, which is represented
/// internally as a -1. By definition, an unspecified component matches anything
/// (both unspecified and specified), and an unspecified component is "less than" any
/// specified component. It will also equal the string "any" if all components are
/// unspecified. The value can be retrieved from the ffxivgame.ver file in your game
/// installation directory.
/// </summary>
[Serializable]
public sealed class GameVersion : ICloneable, IComparable, IComparable<GameVersion>, IEquatable<GameVersion>
namespace Dalamud.Game
{
/// <summary>
/// A GameVersion object contains give hierarchical numeric components: year, month,
/// day, major and minor. All components may be unspecified, which is represented
/// internally as a -1. By definition, an unspecified component matches anything
/// (both unspecified and specified), and an unspecified component is "less than" any
/// specified component. It will also equal the string "any" if all components are
/// unspecified. The value can be retrieved from the ffxivgame.ver file in your game
/// installation directory.
/// </summary>
[Serializable]
public sealed class GameVersion : ICloneable, IComparable, IComparable<GameVersion>, IEquatable<GameVersion>
{
private static readonly GameVersion AnyVersion = new();
/// <summary>
@ -405,4 +405,5 @@ public sealed class GameVersion : ICloneable, IComparable, IComparable<GameVersi
.Append(string.Format("{0:D4}", this.Minor == -1 ? 0 : this.Minor))
.ToString();
}
}
}

View file

@ -2,13 +2,13 @@ using System;
using Newtonsoft.Json;
namespace Dalamud.Game;
/// <summary>
/// Converts a <see cref="GameVersion"/> to and from a string (e.g. <c>"2010.01.01.1234.5678"</c>).
/// </summary>
public sealed class GameVersionConverter : JsonConverter
namespace Dalamud.Game
{
/// <summary>
/// Converts a <see cref="GameVersion"/> to and from a string (e.g. <c>"2010.01.01.1234.5678"</c>).
/// </summary>
public sealed class GameVersionConverter : JsonConverter
{
/// <summary>
/// Writes the JSON representation of the object.
/// </summary>
@ -76,4 +76,5 @@ public sealed class GameVersionConverter : JsonConverter
{
return objectType == typeof(GameVersion);
}
}
}

View file

@ -13,15 +13,15 @@ using Dalamud.IoC;
using Dalamud.IoC.Internal;
using Serilog;
namespace Dalamud.Game.Gui;
/// <summary>
/// This class handles interacting with the native chat UI.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed class ChatGui : IDisposable
namespace Dalamud.Game.Gui
{
/// <summary>
/// This class handles interacting with the native chat UI.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed class ChatGui : IDisposable
{
private readonly ChatGuiAddressResolver address;
private readonly Queue<XivChatEntry> chatQueue = new();
@ -479,4 +479,5 @@ public sealed class ChatGui : IDisposable
Log.Error(ex, "Exception on InteractableLinkClicked hook");
}
}
}
}

View file

@ -1,12 +1,14 @@
using System;
namespace Dalamud.Game.Gui;
using Dalamud.Game.Internal;
/// <summary>
/// The address resolver for the <see cref="ChatGui"/> class.
/// </summary>
public sealed class ChatGuiAddressResolver : BaseAddressResolver
namespace Dalamud.Game.Gui
{
/// <summary>
/// The address resolver for the <see cref="ChatGui"/> class.
/// </summary>
public sealed class ChatGuiAddressResolver : BaseAddressResolver
{
/// <summary>
/// Initializes a new instance of the <see cref="ChatGuiAddressResolver"/> class.
/// </summary>
@ -114,4 +116,5 @@ public sealed class ChatGuiAddressResolver : BaseAddressResolver
this.InteractableLinkClicked = sig.ScanText("E8 ?? ?? ?? ?? E9 ?? ?? ?? ?? 80 BB ?? ?? ?? ?? ?? 0F 85 ?? ?? ?? ?? 80 BB") + 9;
}
}
}

View file

@ -9,15 +9,15 @@ using Dalamud.IoC.Internal;
using Dalamud.Memory;
using Serilog;
namespace Dalamud.Game.Gui.FlyText;
/// <summary>
/// This class facilitates interacting with and creating native in-game "fly text".
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed class FlyTextGui : IDisposable
namespace Dalamud.Game.Gui.FlyText
{
/// <summary>
/// This class facilitates interacting with and creating native in-game "fly text".
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed class FlyTextGui : IDisposable
{
/// <summary>
/// The native function responsible for adding fly text to the UI. See <see cref="FlyTextGuiAddressResolver.AddFlyText"/>.
/// </summary>
@ -307,4 +307,5 @@ public sealed class FlyTextGui : IDisposable
return retVal;
}
}
}

View file

@ -1,12 +1,12 @@
using System;
namespace Dalamud.Game.Gui.FlyText;
/// <summary>
/// An address resolver for the <see cref="FlyTextGui"/> class.
/// </summary>
public class FlyTextGuiAddressResolver : BaseAddressResolver
namespace Dalamud.Game.Gui.FlyText
{
/// <summary>
/// An address resolver for the <see cref="FlyTextGui"/> class.
/// </summary>
public class FlyTextGuiAddressResolver : BaseAddressResolver
{
/// <summary>
/// Gets the address of the native AddFlyText method, which occurs
/// when the game adds fly text elements to the UI. Multiple fly text
@ -28,4 +28,5 @@ public class FlyTextGuiAddressResolver : BaseAddressResolver
this.AddFlyText = sig.ScanText("E8 ?? ?? ?? ?? FF C7 41 D1 C7");
this.CreateFlyText = sig.ScanText("48 89 74 24 ?? 48 89 7C 24 ?? 41 56 48 83 EC 40 48 63 FA");
}
}
}

View file

@ -1,11 +1,11 @@
namespace Dalamud.Game.Gui.FlyText;
/// <summary>
/// Enum of FlyTextKind values. Members suffixed with
/// a number seem to be a duplicate, or perform duplicate behavior.
/// </summary>
public enum FlyTextKind : int
namespace Dalamud.Game.Gui.FlyText
{
/// <summary>
/// Enum of FlyTextKind values. Members suffixed with
/// a number seem to be a duplicate, or perform duplicate behavior.
/// </summary>
public enum FlyTextKind : int
{
/// <summary>
/// Val1 in serif font, Text2 in sans-serif as subtitle.
/// Used for autos and incoming DoTs.
@ -279,4 +279,5 @@ public enum FlyTextKind : int
/// Does a large bounce effect on appearance. Does not scroll up or down the screen.
/// </summary>
CriticalDirectHit2 = 51,
}
}

View file

@ -14,15 +14,15 @@ using Dalamud.Utility;
using ImGuiNET;
using Serilog;
namespace Dalamud.Game.Gui;
/// <summary>
/// A class handling many aspects of the in-game UI.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed class GameGui : IDisposable
namespace Dalamud.Game.Gui
{
/// <summary>
/// A class handling many aspects of the in-game UI.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed class GameGui : IDisposable
{
private readonly GameGuiAddressResolver address;
private readonly GetMatrixSingletonDelegate getMatrixSingleton;
@ -593,4 +593,5 @@ public sealed class GameGui : IDisposable
? (char)0
: result;
}
}
}

View file

@ -1,13 +1,13 @@
using System;
using System.Runtime.InteropServices;
namespace Dalamud.Game.Gui;
/// <summary>
/// The address resolver for the <see cref="GameGui"/> class.
/// </summary>
internal sealed class GameGuiAddressResolver : BaseAddressResolver
namespace Dalamud.Game.Gui
{
/// <summary>
/// The address resolver for the <see cref="GameGui"/> class.
/// </summary>
internal sealed class GameGuiAddressResolver : BaseAddressResolver
{
/// <summary>
/// Initializes a new instance of the <see cref="GameGuiAddressResolver"/> class.
/// </summary>
@ -100,4 +100,5 @@ internal sealed class GameGuiAddressResolver : BaseAddressResolver
// Xiv__UiManager__GetChatManager+7 000 retn
this.ChatManager = this.BaseAddress + 0x13E0;
}
}
}

View file

@ -1,11 +1,11 @@
namespace Dalamud.Game.Gui;
/// <summary>
/// ActionKinds used in AgentActionDetail.
/// These describe the possible kinds of actions being hovered.
/// </summary>
public enum HoverActionKind
namespace Dalamud.Game.Gui
{
/// <summary>
/// ActionKinds used in AgentActionDetail.
/// These describe the possible kinds of actions being hovered.
/// </summary>
public enum HoverActionKind
{
/// <summary>
/// No action is hovered.
/// </summary>
@ -45,4 +45,5 @@ public enum HoverActionKind
/// A trait is hovered.
/// </summary>
Trait = 29,
}
}

View file

@ -1,10 +1,10 @@
namespace Dalamud.Game.Gui;
/// <summary>
/// This class represents the hotbar action currently hovered over by the cursor.
/// </summary>
public class HoveredAction
namespace Dalamud.Game.Gui
{
/// <summary>
/// This class represents the hotbar action currently hovered over by the cursor.
/// </summary>
public class HoveredAction
{
/// <summary>
/// Gets or sets the base action ID.
/// </summary>
@ -19,4 +19,5 @@ public class HoveredAction
/// Gets or sets the type of action.
/// </summary>
public HoverActionKind ActionKind { get; set; } = HoverActionKind.None;
}
}

View file

@ -9,13 +9,13 @@ using ImGuiNET;
using static Dalamud.NativeFunctions;
namespace Dalamud.Game.Gui.Internal;
/// <summary>
/// This class handles IME for non-English users.
/// </summary>
internal class DalamudIME : IDisposable
namespace Dalamud.Game.Gui.Internal
{
/// <summary>
/// This class handles IME for non-English users.
/// </summary>
internal class DalamudIME : IDisposable
{
private static readonly ModuleLog Log = new("IME");
private IntPtr interfaceHandle;
@ -239,4 +239,5 @@ internal class DalamudIME : IDisposable
return CallWindowProcW(this.oldWndProcPtr, hWnd, msg, wParam, lParam);
}
}
}

View file

@ -1,17 +1,17 @@
using System.Diagnostics.CodeAnalysis;
using System.Runtime.InteropServices;
namespace Dalamud.Game.Gui.PartyFinder.Internal;
/// <summary>
/// The structure of the PartyFinder packet.
/// </summary>
[SuppressMessage("StyleCop.CSharp.OrderingRules", "SA1201:Elements should appear in the correct order", Justification = "Sequential struct marshaling.")]
[SuppressMessage("StyleCop.CSharp.OrderingRules", "SA1202:Elements should be ordered by access", Justification = "Sequential struct marshaling.")]
[SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1600:Elements should be documented", Justification = "Document the field usage.")]
[StructLayout(LayoutKind.Sequential)]
internal readonly struct PartyFinderPacket
namespace Dalamud.Game.Gui.PartyFinder.Internal
{
/// <summary>
/// The structure of the PartyFinder packet.
/// </summary>
[SuppressMessage("StyleCop.CSharp.OrderingRules", "SA1201:Elements should appear in the correct order", Justification = "Sequential struct marshaling.")]
[SuppressMessage("StyleCop.CSharp.OrderingRules", "SA1202:Elements should be ordered by access", Justification = "Sequential struct marshaling.")]
[SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1600:Elements should be documented", Justification = "Document the field usage.")]
[StructLayout(LayoutKind.Sequential)]
internal readonly struct PartyFinderPacket
{
/// <summary>
/// Gets the size of this packet.
/// </summary>
@ -24,4 +24,5 @@ internal readonly struct PartyFinderPacket
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
internal readonly PartyFinderPacketListing[] Listings;
}
}

View file

@ -2,16 +2,16 @@ using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Runtime.InteropServices;
namespace Dalamud.Game.Gui.PartyFinder.Internal;
/// <summary>
/// The structure of an individual listing within a packet.
/// </summary>
[SuppressMessage("StyleCop.CSharp.OrderingRules", "SA1202:Elements should be ordered by access", Justification = "Sequential struct marshaling.")]
[SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1600:Elements should be documented", Justification = "Document the field usage.")]
[StructLayout(LayoutKind.Sequential)]
internal readonly struct PartyFinderPacketListing
namespace Dalamud.Game.Gui.PartyFinder.Internal
{
/// <summary>
/// The structure of an individual listing within a packet.
/// </summary>
[SuppressMessage("StyleCop.CSharp.OrderingRules", "SA1202:Elements should be ordered by access", Justification = "Sequential struct marshaling.")]
[SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1600:Elements should be documented", Justification = "Document the field usage.")]
[StructLayout(LayoutKind.Sequential)]
internal readonly struct PartyFinderPacketListing
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
private readonly byte[] header1;
internal readonly uint Id;
@ -95,4 +95,5 @@ internal readonly struct PartyFinderPacketListing
// a valid party finder must have at least one slot set
return this.Slots.All(slot => slot == 0);
}
}
}

View file

@ -1,12 +1,12 @@
using System;
namespace Dalamud.Game.Gui.PartyFinder;
/// <summary>
/// The address resolver for the <see cref="PartyFinderGui"/> class.
/// </summary>
public class PartyFinderAddressResolver : BaseAddressResolver
namespace Dalamud.Game.Gui.PartyFinder
{
/// <summary>
/// The address resolver for the <see cref="PartyFinderGui"/> class.
/// </summary>
public class PartyFinderAddressResolver : BaseAddressResolver
{
/// <summary>
/// Gets the address of the native ReceiveListing method.
/// </summary>
@ -17,4 +17,5 @@ public class PartyFinderAddressResolver : BaseAddressResolver
{
this.ReceiveListing = sig.ScanText("40 53 41 57 48 83 EC 28 48 8B D9");
}
}
}

View file

@ -8,15 +8,15 @@ using Dalamud.IoC;
using Dalamud.IoC.Internal;
using Serilog;
namespace Dalamud.Game.Gui.PartyFinder;
/// <summary>
/// This class handles interacting with the native PartyFinder window.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed class PartyFinderGui : IDisposable
namespace Dalamud.Game.Gui.PartyFinder
{
/// <summary>
/// This class handles interacting with the native PartyFinder window.
/// </summary>
[PluginInterface]
[InterfaceVersion("1.0")]
public sealed class PartyFinderGui : IDisposable
{
private readonly PartyFinderAddressResolver address;
private readonly IntPtr memory;
@ -136,4 +136,5 @@ public sealed class PartyFinderGui : IDisposable
Buffer.MemoryCopy((void*)this.memory, (void*)dataPtr, PartyFinderPacket.PacketSize, PartyFinderPacket.PacketSize);
}
}
}
}

View file

@ -1,13 +1,13 @@
using System;
namespace Dalamud.Game.Gui.PartyFinder.Types;
/// <summary>
/// Condition flags for the <see cref="PartyFinderGui"/> class.
/// </summary>
[Flags]
public enum ConditionFlags : uint
namespace Dalamud.Game.Gui.PartyFinder.Types
{
/// <summary>
/// Condition flags for the <see cref="PartyFinderGui"/> class.
/// </summary>
[Flags]
public enum ConditionFlags : uint
{
/// <summary>
/// No duty condition.
/// </summary>
@ -22,4 +22,5 @@ public enum ConditionFlags : uint
/// The duty incomplete condition.
/// </summary>
DutyIncomplete = 4,
}
}

View file

@ -1,10 +1,10 @@
namespace Dalamud.Game.Gui.PartyFinder.Types;
/// <summary>
/// Category flags for the <see cref="PartyFinderGui"/> class.
/// </summary>
public enum DutyCategory
namespace Dalamud.Game.Gui.PartyFinder.Types
{
/// <summary>
/// Category flags for the <see cref="PartyFinderGui"/> class.
/// </summary>
public enum DutyCategory
{
/// <summary>
/// The duty category.
/// </summary>
@ -44,4 +44,5 @@ public enum DutyCategory
/// The adventuring forays category.
/// </summary>
AdventuringForays = 1 << 6,
}
}

View file

@ -1,13 +1,13 @@
using System;
namespace Dalamud.Game.Gui.PartyFinder.Types;
/// <summary>
/// Duty finder settings flags for the <see cref="PartyFinderGui"/> class.
/// </summary>
[Flags]
public enum DutyFinderSettingsFlags : uint
namespace Dalamud.Game.Gui.PartyFinder.Types
{
/// <summary>
/// Duty finder settings flags for the <see cref="PartyFinderGui"/> class.
/// </summary>
[Flags]
public enum DutyFinderSettingsFlags : uint
{
/// <summary>
/// No duty finder settings.
/// </summary>
@ -27,4 +27,5 @@ public enum DutyFinderSettingsFlags : uint
/// The silence echo setting.
/// </summary>
SilenceEcho = 1 << 2,
}
}

Some files were not shown because too many files have changed in this diff Show more