FX Map Asset

From COD Engine Research
Revision as of 18:18, 14 February 2014 by CraigChrist8239 (talk | contribs)

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;
};