Very rough notes on the effect format.

struct CPSCRenderMesh
{
	char 		cpcsrendermesh[15];
	dword 	StringChecksum_MeshRenderer;
	byte 		unk2;
	dword 	meshID;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	word 		unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	word 		unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	word 		unk1;
	dword 	unk1;
	byte 		bools[5];
	byte 		terminator;
};


struct CPSCRendeSprite
{
	char 		CPSCRenderSprite[17];
	dword 		CRC; 			//Sprite Renderer
	byte 		Boolean;
	dword 		TextureID;
	dword 		TrailID;		
	dword 		Unknown;		//Radius/Scale??
	dword 		Unknown;		//Radius/Scale??
	dword 		unk1;
	dword 		unk1;
	dword 		unk1;
	dword 		unk1;
	dword 		unk1;
	dword 		unk1;
	dword 		unk1;
	dword 		unk1;
	dword 		unk1;
	dword 		unk1;
	dword 		unk1;
	dword 		unk1;
	dword 		unk1;            //StartRenderSize Y?
	dword 		unk1;            //StartRenderSize Z?
	dword 		unk1;            //EndRenderSize Y?
	dword 		unk1;            //EndRenderSize Z?
	dword 		unk1;
	dword 		unk1;
	dword 		unk1;
	dword 		unk1;
	byte 		bools[7];
	byte 		terminator;
};


struct CPSCSingleSprite
{
	char 		CPSCSingleSprite[17];
	dword 		CRC; 			//Single Sprite
	byte 		Boolean;
	dword 		TextureID;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	float 	unk1;
	float 	unk1;
	float 	unk1;
	float 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	float 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	byte 		bools[10];
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	dword 	unk1;
	word 		unk1;
	byte 		terminator;
};


struct CPSCUpdateNormal
{
	char		CPSCUpdateNormal[17];
	dword 		CRC;			//"Generic Particle System" String
	byte 		Boolean;
	dword 		unk1;
	dword 		unk1;
	dword 		unk1;
	word 		unk1;
	dword 		unk1;
	byte 		unk1;
	dword 		unk1;
	float 		floats[32];
	byte 		terminator;
};

struct OrbitDimension
{
	dword 		unk1;
	dword 		unk1;
	float 		Radius;  		// ??
	dword 		unk1;
	dword 		unk1;
	float 		float1; 		// doesnt do shit?  always 5?
	float 		RadiusAgain;  		// ?? always 1?
	float 		float3; 		// always 0 ?
	float 		AngularVelocity;  	// value*Pi rps
	dword 		unk1;
	dword 		unk1;
	dword 		unk1;
}OrbitDimension;

struct CPSCOrbit
{
	char 		CPSCOrbit[10];
	dword 		CRC; 			//"Orbit" String
	byte 		Boolean;
	dword 		CRC; 			//"System Offset" String
	OrbitDimension 	XOrbit; 		// North/South
	OrbitDimension 	YOrbit; 		// up/down
	OrbitDimension 	ZOrbit;
	byte 		Terminator;
};

struct CPSCEmitterGeneric
{
	char		CPSCEmitterGeneric[19];
	dword		CRC;			//"Generic Emitter" String
	byte		Boolean;
	dword		unk1;
	dword		unk1;
	dword		unk1;
	dword		unk1;
	dword		unk1;
	byte		bools[10]; 		//??
	dword		unk1;
	dword		unk1;
	dword		unk1;
	dword		unk1;
	dword		unk1;
	dword		unk1;
	word		unk3;
	dword		unk1;
	dword		unk1;
	dword		unk1;
	byte		unk2;
	dword		unk1;
	dword		unk1;
	dword		unk1;
	dword		unk1;
	dword		unk1;
	dword		unk1;
	byte		unk2;
	byte 		terminator;
};

struct CPSCAttractor
{
	char		CPSCAttractor[14];
	dword		CRC;			//"Attractor" String
	byte		Boolean;
	word		Unknown;
	dword		Unknown;
	dword		Unknown;		//Maybe Float??
	float		Floats[3];
	dword		FloatArray;		//3 floats per
	float		Floats[FloatArray*3];
	byte		Terminator
};

struct CPSCSpline
{
	char		CPSCSpline[11];
	dword		CRC;			//"Spline" String
	byte		Boolean;
	word		Unknown;
	float		Unknown;
	dword		FloatArray;		//3 floats per
	float		Floats[FloatArray*3];
	word		Unknown;
	byte		Terminator;
};

