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

Revision as of 10:50, 12 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;
};