Subversion Repositories eduke32

Rev

Rev 8771 | Rev 8773 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 8771 Rev 8772
Line 4390... Line 4390...
4390
    M_SAVE.numEntries = numsaveitems;
4390
    M_SAVE.numEntries = numsaveitems;
4391
4391
4392
    // lexicographical sorting?
4392
    // lexicographical sorting?
4393
}
4393
}
4394
4394
-
 
4395
static void Menu_CheckHiddenSelection(Menu_t* m)
-
 
4396
{
-
 
4397
    auto const menu = (MenuMenu_t *)m->object;
-
 
4398
    auto const orig = menu->currentEntry;
-
 
4399
-
 
4400
    while (!menu->entrylist[menu->currentEntry] ||
-
 
4401
        (((MenuEntry_t*) menu->entrylist[menu->currentEntry])->flags & MEF_Hidden) ||
-
 
4402
        ((MenuEntry_t*) menu->entrylist[menu->currentEntry])->type == Spacer)
-
 
4403
    {
-
 
4404
        if (--menu->currentEntry < 0)
-
 
4405
            menu->currentEntry = menu->numEntries;
-
 
4406
        if (menu->currentEntry == orig)
-
 
4407
            G_GameExit("Menu_CheckHiddenSelection: menu has no entries!");
-
 
4408
    }
-
 
4409
}
-
 
4410
4395
static void Menu_AboutToStartDisplaying(Menu_t * m)
4411
static void Menu_AboutToStartDisplaying(Menu_t * m)
4396
{
4412
{
4397
    switch (m->menuID)
4413
    switch (m->menuID)
4398
    {
4414
    {
4399
    case MENU_MAIN:
4415
    case MENU_MAIN:
Line 4501... Line 4517...
4501
4517
4502
        // need this for MENU_SKILL
4518
        // need this for MENU_SKILL
4503
        if (menu->currentEntry >= menu->numEntries)
4519
        if (menu->currentEntry >= menu->numEntries)
4504
            menu->currentEntry = 0;
4520
            menu->currentEntry = 0;
4505
4521
4506
        int32_t i = menu->currentEntry;
4522
        Menu_CheckHiddenSelection(m);
4507
        while (!menu->entrylist[menu->currentEntry] ||
-
 
4508
               (((MenuEntry_t*)menu->entrylist[menu->currentEntry])->flags & MEF_Hidden) ||
-
 
4509
               ((MenuEntry_t*)menu->entrylist[menu->currentEntry])->type == Spacer)
-
 
4510
        {
-
 
4511
            menu->currentEntry++;
-
 
4512
            if (menu->currentEntry >= menu->numEntries)
-
 
4513
                menu->currentEntry = 0;
-
 
4514
            if (menu->currentEntry == i)
-
 
4515
                G_GameExit("Menu_Change: Attempted to show a menu with no entries.");
-
 
4516
        }
-
 
4517
4523
4518
        Menu_EntryFocus(/*currentry*/);
4524
        Menu_EntryFocus(/*currentry*/);
4519
        break;
4525
        break;
4520
    }
4526
    }
4521
    default:
4527
    default:
Line 6087... Line 6093...
6087
            break;
6093
            break;
6088
        }
6094
        }
6089
6095
6090
        case Menu:
6096
        case Menu:
6091
        {
6097
        {
-
 
6098
            Menu_CheckHiddenSelection(cm);
-
 
6099
6092
            int32_t state;
6100
            int32_t state;
6093
6101
6094
            auto menu = (MenuMenu_t*)cm->object;
6102
            auto menu = (MenuMenu_t*)cm->object;
6095
            MenuEntry_t *currentry = menu->entrylist[menu->currentEntry];
6103
            MenuEntry_t *currentry = menu->entrylist[menu->currentEntry];
6096
6104