diff --git a/README.md b/README.md index ac6bd345..d47a1fcb 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ BinaryAssetBuilder implementation for Kane's Wrath in .Net * [ ] MissionObjectiveList 0xC385A8C1 * [ ] StringHashTable 0x2C112832 * [ ] InGameUISettings 0x49FE3760 -* [ ] DamageFX 0x4DF81EBD +* [x] DamageFX * [ ] MultiplayerSettings 0x1BAF4C42 * [ ] OnlineChatColors 0xF3645AA7 * [ ] MultiplayerColor 0x966F336A diff --git a/source/BinaryAssetBuilder.XmlCompiler/BinaryAssetBuilder/XmlCompiler/Plugin.cs b/source/BinaryAssetBuilder.XmlCompiler/BinaryAssetBuilder/XmlCompiler/Plugin.cs index 92c7f28d..ab08f10a 100644 --- a/source/BinaryAssetBuilder.XmlCompiler/BinaryAssetBuilder/XmlCompiler/Plugin.cs +++ b/source/BinaryAssetBuilder.XmlCompiler/BinaryAssetBuilder/XmlCompiler/Plugin.cs @@ -140,6 +140,14 @@ public void Initialize(TargetPlatform platform) 0x9CDD1086u, #elif KANESWRATH 0x6D59C409u, +#endif + false), + + (typeof(DamageFX), +#if TIBERIUMWARS + 0x4DF81EBDu, +#elif KANESWRATH + 0xEC4577C9u, #endif false), }) diff --git a/source/SageBinaryData/SageBinaryData/DamageFX.cs b/source/SageBinaryData/SageBinaryData/DamageFX.cs index 87d65607..f6251f9f 100644 --- a/source/SageBinaryData/SageBinaryData/DamageFX.cs +++ b/source/SageBinaryData/SageBinaryData/DamageFX.cs @@ -1,32 +1,31 @@ using Relo; using System.Runtime.InteropServices; -namespace SageBinaryData +namespace SageBinaryData; + +[StructLayout(LayoutKind.Sequential)] +public struct DamageFXGroup { - [StructLayout(LayoutKind.Sequential)] - public struct DamageFXGroup - { - public DamageFXType Type; - public float Amount; - public Time ThrottleTime; - public AssetReference MajorFX; - public AssetReference MinorFX; - public AssetReference MajorVeteranFX; - public AssetReference MinorVeteranFX; - } + public DamageFXType Type; + public float Amount; + public Time ThrottleTime; + public AssetReference MajorFX; + public AssetReference MinorFX; + public AssetReference MajorVeteranFX; + public AssetReference MinorVeteranFX; +} - [StructLayout(LayoutKind.Sequential)] - public struct VeterancyDamageFXGroup - { - public DamageFXGroup Base; - public VeterancyLevel Veterancy; - } +[StructLayout(LayoutKind.Sequential)] +public struct VeterancyDamageFXGroup +{ + public DamageFXGroup Base; + public VeterancyLevel Veterancy; +} - [StructLayout(LayoutKind.Sequential)] - public struct DamageFX - { - public BaseAssetType Base; - public List FXGroup; - public List VeterancyFXGroup; - } +[StructLayout(LayoutKind.Sequential)] +public struct DamageFX +{ + public BaseAssetType Base; + public List FXGroup; + public List VeterancyFXGroup; } diff --git a/source/SageBinaryData/SageBinaryData/Includes/DamageFX.cs b/source/SageBinaryData/SageBinaryData/Includes/DamageFX.cs index 77cd1ff8..ad969758 100644 --- a/source/SageBinaryData/SageBinaryData/Includes/DamageFX.cs +++ b/source/SageBinaryData/SageBinaryData/Includes/DamageFX.cs @@ -1,52 +1,62 @@ -namespace SageBinaryData +namespace SageBinaryData; + +public enum DamageFXType { - public enum DamageFXType - { - DEFAULT = -1, - GDI_CANNON, - GDI_MISSILE, - GDI_MINE, - GDI_LASER, - GDI_MACHINEGUN, - GDI_RIFLE, - GDI_GRENADE, - GDI_FLAMETHROWER, - GDI_BOMB, - GDI_SONIC, - GDI_RAILGUN, - GDI_ION, - GDI_SHOCKWAVE, - NOD_CANNON, - NOD_MISSILE, - NOD_MINE, - NOD_LASER, - NOD_MACHINEGUN, - NOD_RIFLE, - NOD_GRENADE, - NOD_FLAMETHROWER, - NOD_BOMB, - NOD_SONIC, - NOD_RAILGUN, - NOD_ION, - NOD_SEED, - NOD_HALLUCINE, - ALIEN_CANNON, - ALIEN_PLASMADISK, - ALIEN_MINE, - ALIEN_LASER, - ALIEN_MACHINEGUN, - ALIEN_BUZZER, - ALIEN_GRENADE, - ALIEN_TIOXIN, - ALIEN_BOMB, - ALIEN_ION, - ALIEN_SONIC, - ALIEN_RAILGUN, - ALIEN_DISINTEGRATOR, - REFLECTED, - GENERIC_FIRE, - POISON, - CLUBBING, - UNDEFINED - } + DEFAULT = -1, + GDI_CANNON, + GDI_MISSILE, + GDI_MINE, + GDI_LASER, + GDI_MACHINEGUN, + GDI_RIFLE, + GDI_GRENADE, + GDI_FLAMETHROWER, + GDI_BOMB, + GDI_SONIC, + GDI_RAILGUN, + GDI_ION, + GDI_SHOCKWAVE, + NOD_CANNON, + NOD_MISSILE, + NOD_MINE, + NOD_LASER, + NOD_MACHINEGUN, + NOD_RIFLE, + NOD_GRENADE, + NOD_FLAMETHROWER, + NOD_BOMB, + NOD_SONIC, + NOD_RAILGUN, + NOD_ION, + NOD_SEED, + NOD_HALLUCINE, +#if KANESWRATH + NOD_PARTICLEBM, +#endif + ALIEN_CANNON, + ALIEN_PLASMADISK, + ALIEN_MINE, + ALIEN_LASER, + ALIEN_MACHINEGUN, + ALIEN_BUZZER, + ALIEN_GRENADE, + ALIEN_TIOXIN, + ALIEN_BOMB, + ALIEN_ION, + ALIEN_SONIC, + ALIEN_RAILGUN, + ALIEN_DISINTEGRATOR, + REFLECTED, + GENERIC_FIRE, + POISON, + CLUBBING, + UNDEFINED, +#if KANESWRATH + NOD_ARTILLERY, + NOD_SCHPARTICLE_BM, + NOD_TIBCOREMISSILE, + GDI_ECHOCANNON, + ALIEN_TIBSHARD, + ALIEN_TIBSHARDBLUE +#endif }