Menu Asset (CoD4): Difference between revisions

From COD Engine Research
Created page with "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 th..."
 
No edit summary
 
(4 intermediate revisions by one other user not shown)
Line 1: Line 1:
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.
[[Category:Assets]]
[[Category:CoD4]]
<syntaxhighlight lang="cpp">
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,
};


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

Latest revision as of 19:06, 17 March 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,
};

enum expDataType
{
  VAL_INT = 0x0,
  VAL_FLOAT = 0x1,
  VAL_STRING = 0x2,
};

struct columnInfo_s
{
  int pos;
  int width;
  int maxChars;
  int alignment;
};

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

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

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