struct CPSCLight
{
	char		CPSCLight[10];
	dword		CRC;			//"Light" String
	byte		Boolean;
	dword		CRC;			//"System Offset" String
	float		Floats[6];
	dword		Unknown[5];
	word		Unknown;
	byte		Unknown[3];
	word		Unknown;
	dword		Unknown[4];
	byte		Terminator;
};

struct CPSCDecalRenderer
{
	char		CPSCDecalRenderer[18];
	dword		CRC;			//"Decal Renderer" String
	byte		Boolean;
	float		Unknown;
	dword		TextureID;
	dword		Unknown[13];
	byte		Unknown;
	word		Unknown;
	byte		Unknown;
	word		Unknown;
	dword		Unknown[3];
	byte		Unknown;
	dword		Unknown;
	byte		Unknown[4];
	float		Unknown;
	byte		Unknown;
	float		Unknown;
	byte		Unknown;
	float		Unknown;
	byte		Unknown;
	float		Unknown;
	dword		Unknown;
	byte		Terminator;
};

Misc CRC strings pulled from the main executable:

CPSCRenderSprite?

TrailWidth <--- seems odd in IDA / used?
FlickerBias
FlickerSpeed
EndRenderSize
StartRenderSize
AnimationTimeSecs
SizeFadeMinimum
AlphaFadeMinimum
TrailLengthInteger
FlickerMinSizeInteger
FlickerMinAlphaInteger
FlickerEnable
SizeFadeEnable
AlphaFadeEnable
FadeOutBeginInteger
FadeInEndInteger
NoCrossedSprites
TrailBlendOp
TrailBlendMode
BlendOp
BlendMode
EndColour
MidColour
StartColour
UseEndColour
UseMidColour
UseStartColour
ForceAnimationTime
SpriteAlignment
SelfIlluminating
RotateAroundCentre
CrossedSprites
FaceMe3D
FaceMe2D
SpriteFlags
TrailName
SpriteName
EEngineGraphic

CPSCRenderMesh?

EndRenderSizeZ
EndRenderSizeY
StartRenderSizeZ
StartRenderSizeY
TrailUseEndColour
TrailUseMidColour
TrailUseStartColour
CentredOnPos
UseRenderSizeParam
TrailEndColour
TrailMidColour
TrailStartColour
EndMeshAlpha
MidMeshAlpha
StartMeshAlpha
RenderSizeParam
BankIndexName
EMeshType2

CPSCAttractor?

AttractorUserPointsArray
AttractorUserPointsArraySize
AttractorInfluenceFallOffType
AttractorInfluenceForce
AttractorInfluenceRadius
AttractorPositionParamName
AttractorPositionParam
AttractorUseParamPosition
AttractorEnabled

CPSCLight?

LightUserPointsArray
LightUserPointsArraySize
LightTimelineSecs
LightStartTime
LightUseTimelineSecs
LightEndColour
LightMidColour
LightStartColour
LightUseEndColour
LightUseMidColour
LightUseStartColour
LightColourFadeMinimum
LightColourFadeEnable
LightUseFadeColour
LightWorldRadiusFadeMinimum
LightWorldRadiusFadeEnable
LightFadeOutBeginInteger
LightFadeInEndInteger
LightAttenuationFactor
LightEndRenderWorldRadius
LightStartRenderWorldRadius
LightRespawnDelaySecs
LightRespawns
LightLifeSecs
LightUseLifeSecs
LightPositionParam
LightEnabled

CPSCSpline

SplinePosOffsetLimit
EmitterSplineTension
SplinePosOffsetSpeed
SplineTension
UseSplinePoints
EmitterSplineUserPointsArray
SplineUserPointsArray
SplinePosOffsetLimitsSize
ScaleSplineSpeed
EmitterSplineUserPointsArraySize
EmitterSplineUserPointsArraySize_BugFixed ??
SplineConnectedEndPoints
MaintainSplineShape
SplinePosParamSize
SplineBounce
SplineAnimSpeed
SplineUserPointsArraySize
SplineUserPointsArraySize_BugFixed ??
 
file_formats/effect.txt · Last modified: 2006/12/07 11:05 by keshire
 
Recent changes RSS feed Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki