Frontend clean up

This commit is contained in:
aap 2019-06-25 08:19:47 +02:00
parent b50440a6f0
commit 628b9a8b54
2 changed files with 185 additions and 76 deletions

View File

@ -48,6 +48,7 @@ int32 &CMenuManager::m_PrefsSfxVolume = *(int32*)0x5F2E48;
CMenuManager &FrontEndMenuManager = *(CMenuManager*)0x8F59D8; CMenuManager &FrontEndMenuManager = *(CMenuManager*)0x8F59D8;
// TODO: replace magic numbers with enums
const CMenuScreen aScreens[] = { const CMenuScreen aScreens[] = {
// MENU_PAGE_NONE = 0 // MENU_PAGE_NONE = 0
{ "", -1, -1, 1, 0, 0, }, { "", -1, -1, 1, 0, 0, },
@ -459,25 +460,26 @@ char *FrontendFilenames[] = {
}; };
char *MenuFilenames[] = { char *MenuFilenames[] = {
"connection24", "connection24", "",
"findgame24", "findgame24", "",
"hostgame24", "hostgame24", "",
"mainmenu24", "mainmenu24", "",
"playersetup24", "Playersetup24", "",
"singleplayer24", "singleplayer24", "",
"multiplayer24", "multiplayer24", "",
"dmalogo128", "dmalogo128", "dmalogo128m",
"gtaLogo128", "gtaLogo128", "gtaLogo128",
"rockstarLogo128", "rockstarLogo128", "rockstarlogo128m",
"gamespy256", "gamespy256", "gamespy256a",
"mouse", "mouse", "mousetimera",
"mousetimer", "mousetimer", "mousetimera",
"mp3logo", "mp3logo", "mp3logoA",
"downOFF", "downOFF", "buttonA",
"upOFF", "downON", "buttonA",
"downON", "upOFF", "buttonA",
"upON", "upON", "buttonA",
"gta3logo256", "gta3logo256", "gta3logo256m",
nil, nil
}; };
#if 1 #if 1
@ -522,11 +524,8 @@ WRAPPER bool CMenuManager::CheckHover(int, int, int, int) { EAXJMP(0x48ACA0); }
#else #else
bool CMenuManager::CheckHover(int x1, int x2, int y1, int y2) bool CMenuManager::CheckHover(int x1, int x2, int y1, int y2)
{ {
if (m_nMousePosX > x1 && m_nMousePosX < x2) { return m_nMousePosX > x1 && m_nMousePosX < x2 &&
if (m_nMousePosY > y1 && m_nMousePosY < y2) m_nMousePosY > y1 && m_nMousePosY < y2;
return true;
}
return false;
} }
#endif #endif
@ -544,7 +543,7 @@ WRAPPER void CMenuManager::DisplayHelperText() { EAXJMP(0x48B490); }
#else #else
void CMenuManager::DisplayHelperText() void CMenuManager::DisplayHelperText()
{ {
wchar *str = nullptr; wchar *str = nil;
switch (m_nHelperTextMsgId) { switch (m_nHelperTextMsgId) {
case 0: case 0:
str = TheText.Get("FET_MIG"); str = TheText.Get("FET_MIG");
@ -585,27 +584,23 @@ float CMenuManager::DisplaySlider(float x, float y, float leftSize, float rightS
float sizeRange; float sizeRange;
float input = 0.0f; float input = 0.0f;
int rects = 16; for (int i = 0; i < 16; i++) {
for (int i = 0; i < rects; i++) { input = i * rectSize/16.0f + x;
input = i * rectSize * 0.0625f + x;
if (i * 0.0625f + 0.03125f < progress) if (i/16.0f + 1/32.0f < progress)
color = CRGBA(255, 217, 106, FadeIn(255)); color = CRGBA(255, 217, 106, FadeIn(255));
else else
color = CRGBA(185, 120, 0, FadeIn(255)); color = CRGBA(185, 120, 0, FadeIn(255));
if (leftSize <= rightSize) sizeRange = max(leftSize, rightSize);
sizeRange = rightSize;
else
sizeRange = leftSize;
float _x = i * rectSize * 0.0625f + x; float _x = i * rectSize/16.0f + x;
float _y = y + sizeRange - ((rects - i) * leftSize + i * rightSize) * 0.0625f; float _y = y + sizeRange - ((16 - i) * leftSize + i * rightSize)/16.0f;
float _w = SCREEN_SCALE_X(10.0f) + i * rectSize * 0.0625f + x; float _w = SCREEN_SCALE_X(10.0f) + i * rectSize/16.0f + x;
float _h = y + sizeRange; float _h = y + sizeRange;
float _s = SCREEN_SCALE_X(2.0f); float _s = SCREEN_SCALE_X(2.0f);
CSprite2d::DrawRect(CRect(_x + _s, _y + _s, _w + _s, _h + _s), CRGBA(0, 0, 0, FadeIn(255))); // Shadow CSprite2d::DrawRect(CRect(_x + _s, _y + _s, _w + _s, _h + _s), CRGBA(0, 0, 0, FadeIn(255))); // Shadow
CSprite2d::DrawRect(CRect(i * rectSize * 0.0625f + x, y + sizeRange - ((rects - i) * leftSize + i * rightSize) * 0.0625f, SCREEN_SCALE_X(10.0f) + i * rectSize * 0.0625f + x, y + sizeRange), color); CSprite2d::DrawRect(CRect(i * rectSize/16.0f + x, y + sizeRange - ((16 - i) * leftSize + i * rightSize)/16.0f, SCREEN_SCALE_X(10.0f) + i * rectSize/16.0f + x, y + sizeRange), color);
}; };
return input; return input;
} }
@ -693,8 +688,8 @@ void CMenuManager::Draw()
} }
for (int i = 0; i < 18; ++i) { for (int i = 0; i < 18; ++i) {
if (aScreens[m_nCurrScreen].m_aEntries[i].m_Action != 1 && aScreens[m_nCurrScreen].m_aEntries[i].m_EntryName[0]) { if (aScreens[m_nCurrScreen].m_aEntries[i].m_Action != MENUACTION_LABEL && aScreens[m_nCurrScreen].m_aEntries[i].m_EntryName[0]) {
wchar *columnToPrint[COLUMNS] = { nullptr, nullptr }; wchar *columnToPrint[COLUMNS] = { nil, nil };
if (aScreens[m_nCurrScreen].m_aEntries[i].m_ActionSlot >= MENU_ACTION_SAVE_1 && aScreens[m_nCurrScreen].m_aEntries[i].m_ActionSlot <= MENU_ACTION_SAVE_8) { if (aScreens[m_nCurrScreen].m_aEntries[i].m_ActionSlot >= MENU_ACTION_SAVE_1 && aScreens[m_nCurrScreen].m_aEntries[i].m_ActionSlot <= MENU_ACTION_SAVE_8) {
columnToPrint[L] = GetNameOfSavedGame(i - 1); columnToPrint[L] = GetNameOfSavedGame(i - 1);
@ -710,9 +705,9 @@ void CMenuManager::Draw()
} }
switch (aScreens[m_nCurrScreen].m_aEntries[i].m_Action) { switch (aScreens[m_nCurrScreen].m_aEntries[i].m_Action) {
case 3: case MENUACTION_CTRLVIBRATION:
break; break;
case 4: case MENUACTION_CTRLCONFIG:
switch (CPad::GetPad(0)->Mode) { switch (CPad::GetPad(0)->Mode) {
case 0: case 0:
columnToPrint[R] = TheText.Get("FEC_CF1"); columnToPrint[R] = TheText.Get("FEC_CF1");
@ -728,37 +723,37 @@ void CMenuManager::Draw()
break; break;
}; };
break; break;
case 5: case MENUACTION_CTRLDISPLAY:
break; break;
case 6: case MENUACTION_FRAMESYNC:
columnToPrint[R] = TheText.Get(m_PrefsVsyncDisp ? "FEM_ON" : "FEM_OFF"); columnToPrint[R] = TheText.Get(m_PrefsVsyncDisp ? "FEM_ON" : "FEM_OFF");
break; break;
case 7: case MENUACTION_FRAMELIMIT:
columnToPrint[R] = TheText.Get(m_PrefsFrameLimiter ? "FEM_ON" : "FEM_OFF"); columnToPrint[R] = TheText.Get(m_PrefsFrameLimiter ? "FEM_ON" : "FEM_OFF");
break; break;
case 8: case MENUACTION_TRAILS:
columnToPrint[R] = TheText.Get(BlurOn ? "FEM_ON" : "FEM_OFF"); columnToPrint[R] = TheText.Get(BlurOn ? "FEM_ON" : "FEM_OFF");
break; break;
case 9: case MENUACTION_SUBTITLES:
columnToPrint[R] = TheText.Get(m_PrefsShowSubtitles ? "FEM_ON" : "FEM_OFF"); columnToPrint[R] = TheText.Get(m_PrefsShowSubtitles ? "FEM_ON" : "FEM_OFF");
break; break;
case 10: case MENUACTION_WIDESCREEN:
columnToPrint[R] = TheText.Get(m_PrefsUseWideScreen ? "FEM_ON" : "FEM_OFF"); columnToPrint[R] = TheText.Get(m_PrefsUseWideScreen ? "FEM_ON" : "FEM_OFF");
break; break;
case 16: case MENUACTION_RADIO:
sprintf(gString, "FEA_FM%d", m_PrefsRadioStation); sprintf(gString, "FEA_FM%d", m_PrefsRadioStation);
columnToPrint[R] = TheText.Get(gString); columnToPrint[R] = TheText.Get(gString);
break; break;
case 28: case MENUACTION_SETDBGFLAG:
columnToPrint[R] = TheText.Get(CTheScripts::DbgFlag ? "FEM_ON" : "FEM_OFF"); columnToPrint[R] = TheText.Get(CTheScripts::DbgFlag ? "FEM_ON" : "FEM_OFF");
break; break;
case 29: case MENUACTION_SWITCHBIGWHITEDEBUGLIGHT:
columnToPrint[R] = TheText.Get(CTheScripts::DbgFlag ? "FEM_ON" : "FEM_OFF"); columnToPrint[R] = TheText.Get(CTheScripts::DbgFlag ? "FEM_ON" : "FEM_OFF");
break; break;
case 81: case MENUACTION_INVVERT:
columnToPrint[R] = TheText.Get(MousePointerStateHelper.bInvertVertically ? "FEM_ON" : "FEM_OFF"); columnToPrint[R] = TheText.Get(MousePointerStateHelper.bInvertVertically ? "FEM_ON" : "FEM_OFF");
break; break;
case 94: case MENUACTION_SCREENRES:
{ {
char *res = _psGetVideoModeList()[m_nDisplayVideoMode]; char *res = _psGetVideoModeList()[m_nDisplayVideoMode];
@ -769,7 +764,7 @@ void CMenuManager::Draw()
columnToPrint[R] = gUString; columnToPrint[R] = gUString;
} }
break; break;
case 95: case MENUACTION_AUDIOHW:
if (FrontEndMenuManager.m_nPrefsAudio3DProviderIndex == -1) if (FrontEndMenuManager.m_nPrefsAudio3DProviderIndex == -1)
columnToPrint[R] = TheText.Get("FEA_NAH"); columnToPrint[R] = TheText.Get("FEA_NAH");
else { else {
@ -778,7 +773,7 @@ void CMenuManager::Draw()
columnToPrint[R] = gUString; columnToPrint[R] = gUString;
} }
break; break;
case 96: case MENUACTION_SPEAKERCONF:
if (FrontEndMenuManager.m_nPrefsAudio3DProviderIndex == -1) if (FrontEndMenuManager.m_nPrefsAudio3DProviderIndex == -1)
columnToPrint[R] = TheText.Get("FEA_NAH"); columnToPrint[R] = TheText.Get("FEA_NAH");
else { else {
@ -795,7 +790,7 @@ void CMenuManager::Draw()
}; };
} }
break; break;
case 99: case MENUACTION_CTRLMETHOD:
switch (m_ControlMethod) { switch (m_ControlMethod) {
case 0: case 0:
columnToPrint[L] = TheText.Get("FET_SCN"); columnToPrint[L] = TheText.Get("FET_SCN");
@ -805,10 +800,10 @@ void CMenuManager::Draw()
break; break;
}; };
break; break;
case 100: case MENUACTION_DYNAMICACOUSTIC:
columnToPrint[R] = TheText.Get(m_PrefsDMA ? "FEM_ON" : "FEM_OFF"); columnToPrint[R] = TheText.Get(m_PrefsDMA ? "FEM_ON" : "FEM_OFF");
break; break;
case 102: case MENUACTION_MOUSESTEER:
columnToPrint[R] = TheText.Get(m_bDisableMouseSteering ? "FEM_ON" : "FEM_OFF"); columnToPrint[R] = TheText.Get(m_bDisableMouseSteering ? "FEM_ON" : "FEM_OFF");
break; break;
}; };
@ -949,20 +944,20 @@ void CMenuManager::Draw()
// Sliders // Sliders
// TODO: CheckHover // TODO: CheckHover
switch (aScreens[m_nCurrScreen].m_aEntries[i].m_Action) { switch (aScreens[m_nCurrScreen].m_aEntries[i].m_Action) {
case 11: case MENUACTION_BRIGHTNESS:
DisplaySlider(SCREEN_SCALE_FROM_RIGHT(SLIDER_X), vecPositions.y - SCREEN_SCALE_Y(3.0f), SCREEN_SCALE_Y(2.0f), SCREEN_SCALE_Y(18.0f), SCREEN_SCALE_X(256.0f), m_PrefsBrightness * 0.001953125); DisplaySlider(SCREEN_SCALE_FROM_RIGHT(SLIDER_X), vecPositions.y - SCREEN_SCALE_Y(3.0f), SCREEN_SCALE_Y(2.0f), SCREEN_SCALE_Y(18.0f), SCREEN_SCALE_X(256.0f), m_PrefsBrightness/512.0f);
break; break;
case 12: case MENUACTION_DRAWDIST:
DisplaySlider(SCREEN_SCALE_FROM_RIGHT(SLIDER_X), vecPositions.y - SCREEN_SCALE_Y(3.0f), SCREEN_SCALE_Y(2.0f), SCREEN_SCALE_Y(18.0f), SCREEN_SCALE_X(256.0f), (m_PrefsLOD - 0.80000001) * 1.0000001); DisplaySlider(SCREEN_SCALE_FROM_RIGHT(SLIDER_X), vecPositions.y - SCREEN_SCALE_Y(3.0f), SCREEN_SCALE_Y(2.0f), SCREEN_SCALE_Y(18.0f), SCREEN_SCALE_X(256.0f), (m_PrefsLOD - 0.8f) * 1.0f);
break; break;
case 13: case MENUACTION_MUSICVOLUME:
DisplaySlider(SCREEN_SCALE_FROM_RIGHT(SLIDER_X), vecPositions.y - SCREEN_SCALE_Y(3.0f), SCREEN_SCALE_Y(2.0f), SCREEN_SCALE_Y(18.0f), SCREEN_SCALE_X(256.0f), m_PrefsMusicVolume * 0.0078125); DisplaySlider(SCREEN_SCALE_FROM_RIGHT(SLIDER_X), vecPositions.y - SCREEN_SCALE_Y(3.0f), SCREEN_SCALE_Y(2.0f), SCREEN_SCALE_Y(18.0f), SCREEN_SCALE_X(256.0f), m_PrefsMusicVolume/128.0f);
break; break;
case 14: case MENUACTION_SFXVOLUME:
DisplaySlider(SCREEN_SCALE_FROM_RIGHT(SLIDER_X), vecPositions.y - SCREEN_SCALE_Y(3.0f), SCREEN_SCALE_Y(2.0f), SCREEN_SCALE_Y(18.0f), SCREEN_SCALE_X(256.0f), m_PrefsSfxVolume * 0.0078125); DisplaySlider(SCREEN_SCALE_FROM_RIGHT(SLIDER_X), vecPositions.y - SCREEN_SCALE_Y(3.0f), SCREEN_SCALE_Y(2.0f), SCREEN_SCALE_Y(18.0f), SCREEN_SCALE_X(256.0f), m_PrefsSfxVolume/128.0f);
break; break;
case 84: case MENUACTION_MOUSESENS:
DisplaySlider(SCREEN_SCALE_FROM_RIGHT(SLIDER_X), vecPositions.y - SCREEN_SCALE_Y(3.0f), SCREEN_SCALE_Y(2.0f), SCREEN_SCALE_Y(18.0f), SCREEN_SCALE_X(256.0f), TheCamera.m_fMouseAccelHorzntl * 200.0); DisplaySlider(SCREEN_SCALE_FROM_RIGHT(SLIDER_X), vecPositions.y - SCREEN_SCALE_Y(3.0f), SCREEN_SCALE_Y(2.0f), SCREEN_SCALE_Y(18.0f), SCREEN_SCALE_X(256.0f), TheCamera.m_fMouseAccelHorzntl * 200.0f);
break; break;
}; };
@ -971,7 +966,7 @@ void CMenuManager::Draw()
if (m_nCurrScreen == MENU_SOUND_SETTINGS) { if (m_nCurrScreen == MENU_SOUND_SETTINGS) {
for (int i = 0; i < POLICE_RADIO; i++) { for (int i = 0; i < POLICE_RADIO; i++) {
if (i > 5 && i < 7) if (i == MSX_FM)
fIconSpacing -= 1.5f; fIconSpacing -= 1.5f;
if (i < USERTRACK) if (i < USERTRACK)
@ -1046,14 +1041,14 @@ void CMenuManager::DrawFrontEnd()
{ {
CFont::SetAlphaFade(255.0f); CFont::SetAlphaFade(255.0f);
if (!m_nCurrScreen) { if (m_nCurrScreen == MENU_NONE) {
if (m_bGameNotLoaded) if (m_bGameNotLoaded)
m_nCurrScreen = MENU_START_MENU; m_nCurrScreen = MENU_START_MENU;
else else
m_nCurrScreen = MENU_PAUSE_MENU; m_nCurrScreen = MENU_PAUSE_MENU;
} }
if (!m_nCurrOption && aScreens[m_nCurrScreen].m_aEntries[0].m_Action == 1) if (!m_nCurrOption && aScreens[m_nCurrScreen].m_aEntries[0].m_Action == MENUACTION_LABEL)
m_nCurrOption = 1; m_nCurrOption = 1;
CMenuManager::DrawFrontEndNormal(); CMenuManager::DrawFrontEndNormal();
@ -1077,7 +1072,7 @@ void CMenuManager::DrawFrontEndNormal()
CSprite2d::InitPerFrame(); CSprite2d::InitPerFrame();
CFont::InitPerFrame(); CFont::InitPerFrame();
eMenuSprites currentSprite = MENU_CONNECTION; eMenuSprites currentSprite = MENU_MAINMENU;
switch (m_nPrevScreen) { switch (m_nPrevScreen) {
case MENU_STATS: case MENU_STATS:
case MENU_START_MENU: case MENU_START_MENU:
@ -1134,7 +1129,7 @@ void CMenuManager::DrawFrontEndNormal()
} }
// GTA LOGO // GTA LOGO
if (m_nCurrScreen == 51 || m_nCurrScreen == 52) { if (m_nCurrScreen == MENU_START_MENU || m_nCurrScreen == MENU_PAUSE_MENU) {
if (CGame::frenchGame || CGame::germanGame || !CGame::nastyGame) if (CGame::frenchGame || CGame::germanGame || !CGame::nastyGame)
m_aMenuSprites[MENU_GTA3LOGO].Draw(CRect((SCREEN_WIDTH / 2) - SCREEN_SCALE_X(115.0f), SCREEN_SCALE_Y(70.0f), (SCREEN_WIDTH / 2) + SCREEN_SCALE_X(115.0f), SCREEN_SCALE_Y(180.0f)), CRGBA(255, 255, 255, FadeIn(255))); m_aMenuSprites[MENU_GTA3LOGO].Draw(CRect((SCREEN_WIDTH / 2) - SCREEN_SCALE_X(115.0f), SCREEN_SCALE_Y(70.0f), (SCREEN_WIDTH / 2) + SCREEN_SCALE_X(115.0f), SCREEN_SCALE_Y(180.0f)), CRGBA(255, 255, 255, FadeIn(255)));
else else
@ -1262,8 +1257,8 @@ void CMenuManager::LoadAllTextures()
CTxdStore::SetCurrentTxd(menu); CTxdStore::SetCurrentTxd(menu);
debug("LOAD sprite\n"); debug("LOAD sprite\n");
for (int i = 0; i < ARRAY_SIZE(MenuFilenames); i++) { for (int i = 0; i < ARRAY_SIZE(MenuFilenames)/2; i++) {
m_aMenuSprites[i].SetTexture(MenuFilenames[i]); m_aMenuSprites[i].SetTexture(MenuFilenames[i*2], MenuFilenames[i*2+1]);
m_aMenuSprites[i].SetAddressing(rwTEXTUREADDRESSBORDER); m_aMenuSprites[i].SetAddressing(rwTEXTUREADDRESSBORDER);
}; };
@ -1485,7 +1480,7 @@ void CMenuManager::UnloadTextures()
CTxdStore::RemoveTxdSlot(frontend); CTxdStore::RemoveTxdSlot(frontend);
debug("Remove menu textures\n"); debug("Remove menu textures\n");
for (int i = 0; i < ARRAY_SIZE(MenuFilenames); ++i) for (int i = 0; i < ARRAY_SIZE(MenuFilenames)/2; ++i)
m_aMenuSprites[i].Delete(); m_aMenuSprites[i].Delete();
int menu = CTxdStore::FindTxdSlot("menu"); int menu = CTxdStore::FindTxdSlot("menu");

View File

@ -94,8 +94,8 @@ enum eMenuSprites {
MENU_MOUSET, MENU_MOUSET,
MENU_MP3LOGO, MENU_MP3LOGO,
MENU_DOWNOFF, MENU_DOWNOFF,
MENU_UPOFF,
MENU_DOWNON, MENU_DOWNON,
MENU_UPOFF,
MENU_UPON, MENU_UPON,
MENU_GTA3LOGO, MENU_GTA3LOGO,
}; };
@ -173,6 +173,120 @@ enum eMenuScreen {
MENU_58 = 58, MENU_58 = 58,
}; };
enum eMenuAction {
MENUACTION_NOTHING,
MENUACTION_LABEL,
MENUACTION_CHANGEMENU,
MENUACTION_CTRLVIBRATION,
MENUACTION_CTRLCONFIG,
MENUACTION_CTRLDISPLAY,
MENUACTION_FRAMESYNC,
MENUACTION_FRAMELIMIT,
MENUACTION_TRAILS,
MENUACTION_SUBTITLES,
MENUACTION_WIDESCREEN,
MENUACTION_BRIGHTNESS,
MENUACTION_DRAWDIST,
MENUACTION_MUSICVOLUME,
MENUACTION_SFXVOLUME,
MENUACTION_UNK15,
MENUACTION_RADIO,
MENUACTION_LANG_ENG,
MENUACTION_LANG_FRE,
MENUACTION_LANG_GER,
MENUACTION_LANG_IT,
MENUACTION_LANG_SPA,
MENUACTION_UPDATESAVE,
MENUACTION_CHECKSAVE,
MENUACTION_UNK24,
MENUACTION_NEWGAME,
MENUACTION_RELOADIDE,
MENUACTION_RELOADIPL,
MENUACTION_SETDBGFLAG,
MENUACTION_SWITCHBIGWHITEDEBUGLIGHT,
MENUACTION_PEDROADGROUPS,
MENUACTION_CARROADGROUPS,
MENUACTION_COLLISIONPOLYS,
MENUACTION_REGMEMCARD1,
MENUACTION_TESTFORMATMEMCARD1,
MENUACTION_TESTUNFORMATMEMCARD1,
MENUACTION_CREATEROOTDIR,
MENUACTION_CREATELOADICONS,
MENUACTION_FILLWITHGUFF,
MENUACTION_SAVEONLYTHEGAME,
MENUACTION_SAVEGAME,
MENUACTION_SAVEGAMEUNDERGTA,
MENUACTION_CREATECOPYPROTECTED,
MENUACTION_TESTSAVE,
MENUACTION_TESTLOAD,
MENUACTION_TESTDELETE,
MENUACTION_PARSEHEAP,
MENUACTION_SHOWCULL,
MENUACTION_MEMCARDSAVECONFIRM,
MENUACTION_UPDATEMEMCARDSAVE,
MENUACTION_UNK50,
MENUACTION_DEBUGSTREAM,
MENUACTION_MPMAP_LIBERTY,
MENUACTION_MPMAP_REDLIGHT,
MENUACTION_MPMAP_CHINATOWN,
MENUACTION_MPMAP_TOWER,
MENUACTION_MPMAP_SEWER,
MENUACTION_MPMAP_INDUSTPARK,
MENUACTION_MPMAP_DOCKS,
MENUACTION_MPMAP_STAUNTON,
MENUACTION_MPMAP_DEATHMATCH1,
MENUACTION_MPMAP_DEATHMATCH2,
MENUACTION_MPMAP_TEAMDEATH1,
MENUACTION_MPMAP_TEAMDEATH2,
MENUACTION_MPMAP_STASH,
MENUACTION_MPMAP_CAPTURE,
MENUACTION_MPMAP_RATRACE,
MENUACTION_MPMAP_DOMINATION,
MENUACTION_STARTMP,
MENUACTION_UNK69,
MENUACTION_UNK70,
MENUACTION_FINDMP,
MENUACTION_REDEFCTRL,
MENUACTION_UNK73,
MENUACTION_INITMP,
MENUACTION_MP_PLAYERCOLOR,
MENUACTION_MP_PLAYERNAME,
MENUACTION_MP_GAMENAME,
MENUACTION_GETKEY,
MENUACTION_SHOWHEADBOB,
MENUACTION_UNK80,
MENUACTION_INVVERT,
MENUACTION_CANCLEGAME,
MENUACTION_MP_PLAYERNUMBER,
MENUACTION_MOUSESENS,
MENUACTION_CHECKMPGAMES,
MENUACTION_CHECKMPPING,
MENUACTION_MP_SERVER,
MENUACTION_MP_MAP,
MENUACTION_MP_GAMETYPE,
MENUACTION_MP_LAN,
MENUACTION_MP_INTERNET,
MENUACTION_RESUME,
MENUACTION_DONTCANCLE,
MENUACTION_SCREENRES,
MENUACTION_AUDIOHW,
MENUACTION_SPEAKERCONF,
MENUACTION_PLAYERSETUP,
MENUACTION_RESTOREDEF,
MENUACTION_CTRLMETHOD,
MENUACTION_DYNAMICACOUSTIC,
MENUACTION_LOADRADIO,
MENUACTION_MOUSESTEER,
MENUACTION_UNK103,
MENUACTION_UNK104,
MENUACTION_UNK105,
MENUACTION_UNK106,
MENUACTION_UNK107,
MENUACTION_UNK108,
MENUACTION_UNK109,
MENUACTION_UNK110,
};
enum eCheckHover { enum eCheckHover {
ACTIVATE_OPTION = 2, ACTIVATE_OPTION = 2,
IGNORE_OPTION = 42, IGNORE_OPTION = 42,