Directors Cut Wiki : ParticleFiles

DirectorsCutModdingFoundry Categories PageIndex RecentChanges RecentlyCommented Login/Register
Trail: OtherTemplates Oversize3 OvrX OwnedPages PageIndex PakFiles ParticleDescFiles ParticleFiles

These are the binary files that the game uses to define particle effects.

Technical File Info

//--------------------------------------
//--- 010 Editor v2.1.3 Binary Template
//
// File: LH .mfx File
// Author: Glen Rickey (based primarily on research by XImplosionX)
// Revision: 0.01
// Purpose: To parse LH compiled particle effect files .mfx
//--------------------------------------
struct mfxFile {
struct head
	{
	int	unk;
	int16 	sysCount;
	int16	unknown;
	int	sysSize;
	struct bitflag
		{
		ubyte	flag1	:1 ;
		ubyte	flag1	:1 ;
		ubyte	flag1	:1 ;
		ubyte	flag1	:1 ;
		ubyte	flag1	:1 ;
		ubyte	flag1	:1 ;
		ubyte	flag1	:1 ;
		ubyte	flag1	:1 ;
		} flags[4];	
	} mfxHead;

struct sys 
	{
	int	sysNameIndex;
	float	ScaleX;
	float	ScaleY;
	float	ScaleZ;

	ubyte	flags1[4];
	// Particles
	float	ParticleLifeSecs;
	float	ParticleSystemOffsetX;
	float	ParticleSystemOffsetY;
	float	ParticleSystemOffsetZ;

	float	GravityFactor;
	float	AirResistance;
	
	float	ParticleAccelX;
	float	ParticleAccelY;
	float	ParticleAccelZ;

	float	InitialRotationX;
	float	InitialRotationY;
	float	InitialRotationZ;

	float	RotationAxisX; //or CustomDirectionX?
	float	RotationAxisY; //or CustomDirectionY?
	float	RotationAxisZ; //or CustomDirectionZ?

	float	RotMinAngleSpeed;
	float	RotMaxAngleSpeed;
	float	ParticleBounce;

	ubyte	flags2[4];
	
	//CenterParam
	int	CenterParamIndex;
	struct	centerParam 
		{
		float	Radius;
		float	RotateSpeed;
		int32	Type;
		} cParam[3];

	float	AttractorInfluenceRadius;
	float	AttractorInfluenceForce;
	float	AttractorInfluenceType;

	float	EmitterSize;
	int32	EmitterType;

	struct	{
		ubyte	UseEmitterLifeSecs;
		ubyte	unk[3];
		} flags3;

	float	EmitterLifeSecs;
	float	EmitterStartTime;
	float	ParticlesPerSec;
	float	MinSpeed;
	float	MaxSpeed;

	float	CustDirX;
	float	CustDirY;
	float	CustDirZ;

	float	NonUniformScaleX;
	float	NonUniformScaleY;
	float	NonUniformScaleZ;

	int32	ParticlesToStart;
	int32	ParticlesToStartRand;
	int32	AnglePerturbationInt;

	int32	EmitterPosParamIndex;

	int32	DirectionParamNameIndex;
	
	int32	SpriteNameIndex;

	int32	FadeInEndInt;
	int32	FadeOutBeginInt;

	ubyte	flags4[4];

	float	AlphaFadeMinimum;
	float	SizeFadeMinimum;
	float	StartRenderSize;
	float	EndRenderSize;

#include "ColorRGBA.bt"
	color  	StartColour;
	color 	MidColour;
	color	EndColour;

	struct 	{	
		ubyte UseStartColour;
		ubyte UseMidColour;
		ubyte UseEndColour;
		ubyte pad;
		}ColourFlags;

	int32	BlendMode;
	int32	BlendOp;
	int32	SpriteFlags;

	int32	TrailNameIndex;
	
	int32	TrailBlendMode;
	int32	TrailBlendOp;
	float	TrailWidth;
	int32	TrailLengthInt;

	int32	BankNameIndex;

	ubyte	flags5[4];

		
} Sys[mfxHead.sysCount];

ubyte	pad;
struct SysStrings
{
	char	sysName[];
	char	SpriteName[];
	char	TrailName[];
	char	EmitterPosParam[];
	char	DirectionParamName[];
//	char 	DecalEmitterName[];
	
} Strings[mfxHead.sysCount] <optimize=false>;
} MFX;
 Comments [Hide comments/form]
Valid XHTML 1.0 Transitional Valid CSS Powered by Wikka Wakka Wiki 1.1.6.2
Page was generated in 0.0172 seconds