	
//////////////////////////////////////
//	
// 	Visual-Effects	v0.01 
//	Class - Definitions 
//	Author: Carsten Edenfeld
//	
//////////////////////////////////////

CLASS C_ParticleFXEmitKey {

	// particle effect related key vars

	// vars which influence all particles all time
	VAR STRING	visName_S;
	VAR FLOAT   visSizeScale;
	VAR FLOAT   scaleDuration;		// time to reach full scale at this key for relevant vars (size, alpha, etc.)

	VAR FLOAT	pfx_ppsValue;
	VAR INT		pfx_ppsIsSmooth;
	VAR INT     pfx_ppsIsLooping;
	VAR FLOAT	pfx_scTime;
	VAR STRING	pfx_flyGravity_S;

	// vars which influence particles at creation level only
	VAR	STRING	pfx_shpDim_S;
	VAR INT		pfx_shpIsVolume;
	VAR FLOAT	pfx_shpScaleFPS;
	VAR FLOAT	pfx_shpDistribWalkSpeed;
	VAR STRING	pfx_shpOffsetVec_S;
	VAR STRING	pfx_shpDistribType_S;
	VAR STRING	pfx_dirMode_S;
	VAR	STRING	pfx_dirFOR_S;
	VAR	STRING	pfx_dirModeTargetFOR_S;
	VAR STRING	pfx_dirModeTargetPos_S;
	VAR FLOAT	pfx_velAvg;
	VAR FLOAT	pfx_lspPartAvg;

	VAR STRING	lightPresetName;
	VAR FLOAT	lightRange;
	VAR STRING	sfxID;
	VAR STRING	emCreateFXID;

	VAR STRING	emFlyGravity_S;
	VAR FLOAT	emTrjEaseVel;
	VAR STRING	emSelfRotVel_S;
	VAR	STRING	emKeyFOR_S;
	VAR STRING	emTrjMode_S;
	VAR	INT		emCheckCollision;
};


CLASS CFx_Base {

	VAR STRING	visName;
	VAR STRING	visSize_S;
	VAR FLOAT	visAlpha;
	VAR STRING	visAlphaBlendFunc_S;
	VAR FLOAT   visTexAniFPS;
	VAR INT     visTexAniIsLooping;

	VAR STRING  fxVarsModType_S;		// main particle fx is being controled by a) trajectory keys (extended & smoothed) or b) time keys (default, immediately)
	VAR STRING	emTrjMode_S;			// none, target, line, spline, random
	VAR STRING	emTrjOriginNode;
	VAR STRING	emTrjTargetNode;
	VAR INT		emTrjIsSmooth;
	VAR INT		emTrjNumKeys;
	VAR INT		emTrjNumKeysVar;
	VAR	FLOAT	emTrjAngleElevVar;
	VAR FLOAT	emTrjAngleHeadVar;
	VAR	FLOAT	emTrjKeyDistVar;
	VAR STRING  emTrjLoopMode_S;
	VAR STRING  emTrjEaseFunc_S;
	VAR FLOAT	emTrjEaseVel;
	VAR INT		emTrjFollowTarget;
	VAR FLOAT	emTrjDynUpdateDelay;
	VAR INT		emTrjDrawFilled;
	VAR STRING	emFXCreate_S;
	VAR STRING	emFXInvestOrigin_S;
	VAR STRING	emFXInvestTarget_S;
	VAR FLOAT	emFXCreateDelay;
	VAR INT		emFXCreatedOwnTrj;
	VAR STRING  emActionCollDyn_S;			// CREATE, BOUNCE
	VAR STRING  emActionCollStat_S;			// CREATE, BOUNCE
	VAR STRING	emFXCollStat_S;
	VAR STRING	emFXCollDyn_S;
	VAR STRING	emFXCollStatAlign_S;			// TRAJECTORY, COLLISIONNORMAL
	VAR STRING	emFXCollDynAlign_S;
	VAR INT		emCheckCollision;
	VAR FLOAT	emInvestNextKeyDuration;
	VAR STRING	emFlyGravity_S;
	VAR STRING  emSelfRotVel_S;
	VAR FLOAT   targetRange;
	VAR FLOAT	targetAzimuth;
	VAR FLOAT   targetElevation;
	VAR	STRING	lightPresetName;
	VAR STRING	sfxID;
};

PROTOTYPE CFx_Base_Proto(CFx_Base) {

	visName					= "";
	visAlpha				= 1;
	fxVarsModType_S			= "TIME";		// main particle fx is being controled by a) trajectory keys (extended & smoothed) or b) time keys (default, immediately)
	emTrjMode_S				= "FIXED";			// none, target, line, spline, random
	emTrjOriginNode			= "ZS_RIGHTHAND";
	emTrjTargetNode			= "BIP01 HEAD";
	emTrjIsSmooth			= 1;
	emTrjNumKeys			= 10;
	emTrjNumKeysVar			= 0;
	emTrjAngleElevVar		= 0;
	emTrjAngleHeadVar		= 0;
	emTrjKeyDistVar			= 0;
	emTrjLoopMode_S			= "NONE";
	emTrjEaseFunc_S			= "LINEAR";
	emTrjEaseVel			= 100;
	emTrjFollowTarget		= 1;
	emTrjDynUpdateDelay		= 2000000;
	emTrjDrawFilled			= 0;
	emFXCreate_S			= "";
	emFXCreateDelay			= 0;
	emFXCreatedOwnTrj		= 0;
	emActionCollDyn_S		= "";			// CREATE, BOUNCE
	emActionCollStat_S		= "";			// CREATE, BOUNCE
	emFXCollStat_S			= "";
	emFXCollDyn_S			= "";
	emFXCollStatAlign_S		= "";			// TRAJECTORY, COLLISIONNORMAL
	emFXCollDynAlign_S		= "";
	emCheckCollision		= 0;
	emInvestNextKeyDuration	= 0;
	emFlyGravity_S			= "0 0 0";
	emSelfRotVel_S			= "0 0 0";
	targetRange				= 10;
	targetAzimuth			= 0;
	targetElevation			= 0;
	lightPresetName			= "";
	sfxID					= "";
};

