diff --git a/README.md b/README.md index ac6bd345..6efd7d4d 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ BinaryAssetBuilder implementation for Kane's Wrath in .Net * [ ] MpGameRules 0xEDDBB607 * [ ] ExperienceLevelTemplate 0xAE55047B * [ ] MissionObjectiveList 0xC385A8C1 -* [ ] StringHashTable 0x2C112832 +* [x] StringHashTable * [ ] InGameUISettings 0x49FE3760 * [ ] DamageFX 0x4DF81EBD * [ ] MultiplayerSettings 0x1BAF4C42 diff --git a/source/BinaryAssetBuilder.XmlCompiler/BinaryAssetBuilder/XmlCompiler/Plugin.cs b/source/BinaryAssetBuilder.XmlCompiler/BinaryAssetBuilder/XmlCompiler/Plugin.cs index 92c7f28d..75da5673 100644 --- a/source/BinaryAssetBuilder.XmlCompiler/BinaryAssetBuilder/XmlCompiler/Plugin.cs +++ b/source/BinaryAssetBuilder.XmlCompiler/BinaryAssetBuilder/XmlCompiler/Plugin.cs @@ -142,6 +142,16 @@ public void Initialize(TargetPlatform platform) 0x6D59C409u, #endif false), + + + + (typeof(StringHashTable), +#if TIBERIUMWARS + 0x2C112832u, +#elif KANESWRATH + 0xCBB109A0u, +#endif + false), }) { CreateTypeInfo(type, num, hash, hasCustomData); diff --git a/source/SageBinaryData/SageBinaryData/StringHashTable.cs b/source/SageBinaryData/SageBinaryData/StringHashTable.cs index a0d7c2a7..2b22c855 100644 --- a/source/SageBinaryData/SageBinaryData/StringHashTable.cs +++ b/source/SageBinaryData/SageBinaryData/StringHashTable.cs @@ -2,19 +2,18 @@ using System.Runtime.InteropServices; using AnsiString = Relo.String; -namespace SageBinaryData +namespace SageBinaryData; + +[StructLayout(LayoutKind.Sequential)] +public struct StringAndHash { - [StructLayout(LayoutKind.Sequential)] - public struct StringAndHash - { - public uint Hash; - public AnsiString Text; - } + public uint Hash; + public AnsiString Text; +} - [StructLayout(LayoutKind.Sequential)] - public struct StringHashTable - { - public BaseAssetType Base; - public List StringAndHash; - } +[StructLayout(LayoutKind.Sequential)] +public struct StringHashTable +{ + public BaseAssetType Base; + public List StringAndHash; }