Menu Asset (BO2): Difference between revisions
Aerosoul94 (talk | contribs) mNo edit summary |
Aerosoul94 (talk | contribs) mNo edit summary |
||
| Line 1: | Line 1: | ||
[[Category:Assets]] | [[Category:Assets]] | ||
[[Category:BO2]] | [[Category:BO2]] | ||
<syntaxhighlight lang="cpp"> | |||
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; | |||
}; | |||
</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;
};