Menu Asset (CoD4): Difference between revisions

From COD Engine Research
No edit summary
mNo edit summary
Line 1: Line 1:
__NOTOC__
<syntaxhighlight lang="cpp">
[[Category:Assets]]
enum operationEnum
[[Category:CoD4]]
{
Menu asset's store information for most menu's you see in the game. Each menu is made up of many item's such as labels, menu options, images, etc. Both menu's and items use their own data structure, each having info such as color, text, font, and more.
  OP_NOOP = 0x0,
enum operationEnum
  OP_RIGHTPAREN = 0x1,
{
  OP_MULTIPLY = 0x2,
  OP_NOOP = 0x0,
  OP_DIVIDE = 0x3,
  OP_RIGHTPAREN = 0x1,
  OP_MODULUS = 0x4,
  OP_MULTIPLY = 0x2,
  OP_ADD = 0x5,
  OP_DIVIDE = 0x3,
  OP_SUBTRACT = 0x6,
  OP_MODULUS = 0x4,
  OP_NOT = 0x7,
  OP_ADD = 0x5,
  OP_LESSTHAN = 0x8,
  OP_SUBTRACT = 0x6,
  OP_LESSTHANEQUALTO = 0x9,
  OP_NOT = 0x7,
  OP_GREATERTHAN = 0xA,
  OP_LESSTHAN = 0x8,
  OP_GREATERTHANEQUALTO = 0xB,
  OP_LESSTHANEQUALTO = 0x9,
  OP_EQUALS = 0xC,
  OP_GREATERTHAN = 0xA,
  OP_NOTEQUAL = 0xD,
  OP_GREATERTHANEQUALTO = 0xB,
  OP_AND = 0xE,
  OP_EQUALS = 0xC,
  OP_OR = 0xF,
  OP_NOTEQUAL = 0xD,
  OP_LEFTPAREN = 0x10,
  OP_AND = 0xE,
  OP_COMMA = 0x11,
  OP_OR = 0xF,
  OP_BITWISEAND = 0x12,
  OP_LEFTPAREN = 0x10,
  OP_BITWISEOR = 0x13,
  OP_COMMA = 0x11,
  OP_BITWISENOT = 0x14,
  OP_BITWISEAND = 0x12,
  OP_BITSHIFTLEFT = 0x15,
  OP_BITWISEOR = 0x13,
  OP_BITSHIFTRIGHT = 0x16,
  OP_BITWISENOT = 0x14,
  OP_SIN = 0x17,
  OP_BITSHIFTLEFT = 0x15,
  OP_FIRSTFUNCTIONCALL = 0x17,
  OP_BITSHIFTRIGHT = 0x16,
  OP_COS = 0x18,
  OP_SIN = 0x17,
  OP_MIN = 0x19,
  OP_FIRSTFUNCTIONCALL = 0x17,
  OP_MAX = 0x1A,
  OP_COS = 0x18,
  OP_MILLISECONDS = 0x1B,
  OP_MIN = 0x19,
  OP_DVARINT = 0x1C,
  OP_MAX = 0x1A,
  OP_DVARBOOL = 0x1D,
  OP_MILLISECONDS = 0x1B,
  OP_DVARFLOAT = 0x1E,
  OP_DVARINT = 0x1C,
  OP_DVARSTRING = 0x1F,
  OP_DVARBOOL = 0x1D,
  OP_STAT = 0x20,
  OP_DVARFLOAT = 0x1E,
  OP_UIACTIVE = 0x21,
  OP_DVARSTRING = 0x1F,
  OP_FLASHBANGED = 0x22,
  OP_STAT = 0x20,
  OP_SCOPED = 0x23,
  OP_UIACTIVE = 0x21,
  OP_SCOREBOARDVISIBLE = 0x24,
  OP_FLASHBANGED = 0x22,
  OP_INKILLCAM = 0x25,
  OP_SCOPED = 0x23,
  OP_PLAYERFIELD = 0x26,
  OP_SCOREBOARDVISIBLE = 0x24,
  OP_SELECTINGLOCATION = 0x27,
  OP_INKILLCAM = 0x25,
  OP_TEAMFIELD = 0x28,
  OP_PLAYERFIELD = 0x26,
  OP_OTHERTEAMFIELD = 0x29,
  OP_SELECTINGLOCATION = 0x27,
  OP_MARINESFIELD = 0x2A,
  OP_TEAMFIELD = 0x28,
  OP_OPFORFIELD = 0x2B,
  OP_OTHERTEAMFIELD = 0x29,
  OP_MENUISOPEN = 0x2C,
  OP_MARINESFIELD = 0x2A,
  OP_WRITINGDATA = 0x2D,
  OP_OPFORFIELD = 0x2B,
  OP_INLOBBY = 0x2E,
  OP_MENUISOPEN = 0x2C,
  OP_INPRIVATEPARTY = 0x2F,
  OP_WRITINGDATA = 0x2D,
  OP_PRIVATEPARTYHOST = 0x30,
  OP_INLOBBY = 0x2E,
  OP_PRIVATEPARTYHOSTINLOBBY = 0x31,
  OP_INPRIVATEPARTY = 0x2F,
  OP_ALONEINPARTY = 0x32,
  OP_PRIVATEPARTYHOST = 0x30,
  OP_ADSJAVELIN = 0x33,
  OP_PRIVATEPARTYHOSTINLOBBY = 0x31,
  OP_WEAPLOCKBLINK = 0x34,
  OP_ALONEINPARTY = 0x32,
  OP_WEAPATTACKTOP = 0x35,
  OP_ADSJAVELIN = 0x33,
  OP_WEAPATTACKDIRECT = 0x36,
  OP_WEAPLOCKBLINK = 0x34,
  OP_SECONDSASTIME = 0x37,
  OP_WEAPATTACKTOP = 0x35,
  OP_TABLELOOKUP = 0x38,
  OP_WEAPATTACKDIRECT = 0x36,
  OP_LOCALIZESTRING = 0x39,
  OP_SECONDSASTIME = 0x37,
  OP_LOCALVARINT = 0x3A,
  OP_TABLELOOKUP = 0x38,
  OP_LOCALVARBOOL = 0x3B,
  OP_LOCALIZESTRING = 0x39,
  OP_LOCALVARFLOAT = 0x3C,
  OP_LOCALVARINT = 0x3A,
  OP_LOCALVARSTRING = 0x3D,
  OP_LOCALVARBOOL = 0x3B,
  OP_TIMELEFT = 0x3E,
  OP_LOCALVARFLOAT = 0x3C,
  OP_SECONDSASCOUNTDOWN = 0x3F,
  OP_LOCALVARSTRING = 0x3D,
  OP_TOINT = 0x40,
  OP_TIMELEFT = 0x3E,
  OP_TOSTRING = 0x41,
  OP_SECONDSASCOUNTDOWN = 0x3F,
  OP_TOFLOAT = 0x42,
  OP_TOINT = 0x40,
  OP_GAMETYPENAME = 0x43,
  OP_TOSTRING = 0x41,
  OP_GAMETYPE = 0x44,
  OP_TOFLOAT = 0x42,
  OP_GAMETYPEDESCRIPTION = 0x45,
  OP_GAMETYPENAME = 0x43,
  OP_SCORE = 0x46,
  OP_GAMETYPE = 0x44,
  OP_FRIENDSONLINE = 0x47,
  OP_GAMETYPEDESCRIPTION = 0x45,
  OP_FOLLOWING = 0x48,
  OP_SCORE = 0x46,
  OP_STATRANGEBITSSET = 0x49,
  OP_FRIENDSONLINE = 0x47,
  NUM_OPERATORS = 0x4A,
  OP_FOLLOWING = 0x48,
};
  OP_STATRANGEBITSSET = 0x49,
 
  NUM_OPERATORS = 0x4A,
struct listBoxDef_s
};
{
  int startPos[4];
struct listBoxDef_s
  int endPos[4];
{
  int drawPadding;
  int startPos[4];
  float elementWidth;
  int endPos[4];
  float elementHeight;
  int drawPadding;
  int elementStyle;
  float elementWidth;
  int numColumns;
  float elementHeight;
  columnInfo_s columnInfo[16];
  int elementStyle;
  const char *doubleClick;
  int numColumns;
  int notselectable;
  columnInfo_s columnInfo[16];
  int noScrollBars;
  const char *doubleClick;
  int usePaging;
  int notselectable;
  float selectBorder[4];
  int noScrollBars;
  float disableColor[4];
  int usePaging;
  Material *selectIcon;
  float selectBorder[4];
};
  float disableColor[4];
 
  Material *selectIcon;
struct editFieldDef_s
};
{
  float minVal;
struct editFieldDef_s
  float maxVal;
{
  float defVal;
  float minVal;
  float range;
  float maxVal;
  int maxChars;
  float defVal;
  int maxCharsGotoNext;
  float range;
  int maxPaintChars;
  int maxChars;
  int paintOffset;
  int maxCharsGotoNext;
};
  int maxPaintChars;
 
  int paintOffset;
struct multiDef_s
};
{
  const char *dvarList[32];
struct multiDef_s
  const char *dvarStr[32];
{
  float dvarValue[32];
  const char *dvarList[32];
  int count;
  const char *dvarStr[32];
  int strDef;
  float dvarValue[32];
};
  int count;
 
  int strDef;
union itemDefData_t
};
{
  listBoxDef_s *listBox;
union itemDefData_t
  editFieldDef_s *editField;
{
  multiDef_s *multi;
  listBoxDef_s *listBox;
  const char *enumDvarName;
  editFieldDef_s *editField;
  void *data;
  multiDef_s *multi;
};
  const char *enumDvarName;
 
  void *data;
union operandInternalDataUnion
};
{
  int intVal;
union operandInternalDataUnion
  float floatVal;
{
  const char *string;
  int intVal;
};
  float floatVal;
 
  const char *string;
struct Operand
};
{
  expDataType dataType;
struct Operand
  operandInternalDataUnion internals;
{
};
  expDataType dataType;
 
  operandInternalDataUnion internals;
union entryInternalData
};
{
  operationEnum op;
union entryInternalData
  Operand operand;
{
};
  operationEnum op;
 
  Operand operand;
struct expressionEntry
};
{
  int type;
struct expressionEntry
  entryInternalData data;
{
};
  int type;
 
  entryInternalData data;
struct statement_s
};
{
  int numEntries;
struct statement_s
  expressionEntry **entries;
{
};
  int numEntries;
 
  expressionEntry **entries;
struct ItemKeyHandler
};
{
  int key;
struct ItemKeyHandler
  const char *action;
{
  ItemKeyHandler *next;
  int key;
};
  const char *action;
 
  ItemKeyHandler *next;
struct rectDef_s
};
{
  float x;
struct rectDef_s
  float y;
{
  float w;
  float x;
  float h;
  float y;
  int horzAlign;
  float w;
  int vertAlign;
  float h;
};
  int horzAlign;
 
  int vertAlign;
struct windowDef_t
};
{
  const char *name;
struct windowDef_t
  rectDef_s rect;
{
  rectDef_s rectClient;
  const char *name;
  const char *group;
  rectDef_s rect;
  int style;
  rectDef_s rectClient;
  int border;
  const char *group;
  int ownerDraw;
  int style;
  int ownerDrawFlags;
  int border;
  float borderSize;
  int ownerDraw;
  int staticFlags;
  int ownerDrawFlags;
  int dynamicFlags[4];
  float borderSize;
  int nextTime;
  int staticFlags;
  float foreColor[4];
  int dynamicFlags[4];
  float backColor[4];
  int nextTime;
  float borderColor[4];
  float foreColor[4];
  float outlineColor[4];
  float backColor[4];
  Material *background;
  float borderColor[4];
};
  float outlineColor[4];
 
  Material *background;
struct itemDef_s
};
{
  windowDef_t window;
struct itemDef_s
  rectDef_s textRect[4];
{
  int type;
  windowDef_t window;
  int dataType;
  rectDef_s textRect[4];
  int alignment;
  int type;
  int fontEnum;
  int dataType;
  int textAlignMode;
  int alignment;
  float textalignx;
  int fontEnum;
  float textaligny;
  int textAlignMode;
  float textscale;
  float textalignx;
  int textStyle;
  float textaligny;
  int gameMsgWindowIndex;
  float textscale;
  int gameMsgWindowMode;
  int textStyle;
  const char *text;
  int gameMsgWindowIndex;
  int textSavegameInfo;
  int gameMsgWindowMode;
  menuDef_t *parent;
  const char *text;
  const char *mouseEnterText;
  int textSavegameInfo;
  const char *mouseExitText;
  menuDef_t *parent;
  const char *mouseEnter;
  const char *mouseEnterText;
  const char *mouseExit;
  const char *mouseExitText;
  const char *action;
  const char *mouseEnter;
  const char *onAccept;
  const char *mouseExit;
  const char *onFocus;
  const char *action;
  const char *leaveFocus;
  const char *onAccept;
  const char *dvar;
  const char *onFocus;
  const char *dvarTest;
  const char *leaveFocus;
  ItemKeyHandler *onKey;
  const char *dvar;
  const char *enableDvar;
  const char *dvarTest;
  int dvarFlags;
  ItemKeyHandler *onKey;
  snd_alias_list_t *focusSound;
  const char *enableDvar;
  float special;
  int dvarFlags;
  int cursorPos[4];
  snd_alias_list_t *focusSound;
  itemDefData_t typeData;
  float special;
  int imageTrack;
  int cursorPos[4];
  statement_s visibleExp;
  itemDefData_t typeData;
  statement_s textExp;
  int imageTrack;
  statement_s materialExp;
  statement_s visibleExp;
  statement_s rectXExp;
  statement_s textExp;
  statement_s rectYExp;
  statement_s materialExp;
  statement_s rectWExp;
  statement_s rectXExp;
  statement_s rectHExp;
  statement_s rectYExp;
};
  statement_s rectWExp;
 
  statement_s rectHExp;
struct menuDef_t
};
{
  windowDef_t window;
struct menuDef_t
  const char *font;
{
  int fullScreen;
  windowDef_t window;
  int itemCount;
  const char *font;
  int fontIndex;
  int fullScreen;
  int cursorItem[4];
  int itemCount;
  int fadeCycle;
  int fontIndex;
  float fadeClamp;
  int cursorItem[4];
  float fadeAmount;
  int fadeCycle;
  float fadeInAmount;
  float fadeClamp;
  float blurRadius;
  float fadeAmount;
  const char *onOpen;
  float fadeInAmount;
  const char *onClose;
  float blurRadius;
  const char *onESC;
  const char *onOpen;
  ItemKeyHandler *onKey;
  const char *onClose;
  statement_s visibleExp;
  const char *onESC;
  const char *allowedBinding;
  ItemKeyHandler *onKey;
  const char *soundName;
  statement_s visibleExp;
  int imageTrack;
  const char *allowedBinding;
  float focusColor[4];
  const char *soundName;
  float disableColor[4];
  int imageTrack;
  statement_s rectXExp;
  float focusColor[4];
  statement_s rectYExp;
  float disableColor[4];
  itemDef_s **items;
  statement_s rectXExp;
};
  statement_s rectYExp;
</syntaxhighlight>
  itemDef_s **items;
};

