diff --git a/Penumbra/Game/EqdpEntry.cs b/Penumbra.GameData/Structs/EqdpEntry.cs similarity index 81% rename from Penumbra/Game/EqdpEntry.cs rename to Penumbra.GameData/Structs/EqdpEntry.cs index 6982a79a..bd292431 100644 --- a/Penumbra/Game/EqdpEntry.cs +++ b/Penumbra.GameData/Structs/EqdpEntry.cs @@ -1,9 +1,8 @@ using System; using System.ComponentModel; using Penumbra.GameData.Enums; -using Penumbra.Meta; -namespace Penumbra.Game +namespace Penumbra.GameData.Structs { [Flags] public enum EqdpEntry : ushort @@ -105,24 +104,4 @@ namespace Penumbra.Game }; } } - - public static class EqdpEntryExtension - { - public static bool Apply( this ref EqdpEntry entry, MetaManipulation manipulation ) - { - if( manipulation.Type != MetaType.Eqdp ) - { - return false; - } - - var mask = Eqdp.Mask( manipulation.EqdpIdentifier.Slot ); - var result = ( entry & ~mask ) | manipulation.EqdpValue; - var ret = result == entry; - entry = result; - return ret; - } - - public static EqdpEntry Reduce( this EqdpEntry entry, EquipSlot slot ) - => entry & Eqdp.Mask( slot ); - } } \ No newline at end of file diff --git a/Penumbra/Game/EqpEntry.cs b/Penumbra.GameData/Structs/EqpEntry.cs similarity index 87% rename from Penumbra/Game/EqpEntry.cs rename to Penumbra.GameData/Structs/EqpEntry.cs index 1f34f6c8..5794a905 100644 --- a/Penumbra/Game/EqpEntry.cs +++ b/Penumbra.GameData/Structs/EqpEntry.cs @@ -1,9 +1,8 @@ using System; using System.ComponentModel; using Penumbra.GameData.Enums; -using Penumbra.Meta; -namespace Penumbra.Game +namespace Penumbra.GameData.Structs { [Flags] public enum EqpEntry : ulong @@ -128,24 +127,4 @@ namespace Penumbra.Game }; } } - - public static class EqpEntryExtension - { - public static bool Apply( this ref EqpEntry entry, MetaManipulation manipulation ) - { - if( manipulation.Type != MetaType.Eqp ) - { - return false; - } - - var mask = Eqp.Mask( manipulation.EqpIdentifier.Slot ); - var result = ( entry & ~mask ) | manipulation.EqpValue; - var ret = result != entry; - entry = result; - return ret; - } - - public static EqpEntry Reduce( this EqpEntry entry, EquipSlot slot ) - => entry & Eqp.Mask( slot ); - } } \ No newline at end of file diff --git a/Penumbra/Game/GmpEntry.cs b/Penumbra.GameData/Structs/GmpEntry.cs similarity index 88% rename from Penumbra/Game/GmpEntry.cs rename to Penumbra.GameData/Structs/GmpEntry.cs index 000b2c13..be9a7b58 100644 --- a/Penumbra/Game/GmpEntry.cs +++ b/Penumbra.GameData/Structs/GmpEntry.cs @@ -1,7 +1,6 @@ using System.IO; -using Penumbra.Meta; -namespace Penumbra.Game +namespace Penumbra.GameData.Structs { public struct GmpEntry { @@ -89,16 +88,5 @@ namespace Penumbra.Game public static explicit operator GmpEntry( ulong entry ) => new() { Value = entry }; - - public GmpEntry Apply( MetaManipulation manipulation ) - { - if( manipulation.Type != MetaType.Gmp ) - { - return this; - } - - Value = manipulation.GmpValue.Value; - return this; - } } } \ No newline at end of file diff --git a/Penumbra/Game/RspEntry.cs b/Penumbra.GameData/Structs/RspEntry.cs similarity index 97% rename from Penumbra/Game/RspEntry.cs rename to Penumbra.GameData/Structs/RspEntry.cs index f260b08f..80f02144 100644 --- a/Penumbra/Game/RspEntry.cs +++ b/Penumbra.GameData/Structs/RspEntry.cs @@ -4,7 +4,7 @@ using System.IO; using System.Runtime.InteropServices; using Penumbra.GameData.Enums; -namespace Penumbra.Game +namespace Penumbra.GameData.Structs { [StructLayout( LayoutKind.Sequential, Pack = 1 )] public readonly struct RspEntry diff --git a/Penumbra/Importer/TexToolsMeta.cs b/Penumbra/Importer/TexToolsMeta.cs index 3bd313db..664a2898 100644 --- a/Penumbra/Importer/TexToolsMeta.cs +++ b/Penumbra/Importer/TexToolsMeta.cs @@ -6,6 +6,7 @@ using Dalamud.Plugin; using Lumina.Data.Files; using Penumbra.Game; using Penumbra.GameData.Enums; +using Penumbra.GameData.Structs; using Penumbra.GameData.Util; using Penumbra.Meta; using Penumbra.Meta.Files; diff --git a/Penumbra/Meta/EntryExtensions.cs b/Penumbra/Meta/EntryExtensions.cs new file mode 100644 index 00000000..9eef2c5a --- /dev/null +++ b/Penumbra/Meta/EntryExtensions.cs @@ -0,0 +1,60 @@ +using Penumbra.GameData.Enums; +using Penumbra.GameData.Structs; + +namespace Penumbra.Meta +{ + public static class EqdpEntryExtensions + { + public static bool Apply( this ref EqdpEntry entry, MetaManipulation manipulation ) + { + if( manipulation.Type != MetaType.Eqdp ) + { + return false; + } + + var mask = Eqdp.Mask( manipulation.EqdpIdentifier.Slot ); + var result = ( entry & ~mask ) | manipulation.EqdpValue; + var ret = result == entry; + entry = result; + return ret; + } + + public static EqdpEntry Reduce( this EqdpEntry entry, EquipSlot slot ) + => entry & Eqdp.Mask( slot ); + } + + + public static class EqpEntryExtensions + { + public static bool Apply( this ref EqpEntry entry, MetaManipulation manipulation ) + { + if( manipulation.Type != MetaType.Eqp ) + { + return false; + } + + var mask = Eqp.Mask( manipulation.EqpIdentifier.Slot ); + var result = ( entry & ~mask ) | manipulation.EqpValue; + var ret = result != entry; + entry = result; + return ret; + } + + public static EqpEntry Reduce( this EqpEntry entry, EquipSlot slot ) + => entry & Eqp.Mask( slot ); + } + + public static class GmpEntryExtension + { + public static GmpEntry Apply( this GmpEntry entry, MetaManipulation manipulation ) + { + if( manipulation.Type != MetaType.Gmp ) + { + return entry; + } + + entry.Value = manipulation.GmpValue.Value; + return entry; + } + } +} \ No newline at end of file diff --git a/Penumbra/Meta/Files/CmpFile.cs b/Penumbra/Meta/Files/CmpFile.cs index 266e5e2b..6d6c68b0 100644 --- a/Penumbra/Meta/Files/CmpFile.cs +++ b/Penumbra/Meta/Files/CmpFile.cs @@ -4,6 +4,7 @@ using System.IO; using System.Linq; using Penumbra.Game; using Penumbra.GameData.Enums; +using Penumbra.GameData.Structs; namespace Penumbra.Meta.Files { diff --git a/Penumbra/Meta/Files/EqdpFile.cs b/Penumbra/Meta/Files/EqdpFile.cs index 4618011b..f9e6c4c1 100644 --- a/Penumbra/Meta/Files/EqdpFile.cs +++ b/Penumbra/Meta/Files/EqdpFile.cs @@ -2,7 +2,7 @@ using System; using System.IO; using System.Linq; using Lumina.Data; -using Penumbra.Game; +using Penumbra.GameData.Structs; namespace Penumbra.Meta.Files { diff --git a/Penumbra/Meta/Files/EqpFile.cs b/Penumbra/Meta/Files/EqpFile.cs index 2be4275d..56bd66e0 100644 --- a/Penumbra/Meta/Files/EqpFile.cs +++ b/Penumbra/Meta/Files/EqpFile.cs @@ -3,6 +3,7 @@ using System.IO; using System.Linq; using Lumina.Data; using Penumbra.Game; +using Penumbra.GameData.Structs; namespace Penumbra.Meta.Files { diff --git a/Penumbra/Meta/Files/GmpFile.cs b/Penumbra/Meta/Files/GmpFile.cs index 02322d20..01387a5f 100644 --- a/Penumbra/Meta/Files/GmpFile.cs +++ b/Penumbra/Meta/Files/GmpFile.cs @@ -1,5 +1,6 @@ using Lumina.Data; using Penumbra.Game; +using Penumbra.GameData.Structs; namespace Penumbra.Meta.Files { diff --git a/Penumbra/Meta/MetaManipulation.cs b/Penumbra/Meta/MetaManipulation.cs index a43cfe74..326b8519 100644 --- a/Penumbra/Meta/MetaManipulation.cs +++ b/Penumbra/Meta/MetaManipulation.cs @@ -3,8 +3,8 @@ using System.ComponentModel; using System.IO; using System.Runtime.InteropServices; using Newtonsoft.Json; -using Penumbra.Game; using Penumbra.GameData.Enums; +using Penumbra.GameData.Structs; using Penumbra.GameData.Util; using Penumbra.Meta.Files; using Swan; diff --git a/Penumbra/UI/MenuTabs/TabInstalled/TabInstalledDetailsManipulations.cs b/Penumbra/UI/MenuTabs/TabInstalled/TabInstalledDetailsManipulations.cs index 60e0a851..5f0847fe 100644 --- a/Penumbra/UI/MenuTabs/TabInstalled/TabInstalledDetailsManipulations.cs +++ b/Penumbra/UI/MenuTabs/TabInstalled/TabInstalledDetailsManipulations.cs @@ -8,6 +8,7 @@ using ImGuiNET; using Lumina.Data.Files; using Penumbra.Game; using Penumbra.GameData.Enums; +using Penumbra.GameData.Structs; using Penumbra.Meta; using Penumbra.Meta.Files; using Penumbra.Util;