FX Map Asset
The fx_map asset is a new addition to Modern Warfare 2, and only exists on Infinity Ward games from then on. It is part of the D3DBSP system produced by Radiant. Although it appears to have changed very little throughout the series, there is virtually no known information about it.
struct GlassPane
{
char unknown1[0x18];
Material * glassMaterial;
Material * glassSpiderwebMaterial;
PhysPreset * glassChunkPhysics;
#ifdef Ghosts
FxEffectDef * shatterPiece;
FxEffectDef * shatterLargeFx;
FxEffectDef * shatterSmallFx;
FxEffectDef * unknownFx4;
snd_alias_list_name shatterSound;
snd_alias_list_name blowoutSound;
snd_alias_list_name breakoutSound;
char unknown3[8];
#endif
char unknown2[8];
};
struct FxWorld
{
char unknown1[8];
unsigned int glassCount;
unsigned int unknownCount2;
unsigned int unknownCount3;
unsigned int unknownCount4;
unsigned int unknownCount5;
char unknown2[8];
unsigned int unknownCount7;
int unknown6;
unsigned int unknownCount6;
GlassPane * glasses;
char * unknown3; //Size = unknownCount2 << 5
char * unknown4; //Size = unknownCount2 << 5
char * unknown5; //Size = ((unknownCount2 << 3) + unknownCount2) << 2
char * unknown7; //Size = unknownCount7 << 2
unsigned int * unknown8; //Count = unknownCount3
unsigned int * unknown9; //Count = unknownCount3 * unknownCount5
unsigned __int16 * unknownA; //Total size = (unknownCount2 + 0xF) & 0xFF
char * unknownB; //Size = ((unknownCount2 << 1) + unknownCount2) << 2
char * unknownC; //Size = ((unknownCount2 + 3) << 2) & 0xFFFFFFF0
unsigned short unknownD; //Count = unknownCount4;
#ifdef Ghosts
char * unknownE; //Size = unknownCount4 * 0x38
#else
char * unknownE; //Size = unknownCount4 * 0x34
#endif
char * unknownF; //Size = unknownCount6 << 2
char unknown10[0xC];
};
struct FxMap
{
const char * name;
FxWorld surfaces;
};