Revision as of 10:45, 12 January 2014

enum operationEnum
{
  OP_NOOP = 0x0,
  OP_RIGHTPAREN = 0x1,
  OP_MULTIPLY = 0x2,
  OP_DIVIDE = 0x3,
  OP_MODULUS = 0x4,
  OP_ADD = 0x5,
  OP_SUBTRACT = 0x6,
  OP_NOT = 0x7,
  OP_LESSTHAN = 0x8,
  OP_LESSTHANEQUALTO = 0x9,
  OP_GREATERTHAN = 0xA,
  OP_GREATERTHANEQUALTO = 0xB,
  OP_EQUALS = 0xC,
  OP_NOTEQUAL = 0xD,
  OP_AND = 0xE,
  OP_OR = 0xF,
  OP_LEFTPAREN = 0x10,
  OP_COMMA = 0x11,
  OP_BITWISEAND = 0x12,
  OP_BITWISEOR = 0x13,
  OP_BITWISENOT = 0x14,
  OP_BITSHIFTLEFT = 0x15,
  OP_BITSHIFTRIGHT = 0x16,
  OP_SIN = 0x17,
  OP_FIRSTFUNCTIONCALL = 0x17,
  OP_COS = 0x18,
  OP_MIN = 0x19,
  OP_MAX = 0x1A,
  OP_MILLISECONDS = 0x1B,
  OP_DVARINT = 0x1C,
  OP_DVARBOOL = 0x1D,
  OP_DVARFLOAT = 0x1E,
  OP_DVARSTRING = 0x1F,
  OP_STAT = 0x20,
  OP_UIACTIVE = 0x21,
  OP_FLASHBANGED = 0x22,
  OP_SCOPED = 0x23,
  OP_SCOREBOARDVISIBLE = 0x24,
  OP_INKILLCAM = 0x25,
  OP_PLAYERFIELD = 0x26,
  OP_SELECTINGLOCATION = 0x27,
  OP_TEAMFIELD = 0x28,
  OP_OTHERTEAMFIELD = 0x29,
  OP_MARINESFIELD = 0x2A,
  OP_OPFORFIELD = 0x2B,
  OP_MENUISOPEN = 0x2C,
  OP_WRITINGDATA = 0x2D,
  OP_INLOBBY = 0x2E,
  OP_INPRIVATEPARTY = 0x2F,
  OP_PRIVATEPARTYHOST = 0x30,
  OP_PRIVATEPARTYHOSTINLOBBY = 0x31,
  OP_ALONEINPARTY = 0x32,
  OP_ADSJAVELIN = 0x33,
  OP_WEAPLOCKBLINK = 0x34,
  OP_WEAPATTACKTOP = 0x35,
  OP_WEAPATTACKDIRECT = 0x36,
  OP_SECONDSASTIME = 0x37,
  OP_TABLELOOKUP = 0x38,
  OP_LOCALIZESTRING = 0x39,
  OP_LOCALVARINT = 0x3A,
  OP_LOCALVARBOOL = 0x3B,
  OP_LOCALVARFLOAT = 0x3C,
  OP_LOCALVARSTRING = 0x3D,
  OP_TIMELEFT = 0x3E,
  OP_SECONDSASCOUNTDOWN = 0x3F,
  OP_TOINT = 0x40,
  OP_TOSTRING = 0x41,
  OP_TOFLOAT = 0x42,
  OP_GAMETYPENAME = 0x43,
  OP_GAMETYPE = 0x44,
  OP_GAMETYPEDESCRIPTION = 0x45,
  OP_SCORE = 0x46,
  OP_FRIENDSONLINE = 0x47,
  OP_FOLLOWING = 0x48,
  OP_STATRANGEBITSSET = 0x49,
  NUM_OPERATORS = 0x4A,
};

