FX Map Asset: Difference between revisions

From COD Engine Research
m CraigChrist8239 moved page FX Map Asset (MW2) to FX Map Asset without leaving a redirect: Little changed throughout the games.
No edit summary
Line 1: Line 1:
<!-- Just mapping the structure, I'll name stuff when I can look in mem-->
__NOTOC__
The fx_map asset is a new addition to Modern Warfare 2, and only exists on Infinity Ward games from then on. As such, there is virtually no known information about it.
[[Category:Assets]]
[[Category:MW2]]
[[Category:MW3]]
[[Category:Ghosts]]
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.
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
struct unknownFxWorldStruct1
struct GlassPane
{
{
   char unknown1[0x18];
   char unknown1[0x18];
   Material * unknownMaterial1;
   Material * glassMaterial;
   Material * unknownMaterial2;
   Material * glassSpiderwebMaterial;
   PhysPreset * unknownPhysPreset;
   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];
   char unknown2[8];
};
};
Line 14: Line 28:
{
{
   char unknown1[8];
   char unknown1[8];
   unsigned int unknownCount1;
   unsigned int glassCount;
   unsigned int unknownCount2;
   unsigned int unknownCount2;
   unsigned int unknownCount3;
   unsigned int unknownCount3;
Line 23: Line 37:
   int unknown6;
   int unknown6;
   unsigned int unknownCount6;
   unsigned int unknownCount6;
   unknownFxWorldStruct1 * unknownStructArray1; //Size = unknownCount1;
   GlassPane * glasses;
   char * unknown3; //Size = unknownCount2 << 5
   char * unknown3; //Size = unknownCount2 << 5
   char * unknown4; //Size = unknownCount2 << 5
   char * unknown4; //Size = unknownCount2 << 5
Line 34: Line 48:
   char * unknownC; //Size = ((unknownCount2 + 3) << 2) & 0xFFFFFFF0
   char * unknownC; //Size = ((unknownCount2 + 3) << 2) & 0xFFFFFFF0
   unsigned short unknownD; //Count = unknownCount4;
   unsigned short unknownD; //Count = unknownCount4;
#ifdef Ghosts
  char * unknownE; //Size = unknownCount4 * 0x38
#else
   char * unknownE; //Size = unknownCount4 * 0x34
   char * unknownE; //Size = unknownCount4 * 0x34
#endif
   char * unknownF; //Size = unknownCount6 << 2
   char * unknownF; //Size = unknownCount6 << 2
   char unknown10[0xC];
   char unknown10[0xC];

Revision as of 18:18, 14 February 2014

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