Tearing myself away from minecraft for a few minutes....
04[05:13] <JohnDoe> Hey Kesh, at your convenience I'd love to see what you've got labeled with those effect structs.
I cleaned up the spec you gave me a bit for ease of reading.
I noticed that the unknowns that range from 0-1000 are percentages. value/10. So 1000 = 100%
The ones I messed with caused the sprite to blur, movexyz, and rotate. Just not sure which ones are which since I didn't have time to single them out.
typedef struct CPSCRenderSprite
{
zstring CPSCRenderSprite;
dword SectionCRC;
ubyte Boolean15;
dword SpriteName;
dword TrailName;
ubyte StartColourBGRA[4];
ubyte MidColourBGRA[4];
ubyte EndColourBGRA[4];
dword SpriteType;
//These dwords are percentages for sprite effects. 0-1000
dword Unknown5;
dword Unknown6;
dword Unknown7;
dword Unknown8;
dword Unknown9;
dword Unknown10;
dword Unknown11;
dword Unknown12;
dword Unknown13;
dword Unknown14;
dword Unknown15;
dword Unknown16;
//Sounds??
dword Unknown17;
dword Unknown18;
dword Unknown19;
dword Unknown20;
dword Unknown21;
dword Unknown22;
ubyte Boolean;
ubyte Boolean;
ubyte Boolean;
ubyte Boolean;
ubyte Boolean;
ubyte Boolean;
ubyte Boolean;
ubyte SectionTerminator1;
}CPSCRenderSprite;
struct CPSCSpline
{
zstring CPSCSpline;
dword CRC2;
ubyte Boolean23;
ubyte Boolean24;
ubyte Boolean25;
float Unknown23;
dword SplineUserPointsArraySize;
float SplineUserPointsArray[SplineUserPointsArraySize*3];
ubyte Boolean26;
ubyte UseSplinePoints; //Not sure
ubyte Boolean28;
dword SplineConnectedEndPoints;
dword CRC[SplineConnectedEndPoints];
ubyte SectionTerminator2;
}CPSCSpline;
struct CPSCEmitterGeneric
{
zstring CPSCEmitterGeneric;
dword CRC;
ubyte Boolean29;
dword CRC; //Emitter Type
dword Unknown25;
dword Unknown26;
dword Unknown27;
dword Unknown28;
ubyte Boolean30;
ubyte Boolean31;
ubyte Boolean32;
ubyte Boolean33;
ubyte Boolean34;
ubyte Boolean35;
ubyte Boolean36;
ubyte Boolean37;
ubyte Boolean38;
ubyte Boolean39;
dword Unknown29;
dword Unknown30;
dword Unknown31;
dword Unknown32;
dword Unknown33;
dword Unknown34;
ubyte Boolean40;
ubyte Boolean41;
dword Unknown35;
dword Unknown36;
dword Unknown37;
ubyte Boolean42;
dword Unknown38;
dword Unknown39;
dword Unknown40;
dword Unknown41;
dword Unknown42;
dword Unknown43;
ubyte Boolean43;
switch(Boolean43)
{
case 1:
float Unknown44;
dword UnknownCount2;
dword Unknown45[UnknownCount2*3];
break;
default:
break;
};
ubyte SectionTerminator3;
}CPSCEmitterGeneric;
struct CPSCUpdateNormal
{
zstring CPSCUpdateNormal;
dword CRC4;
ubyte Boolean44;
dword Unknown46;
dword Unknown47;
ubyte Boolean45;
ubyte Boolean46;
ubyte Boolean47;
ubyte Boolean48;
ubyte Boolean49;
ubyte Boolean50;
ubyte Boolean51;
ubyte Boolean52;
ubyte Boolean53;
ubyte Boolean54;
ubyte Boolean55;
ubyte Boolean56;
ubyte Boolean57;
ubyte Boolean58;
ubyte Boolean59;
ubyte Boolean60;
ubyte Boolean61;
ubyte Boolean62;
ubyte Boolean63;
float Unknown48;
float Unknown49;
float Unknown50;
float Unknown51;
float Unknown52;
float Unknown53;
float Unknown54;
float Unknown55;
float Unknown56;
float Unknown57;
float Unknown58;
float Unknown59;
float Unknown60;
float Unknown61;
float Unknown62;
float Unknown63;
float Unknown64;
float Unknown65;
float Unknown66;
float Unknown67;
float Unknown68;
float Unknown69;
float Unknown70;
float Unknown71;
float Unknown72;
float Unknown73;
float Unknown74;
float Unknown75;
float Unknown76;
float Unknown77;
float Unknown78;
float Unknown79;
ubyte SectionTerminator4;
ubyte EffectsTerminator;
}CPSCUpdateNormal;
//32bit switch is BROKEN!!
typedef struct Section
{
//zstring SectionName;
dword SectionCRC;
switch (SectionCRC)
{
case 2362561053:
CPSCRenderSprite CPSC;
break;
default:
break;
};
}Section;
struct header
{
dword Unknown1;
zstring EffectName;
ubyte Booleans[7];
float Floats[3];
dword Unknown2;
dword Unknown3;
dword Unknown4;
ubyte Booleans[5];
dword effectcount;
}header;
struct effect
{
zstring EffectName;
ubyte Booleans[2];
float ScaleXYZ[3];
dword SectionCount;
}effect;
[Updated on: Wed, 01 December 2010 06:22]
Report message to a moderator