From 8507dc64bed6abc9b7777068103942c435ede71b Mon Sep 17 00:00:00 2001 From: theHostileNegotiator <61142710+theHostileNegotiator@users.noreply.github.com> Date: Mon, 5 Aug 2024 10:53:59 +1000 Subject: [PATCH] Added FXParticleSystemTemplate --- README.md | 2 +- .../BinaryAssetBuilder/XmlCompiler/Plugin.cs | 7 + ...rshaler.FXParticleSystemVelocityModules.cs | 4 + .../SageBinaryData/FXParticleSystem.cs | 201 +++++++++--------- .../FXParticleSystem/DrawModules.cs | 155 +++++++------- .../FXParticleSystem/EventModules.cs | 43 ++-- .../FXParticleSystem/FXParticleBase.cs | 143 +++++++------ .../FXParticleSystem/UpdateModules.cs | 63 +++--- .../FXParticleSystem/VelocityModules.cs | 75 +++---- .../FXParticleSystem/VolumeModules.cs | 117 +++++----- 10 files changed, 408 insertions(+), 402 deletions(-) diff --git a/README.md b/README.md index ac6bd345..6f15538c 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ BinaryAssetBuilder implementation for Kane's Wrath in .Net * [x] WeaponTemplate * [x] LocomotorTemplate * [ ] GameObject 0x132408DB -* [ ] FXParticleSystemTemplate 0xA148D511 +* [x] FXParticleSystemTemplate * [ ] Weather 0x368A8BA2 * [ ] ShadowMap 0xC6389FA6 * [ ] WaterTransparency 0x331DA6CE diff --git a/source/BinaryAssetBuilder.XmlCompiler/BinaryAssetBuilder/XmlCompiler/Plugin.cs b/source/BinaryAssetBuilder.XmlCompiler/BinaryAssetBuilder/XmlCompiler/Plugin.cs index 92c7f28d..18e66fda 100644 --- a/source/BinaryAssetBuilder.XmlCompiler/BinaryAssetBuilder/XmlCompiler/Plugin.cs +++ b/source/BinaryAssetBuilder.XmlCompiler/BinaryAssetBuilder/XmlCompiler/Plugin.cs @@ -124,6 +124,13 @@ public void Initialize(TargetPlatform platform) 0x50612DE9u, #endif false), + (typeof(FXParticleSystemTemplate), +#if TIBERIUMWARS + 0xA148D511u, +#elif KANESWRATH + 0xA0C56702u, +#endif + false), diff --git a/source/BinaryAssetBuilder.XmlCompiler/Marshaler.FXParticleSystemVelocityModules.cs b/source/BinaryAssetBuilder.XmlCompiler/Marshaler.FXParticleSystemVelocityModules.cs index f41c37e4..e4764af3 100644 --- a/source/BinaryAssetBuilder.XmlCompiler/Marshaler.FXParticleSystemVelocityModules.cs +++ b/source/BinaryAssetBuilder.XmlCompiler/Marshaler.FXParticleSystemVelocityModules.cs @@ -54,6 +54,7 @@ public static unsafe void Marshal(Node node, FXParticleEmissionVelocitySphere* o Marshal(node, (FXParticleEmissionVelocityBase*)objT, state); } +#if TIBERIUMWARS public static unsafe void Marshal(Node node, FXParticleEmissionVelocityHemisphere* objT, Tracker state) { if (node is null) @@ -62,6 +63,7 @@ public static unsafe void Marshal(Node node, FXParticleEmissionVelocityHemispher } Marshal(node, (FXParticleEmissionVelocitySphere*)objT, state); } +#endif public static unsafe void Marshal(Node node, FXParticleEmissionVelocityBase** objT, Tracker state) { @@ -73,9 +75,11 @@ public static unsafe void Marshal(Node node, FXParticleEmissionVelocityBase** ob Marshal(node.GetAttributeValue("TypeId", "0"), &typeId, Tracker.NullTracker); switch (typeId) { +#if TIBERIUMWARS case 0xB7B54FC2u: MarshalPolymorphicType(node, objT, state); break; +#endif case 0x8BB38534u: MarshalPolymorphicType(node, objT, state); break; diff --git a/source/SageBinaryData/SageBinaryData/FXParticleSystem.cs b/source/SageBinaryData/SageBinaryData/FXParticleSystem.cs index 02d2b824..eb400fec 100644 --- a/source/SageBinaryData/SageBinaryData/FXParticleSystem.cs +++ b/source/SageBinaryData/SageBinaryData/FXParticleSystem.cs @@ -1,114 +1,113 @@ using Relo; using System.Runtime.InteropServices; -namespace SageBinaryData +namespace SageBinaryData; + +[StructLayout(LayoutKind.Sequential)] +public struct RandomAlphaKeyframe { - [StructLayout(LayoutKind.Sequential)] - public struct RandomAlphaKeyframe - { - public ClientRandomVariable Base; - public Percentage RelativeAge; - public uint Frame; - } + public ClientRandomVariable Base; + public Percentage RelativeAge; + public uint Frame; +} - [StructLayout(LayoutKind.Sequential)] - public struct RGBColorKeyframe - { - public Percentage RelativeAge; - public uint Frame; - public Color3f Color; - } +[StructLayout(LayoutKind.Sequential)] +public struct RGBColorKeyframe +{ + public Percentage RelativeAge; + public uint Frame; + public Color3f Color; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticlePhysicsBase : IPolymorphic - { - public FXParticleBaseModule Base; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticlePhysicsBase : IPolymorphic +{ + public FXParticleBaseModule Base; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleDefaultPhysics - { - public FXParticlePhysicsBase Base; - public float Gravity; - public ClientRandomVariable VelocityDamping; - public Coord3D DriftVelocity; - public SageBool Swirly; - public SageBool ParticlesAttachToBone; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleDefaultPhysics +{ + public FXParticlePhysicsBase Base; + public float Gravity; + public ClientRandomVariable VelocityDamping; + public Coord3D DriftVelocity; + public SageBool Swirly; + public SageBool ParticlesAttachToBone; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleSwarmPhysics - { - public FXParticlePhysicsBase Base; - public float AttractStrength; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleSwarmPhysics +{ + public FXParticlePhysicsBase Base; + public float AttractStrength; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleAlpha - { - public List Alpha; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleAlpha +{ + public List Alpha; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleColor - { - public float HouseColorSaturation; - public List Color; - public ClientRandomVariable ColorScale; - public SageBool UseHouseColor; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleColor +{ + public float HouseColorSaturation; + public List Color; + public ClientRandomVariable ColorScale; + public SageBool UseHouseColor; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleWind - { - public FXParticleSystem_WindMotion Motion; - public float Strength; - public float FullStrengthDist; - public float ZeroStrengthDist; - public float AngleChangeMin; - public float AngleChangeMax; - public float PingPongStartAngleMin; - public float PingPongStartAngleMax; - public float PingPongEndAngleMin; - public float PingPongEndAngleMax; - public float TurbulenceAmplitude; - public float TurbulenceFrequency; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleWind +{ + public FXParticleSystem_WindMotion Motion; + public float Strength; + public float FullStrengthDist; + public float ZeroStrengthDist; + public float AngleChangeMin; + public float AngleChangeMax; + public float PingPongStartAngleMin; + public float PingPongStartAngleMax; + public float PingPongEndAngleMin; + public float PingPongEndAngleMax; + public float TurbulenceAmplitude; + public float TurbulenceFrequency; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleSystemTemplate - { - public BaseAssetType Base; - public FXParticleSystem_Priority Priority; - public FXParticleSystem_ShaderType Shader; - public FXParticleSystem_Type Type; - public AssetReference ParticleTexture; - public AssetReference Drawable; - public TypedAssetId SlaveSystem; // should be TypedAssetId but .net thinks it might be a circular reference - public TypedAssetId PerParticleAttachedSystem; // should be TypedAssetId but .net thinks it might be a circular reference - public uint SystemLifetime; - public uint SortLevel; - public unsafe AssetReference* EmitterSound; - public Coord3D SlavePosOffset; - public ClientRandomVariable Lifetime; - public ClientRandomVariable Size; - public ClientRandomVariable StartSizeRate; - public ClientRandomVariable BurstDelay; - public ClientRandomVariable BurstCount; - public ClientRandomVariable InitialDelay; - public unsafe FXParticleAlpha* Alphas; - public unsafe FXParticleColor* Colors; - public unsafe FXParticleWind* Wind; - public unsafe FXParticlePhysicsBase* Physics; - public unsafe FXParticleDrawBase* Draw; - public unsafe FXParticleEmissionVolumeBase* Volume; - public unsafe FXParticleEmissionVelocityBase* Velocity; - public PolymorphicList Event; - public unsafe FXParticleUpdateBase* Update; - public SageBool IsOneShot; - public SageBool IsGroundAligned; - public SageBool IsEmitAboveGroundOnly; - public SageBool IsParticleUpTowardsEmitter; - public SageBool UseMaximumHeight; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleSystemTemplate +{ + public BaseAssetType Base; + public FXParticleSystem_Priority Priority; + public FXParticleSystem_ShaderType Shader; + public FXParticleSystem_Type Type; + public AssetReference ParticleTexture; + public AssetReference Drawable; + public TypedAssetId SlaveSystem; // should be TypedAssetId but .net thinks it might be a circular reference + public TypedAssetId PerParticleAttachedSystem; // should be TypedAssetId but .net thinks it might be a circular reference + public uint SystemLifetime; + public uint SortLevel; + public unsafe AssetReference* EmitterSound; + public Coord3D SlavePosOffset; + public ClientRandomVariable Lifetime; + public ClientRandomVariable Size; + public ClientRandomVariable StartSizeRate; + public ClientRandomVariable BurstDelay; + public ClientRandomVariable BurstCount; + public ClientRandomVariable InitialDelay; + public unsafe FXParticleAlpha* Alphas; + public unsafe FXParticleColor* Colors; + public unsafe FXParticleWind* Wind; + public unsafe FXParticlePhysicsBase* Physics; + public unsafe FXParticleDrawBase* Draw; + public unsafe FXParticleEmissionVolumeBase* Volume; + public unsafe FXParticleEmissionVelocityBase* Velocity; + public PolymorphicList Event; + public unsafe FXParticleUpdateBase* Update; + public SageBool IsOneShot; + public SageBool IsGroundAligned; + public SageBool IsEmitAboveGroundOnly; + public SageBool IsParticleUpTowardsEmitter; + public SageBool UseMaximumHeight; } diff --git a/source/SageBinaryData/SageBinaryData/FXParticleSystem/DrawModules.cs b/source/SageBinaryData/SageBinaryData/FXParticleSystem/DrawModules.cs index 9551e206..5511bf36 100644 --- a/source/SageBinaryData/SageBinaryData/FXParticleSystem/DrawModules.cs +++ b/source/SageBinaryData/SageBinaryData/FXParticleSystem/DrawModules.cs @@ -2,91 +2,90 @@ using System.Runtime.InteropServices; using AnsiString = Relo.String; -namespace SageBinaryData +namespace SageBinaryData; + +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleDrawBase : IPolymorphic { - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleDrawBase : IPolymorphic - { - public FXParticleBaseModule Base; - } + public FXParticleBaseModule Base; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleDrawGpu - { - public FXParticleDrawBase Base; - public AnsiString Shader; - public int FramesPerRow; - public int TotalFrames; - public AssetReference DetailTexture; - public float SpeedMultiplier; - public FXParticleSystem_GeometryType GeometryType; - public SageBool SortParticles; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleDrawGpu +{ + public FXParticleDrawBase Base; + public AnsiString Shader; + public int FramesPerRow; + public int TotalFrames; + public AssetReference DetailTexture; + public float SpeedMultiplier; + public FXParticleSystem_GeometryType GeometryType; + public SageBool SortParticles; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleDrawLightningRandomSet - { - public ClientRandomVariable StartAmplitude; - public ClientRandomVariable EndAmplitude; - public ClientRandomVariable StartFrequency; - public ClientRandomVariable EndFrequency; - public ClientRandomVariable StartPhase; - public ClientRandomVariable EndPhase; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleDrawLightningRandomSet +{ + public ClientRandomVariable StartAmplitude; + public ClientRandomVariable EndAmplitude; + public ClientRandomVariable StartFrequency; + public ClientRandomVariable EndFrequency; + public ClientRandomVariable StartPhase; + public ClientRandomVariable EndPhase; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleDrawLightning - { - public FXParticleDrawBase Base; - public Coord3D StartPoint; - public Coord3D EndPoint; - public List RandomSet; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleDrawLightning +{ + public FXParticleDrawBase Base; + public Coord3D StartPoint; + public Coord3D EndPoint; + public List RandomSet; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleDrawRenderObjectObjectSet - { - public AnsiString RenderGroup; - public int NumObjects; - public Percentage Percent; - public FXParticleSystem_ShaderType Shader; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleDrawRenderObjectObjectSet +{ + public AnsiString RenderGroup; + public int NumObjects; + public Percentage Percent; + public FXParticleSystem_ShaderType Shader; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleDrawRenderObject - { - public FXParticleDrawBase Base; - public float SinkRate; - public List ObjectSet; - public SageBool MultiRenderObjects; - public SageBool SinkOnTerrainCollision; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleDrawRenderObject +{ + public FXParticleDrawBase Base; + public float SinkRate; + public List ObjectSet; + public SageBool MultiRenderObjects; + public SageBool SinkOnTerrainCollision; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleDrawStreak - { - public FXParticleDrawBase Base; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleDrawStreak +{ + public FXParticleDrawBase Base; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleDrawSwarm - { - public FXParticleDrawBase Base; - public float OpaqueSpeed; - public float TransparentSpeed; - public float SpeedStretchAmount; - public float AttractStrength; - public AssetReference EnvironmentTexture; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleDrawSwarm +{ + public FXParticleDrawBase Base; + public float OpaqueSpeed; + public float TransparentSpeed; + public float SpeedStretchAmount; + public float AttractStrength; + public AssetReference EnvironmentTexture; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleDrawTrail - { - public FXParticleDrawBase Base; - public int TrailLife; - public float UTile; - public float VTile; - public float UScrollRate; - public float VScrollRate; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleDrawTrail +{ + public FXParticleDrawBase Base; + public int TrailLife; + public float UTile; + public float VTile; + public float UScrollRate; + public float VScrollRate; } diff --git a/source/SageBinaryData/SageBinaryData/FXParticleSystem/EventModules.cs b/source/SageBinaryData/SageBinaryData/FXParticleSystem/EventModules.cs index 8f106aa8..2d46c671 100644 --- a/source/SageBinaryData/SageBinaryData/FXParticleSystem/EventModules.cs +++ b/source/SageBinaryData/SageBinaryData/FXParticleSystem/EventModules.cs @@ -1,29 +1,28 @@ using Relo; using System.Runtime.InteropServices; -namespace SageBinaryData +namespace SageBinaryData; + +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleEventBase : IPolymorphic { - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleEventBase : IPolymorphic - { - public FXParticleBaseModule Base; - public AssetReference EventFX; - public SageBool PerParticle; - public SageBool KillAfterEvent; - } + public FXParticleBaseModule Base; + public AssetReference EventFX; + public SageBool PerParticle; + public SageBool KillAfterEvent; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleEventLife - { - public FXParticleEventBase Base; - public ClientRandomVariable EventTime; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleEventLife +{ + public FXParticleEventBase Base; + public ClientRandomVariable EventTime; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleEventCollision - { - public FXParticleEventBase Base; - public ClientRandomVariable HeightOffset; - public SageBool OrientFXToTerrain; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleEventCollision +{ + public FXParticleEventBase Base; + public ClientRandomVariable HeightOffset; + public SageBool OrientFXToTerrain; } diff --git a/source/SageBinaryData/SageBinaryData/FXParticleSystem/FXParticleBase.cs b/source/SageBinaryData/SageBinaryData/FXParticleSystem/FXParticleBase.cs index 2fd9b307..fa6c290f 100644 --- a/source/SageBinaryData/SageBinaryData/FXParticleSystem/FXParticleBase.cs +++ b/source/SageBinaryData/SageBinaryData/FXParticleSystem/FXParticleBase.cs @@ -1,85 +1,84 @@ using System.Runtime.InteropServices; -namespace SageBinaryData +namespace SageBinaryData; + +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleBaseModule : IPolymorphic { - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleBaseModule : IPolymorphic - { - public uint TypeId; - } + public uint TypeId; +} - [StructLayout(LayoutKind.Sequential)] - public struct RandCoord3D - { +[StructLayout(LayoutKind.Sequential)] +public struct RandCoord3D +{ #pragma warning disable IDE1006 // Naming Styles - public ClientRandomVariable x; - public ClientRandomVariable y; - public ClientRandomVariable z; + public ClientRandomVariable x; + public ClientRandomVariable y; + public ClientRandomVariable z; #pragma warning restore IDE1006 // Naming Styles - } +} - public enum FXParticleSystem_Type - { - INVALID_TYPE, - PARTICLE, - DRAWABLE, - STREAK, - VOLUME_PARTICLE, - GPU_PARTICLE, - GPU_TERRAINFIRE, - SWARM, - TRAIL - } +public enum FXParticleSystem_Type +{ + INVALID_TYPE, + PARTICLE, + DRAWABLE, + STREAK, + VOLUME_PARTICLE, + GPU_PARTICLE, + GPU_TERRAINFIRE, + SWARM, + TRAIL +} - public enum FXParticleSystem_Priority - { - INVALID_PRIORITY, - ULTRA_HIGH_ONLY, - HIGH_OR_ABOVE, - MEDIUM_OR_ABOVE, - LOW_OR_ABOVE, - VERY_LOW_OR_ABOVE, - ALWAYS_RENDER - } +public enum FXParticleSystem_Priority +{ + INVALID_PRIORITY, + ULTRA_HIGH_ONLY, + HIGH_OR_ABOVE, + MEDIUM_OR_ABOVE, + LOW_OR_ABOVE, + VERY_LOW_OR_ABOVE, + ALWAYS_RENDER +} - public enum FXParticleSystem_WindMotion - { - INVALID, - NOT_USED, - PING_PONG, - CIRCULAR - } +public enum FXParticleSystem_WindMotion +{ + INVALID, + NOT_USED, + PING_PONG, + CIRCULAR +} - public enum FXParticleSystem_GeometryType - { - INVALID, - SIMPLE_QUAD, - CENTERED_QUAD, - TWO_CONCENTRIC_QUADS - } +public enum FXParticleSystem_GeometryType +{ + INVALID, + SIMPLE_QUAD, + CENTERED_QUAD, + TWO_CONCENTRIC_QUADS +} - public enum FXParticleSystem_ShaderType - { - INVALID_SHADER, - ADDITIVE, - ADDITIVE_ALPHA_TEST, - ALPHA, - ALPHA_TEST, - MULTIPLY, - ADDITIVE_NO_DEPTH_TEST, - ALPHA_NO_DEPTH_TEST, - W3D_DIFFUSE, - W3D_ALPHA, - W3D_EMISSIVE - } +public enum FXParticleSystem_ShaderType +{ + INVALID_SHADER, + ADDITIVE, + ADDITIVE_ALPHA_TEST, + ALPHA, + ALPHA_TEST, + MULTIPLY, + ADDITIVE_NO_DEPTH_TEST, + ALPHA_NO_DEPTH_TEST, + W3D_DIFFUSE, + W3D_ALPHA, + W3D_EMISSIVE +} - public enum FXParticleSystem_RotationType - { - INVALID_ROTATION, - ROTATION_OFF, - ROTATE_X, - ROTATE_Y, - ROTATE_Z, - ROTATE_V - } +public enum FXParticleSystem_RotationType +{ + INVALID_ROTATION, + ROTATION_OFF, + ROTATE_X, + ROTATE_Y, + ROTATE_Z, + ROTATE_V } diff --git a/source/SageBinaryData/SageBinaryData/FXParticleSystem/UpdateModules.cs b/source/SageBinaryData/SageBinaryData/FXParticleSystem/UpdateModules.cs index 717e98d6..ca07a9dc 100644 --- a/source/SageBinaryData/SageBinaryData/FXParticleSystem/UpdateModules.cs +++ b/source/SageBinaryData/SageBinaryData/FXParticleSystem/UpdateModules.cs @@ -1,38 +1,37 @@ using System.Runtime.InteropServices; -namespace SageBinaryData +namespace SageBinaryData; + +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleUpdateBase : IPolymorphic { - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleUpdateBase : IPolymorphic - { - public FXParticleBaseModule Base; - } + public FXParticleBaseModule Base; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleUpdateDefault - { - public FXParticleUpdateBase Base; - public FXParticleSystem_RotationType Rotation; - public ClientRandomVariable SizeRate; - public ClientRandomVariable SizeRateDamping; - public ClientRandomVariable AngleZ; - public ClientRandomVariable AngularRateZ; - public ClientRandomVariable AngularDamping; - public ClientRandomVariable AngleXY; - public ClientRandomVariable AngularRateXY; - public ClientRandomVariable AngularDampingXY; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleUpdateDefault +{ + public FXParticleUpdateBase Base; + public FXParticleSystem_RotationType Rotation; + public ClientRandomVariable SizeRate; + public ClientRandomVariable SizeRateDamping; + public ClientRandomVariable AngleZ; + public ClientRandomVariable AngularRateZ; + public ClientRandomVariable AngularDamping; + public ClientRandomVariable AngleXY; + public ClientRandomVariable AngularRateXY; + public ClientRandomVariable AngularDampingXY; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleUpdateRenderObject - { - public FXParticleUpdateBase Base; - public FXParticleSystem_RotationType Rotation; - public ClientRandomVariable AngleZ; - public ClientRandomVariable AngularRateZ; - public ClientRandomVariable AngularDamping; - public RandCoord3D StartSize; - public RandCoord3D SizeRate; - public RandCoord3D SizeDamping; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleUpdateRenderObject +{ + public FXParticleUpdateBase Base; + public FXParticleSystem_RotationType Rotation; + public ClientRandomVariable AngleZ; + public ClientRandomVariable AngularRateZ; + public ClientRandomVariable AngularDamping; + public RandCoord3D StartSize; + public RandCoord3D SizeRate; + public RandCoord3D SizeDamping; } diff --git a/source/SageBinaryData/SageBinaryData/FXParticleSystem/VelocityModules.cs b/source/SageBinaryData/SageBinaryData/FXParticleSystem/VelocityModules.cs index 7c10be2f..3ac23211 100644 --- a/source/SageBinaryData/SageBinaryData/FXParticleSystem/VelocityModules.cs +++ b/source/SageBinaryData/SageBinaryData/FXParticleSystem/VelocityModules.cs @@ -1,46 +1,47 @@ using System.Runtime.InteropServices; -namespace SageBinaryData +namespace SageBinaryData; + +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleEmissionVelocityBase : IPolymorphic { - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleEmissionVelocityBase : IPolymorphic - { - public FXParticleBaseModule Base; - } + public FXParticleBaseModule Base; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleEmissionVelocityCylinder - { - public FXParticleEmissionVelocityBase Base; - public ClientRandomVariable Radial; - public ClientRandomVariable Normal; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleEmissionVelocityCylinder +{ + public FXParticleEmissionVelocityBase Base; + public ClientRandomVariable Radial; + public ClientRandomVariable Normal; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleEmissionVelocityOrtho - { - public FXParticleEmissionVelocityBase Base; - public RandCoord3D Position; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleEmissionVelocityOrtho +{ + public FXParticleEmissionVelocityBase Base; + public RandCoord3D Position; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleEmissionVelocityOutward - { - public FXParticleEmissionVelocityBase Base; - public ClientRandomVariable Speed; - public ClientRandomVariable OtherSpeed; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleEmissionVelocityOutward +{ + public FXParticleEmissionVelocityBase Base; + public ClientRandomVariable Speed; + public ClientRandomVariable OtherSpeed; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleEmissionVelocitySphere - { - public FXParticleEmissionVelocityBase Base; - public ClientRandomVariable Speed; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleEmissionVelocitySphere +{ + public FXParticleEmissionVelocityBase Base; + public ClientRandomVariable Speed; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleEmissionVelocityHemisphere - { - public FXParticleEmissionVelocitySphere Base; - } +#if TIBERIUMWARS +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleEmissionVelocityHemisphere +{ + public FXParticleEmissionVelocitySphere Base; } +#endif diff --git a/source/SageBinaryData/SageBinaryData/FXParticleSystem/VolumeModules.cs b/source/SageBinaryData/SageBinaryData/FXParticleSystem/VolumeModules.cs index 29668dd6..f9f998fd 100644 --- a/source/SageBinaryData/SageBinaryData/FXParticleSystem/VolumeModules.cs +++ b/source/SageBinaryData/SageBinaryData/FXParticleSystem/VolumeModules.cs @@ -1,71 +1,70 @@ using System.Runtime.InteropServices; -namespace SageBinaryData +namespace SageBinaryData; + +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleEmissionVolumeBase : IPolymorphic { - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleEmissionVolumeBase : IPolymorphic - { - public FXParticleBaseModule Base; - public SageBool IsHollow; - } + public FXParticleBaseModule Base; + public SageBool IsHollow; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleEmissionVolumeBox - { - public FXParticleEmissionVolumeBase Base; - public Coord3D HalfSize; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleEmissionVolumeBox +{ + public FXParticleEmissionVolumeBase Base; + public Coord3D HalfSize; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleEmissionVolumeCylinder - { - public FXParticleEmissionVolumeBase Base; - public float Radius; - public float RadiusRate; - public float Length; - public Coord3D Offset; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleEmissionVolumeCylinder +{ + public FXParticleEmissionVolumeBase Base; + public float Radius; + public float RadiusRate; + public float Length; + public Coord3D Offset; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleEmissionVolumeLine - { - public FXParticleEmissionVolumeBase Base; - public Coord3D StartPoint; - public Coord3D EndPoint; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleEmissionVolumeLine +{ + public FXParticleEmissionVolumeBase Base; + public Coord3D StartPoint; + public Coord3D EndPoint; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleEmissionVolumeSpline - { - public FXParticleEmissionVolumeBase Base; - public Coord3D StartPoint; - public Coord3D EndPoint; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleEmissionVolumeSpline +{ + public FXParticleEmissionVolumeBase Base; + public Coord3D StartPoint; + public Coord3D EndPoint; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleEmissionVolumePoint - { - public FXParticleEmissionVolumeBase Base; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleEmissionVolumePoint +{ + public FXParticleEmissionVolumeBase Base; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleEmissionVolumeSphere - { - public FXParticleEmissionVolumeBase Base; - public float Radius; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleEmissionVolumeSphere +{ + public FXParticleEmissionVolumeBase Base; + public float Radius; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleEmissionVolumeTerrainFire - { - public FXParticleEmissionVolumeBase Base; - public float CellEmissionChance; - public RandCoord3D Offset; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleEmissionVolumeTerrainFire +{ + public FXParticleEmissionVolumeBase Base; + public float CellEmissionChance; + public RandCoord3D Offset; +} - [StructLayout(LayoutKind.Sequential)] - public struct FXParticleEmissionVolumeLightning - { - public FXParticleEmissionVolumeBase Base; - } +[StructLayout(LayoutKind.Sequential)] +public struct FXParticleEmissionVolumeLightning +{ + public FXParticleEmissionVolumeBase Base; }