Menu Asset (MW2): Difference between revisions
Aerosoul94 (talk | contribs) No edit summary |
Aerosoul94 (talk | contribs) mNo edit summary |
||
| Line 1: | Line 1: | ||
[[Category:Assets]] | [[Category:Assets]] | ||
[[Category:MW2]] | [[Category:MW2]] | ||
<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_STATICDVARINT = 0x17, | |||
OP_STATICDVARBOOL = 0x18, | |||
OP_STATICDVARFLOAT = 0x19, | |||
OP_STATICDVARSTRING = 0x1A, | |||
OP_INT = 0x1B, | |||
OP_STRING = 0x1C, | |||
OP_FLOAT = 0x1D, | |||
OP_SIN = 0x1E, | |||
OP_COS = 0x1F, | |||
OP_MIN = 0x20, | |||
OP_MAX = 0x21, | |||
OP_MILLISECONDS = 0x22, | |||
OP_DVARINT = 0x23, | |||
OP_DVARBOOL = 0x24, | |||
OP_DVARFLOAT = 0x25, | |||
OP_DVARSTRING = 0x26, | |||
OP_STAT = 0x27, | |||
OP_UIACTIVE = 0x28, | |||
OP_FLASHBANGED = 0x29, | |||
OP_USINGVEHICLE = 0x2A, | |||
OP_MISSILECAM = 0x2B, | |||
OP_SCOPED = 0x2C, | |||
OP_SCOPEDTHERMAL = 0x2D, | |||
OP_SCOREBOARDVISIBLE = 0x2E, | |||
OP_INKILLCAM = 0x2F, | |||
OP_INKILLCAMNPC = 0x30, | |||
OP_PLAYERFIELD = 0x31, | |||
OP_GETPERK = 0x32, | |||
OP_SELECTINGLOCATION = 0x33, | |||
OP_SELECTINGDIRECTION = 0x34, | |||
OP_TEAMFIELD = 0x35, | |||
OP_OTHERTEAMFIELD = 0x36, | |||
OP_MARINESFIELD = 0x37, | |||
OP_OPFORFIELD = 0x38, | |||
OP_MENUISOPEN = 0x39, | |||
OP_WRITINGDATA = 0x3A, | |||
OP_INLOBBY = 0x3B, | |||
OP_INPRIVATEPARTY = 0x3C, | |||
OP_PRIVATEPARTYHOST = 0x3D, | |||
OP_PRIVATEPARTYHOSTINLOBBY = 0x3E, | |||
OP_ALONEINPARTY = 0x3F, | |||
OP_ADSJAVELIN = 0x40, | |||
OP_WEAPLOCKBLINK = 0x41, | |||
OP_WEAPATTACKTOP = 0x42, | |||
OP_WEAPATTACKDIRECT = 0x43, | |||
OP_WEAPLOCKING = 0x44, | |||
OP_WEAPLOCKED = 0x45, | |||
OP_WEAPLOCKTOOCLOSE = 0x46, | |||
OP_WEAPLOCKSCREENPOSX = 0x47, | |||
OP_WEAPLOCKSCREENPOSY = 0x48, | |||
OP_SECONDSASTIME = 0x49, | |||
OP_TABLELOOKUP = 0x4A, | |||
OP_TABLELOOKUPBYROW = 0x4B, | |||
OP_TABLEGETROWNUM = 0x4C, | |||
OP_LOCALIZESTRING = 0x4D, | |||
OP_LOCALVARINT = 0x4E, | |||
OP_LOCALVARBOOL = 0x4F, | |||
OP_LOCALVARFLOAT = 0x50, | |||
OP_LOCALVARSTRING = 0x51, | |||
OP_TIMELEFT = 0x52, | |||
OP_SECONDSASCOUNTDOWN = 0x53, | |||
OP_GAMEMSGWNDACTIVE = 0x54, | |||
OP_GAMETYPENAME = 0x55, | |||
OP_GAMETYPE = 0x56, | |||
OP_GAMETYPEDESCRIPTION = 0x57, | |||
OP_SCORE = 0x58, | |||
OP_FRIENDSONLINE = 0x59, | |||
OP_SPECTATINGCLIENT = 0x5A, | |||
OP_SPECTATINGFREE = 0x5B, | |||
OP_STATRANGEBITSSET = 0x5C, | |||
OP_KEYBINDING = 0x5D, | |||
OP_ACTIONSLOTUSABLE = 0x5E, | |||
OP_HUDFADE = 0x5F, | |||
OP_MAXRECOMMENDEDPLAYERS = 0x60, | |||
OP_ACCEPTINGINVITE = 0x61, | |||
OP_ISINTERMISSION = 0x62, | |||
OP_GAMEHOST = 0x63, | |||
OP_PARTYISMISSINGMAPPACK = 0x64, | |||
OP_PARTYMISSINGMAPPACKERROR = 0x65, | |||
OP_ANYNEWMAPPACKS = 0x66, | |||
OP_AMISELECTED = 0x67, | |||
OP_PARTYSTATUSSTRING = 0x68, | |||
OP_ATTACHEDCONTROLLERCOUNT = 0x69, | |||
OP_ISSPLITSCREENONLINEPOSSIBLE = 0x6A, | |||
OP_SPLITSCREENPLAYERCOUNT = 0x6B, | |||
OP_GETPLAYERDATA = 0x6C, | |||
OP_GETPLAYERDATASPLITSCREEN = 0x6D, | |||
OP_EXPERIENCEFORLEVEL = 0x6E, | |||
OP_LEVELFOREXPERIENCE = 0x6F, | |||
OP_ISITEMUNLOCKED = 0x70, | |||
OP_ISITEMUNLOCKEDSPLITSCREEN = 0x71, | |||
OP_DEBUGPRINT = 0x72, | |||
OP_GETPLAYERDATAANYBOOLTRUE = 0x73, | |||
OP_WEAPONCLASSNEW = 0x74, | |||
OP_WEAPONNAME = 0x75, | |||
OP_ISRELOADING = 0x76, | |||
OP_SAVEGAMEAVAILABLE = 0x77, | |||
OP_UNLOCKEDITEMCOUNT = 0x78, | |||
OP_UNLOCKEDITEMCOUNTSPLITSCREEN = 0x79, | |||
OP_UNLOCKEDITEM = 0x7A, | |||
OP_UNLOCKEDITEMSPLITSCREEN = 0x7B, | |||
OP_MAILSUBJECT = 0x7C, | |||
OP_MAILFROM = 0x7D, | |||
OP_MAILRECEIVED = 0x7E, | |||
OP_MAILBODY = 0x7F, | |||
OP_MAILLOOTLOCALIZED = 0x80, | |||
OP_MAILGIVESLOOT = 0x81, | |||
OP_ANYNEWMAIL = 0x82, | |||
OP_MAILTIMETOFOLLOWUP = 0x83, | |||
OP_MAILLOOTTYPE = 0x84, | |||
OP_MAILRANLOTTERY = 0x85, | |||
OP_LOTTERYLOOTLOCALIZED = 0x86, | |||
OP_RADARISJAMMED = 0x87, | |||
OP_RADARJAMINTENSITY = 0x88, | |||
OP_RADARISENABLED = 0x89, | |||
OP_ISEMPJAMMED = 0x8A, | |||
OP_PLAYERADS = 0x8B, | |||
OP_WEAPONHEATACTIVE = 0x8C, | |||
OP_WEAPONHEATVALUE = 0x8D, | |||
OP_WEAPONHEATOVERHEATED = 0x8E, | |||
OP_GETSPLASHTEXT = 0x8F, | |||
OP_GETSPLASHDESCRIPTION = 0x90, | |||
OP_GETSPLASHMATERIAL = 0x91, | |||
OP_SPLASHHASICON = 0x92, | |||
OP_SPLASHROWNUM = 0x93, | |||
OP_GETFOCUSEDITEMNAME = 0x94, | |||
OP_GETFOCUSEDITEMX = 0x95, | |||
OP_GETFOCUSEDITEMY = 0x96, | |||
OP_GETFOCUSEDITEMWIDTH = 0x97, | |||
OP_GETFOCUSEDITEMHEIGHT = 0x98, | |||
OP_GETITEMX = 0x99, | |||
OP_GETITEMY = 0x9A, | |||
OP_GETITEMWIDTH = 0x9B, | |||
OP_GETITEMHEIGHT = 0x9C, | |||
OP_PLAYLIST = 0x9D, | |||
OP_SCOREBOARDEXTERNALMUTENOTICE = 0x9E, | |||
OP_GETCLIENTMATCHDATA = 0x9F, | |||
OP_GETCLIENTMATCHDATADEF = 0xA0, | |||
OP_GETMAPNAME = 0xA1, | |||
OP_GETMAPIMAGE = 0xA2, | |||
OP_GETMAPCUSTOM = 0xA3, | |||
OP_GETMIGRATIONSTATUS = 0xA4, | |||
OP_GETPLAYERCARDINFO = 0xA5, | |||
OP_ISOFFLINEPROFILESELECTED = 0xA6, | |||
OP_COOPPLAYER = 0xA7, | |||
OP_ISCOOP = 0xA8, | |||
OP_GETPARTYSTATUS = 0xA9, | |||
OP_GETSEARCHPARAMS = 0xAA, | |||
OP_GETTIMEPLAYED = 0xAB, | |||
OP_ISSELECTEDPLAYERFRIEND = 0xAC, | |||
OP_GETCHARBYINDEX = 0xAD, | |||
OP_GETPROFILEDATA = 0xAE, | |||
OP_ISPROFILESIGNEDIN = 0xAF, | |||
OP_GETWAITPOPUPSTATUS = 0xB0, | |||
OP_GETNATTYPE = 0xB1, | |||
OP_GETLOCALIZEDNATTYPE = 0xB2, | |||
OP_GETADJUSTEDSAFEAREAHORIZONTAL = 0xB3, | |||
OP_GETADJUSTEDSAFEAREAVERTICAL = 0xB4, | |||
OP_CONNECTIONINFO = 0xB5, | |||
OP_OFFLINEPROFILECANSAVE = 0xB6, | |||
OP_ALLSPLITSCREENPROFILESCANSAVE = 0xB7, | |||
OP_ALLSPLITSCREENPROFILESARESIGNEDIN = 0xB8, | |||
OP_DOWEHAVEMAPPACK = 0xB9, | |||
}; | |||
enum expDataType | |||
{ | |||
VAL_INT = 0x0, | |||
VAL_FLOAT = 0x1, | |||
VAL_STRING = 0x2, | |||
VAL_EXPRESSION = 0x3, | |||
}; | |||
struct statement_s; | |||
struct expression_s; | |||
struct localData_t; | |||
union operandInternalDataUnion | |||
{ | |||
int intVal; | |||
float floatVal; | |||
const char *string; | |||
expression_s *expression; | |||
}; | |||
struct Operand | |||
{ | |||
expDataType dataType; | |||
operandInternalDataUnion internals; | |||
}; | |||
struct OperationStruct | |||
{ | |||
operationEnum op; | |||
int unknown; | |||
}; | |||
union entryInternalData | |||
{ | |||
OperationStruct op; | |||
Operand operand; | |||
}; | |||
struct dvarExpression_t | |||
{ | |||
char *dvarName; | |||
expression_s *expression; | |||
}; | |||
struct statementExpression_t | |||
{ | |||
statement_s *statement; | |||
expression_s *expression; // loads this first | |||
}; | |||
struct expressionEntry | |||
{ | |||
int type; | |||
entryInternalData data; | |||
}; | |||
struct expression_s | |||
{ | |||
int numEntries; | |||
expressionEntry *entries; | |||
localData_t *loadFrom; | |||
char unused[0xC]; | |||
}; | |||
struct component_t | |||
{ | |||
int numEntries; | |||
expression_s *expressions; | |||
}; | |||
union statementInternalDataUnion | |||
{ | |||
char *data; | |||
statementExpression_t *statementExpression; | |||
statement_s *statement; | |||
dvarExpression_t *dvarExpression; | |||
}; | |||
#pragma pack(push, 4) | |||
struct statementEntry | |||
{ | |||
statementInternalDataUnion data; | |||
char type; | |||
}; | |||
#pragma pack(pop) | |||
struct statement_s | |||
{ | |||
int numEntries; | |||
statementEntry **statements; | |||
}; | |||
struct ItemKeyHandler | |||
{ | |||
int key; | |||
statement_s *statement; | |||
ItemKeyHandler *next; | |||
}; | |||
struct newsTicker_s | |||
{ | |||
int textSource; // 0 = text input, 1 = motd | |||
int speed; | |||
int spacing; | |||
char unknown[0x10]; | |||
}; | |||
#define MAX_LB_COLUMNS 16 | |||
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[MAX_LB_COLUMNS]; | |||
statement_s* doubleClick; | |||
int notselectable; | |||
int noscrollbars; | |||
int usepaging; | |||
vec4_t selectBorder; | |||
Material *selectIcon; | |||
}; | |||
struct editFieldDef_s | |||
{ | |||
float minVal; | |||
float maxVal; | |||
float defVal; | |||
float range; | |||
int maxChars; | |||
int maxCharsGotoNext; | |||
int maxPaintChars; | |||
int paintOffset; | |||
}; | |||
#define MAX_MULTI_DVARS 32 | |||
struct multiDef_s | |||
{ | |||
char *dvarList[MAX_MULTI_DVARS]; | |||
char *dvarStr[MAX_MULTI_DVARS]; | |||
float dvarValue[MAX_MULTI_DVARS]; | |||
int count; | |||
int strDef; | |||
}; | |||
union itemDefData_t | |||
{ | |||
listBoxDef_s *listBox; | |||
editFieldDef_s *editField; | |||
multiDef_s *multi; | |||
const char *enumDvarName; | |||
newsTicker_s *newsTicker; | |||
int *textScroll; // ? | |||
void *data; | |||
}; | |||
#define WINDOWDYNAMIC_VISIBLE 0x00000004 | |||
#define WINDOWDYNAMIC_HASFORECOLOR 0x00010000 | |||
#define WINDOWSTATIC_DECORATION 0x00100000 | |||
#define WINDOWSTATIC_HORIZONTALSCROLL 0x00200000 | |||
#define WINDOWSTATIC_SCREENSPACE 0x00400000 | |||
#define WINDOWSTATIC_AUTOWRAPPED 0x00800000 | |||
#define WINDOWSTATIC_POPUP 0x01000000 | |||
#define WINDOWSTATIC_OUTOFBOUNDSCLICK 0x02000000 | |||
#define WINDOWSTATIC_LEGACYSPLITSCREENSCALE 0x04000000 | |||
#define WINDOWSTATIC_HIDDENDURINGFLASH 0x10000000 | |||
#define WINDOWSTATIC_HIDDENDURINGSCOPE 0x20000000 | |||
#define WINDOWSTATIC_HIDDENDURINGUI 0x40000000 | |||
#define WINDOWSTATIC_TEXTONLYFOCUS 0x80000000 | |||
#pragma pack(push, 4) | |||
struct rectDef_s | |||
{ | |||
float x; | |||
float y; | |||
float w; | |||
float h; | |||
char horzAlign; | |||
char vertAlign; | |||
}; | |||
#pragma pack(pop) | |||
typedef rectDef_s Rectangle; | |||
struct windowDef_t | |||
{ | |||
const char *name; | |||
Rectangle rect; | |||
Rectangle rectClient; | |||
const char *group; | |||
int style; | |||
int border; | |||
int ownerDraw; | |||
int ownerDrawFlags; | |||
float borderSize; | |||
int staticFlags; | |||
int dynamicFlags[4]; | |||
int nextTime; | |||
vec4_t foreColor; | |||
vec4_t backColor; | |||
vec4_t borderColor; | |||
vec4_t outlineColor; | |||
vec4_t disableColor; | |||
Material *background; | |||
}; | |||
typedef windowDef_t Window; | |||
struct itemDef_s | |||
{ | |||
Window window; | |||
Rectangle textRect[4]; | |||
int type; | |||
int dataType; | |||
int align; | |||
int fontEnum; | |||
int textAlignMode; | |||
float textAlignX; | |||
float textAlignY; | |||
float textScale; | |||
int textStyle; | |||
int gameMsgWindowIndex; | |||
int gameMsgWindowMode; | |||
const char *text; | |||
int textSaveGameInfo; | |||
menuDef_t *parent; | |||
statement_s *mouseEnterText; | |||
statement_s *mouseExitText; | |||
statement_s *mouseEnter; | |||
statement_s *mouseExit; | |||
statement_s *action; | |||
statement_s *accept; | |||
statement_s *onFocus; | |||
statement_s *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; | |||
int numExpressions; | |||
component_t *componentExpressions; | |||
expression_s *visibleExp; | |||
expression_s *disabledExp; | |||
expression_s *textExp; | |||
expression_s *materialExp; | |||
vec4_t glowColor; | |||
int decodeEffect; | |||
int field_1B8; | |||
int field_1BC; | |||
int field_1C0; | |||
int field_1C4; | |||
int field_1C8; | |||
}; | |||
struct localVar_t | |||
{ | |||
int unknown; | |||
const char *dvarName; | |||
}; | |||
struct localData_t | |||
{ | |||
int numExpressions; | |||
expression_s **expressions; | |||
int numStaticVars; | |||
localVar_t **staticVars; | |||
int numStrings; | |||
const char **strings; | |||
}; | |||
struct menuDef_t | |||
{ | |||
Window window; | |||
const char *font; | |||
int fullscreen; | |||
int itemCount; | |||
int fontIndex; | |||
int cursorItems[4]; | |||
int fadeCycle; | |||
float fadeClamp; | |||
float fadeAmount; | |||
float fadeInAmount; | |||
float blurRadius; | |||
statement_s *onOpen; | |||
statement_s *onRequestClose; | |||
statement_s *onClose; | |||
statement_s *onEsc; | |||
ItemKeyHandler *execKeys; | |||
expression_s *visibleExp; | |||
const char *allowedBinding; | |||
const char *soundName; | |||
int imageTrack; | |||
vec4_t focusColor; | |||
expression_s *rectXExp; | |||
expression_s *rectYExp; | |||
expression_s *rectHExp; | |||
expression_s *rectWExp; | |||
itemDef_s **items; | |||
char unknown[0x1C0]; | |||
localData_t *menuData; | |||
}; | |||
</syntaxhighlight> | |||
Revision as of 10:49, 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_STATICDVARINT = 0x17,
OP_STATICDVARBOOL = 0x18,
OP_STATICDVARFLOAT = 0x19,
OP_STATICDVARSTRING = 0x1A,
OP_INT = 0x1B,
OP_STRING = 0x1C,
OP_FLOAT = 0x1D,
OP_SIN = 0x1E,
OP_COS = 0x1F,
OP_MIN = 0x20,
OP_MAX = 0x21,
OP_MILLISECONDS = 0x22,
OP_DVARINT = 0x23,
OP_DVARBOOL = 0x24,
OP_DVARFLOAT = 0x25,
OP_DVARSTRING = 0x26,
OP_STAT = 0x27,
OP_UIACTIVE = 0x28,
OP_FLASHBANGED = 0x29,
OP_USINGVEHICLE = 0x2A,
OP_MISSILECAM = 0x2B,
OP_SCOPED = 0x2C,
OP_SCOPEDTHERMAL = 0x2D,
OP_SCOREBOARDVISIBLE = 0x2E,
OP_INKILLCAM = 0x2F,
OP_INKILLCAMNPC = 0x30,
OP_PLAYERFIELD = 0x31,
OP_GETPERK = 0x32,
OP_SELECTINGLOCATION = 0x33,
OP_SELECTINGDIRECTION = 0x34,
OP_TEAMFIELD = 0x35,
OP_OTHERTEAMFIELD = 0x36,
OP_MARINESFIELD = 0x37,
OP_OPFORFIELD = 0x38,
OP_MENUISOPEN = 0x39,
OP_WRITINGDATA = 0x3A,
OP_INLOBBY = 0x3B,
OP_INPRIVATEPARTY = 0x3C,
OP_PRIVATEPARTYHOST = 0x3D,
OP_PRIVATEPARTYHOSTINLOBBY = 0x3E,
OP_ALONEINPARTY = 0x3F,
OP_ADSJAVELIN = 0x40,
OP_WEAPLOCKBLINK = 0x41,
OP_WEAPATTACKTOP = 0x42,
OP_WEAPATTACKDIRECT = 0x43,
OP_WEAPLOCKING = 0x44,
OP_WEAPLOCKED = 0x45,
OP_WEAPLOCKTOOCLOSE = 0x46,
OP_WEAPLOCKSCREENPOSX = 0x47,
OP_WEAPLOCKSCREENPOSY = 0x48,
OP_SECONDSASTIME = 0x49,
OP_TABLELOOKUP = 0x4A,
OP_TABLELOOKUPBYROW = 0x4B,
OP_TABLEGETROWNUM = 0x4C,
OP_LOCALIZESTRING = 0x4D,
OP_LOCALVARINT = 0x4E,
OP_LOCALVARBOOL = 0x4F,
OP_LOCALVARFLOAT = 0x50,
OP_LOCALVARSTRING = 0x51,
OP_TIMELEFT = 0x52,
OP_SECONDSASCOUNTDOWN = 0x53,
OP_GAMEMSGWNDACTIVE = 0x54,
OP_GAMETYPENAME = 0x55,
OP_GAMETYPE = 0x56,
OP_GAMETYPEDESCRIPTION = 0x57,
OP_SCORE = 0x58,
OP_FRIENDSONLINE = 0x59,
OP_SPECTATINGCLIENT = 0x5A,
OP_SPECTATINGFREE = 0x5B,
OP_STATRANGEBITSSET = 0x5C,
OP_KEYBINDING = 0x5D,
OP_ACTIONSLOTUSABLE = 0x5E,
OP_HUDFADE = 0x5F,
OP_MAXRECOMMENDEDPLAYERS = 0x60,
OP_ACCEPTINGINVITE = 0x61,
OP_ISINTERMISSION = 0x62,
OP_GAMEHOST = 0x63,
OP_PARTYISMISSINGMAPPACK = 0x64,
OP_PARTYMISSINGMAPPACKERROR = 0x65,
OP_ANYNEWMAPPACKS = 0x66,
OP_AMISELECTED = 0x67,
OP_PARTYSTATUSSTRING = 0x68,
OP_ATTACHEDCONTROLLERCOUNT = 0x69,
OP_ISSPLITSCREENONLINEPOSSIBLE = 0x6A,
OP_SPLITSCREENPLAYERCOUNT = 0x6B,
OP_GETPLAYERDATA = 0x6C,
OP_GETPLAYERDATASPLITSCREEN = 0x6D,
OP_EXPERIENCEFORLEVEL = 0x6E,
OP_LEVELFOREXPERIENCE = 0x6F,
OP_ISITEMUNLOCKED = 0x70,
OP_ISITEMUNLOCKEDSPLITSCREEN = 0x71,
OP_DEBUGPRINT = 0x72,
OP_GETPLAYERDATAANYBOOLTRUE = 0x73,
OP_WEAPONCLASSNEW = 0x74,
OP_WEAPONNAME = 0x75,
OP_ISRELOADING = 0x76,
OP_SAVEGAMEAVAILABLE = 0x77,
OP_UNLOCKEDITEMCOUNT = 0x78,
OP_UNLOCKEDITEMCOUNTSPLITSCREEN = 0x79,
OP_UNLOCKEDITEM = 0x7A,
OP_UNLOCKEDITEMSPLITSCREEN = 0x7B,
OP_MAILSUBJECT = 0x7C,
OP_MAILFROM = 0x7D,
OP_MAILRECEIVED = 0x7E,
OP_MAILBODY = 0x7F,
OP_MAILLOOTLOCALIZED = 0x80,
OP_MAILGIVESLOOT = 0x81,
OP_ANYNEWMAIL = 0x82,
OP_MAILTIMETOFOLLOWUP = 0x83,
OP_MAILLOOTTYPE = 0x84,
OP_MAILRANLOTTERY = 0x85,
OP_LOTTERYLOOTLOCALIZED = 0x86,
OP_RADARISJAMMED = 0x87,
OP_RADARJAMINTENSITY = 0x88,
OP_RADARISENABLED = 0x89,
OP_ISEMPJAMMED = 0x8A,
OP_PLAYERADS = 0x8B,
OP_WEAPONHEATACTIVE = 0x8C,
OP_WEAPONHEATVALUE = 0x8D,
OP_WEAPONHEATOVERHEATED = 0x8E,
OP_GETSPLASHTEXT = 0x8F,
OP_GETSPLASHDESCRIPTION = 0x90,
OP_GETSPLASHMATERIAL = 0x91,
OP_SPLASHHASICON = 0x92,
OP_SPLASHROWNUM = 0x93,
OP_GETFOCUSEDITEMNAME = 0x94,
OP_GETFOCUSEDITEMX = 0x95,
OP_GETFOCUSEDITEMY = 0x96,
OP_GETFOCUSEDITEMWIDTH = 0x97,
OP_GETFOCUSEDITEMHEIGHT = 0x98,
OP_GETITEMX = 0x99,
OP_GETITEMY = 0x9A,
OP_GETITEMWIDTH = 0x9B,
OP_GETITEMHEIGHT = 0x9C,
OP_PLAYLIST = 0x9D,
OP_SCOREBOARDEXTERNALMUTENOTICE = 0x9E,
OP_GETCLIENTMATCHDATA = 0x9F,
OP_GETCLIENTMATCHDATADEF = 0xA0,
OP_GETMAPNAME = 0xA1,
OP_GETMAPIMAGE = 0xA2,
OP_GETMAPCUSTOM = 0xA3,
OP_GETMIGRATIONSTATUS = 0xA4,
OP_GETPLAYERCARDINFO = 0xA5,
OP_ISOFFLINEPROFILESELECTED = 0xA6,
OP_COOPPLAYER = 0xA7,
OP_ISCOOP = 0xA8,
OP_GETPARTYSTATUS = 0xA9,
OP_GETSEARCHPARAMS = 0xAA,
OP_GETTIMEPLAYED = 0xAB,
OP_ISSELECTEDPLAYERFRIEND = 0xAC,
OP_GETCHARBYINDEX = 0xAD,
OP_GETPROFILEDATA = 0xAE,
OP_ISPROFILESIGNEDIN = 0xAF,
OP_GETWAITPOPUPSTATUS = 0xB0,
OP_GETNATTYPE = 0xB1,
OP_GETLOCALIZEDNATTYPE = 0xB2,
OP_GETADJUSTEDSAFEAREAHORIZONTAL = 0xB3,
OP_GETADJUSTEDSAFEAREAVERTICAL = 0xB4,
OP_CONNECTIONINFO = 0xB5,
OP_OFFLINEPROFILECANSAVE = 0xB6,
OP_ALLSPLITSCREENPROFILESCANSAVE = 0xB7,
OP_ALLSPLITSCREENPROFILESARESIGNEDIN = 0xB8,
OP_DOWEHAVEMAPPACK = 0xB9,
};
enum expDataType
{
VAL_INT = 0x0,
VAL_FLOAT = 0x1,
VAL_STRING = 0x2,
VAL_EXPRESSION = 0x3,
};
struct statement_s;
struct expression_s;
struct localData_t;
union operandInternalDataUnion
{
int intVal;
float floatVal;
const char *string;
expression_s *expression;
};
struct Operand
{
expDataType dataType;
operandInternalDataUnion internals;
};
struct OperationStruct
{
operationEnum op;
int unknown;
};
union entryInternalData
{
OperationStruct op;
Operand operand;
};
struct dvarExpression_t
{
char *dvarName;
expression_s *expression;
};
struct statementExpression_t
{
statement_s *statement;
expression_s *expression; // loads this first
};
struct expressionEntry
{
int type;
entryInternalData data;
};
struct expression_s
{
int numEntries;
expressionEntry *entries;
localData_t *loadFrom;
char unused[0xC];
};
struct component_t
{
int numEntries;
expression_s *expressions;
};
union statementInternalDataUnion
{
char *data;
statementExpression_t *statementExpression;
statement_s *statement;
dvarExpression_t *dvarExpression;
};
#pragma pack(push, 4)
struct statementEntry
{
statementInternalDataUnion data;
char type;
};
#pragma pack(pop)
struct statement_s
{
int numEntries;
statementEntry **statements;
};
struct ItemKeyHandler
{
int key;
statement_s *statement;
ItemKeyHandler *next;
};
struct newsTicker_s
{
int textSource; // 0 = text input, 1 = motd
int speed;
int spacing;
char unknown[0x10];
};
#define MAX_LB_COLUMNS 16
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[MAX_LB_COLUMNS];
statement_s* doubleClick;
int notselectable;
int noscrollbars;
int usepaging;
vec4_t selectBorder;
Material *selectIcon;
};
struct editFieldDef_s
{
float minVal;
float maxVal;
float defVal;
float range;
int maxChars;
int maxCharsGotoNext;
int maxPaintChars;
int paintOffset;
};
#define MAX_MULTI_DVARS 32
struct multiDef_s
{
char *dvarList[MAX_MULTI_DVARS];
char *dvarStr[MAX_MULTI_DVARS];
float dvarValue[MAX_MULTI_DVARS];
int count;
int strDef;
};
union itemDefData_t
{
listBoxDef_s *listBox;
editFieldDef_s *editField;
multiDef_s *multi;
const char *enumDvarName;
newsTicker_s *newsTicker;
int *textScroll; // ?
void *data;
};
#define WINDOWDYNAMIC_VISIBLE 0x00000004
#define WINDOWDYNAMIC_HASFORECOLOR 0x00010000
#define WINDOWSTATIC_DECORATION 0x00100000
#define WINDOWSTATIC_HORIZONTALSCROLL 0x00200000
#define WINDOWSTATIC_SCREENSPACE 0x00400000
#define WINDOWSTATIC_AUTOWRAPPED 0x00800000
#define WINDOWSTATIC_POPUP 0x01000000
#define WINDOWSTATIC_OUTOFBOUNDSCLICK 0x02000000
#define WINDOWSTATIC_LEGACYSPLITSCREENSCALE 0x04000000
#define WINDOWSTATIC_HIDDENDURINGFLASH 0x10000000
#define WINDOWSTATIC_HIDDENDURINGSCOPE 0x20000000
#define WINDOWSTATIC_HIDDENDURINGUI 0x40000000
#define WINDOWSTATIC_TEXTONLYFOCUS 0x80000000
#pragma pack(push, 4)
struct rectDef_s
{
float x;
float y;
float w;
float h;
char horzAlign;
char vertAlign;
};
#pragma pack(pop)
typedef rectDef_s Rectangle;
struct windowDef_t
{
const char *name;
Rectangle rect;
Rectangle rectClient;
const char *group;
int style;
int border;
int ownerDraw;
int ownerDrawFlags;
float borderSize;
int staticFlags;
int dynamicFlags[4];
int nextTime;
vec4_t foreColor;
vec4_t backColor;
vec4_t borderColor;
vec4_t outlineColor;
vec4_t disableColor;
Material *background;
};
typedef windowDef_t Window;
struct itemDef_s
{
Window window;
Rectangle textRect[4];
int type;
int dataType;
int align;
int fontEnum;
int textAlignMode;
float textAlignX;
float textAlignY;
float textScale;
int textStyle;
int gameMsgWindowIndex;
int gameMsgWindowMode;
const char *text;
int textSaveGameInfo;
menuDef_t *parent;
statement_s *mouseEnterText;
statement_s *mouseExitText;
statement_s *mouseEnter;
statement_s *mouseExit;
statement_s *action;
statement_s *accept;
statement_s *onFocus;
statement_s *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;
int numExpressions;
component_t *componentExpressions;
expression_s *visibleExp;
expression_s *disabledExp;
expression_s *textExp;
expression_s *materialExp;
vec4_t glowColor;
int decodeEffect;
int field_1B8;
int field_1BC;
int field_1C0;
int field_1C4;
int field_1C8;
};
struct localVar_t
{
int unknown;
const char *dvarName;
};
struct localData_t
{
int numExpressions;
expression_s **expressions;
int numStaticVars;
localVar_t **staticVars;
int numStrings;
const char **strings;
};
struct menuDef_t
{
Window window;
const char *font;
int fullscreen;
int itemCount;
int fontIndex;
int cursorItems[4];
int fadeCycle;
float fadeClamp;
float fadeAmount;
float fadeInAmount;
float blurRadius;
statement_s *onOpen;
statement_s *onRequestClose;
statement_s *onClose;
statement_s *onEsc;
ItemKeyHandler *execKeys;
expression_s *visibleExp;
const char *allowedBinding;
const char *soundName;
int imageTrack;
vec4_t focusColor;
expression_s *rectXExp;
expression_s *rectYExp;
expression_s *rectHExp;
expression_s *rectWExp;
itemDef_s **items;
char unknown[0x1C0];
localData_t *menuData;
};