Menu Asset (BO2): Difference between revisions

From COD Engine Research
mNo edit summary
mNo edit summary
Line 1: Line 1:
[[Category:Assets]]
[[Category:Assets]]
[[Category:BO2]]
[[Category:BO2]]
<syntaxhighlight lang="c">
  enum expDataType
  enum expDataType
  {
  {
Line 232: Line 233:
  /* dynamicFlags */
  /* dynamicFlags */
  #define WINDOWDYNAMIC_VISIBLE 0x00000004
  #define WINDOWDYNAMIC_VISIBLE 0x00000004
  #define WINDOWDYNAMIC_CHECKMASK 0x000FFFFF
  #define WINDOWDYNAMIC_CHECKMASK 0x000FFFFF
   
   
  /* staticFlags */
  /* staticFlags */
  #define WINDOWSTATIC_DECORATION 0x00100000
  #define WINDOWSTATIC_DECORATION 0x00100000
  #define WINDOWSTATIC_HORIZONTALSCROLL 0x00200000
  #define WINDOWSTATIC_HORIZONTALSCROLL 0x00200000
  #define WINDOWSTATIC_AUTOWRAPPED 0x00800000
  #define WINDOWSTATIC_AUTOWRAPPED 0x00800000
Line 345: Line 346:
  int unknown5;
  int unknown5;
  };
  };
</syntaxhighlight>

