mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-03-12 11:51:39 +00:00
Menus: Factor out code into Menu_AboutToStartDisplaying and Menu_ChangingTo.
git-svn-id: https://svn.eduke32.com/eduke32@6465 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
e971005153
commit
ae81b6dce7
1 changed files with 127 additions and 100 deletions
|
@ -3613,10 +3613,134 @@ void Menu_AnimateChange(int32_t cm, MenuAnimationType_t animtype)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void Menu_AboutToStartDisplaying(Menu_t * m)
|
||||||
|
{
|
||||||
|
switch (m->menuID)
|
||||||
|
{
|
||||||
|
case MENU_MAIN:
|
||||||
|
if (KXDWN)
|
||||||
|
ME_MAIN_LOADGAME.name = s_Continue;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case MENU_MAIN_INGAME:
|
||||||
|
if (KXDWN)
|
||||||
|
ME_MAIN_LOADGAME.name = s_LoadGame;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case MENU_LOAD:
|
||||||
|
if (KXDWN)
|
||||||
|
M_LOAD.title = (g_player[myconnectindex].ps->gm & MODE_GAME) ? s_LoadGame : s_Continue;
|
||||||
|
for (size_t i = 0; i < MAXSAVEGAMES; ++i)
|
||||||
|
{
|
||||||
|
MenuEntry_DisableOnCondition(&ME_LOAD[i], !ud.savegame[i][0] /*|| g_oldverSavegame[i]*/);
|
||||||
|
MenuEntry_LookDisabledOnCondition(&ME_LOAD[i], g_oldverSavegame[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (g_lastSaveSlot >= 0 && g_previousMenu != MENU_LOADVERIFY)
|
||||||
|
M_LOAD.currentEntry = g_lastSaveSlot;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case MENU_SAVE:
|
||||||
|
if (g_lastSaveSlot >= 0 && g_previousMenu != MENU_SAVEVERIFY)
|
||||||
|
M_SAVE.currentEntry = g_lastSaveSlot;
|
||||||
|
|
||||||
|
for (size_t i = 0; i < MAXSAVEGAMES; ++i)
|
||||||
|
MenuEntry_LookDisabledOnCondition(&ME_SAVE[i], g_oldverSavegame[i]);
|
||||||
|
|
||||||
|
if (g_player[myconnectindex].ps->gm&MODE_GAME)
|
||||||
|
{
|
||||||
|
g_screenCapture = 1;
|
||||||
|
G_DrawRooms(myconnectindex,65536);
|
||||||
|
g_screenCapture = 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case MENU_VIDEOSETUP:
|
||||||
|
newresolution = 0;
|
||||||
|
for (size_t i = 0; i < MAXVALIDMODES; ++i)
|
||||||
|
{
|
||||||
|
if (resolution[i].xdim == xdim && resolution[i].ydim == ydim)
|
||||||
|
{
|
||||||
|
newresolution = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
newrendermode = getrendermode();
|
||||||
|
newfullscreen = fullscreen;
|
||||||
|
newvsync = vsync;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case MENU_ADVSOUND:
|
||||||
|
soundrate = ud.config.MixRate;
|
||||||
|
soundvoices = ud.config.NumVoices;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (m->type)
|
||||||
|
{
|
||||||
|
case TextForm:
|
||||||
|
typebuf[0] = 0;
|
||||||
|
((MenuTextForm_t*)m->object)->input = typebuf;
|
||||||
|
break;
|
||||||
|
case FileSelect:
|
||||||
|
Menu_FileSelectInit((MenuFileSelect_t*)m->object);
|
||||||
|
break;
|
||||||
|
case Menu:
|
||||||
|
{
|
||||||
|
MenuMenu_t *menu = (MenuMenu_t*)m->object;
|
||||||
|
// MenuEntry_t* currentry = menu->entrylist[menu->currentEntry];
|
||||||
|
|
||||||
|
// need this for MENU_SKILL
|
||||||
|
if (menu->currentEntry >= menu->numEntries)
|
||||||
|
menu->currentEntry = 0;
|
||||||
|
|
||||||
|
int32_t i = menu->currentEntry;
|
||||||
|
while (!menu->entrylist[menu->currentEntry] || ((MenuEntry_t*)menu->entrylist[menu->currentEntry])->type == Spacer)
|
||||||
|
{
|
||||||
|
menu->currentEntry++;
|
||||||
|
if (menu->currentEntry >= menu->numEntries)
|
||||||
|
menu->currentEntry = 0;
|
||||||
|
if (menu->currentEntry == i)
|
||||||
|
G_GameExit("Menu_Change: Attempted to show a menu with no entries.");
|
||||||
|
}
|
||||||
|
|
||||||
|
Menu_EntryFocus(/*currentry*/);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void Menu_ChangingTo(Menu_t * m)
|
||||||
|
{
|
||||||
|
switch (m->menuID)
|
||||||
|
{
|
||||||
|
#ifdef __ANDROID__
|
||||||
|
case MENU_TOUCHBUTTONS:
|
||||||
|
AndroidToggleButtonEditor();
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (m->type)
|
||||||
|
{
|
||||||
|
case TextForm:
|
||||||
|
WithSDL2_StartTextInput();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int Menu_Change(MenuID_t cm)
|
int Menu_Change(MenuID_t cm)
|
||||||
{
|
{
|
||||||
Menu_t *search;
|
Menu_t *search;
|
||||||
int32_t i;
|
|
||||||
|
|
||||||
cm = VM_OnEventWithReturn(EVENT_CHANGEMENU, g_player[myconnectindex].ps->i, myconnectindex, cm);
|
cm = VM_OnEventWithReturn(EVENT_CHANGEMENU, g_player[myconnectindex].ps->i, myconnectindex, cm);
|
||||||
|
|
||||||
|
@ -3654,110 +3778,13 @@ int Menu_Change(MenuID_t cm)
|
||||||
m_parentMenu = result;
|
m_parentMenu = result;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (g_currentMenu)
|
Menu_AboutToStartDisplaying(m_currentMenu);
|
||||||
{
|
Menu_ChangingTo(m_currentMenu);
|
||||||
case MENU_MAIN:
|
|
||||||
if (KXDWN)
|
|
||||||
ME_MAIN_LOADGAME.name = s_Continue;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case MENU_MAIN_INGAME:
|
|
||||||
if (KXDWN)
|
|
||||||
ME_MAIN_LOADGAME.name = s_LoadGame;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case MENU_LOAD:
|
|
||||||
if (KXDWN)
|
|
||||||
M_LOAD.title = (g_player[myconnectindex].ps->gm & MODE_GAME) ? s_LoadGame : s_Continue;
|
|
||||||
for (i = 0; i < MAXSAVEGAMES; ++i)
|
|
||||||
{
|
|
||||||
MenuEntry_DisableOnCondition(&ME_LOAD[i], !ud.savegame[i][0] /*|| g_oldverSavegame[i]*/);
|
|
||||||
MenuEntry_LookDisabledOnCondition(&ME_LOAD[i], g_oldverSavegame[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (g_lastSaveSlot >= 0 && g_previousMenu != MENU_LOADVERIFY)
|
|
||||||
M_LOAD.currentEntry = g_lastSaveSlot;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case MENU_SAVE:
|
|
||||||
if (g_lastSaveSlot >= 0 && g_previousMenu != MENU_SAVEVERIFY)
|
|
||||||
M_SAVE.currentEntry = g_lastSaveSlot;
|
|
||||||
|
|
||||||
for (i = 0; i < MAXSAVEGAMES; ++i)
|
|
||||||
MenuEntry_LookDisabledOnCondition(&ME_SAVE[i], g_oldverSavegame[i]);
|
|
||||||
|
|
||||||
if (g_player[myconnectindex].ps->gm&MODE_GAME)
|
|
||||||
{
|
|
||||||
g_screenCapture = 1;
|
|
||||||
G_DrawRooms(myconnectindex,65536);
|
|
||||||
g_screenCapture = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case MENU_VIDEOSETUP:
|
|
||||||
newresolution = 0;
|
|
||||||
for (i = 0; i < MAXVALIDMODES; ++i)
|
|
||||||
{
|
|
||||||
if (resolution[i].xdim == xdim && resolution[i].ydim == ydim)
|
|
||||||
{
|
|
||||||
newresolution = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
newrendermode = getrendermode();
|
|
||||||
newfullscreen = fullscreen;
|
|
||||||
newvsync = vsync;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case MENU_ADVSOUND:
|
|
||||||
soundrate = ud.config.MixRate;
|
|
||||||
soundvoices = ud.config.NumVoices;
|
|
||||||
break;
|
|
||||||
|
|
||||||
#ifdef __ANDROID__
|
|
||||||
case MENU_TOUCHBUTTONS:
|
|
||||||
AndroidToggleButtonEditor();
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if !defined EDUKE32_TOUCH_DEVICES
|
#if !defined EDUKE32_TOUCH_DEVICES
|
||||||
m_menuchange_watchpoint = 1;
|
m_menuchange_watchpoint = 1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (m_currentMenu->type == TextForm)
|
|
||||||
{
|
|
||||||
typebuf[0] = 0;
|
|
||||||
((MenuTextForm_t*)m_currentMenu->object)->input = typebuf;
|
|
||||||
WithSDL2_StartTextInput();
|
|
||||||
}
|
|
||||||
else if (m_currentMenu->type == FileSelect)
|
|
||||||
Menu_FileSelectInit((MenuFileSelect_t*)m_currentMenu->object);
|
|
||||||
else if (m_currentMenu->type == Menu)
|
|
||||||
{
|
|
||||||
MenuMenu_t *menu = (MenuMenu_t*)m_currentMenu->object;
|
|
||||||
// MenuEntry_t* currentry = menu->entrylist[menu->currentEntry];
|
|
||||||
|
|
||||||
// need this for MENU_SKILL
|
|
||||||
if (menu->currentEntry >= menu->numEntries)
|
|
||||||
menu->currentEntry = 0;
|
|
||||||
|
|
||||||
i = menu->currentEntry;
|
|
||||||
while (!menu->entrylist[menu->currentEntry] || ((MenuEntry_t*)menu->entrylist[menu->currentEntry])->type == Spacer)
|
|
||||||
{
|
|
||||||
menu->currentEntry++;
|
|
||||||
if (menu->currentEntry >= menu->numEntries)
|
|
||||||
menu->currentEntry = 0;
|
|
||||||
if (menu->currentEntry == i)
|
|
||||||
G_GameExit("Menu_Change: Attempted to change to a menu with no entries.");
|
|
||||||
}
|
|
||||||
|
|
||||||
Menu_EntryFocus(/*currentry*/);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue