mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-11-15 09:11:48 +00:00
IT_PAIR for when you want to define both sides of a menu item
This commit is contained in:
parent
e8db39229c
commit
38492073fa
2 changed files with 19 additions and 7 deletions
21
src/m_menu.c
21
src/m_menu.c
|
@ -2973,7 +2973,7 @@ static void M_NextOpt(void)
|
|||
itemOn = 0;
|
||||
else
|
||||
itemOn++;
|
||||
} while (oldItemOn != itemOn && (currentMenu->menuitems[itemOn].status & IT_TYPE) == IT_SPACE);
|
||||
} while (oldItemOn != itemOn && ( (currentMenu->menuitems[itemOn].status & IT_TYPE) & IT_SPACE ));
|
||||
}
|
||||
|
||||
static void M_PrevOpt(void)
|
||||
|
@ -2985,7 +2985,7 @@ static void M_PrevOpt(void)
|
|||
itemOn = currentMenu->numitems - 1;
|
||||
else
|
||||
itemOn--;
|
||||
} while (oldItemOn != itemOn && (currentMenu->menuitems[itemOn].status & IT_TYPE) == IT_SPACE);
|
||||
} while (oldItemOn != itemOn && ( (currentMenu->menuitems[itemOn].status & IT_TYPE) & IT_SPACE ));
|
||||
}
|
||||
|
||||
// lock out further input in a tic when important buttons are pressed
|
||||
|
@ -3619,11 +3619,11 @@ void M_SetupNextMenu(menu_t *menudef)
|
|||
|
||||
// the curent item can be disabled,
|
||||
// this code go up until an enabled item found
|
||||
if ((currentMenu->menuitems[itemOn].status & IT_TYPE) == IT_SPACE)
|
||||
if (( (currentMenu->menuitems[itemOn].status & IT_TYPE) & IT_SPACE ))
|
||||
{
|
||||
for (i = 0; i < currentMenu->numitems; i++)
|
||||
{
|
||||
if ((currentMenu->menuitems[i].status & IT_TYPE) != IT_SPACE)
|
||||
if (!( (currentMenu->menuitems[i].status & IT_TYPE) & IT_SPACE ))
|
||||
{
|
||||
itemOn = i;
|
||||
break;
|
||||
|
@ -4306,7 +4306,18 @@ static void M_DrawGenericScrollMenu(void)
|
|||
}
|
||||
break;
|
||||
case IT_TRANSTEXT:
|
||||
V_DrawString(x, y, V_TRANSLUCENT, currentMenu->menuitems[i].text);
|
||||
switch (currentMenu->menuitems[i].status & IT_TYPE)
|
||||
{
|
||||
case IT_PAIR:
|
||||
V_DrawString(x, y,
|
||||
V_TRANSLUCENT, currentMenu->menuitems[i].patch);
|
||||
V_DrawRightAlignedString(BASEVIDWIDTH - x, y,
|
||||
V_TRANSLUCENT, currentMenu->menuitems[i].text);
|
||||
break;
|
||||
default:
|
||||
V_DrawString(x, y,
|
||||
V_TRANSLUCENT, currentMenu->menuitems[i].text);
|
||||
}
|
||||
break;
|
||||
case IT_QUESTIONMARKS:
|
||||
V_DrawString(x, y, V_TRANSLUCENT|V_OLDSPACING, M_CreateSecretMenuOption(currentMenu->menuitems[i].text));
|
||||
|
|
|
@ -222,13 +222,14 @@ boolean M_CanShowLevelInList(INT32 mapnum, INT32 gt);
|
|||
|
||||
// flags for items in the menu
|
||||
// menu handle (what we do when key is pressed
|
||||
#define IT_TYPE 14 // (2+4+8)
|
||||
#define IT_TYPE 15 // (1+2+4+8)
|
||||
#define IT_CALL 0 // call the function
|
||||
#define IT_SPACE 1 // no handling
|
||||
#define IT_ARROWS 2 // call function with 0 for left arrow and 1 for right arrow in param
|
||||
#define IT_KEYHANDLER 4 // call with the key in param
|
||||
#define IT_SUBMENU 6 // go to sub menu
|
||||
#define IT_CVAR 8 // handle as a cvar
|
||||
#define IT_SPACE 10 // no handling
|
||||
#define IT_PAIR 11 // no handling, define both sides of text
|
||||
#define IT_MSGHANDLER 12 // same as key but with event and sometime can handle y/n key (special for message)
|
||||
|
||||
#define IT_DISPLAY (48+64+128) // 16+32+64+128
|
||||
|
|
Loading…
Reference in a new issue