Scriptable Asset

From COD Engine Research
Revision as of 00:30, 13 November 2014 by Aerosoul94 (talk | contribs)

The scriptable asset is used in Ghost and Advanced Warfare. It appears to be a format used to hold some scripting information for models and the collision map. Since it is so new, there is virtually nothing known about it.

struct unknownScriptableStruct1Internal1Internal1UnionStruct6
{
  char * unknownString;
  char unknown[0x14];
};

struct unknownScriptableStruct1Internal1Internal1UnionStruct5
{
  char unknown1[0x10];
  char * unknownString;
  char unknown2[4];
};

struct unknownScriptableStruct1Internal1Internal1UnionStruct4
{
  XModel * unknownModel;
  char unknown[8];
};

struct unknownScriptableStruct1Internal1Internal1UnionStruct3
{
  char * unknownString;
  char unknown[0x10];
};

struct unknownScriptableStruct1Internal1Internal1UnionStruct2
{
  snd_alias_list_name unknownSound;
  char unknown[4];
};

struct unknownScriptableStruct1Internal1Internal1UnionStruct1
{
  FxEffectDef * unknownFx;
  ScriptString unknownString;
  char unknown[6];
};

union unknownScriptableStruct1Internal1Internal1Union
{
  char (*unknown1)[6];  //If parent->type == 0xA
  XModel * unknownModel;//else if == 0
  unknownScriptableStruct1Internal1Internal1UnionStruct1 * unknownStruct1; //else if == 1
  unknownScriptableStruct1Internal1Internal1UnionStruct2 * unknownStruct2; //else if == 2
  unknownScriptableStruct1Internal1Internal1UnionStruct3 * unknownStruct3; //else if == 3
  char (*unknown2)[0xC];  //else if == 4
  char (*unknown3)[8];  //else if == 5
  unknownScriptableStruct1Internal1Internal1UnionStruct4 * unknownStruct4; //else if == 6
  unknownScriptableStruct1Internal1Internal1UnionStruct5 * unknownStruct5; //else if == 7
  char (*unknown4)[0x16]; //else if == 8
  unknownScriptableStruct1Internal1Internal1UnionStruct6 * unknownStruct6; //else if == 9

};

struct unknownScriptableStruct1Internal1Internal1
{
  int type;
  unknownScriptableStruct1Internal1Internal1Union unknownUnion;
};

struct unknownScriptableStruct1Internal1
{
  ScriptString unknownScriptString1;
  ScriptString unknownScriptString2;
  unknownScriptableStruct1Internal1Internal1 * unknownStructArray; //Count = unknownCount1;
  byte unknownCount1;
  char unknown[7];
};

struct unknownScriptableStruct1
{
  unknownScriptableStruct1Internal1 * unkownStructArray; //Count = unknownCount
  ScriptString unknownScriptString;
  unsigned short unknownCount;
  int unknown;
};

struct unknownScriptableStruct2Internal1
{
  FxEffectDef * unknownFx;
  ScriptString unknownScriptString;
};

struct unknownScriptableStruct2
{
  ScriptString unknownScriptString;
  int type;
  union {
       snd_alias_list_name unknownSound; //if type == 0
       unknownScriptableSTruct2Internal1 unknownStruct; //else if == 1
  };
};

struct Scriptable
{
  const char * name;
  XModel * unknownModel1;
  char * unknownString1;
  char * unknownString2;
  unknownScriptableStruct1 * unknownStructArray1; //count = unknownCount1
  unknownScriptableStruct2 * unknownStructArray2; //count = unknownCount2
  char unknown2[5];
  byte unknownCount1;
  char unknown1[2];
  byte unknownCount2;
};