AIPaths Asset

From COD Engine Research
Revision as of 17:14, 17 February 2014 by CraigChrist8239 (talk | contribs) (Created page with "__NOTOC__ Category:Assets Category:MW3 Category:Ghosts The aipaths asset was added on Modern Warfare 3 and clearly holds pathing information for AI to follow aroun...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

The aipaths asset was added on Modern Warfare 3 and clearly holds pathing information for AI to follow around the map. This is part of the D3DBSP system produced by radiant. When compared to the vehicle_track asset, the pathing information in this asset is much more dynamic.

Modern Warfare 3

struct unknownAIPathsStruct1Internal1
{
  char unknown1[6];
  ScriptString unknownScriptString1;
  ScriptString unknownScriptString2;
  ScriptString unknownScriptString3;
  ScriptString unknownScriptString4;
  ScriptString unknownScriptString5;
  char unknown2[0x28];
  unsigned short unknownCount;
  char * unknown3; //Size ((unknownCount << 1) + unknownCount) << 2
};

struct unknownAIPathsStruct1
{
  unknownAIPathsStruct1Internal1 unknownEmbeddedStruct;
  char unknown[0x48];
};

struct unknownAIPathsUnion1Struct1
{
  unsigned int unknownCount;
  unsigned short * unknown; //Count = unknownCount
};

union unknownAIPathsUnion1;
{
  unknownAIPathsUnion1Struct1 unknownStruct1;
  unknownAIPathsUnion1 * repeater[2];
};

struct unknownAIPathsStruct2
{
  unknownAIPathsUnion1 unknownUnion;
  char unknown[8];
};

struct AIPaths
{
  const char * name;
  unsigned int unknownCount1;
  unknownAIPathsStruct1 * unknownStructArray1;
  char * unknown1; //Size = unknownCount1 << 4
  int unknown2;
  unsigned short * unknown3; //Count = unknownCount1;
  unsigned short * unknown4; //Count = unknowncount1;
  unsigned int unknownCount2;
  byte * unknown5; //Size = unknownCount2
  unsigned int unknownCount3;
  unknownAIPathsStruct2 * unknownStructArray2; //Count = unknownCount3
};

Ghosts

struct unknownAIPathsStruct1Internal1
{
  char unknown1[8];
  ScriptString unknownScriptString1;
  ScriptString unknownScriptString2;
  ScriptString unknownScriptString3;
  ScriptString unknownScriptString4;
  ScriptString unknownScriptString5;
  char unknown2[0x1E];
  union {
    ScriptString unknownScriptString6;
    unsigned short unknown35;
  };
  char unknown5[0xE];
  unsigned short unknownCount;
  char * unknown3; //Size ((unknownCount << 1) + unknownCount) << 2
};

struct unknownAIPathsStruct1
{
  unknownAIPathsStruct1Internal1 unknownEmbeddedStruct;
  char unknown[0x48];
};

struct unknownAIPathsUnion1Struct1
{
  unsigned int unknownCount;
  unsigned short * unknown; //Count = unknownCount
};

union unknownAIPathsUnion1;
{
  unknownAIPathsUnion1Struct1 unknownStruct1;
  unknownAIPathsUnion1 * repeater[2];
};

struct unknownAIPathsStruct2
{
  unknownAIPathsUnion1 unknownUnion;
  char unknown[8];
};

struct unknownAIPathsStruct3
{
  int unknown;
  unsigned int unknownCount;
  unknownAIPathsStruct2 * unknownStructArray; //Count = unknownCount
};

struct AIPaths
{
  const char * name;
  unsigned int unknownCount1;
  unknownAIPathsStruct1 * unknownStructArray1;
  unsigned int unknownCount2;
  byte * unknown1; //Size = unknownCount2
  unsigned int unknownCount3;
  unknownAIPathsStruct2 * unknownStructArray2; //Count = unknownCount3
  unsigned int unknownCount4;
  unknownAIPathsStruct3 * unknownStructArray3; //Count = unknownCount4
  unsigned int unknownCount5;
  byte * unknown2; //Size = unknownCount5
  unsigned int unknownCount6;
  byte * unknown3; //Size = unknownCount6
  int unknown4;
  unsigned int unknownCount7;
  byte * unknown5; //Size = unknownCount7
  unsigned int unknownCount8;
  byte * unknown6; //Size = unknownCount8;
};