struct listBoxDef_s
{
  int startPos[4];
  int endPos[4];
  int drawPadding;
  float elementWidth;
  float elementHeight;
  int elementStyle;
  int numColumns;
  columnInfo_s columnInfo[16];
  const char *doubleClick;
  int notselectable;
  int noScrollBars;
  int usePaging;
  float selectBorder[4];
  float disableColor[4];
  Material *selectIcon;
};

struct editFieldDef_s
{
  float minVal;
  float maxVal;
  float defVal;
  float range;
  int maxChars;
  int maxCharsGotoNext;
  int maxPaintChars;
  int paintOffset;
};

struct multiDef_s
{
  const char *dvarList[32];
  const char *dvarStr[32];
  float dvarValue[32];
  int count;
  int strDef;
};

union itemDefData_t
{
  listBoxDef_s *listBox;
  editFieldDef_s *editField;
  multiDef_s *multi;
  const char *enumDvarName;
  void *data;
};

union operandInternalDataUnion
{
  int intVal;
  float floatVal;
  const char *string;
};

struct Operand
{
  expDataType dataType;
  operandInternalDataUnion internals;
};

union entryInternalData
{
  operationEnum op;
  Operand operand;
};

struct expressionEntry
{
  int type;
  entryInternalData data;
};

struct statement_s
{
  int numEntries;
  expressionEntry **entries;
};