Revision as of 23:19, 7 January 2014

 enum expDataType
 {
 	VAL_INT = 0x0,
 	VAL_FLOAT = 0x1,
 	VAL_STRING = 0x2,
 };
 
 union operandInternalDataUnion
 {
 	int intVal;
 	float floatVal;
 	const char *string;
 };
 
 struct Operand
 {
 	expDataType dataType;
 	operandInternalDataUnion internals;
 };
 
 union entryInternalData
 {
 	int op;
 	Operand operand;
 };
 
 struct expressionRpn
 {
 	int type;
 	entryInternalData data;
 };
 
 struct ExpressionStatement
 {
 	char *string1;
 	int unknown;
 	int numEntries;
 	expressionRpn *rpn;
 };
 
 struct rectExpData_t
 {
 	ExpressionStatement rectXExp;
 	ExpressionStatement rectYExp;
 	ExpressionStatement rectWExp;
 	ExpressionStatement rectHExp;
 };
 
 struct gameMsgDef_t
 {
 	int gamemsgwindowindex;
 	int gamemsgwindowmode;
 };
 
 struct focusItemDef_t;
 
 union textData_t
 {
 	focusItemDef_t *focusItemDef;	// 3,4,5,7,8,9,10,11,12,13,14,16,20,21,22,30
 	gameMsgDef_t *gameMsgDef;	// 15
 };
 
 struct textDef_t
 {
 	rectDef_s textRect[4];
 	int alignment;
 	int fontEnum;
 	int textSaveGameInfo;
 	int textAlignMode;
 	float textalignx;
 	float textaligny;
 	float textscale;
 	int textpadding;
 	int textstyle;
 	float fontColor[4];
 	float glowColor[4];
 	float shadowColor[4];
 	float fontBlur;
 	float glowRadius;
 	float shadowSize;
 	float shadowOffset;
 	int unknown;
 	char *text;
 	ExpressionStatement *textExpData;
 	textData_t textData;
 };
 
 struct MenuCell
 {
 	int unknown1;
 	int stringSize;
 	char *stringValue;
 };
 
 struct MenuRow
 {
 	MenuCell *cells;
 	const char *eventName;
 	const char *onFocusEventName;
 	char unknown[0x10];
 };
 
 struct listBoxDef_t
 {
 	char unknown1[0x14];
 	float elementwidth;
 	float elementheight;
 	char unknown2[8];
 	int elementtype;
 	char unknown3[0x21C];
 	int notselectable;
 	int noScrollBars;
 	int usePaging;
 	float selectBorder[4];
 	float disableColor[4];
 	float focusColor[4];
 	float elementHighlightColor[4];
 	float elementBackgroundColor[4];
 	Material *selectIcon;
 	Material *backgroundItemListBox;
 	Material *highlightTexture;
 	int bNoBlinkingHighlight;
 	MenuRow *rows;
 	int numRows;
 	int unknown4;
 };
 
 struct multiDef_t
 {
 	char *dvarList[32];
 	char *dvarStr[32];
 	float dvarValue[32];
 	char unknown[0xC];
 };
 
 struct profileDef_t
 {
 	char *profileStrList[32];
 	char *profileFloatList[32];
 	float profileFloat[32];
 	char unknown[0xC];
 };
 
 struct editFieldDef_t
 {
 	char unknown1[0x14];
 	int maxChars;
 	int maxCharsGotoNext;
 	int maxPaintChars;
 	char unknown2[0x10];
 };
 
 struct enumDvarDef_t
 {
 	char *enumDvarName;
 };
 
 union itemDefData_t
 {
 	listBoxDef_t *listBox;		// 4
 	multiDef_t *multiDef;		// 10
 	profileDef_t *profileDef;	// 22
 	editFieldDef_t *editField;	// 5,7,8,9,12,13,14,16,30
 	enumDvarDef_t *enumDvarDef;	// 11
 	void *data;
 };
 
 struct ScriptCondition
 {
 	char unknown[0xC];
 	ScriptCondition *next;
 };
 
 struct GenericEventScript
 {
 	ScriptCondition *prerequisites;
 	char unknown1[0x18];
 	char *string1;
 	char unknown2[0xC];
 	GenericEventScript *next;
 };
 
 struct GenericEventHandler
 {
 	int unknown;
 	GenericEventScript *eventScript;
 	GenericEventHandler *next;
 };
 
 struct focusItemDef_t
 {
 	const char *string1;
 	const char *string2;
 	const char *string3;
 	const char *string4;
 	GenericEventHandler *onKey;
 	itemDefData_t typeData;
 };
 
 union itemData_t
 {
 	textDef_t *textData;	// 1,3,4,5,7,8,9,10,11,12,13,14,15,16,18,20,22
 	ExpressionStatement *imageDef;		// 2
 	ExpressionStatement *ownerDrawDef;	// 6
 	focusItemDef_t *focusItemDef;		// 19, 21
 	void *data;
 };
 
 struct ItemKeyHandler
 {
 	const char *keyName;
 	GenericEventScript *keyScript;
 	ItemKeyHandler *next;
 };
 
 struct animParamsDef_t
 {
 	const char *state;
 	char unknown[0x64];
 	ItemKeyHandler *onEvent;
 };
 
 struct UIAnimInfo
 {
 	int count;
 	animParamsDef_t *animStates;
 	char unknown[0xE4];
 };
 
 /* dynamicFlags */
 #define WINDOWDYNAMIC_VISIBLE		0x00000004
 #define WINDOWDYNAMIC_CHECKMASK	0x000FFFFF
 
 /* staticFlags */
 #define WINDOWSTATIC_DECORATION		0x00100000
 #define WINDOWSTATIC_HORIZONTALSCROLL		0x00200000
 #define WINDOWSTATIC_AUTOWRAPPED		0x00800000
 #define WINDOWSTATIC_POPUP 			0x01000000
 #define WINDOWSTATIC_OUTOFBOUNDSCLICK 		0x02000000
 #define WINDOWSTATIC_LEGACYSPLITSCREENSCALE	0x04000000
 #define WINDOWSTATIC_ALLOWSIGNIN		0x08000000
 #define WINDOWSTATIC_HIDDENDURINGFLASHBANG	0x10000000
 #define WINDOWSTATIC_HIDDENDURINGSCOPE		0x20000000
 #define WINDOWSTATIC_HIDDENDURINGUI		0x40000000
 #define WINDOWSTATIC_CHECKMASK			0xFFF00000
 
 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;
 	char style;
 	char border;
 	char modal;
 	char frameSide;
 	float frame[2];
 	int ownerDraw;
 	int ownerDrawFlag;
 	float borderSize;
 	int staticFlags;
 	int dynamicFlags[4];
 	int nextTime;
 	float foreColor[4];
 	float backColor[4];
 	float borderColor[4];
 	float outlineColor[4];
 	float rotation;
 	Material *background;
 };
 
 struct itemDef_t
 {
 	windowDef_t window;
 	int type;
 	int dataType;
 	int unknown4;
 	const char *dvar;
 	const char *profile;
 	const char *dvarTest;
 	const char *enableDvar;
 	int enableFlags;		// 1=enableDvar, 2=disableDvar, 4=showDvar, 8=hideDvar, 16=focusDvar
 	itemData_t typeData;
 	menuDef_t *parent;
 	rectExpData_t *rectExpData;
 	ExpressionStatement visibleExp;
 	int unknown1;
 	int visibilityBits[4];
 	ExpressionStatement foreColorExp;
 	int ui3dWindowId;
 	ItemKeyHandler *onEvent;
 	UIAnimInfo *animInfo;
 	int unknown2;
 };
 
 struct menuDef_t
 {
 	windowDef_t window;
 	char *font;
 	int fullscreen;
 	int ui3dWindowId;
 	int itemCount;
 	int fontIndex;
 	int cursorItem[4];
 	int fadeCycle;
 	int priority;
 	float fadeClamp;
 	float fadeAmount;
 	float fadeInAmount;
 	float blurRadius;
 	int openSlideSpeed;
 	int closeSlideSpeed;
 	int openSlideDirection;
 	int closeSlideDirection;
 	rectDef_s unknownRect;
 	int closeFadingTime;
 	int openFadingTime;
 	char unknown2[0x8];
 	ItemKeyHandler *onKey;
 	GenericEventHandler *onEvent;
 	ExpressionStatement visibleExp;
 	int unknown3;
 	int visibilityBits[4];
 	char *allowedBinding;
 	char *soundLoop;
 	int unknown4;
 	int control;
 	float focusColor[4];
 	float disableColor[4];
 	ExpressionStatement rectYExp;
 	ExpressionStatement rectXExp;
 	itemDef_t **items;
 	int unknown5;
 };