struct ItemKeyHandler
{
  int key;
  const char *action;
  ItemKeyHandler *next;
};

struct rectDef_s
{
  float x;
  float y;
  float w;
  float h;
  int horzAlign;
  int vertAlign;
};

struct windowDef_t
{
  const char *name;
  rectDef_s rect;
  rectDef_s rectClient;
  const char *group;
  int style;
  int border;
  int ownerDraw;
  int ownerDrawFlags;
  float borderSize;
  int staticFlags;
  int dynamicFlags[4];
  int nextTime;
  float foreColor[4];
  float backColor[4];
  float borderColor[4];
  float outlineColor[4];
  Material *background;
};

struct itemDef_s
{
  windowDef_t window;
  rectDef_s textRect[4];
  int type;
  int dataType;
  int alignment;
  int fontEnum;
  int textAlignMode;
  float textalignx;
  float textaligny;
  float textscale;
  int textStyle;
  int gameMsgWindowIndex;
  int gameMsgWindowMode;
  const char *text;
  int textSavegameInfo;
  menuDef_t *parent;
  const char *mouseEnterText;
  const char *mouseExitText;
  const char *mouseEnter;
  const char *mouseExit;
  const char *action;
  const char *onAccept;
  const char *onFocus;
  const char *leaveFocus;
  const char *dvar;
  const char *dvarTest;
  ItemKeyHandler *onKey;
  const char *enableDvar;
  int dvarFlags;
  snd_alias_list_t *focusSound;
  float special;
  int cursorPos[4];
  itemDefData_t typeData;
  int imageTrack;
  statement_s visibleExp;
  statement_s textExp;
  statement_s materialExp;
  statement_s rectXExp;
  statement_s rectYExp;
  statement_s rectWExp;
  statement_s rectHExp;
};

struct menuDef_t
{
  windowDef_t window;
  const char *font;
  int fullScreen;
  int itemCount;
  int fontIndex;
  int cursorItem[4];
  int fadeCycle;
  float fadeClamp;
  float fadeAmount;
  float fadeInAmount;
  float blurRadius;
  const char *onOpen;
  const char *onClose;
  const char *onESC;
  ItemKeyHandler *onKey;
  statement_s visibleExp;
  const char *allowedBinding;
  const char *soundName;
  int imageTrack;
  float focusColor[4];
  float disableColor[4];
  statement_s rectXExp;
  statement_s rectYExp;
  itemDef_s **items;
};