mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-01-29 12:40:58 +00:00
Scrolling, monolithic control configuration page. Relies on sphere's patch.dta update for arrow symbols.
This commit is contained in:
parent
30b10b05d3
commit
37bd729fe8
2 changed files with 145 additions and 122 deletions
|
@ -21,7 +21,7 @@
|
|||
//------------------------------------
|
||||
// heads up font
|
||||
//------------------------------------
|
||||
#define HU_FONTSTART '\x1F' // the first font character
|
||||
#define HU_FONTSTART '\x19' // the first font character
|
||||
#define HU_FONTEND '~'
|
||||
|
||||
#define HU_FONTSIZE (HU_FONTEND - HU_FONTSTART + 1)
|
||||
|
|
265
src/m_menu.c
265
src/m_menu.c
|
@ -301,7 +301,7 @@ static void M_SetupMultiPlayer2(INT32 choice);
|
|||
// Options
|
||||
// Split into multiple parts due to size
|
||||
// Controls
|
||||
menu_t OP_ControlsDef, OP_ControlListDef, OP_MoveControlsDef;
|
||||
menu_t OP_ChangeControlsDef;
|
||||
menu_t OP_MPControlsDef, OP_CameraControlsDef, OP_MiscControlsDef;
|
||||
menu_t OP_P1ControlsDef, OP_P2ControlsDef, OP_MouseOptionsDef;
|
||||
menu_t OP_Mouse2OptionsDef, OP_Joystick1Def, OP_Joystick2Def;
|
||||
|
@ -1015,23 +1015,19 @@ static menuitem_t MP_PlayerSetupMenu[] =
|
|||
// ------------------------------------
|
||||
// Prefix: OP_
|
||||
static menuitem_t OP_MainMenu[] =
|
||||
{
|
||||
{IT_SUBMENU | IT_STRING, NULL, "Setup Controls...", &OP_ControlsDef, 10},
|
||||
|
||||
{IT_SUBMENU | IT_STRING, NULL, "Video Options...", &OP_VideoOptionsDef, 30},
|
||||
{IT_SUBMENU | IT_STRING, NULL, "Sound Options...", &OP_SoundOptionsDef, 40},
|
||||
{IT_SUBMENU | IT_STRING, NULL, "Data Options...", &OP_DataOptionsDef, 50},
|
||||
|
||||
{IT_SUBMENU | IT_STRING, NULL, "Game Options...", &OP_GameOptionsDef, 70},
|
||||
{IT_CALL | IT_STRING, NULL, "Server Options...", M_ServerOptions, 80},
|
||||
};
|
||||
|
||||
static menuitem_t OP_ControlsMenu[] =
|
||||
{
|
||||
{IT_SUBMENU | IT_STRING, NULL, "Player 1 Controls...", &OP_P1ControlsDef, 10},
|
||||
{IT_SUBMENU | IT_STRING, NULL, "Player 2 Controls...", &OP_P2ControlsDef, 20},
|
||||
{IT_STRING | IT_CVAR, NULL, "Controls per key", &cv_controlperkey, 30},
|
||||
|
||||
{IT_STRING | IT_CVAR, NULL, "Controls per key", &cv_controlperkey, 40},
|
||||
{IT_SUBMENU | IT_STRING, NULL, "Video Options...", &OP_VideoOptionsDef, 50},
|
||||
{IT_SUBMENU | IT_STRING, NULL, "Sound Options...", &OP_SoundOptionsDef, 60},
|
||||
|
||||
{IT_CALL | IT_STRING, NULL, "Server Options...", M_ServerOptions, 80},
|
||||
|
||||
{IT_SUBMENU | IT_STRING, NULL, "Data Options...", &OP_DataOptionsDef, 100},
|
||||
|
||||
{IT_SUBMENU | IT_STRING, NULL, "Game Options...", &OP_GameOptionsDef, 120},
|
||||
};
|
||||
|
||||
static menuitem_t OP_P1ControlsMenu[] =
|
||||
|
@ -1058,63 +1054,47 @@ static menuitem_t OP_P2ControlsMenu[] =
|
|||
{IT_STRING | IT_CVAR, NULL, "Analog Control", &cv_useranalog2, 80},
|
||||
};
|
||||
|
||||
static menuitem_t OP_ControlListMenu[] =
|
||||
static menuitem_t OP_ChangeControlsMenu[] =
|
||||
{
|
||||
{IT_SUBMENU | IT_STRING, NULL, "Movement Controls...", &OP_MoveControlsDef, 10},
|
||||
{IT_SUBMENU | IT_STRING, NULL, "Multiplayer Controls...", &OP_MPControlsDef, 20},
|
||||
{IT_SUBMENU | IT_STRING, NULL, "Camera Controls...", &OP_CameraControlsDef, 30},
|
||||
{IT_SUBMENU | IT_STRING, NULL, "Miscellaneous Controls...", &OP_MiscControlsDef, 40},
|
||||
};
|
||||
|
||||
static menuitem_t OP_MoveControlsMenu[] =
|
||||
{
|
||||
{IT_CALL | IT_STRING2, NULL, "Forward", M_ChangeControl, gc_forward },
|
||||
{IT_CALL | IT_STRING2, NULL, "Reverse", M_ChangeControl, gc_backward },
|
||||
{IT_CALL | IT_STRING2, NULL, "Turn Left", M_ChangeControl, gc_turnleft },
|
||||
{IT_CALL | IT_STRING2, NULL, "Turn Right", M_ChangeControl, gc_turnright },
|
||||
{IT_CALL | IT_STRING2, NULL, "Jump", M_ChangeControl, gc_jump },
|
||||
{IT_CALL | IT_STRING2, NULL, "Spin", M_ChangeControl, gc_use },
|
||||
{IT_CALL | IT_STRING2, NULL, "Strafe Left", M_ChangeControl, gc_strafeleft },
|
||||
{IT_CALL | IT_STRING2, NULL, "Strafe Right", M_ChangeControl, gc_straferight},
|
||||
};
|
||||
|
||||
static menuitem_t OP_MPControlsMenu[] =
|
||||
{
|
||||
{IT_CALL | IT_STRING2, NULL, "Talk key", M_ChangeControl, gc_talkkey },
|
||||
{IT_CALL | IT_STRING2, NULL, "Team-Talk key", M_ChangeControl, gc_teamkey },
|
||||
{IT_CALL | IT_STRING2, NULL, "Rankings/Scores", M_ChangeControl, gc_scores },
|
||||
{IT_CALL | IT_STRING2, NULL, "Toss Flag", M_ChangeControl, gc_tossflag },
|
||||
{IT_CALL | IT_STRING2, NULL, "Next Weapon", M_ChangeControl, gc_weaponnext },
|
||||
{IT_CALL | IT_STRING2, NULL, "Prev Weapon", M_ChangeControl, gc_weaponprev },
|
||||
{IT_CALL | IT_STRING2, NULL, "Weapon Slot 1", M_ChangeControl, gc_wepslot1 },
|
||||
{IT_CALL | IT_STRING2, NULL, "Weapon Slot 2", M_ChangeControl, gc_wepslot2 },
|
||||
{IT_CALL | IT_STRING2, NULL, "Weapon Slot 3", M_ChangeControl, gc_wepslot3 },
|
||||
{IT_CALL | IT_STRING2, NULL, "Weapon Slot 4", M_ChangeControl, gc_wepslot4 },
|
||||
{IT_CALL | IT_STRING2, NULL, "Weapon Slot 5", M_ChangeControl, gc_wepslot5 },
|
||||
{IT_CALL | IT_STRING2, NULL, "Weapon Slot 6", M_ChangeControl, gc_wepslot6 },
|
||||
{IT_CALL | IT_STRING2, NULL, "Weapon Slot 7", M_ChangeControl, gc_wepslot7 },
|
||||
{IT_CALL | IT_STRING2, NULL, "Ring Toss", M_ChangeControl, gc_fire },
|
||||
{IT_CALL | IT_STRING2, NULL, "Ring Toss Normal", M_ChangeControl, gc_firenormal },
|
||||
};
|
||||
|
||||
static menuitem_t OP_CameraControlsMenu[] =
|
||||
{
|
||||
{IT_CALL | IT_STRING2, NULL, "Look Up", M_ChangeControl, gc_lookup },
|
||||
{IT_CALL | IT_STRING2, NULL, "Look Down", M_ChangeControl, gc_lookdown },
|
||||
{IT_CALL | IT_STRING2, NULL, "Center View", M_ChangeControl, gc_centerview },
|
||||
{IT_CALL | IT_STRING2, NULL, "Mouselook", M_ChangeControl, gc_mouseaiming },
|
||||
{IT_CALL | IT_STRING2, NULL, "Reset Camera", M_ChangeControl, gc_camreset },
|
||||
{IT_CALL | IT_STRING2, NULL, "Toggle Chasecam", M_ChangeControl, gc_camtoggle },
|
||||
};
|
||||
|
||||
static menuitem_t OP_MiscControlsMenu[] =
|
||||
{
|
||||
{IT_CALL | IT_STRING2, NULL, "Custom Action 1", M_ChangeControl, gc_custom1 },
|
||||
{IT_CALL | IT_STRING2, NULL, "Custom Action 2", M_ChangeControl, gc_custom2 },
|
||||
{IT_CALL | IT_STRING2, NULL, "Custom Action 3", M_ChangeControl, gc_custom3 },
|
||||
|
||||
{IT_CALL | IT_STRING2, NULL, "Pause", M_ChangeControl, gc_pause },
|
||||
{IT_CALL | IT_STRING2, NULL, "Console", M_ChangeControl, gc_console },
|
||||
{IT_CALL | IT_STRING2, NULL, "Move Forward", M_ChangeControl, gc_forward },
|
||||
{IT_CALL | IT_STRING2, NULL, "Move Backward", M_ChangeControl, gc_backward },
|
||||
{IT_CALL | IT_STRING2, NULL, "Move Left", M_ChangeControl, gc_strafeleft },
|
||||
{IT_CALL | IT_STRING2, NULL, "Move Right", M_ChangeControl, gc_straferight },
|
||||
{IT_CALL | IT_STRING2, NULL, "Jump / Main Action", M_ChangeControl, gc_jump },
|
||||
{IT_CALL | IT_STRING2, NULL, "Spin / Shield Action", M_ChangeControl, gc_use },
|
||||
{IT_DISABLED, NULL, "", NULL, 0},
|
||||
{IT_CALL | IT_STRING2, NULL, "Camera Up", M_ChangeControl, gc_lookup },
|
||||
{IT_CALL | IT_STRING2, NULL, "Camera Down", M_ChangeControl, gc_lookdown },
|
||||
{IT_CALL | IT_STRING2, NULL, "Camera Left", M_ChangeControl, gc_turnleft },
|
||||
{IT_CALL | IT_STRING2, NULL, "Camera Right", M_ChangeControl, gc_turnright },
|
||||
{IT_CALL | IT_STRING2, NULL, "Center View", M_ChangeControl, gc_centerview },
|
||||
{IT_CALL | IT_STRING2, NULL, "Toggle Mouselook", M_ChangeControl, gc_mouseaiming },
|
||||
{IT_CALL | IT_STRING2, NULL, "Toggle Chasecam", M_ChangeControl, gc_camtoggle },
|
||||
{IT_CALL | IT_STRING2, NULL, "Reset Camera", M_ChangeControl, gc_camreset },
|
||||
{IT_DISABLED, NULL, "", NULL, 0},
|
||||
{IT_CALL | IT_STRING2, NULL, "Talk", M_ChangeControl, gc_talkkey },
|
||||
{IT_CALL | IT_STRING2, NULL, "Talk (Team only)", M_ChangeControl, gc_teamkey },
|
||||
{IT_CALL | IT_STRING2, NULL, "Game Status", M_ChangeControl, gc_scores },
|
||||
{IT_DISABLED, NULL, "", NULL, 0},
|
||||
{IT_CALL | IT_STRING2, NULL, "Fire", M_ChangeControl, gc_fire },
|
||||
{IT_CALL | IT_STRING2, NULL, "Fire Normal", M_ChangeControl, gc_firenormal },
|
||||
{IT_CALL | IT_STRING2, NULL, "Toss Flag", M_ChangeControl, gc_tossflag },
|
||||
{IT_CALL | IT_STRING2, NULL, "Next Weapon", M_ChangeControl, gc_weaponnext },
|
||||
{IT_CALL | IT_STRING2, NULL, "Prev Weapon", M_ChangeControl, gc_weaponprev },
|
||||
{IT_CALL | IT_STRING2, NULL, "Red / Infinity", M_ChangeControl, gc_wepslot1 },
|
||||
{IT_CALL | IT_STRING2, NULL, "Automatic", M_ChangeControl, gc_wepslot2 },
|
||||
{IT_CALL | IT_STRING2, NULL, "Bounce", M_ChangeControl, gc_wepslot3 },
|
||||
{IT_CALL | IT_STRING2, NULL, "Scatter", M_ChangeControl, gc_wepslot4 },
|
||||
{IT_CALL | IT_STRING2, NULL, "Grenade", M_ChangeControl, gc_wepslot5 },
|
||||
{IT_CALL | IT_STRING2, NULL, "Explosion", M_ChangeControl, gc_wepslot6 },
|
||||
{IT_CALL | IT_STRING2, NULL, "Rail", M_ChangeControl, gc_wepslot7 },
|
||||
{IT_DISABLED, NULL, "", NULL, 0},
|
||||
{IT_CALL | IT_STRING2, NULL, "Custom Action 1", M_ChangeControl, gc_custom1 },
|
||||
{IT_CALL | IT_STRING2, NULL, "Custom Action 2", M_ChangeControl, gc_custom2 },
|
||||
{IT_CALL | IT_STRING2, NULL, "Custom Action 3", M_ChangeControl, gc_custom3 },
|
||||
{IT_DISABLED, NULL, "", NULL, 0},
|
||||
{IT_CALL | IT_STRING2, NULL, "Pause", M_ChangeControl, gc_pause },
|
||||
{IT_CALL | IT_STRING2, NULL, "Console", M_ChangeControl, gc_console },
|
||||
};
|
||||
|
||||
static menuitem_t OP_Joystick1Menu[] =
|
||||
|
@ -1735,14 +1715,9 @@ menu_t MP_PlayerSetupDef =
|
|||
|
||||
// Options
|
||||
menu_t OP_MainDef = DEFAULTMENUSTYLE("M_OPTTTL", OP_MainMenu, &MainDef, 60, 30);
|
||||
menu_t OP_ControlsDef = DEFAULTMENUSTYLE("M_CONTRO", OP_ControlsMenu, &OP_MainDef, 60, 30);
|
||||
menu_t OP_ControlListDef = DEFAULTMENUSTYLE("M_CONTRO", OP_ControlListMenu, &OP_ControlsDef, 60, 30);
|
||||
menu_t OP_MoveControlsDef = CONTROLMENUSTYLE(OP_MoveControlsMenu, &OP_ControlListDef);
|
||||
menu_t OP_MPControlsDef = CONTROLMENUSTYLE(OP_MPControlsMenu, &OP_ControlListDef);
|
||||
menu_t OP_CameraControlsDef = CONTROLMENUSTYLE(OP_CameraControlsMenu, &OP_ControlListDef);
|
||||
menu_t OP_MiscControlsDef = CONTROLMENUSTYLE(OP_MiscControlsMenu, &OP_ControlListDef);
|
||||
menu_t OP_P1ControlsDef = DEFAULTMENUSTYLE("M_CONTRO", OP_P1ControlsMenu, &OP_ControlsDef, 60, 30);
|
||||
menu_t OP_P2ControlsDef = DEFAULTMENUSTYLE("M_CONTRO", OP_P2ControlsMenu, &OP_ControlsDef, 60, 30);
|
||||
menu_t OP_ChangeControlsDef = CONTROLMENUSTYLE(OP_ChangeControlsMenu, &OP_MainDef);
|
||||
menu_t OP_P1ControlsDef = DEFAULTMENUSTYLE("M_CONTRO", OP_P1ControlsMenu, &OP_MainDef, 60, 30);
|
||||
menu_t OP_P2ControlsDef = DEFAULTMENUSTYLE("M_CONTRO", OP_P2ControlsMenu, &OP_MainDef, 60, 30);
|
||||
menu_t OP_MouseOptionsDef = DEFAULTMENUSTYLE("M_CONTRO", OP_MouseOptionsMenu, &OP_P1ControlsDef, 60, 30);
|
||||
menu_t OP_Mouse2OptionsDef = DEFAULTMENUSTYLE("M_CONTRO", OP_Mouse2OptionsMenu, &OP_P2ControlsDef, 60, 30);
|
||||
menu_t OP_Joystick1Def = DEFAULTMENUSTYLE("M_CONTRO", OP_Joystick1Menu, &OP_P1ControlsDef, 60, 30);
|
||||
|
@ -7484,15 +7459,17 @@ static void M_Setup1PControlsMenu(INT32 choice)
|
|||
currentMenu->lastOn = itemOn;
|
||||
|
||||
// Unhide the three non-P2 controls
|
||||
OP_MPControlsMenu[0].status = IT_CALL|IT_STRING2;
|
||||
OP_MPControlsMenu[1].status = IT_CALL|IT_STRING2;
|
||||
OP_MPControlsMenu[2].status = IT_CALL|IT_STRING2;
|
||||
OP_ChangeControlsMenu[15].status = IT_DISABLED;
|
||||
OP_ChangeControlsMenu[15+1].status = IT_CALL|IT_STRING2;
|
||||
OP_ChangeControlsMenu[15+2].status = IT_CALL|IT_STRING2;
|
||||
OP_ChangeControlsMenu[15+3].status = IT_CALL|IT_STRING2;
|
||||
// Unide the pause/console controls too
|
||||
OP_MiscControlsMenu[3].status = IT_CALL|IT_STRING2;
|
||||
OP_MiscControlsMenu[4].status = IT_CALL|IT_STRING2;
|
||||
OP_ChangeControlsMenu[36].status = IT_DISABLED;
|
||||
OP_ChangeControlsMenu[36+1].status = IT_CALL|IT_STRING2;
|
||||
OP_ChangeControlsMenu[36+2].status = IT_CALL|IT_STRING2;
|
||||
|
||||
OP_ControlListDef.prevMenu = &OP_P1ControlsDef;
|
||||
M_SetupNextMenu(&OP_ControlListDef);
|
||||
OP_ChangeControlsDef.prevMenu = &OP_P1ControlsDef;
|
||||
M_SetupNextMenu(&OP_ChangeControlsDef);
|
||||
}
|
||||
|
||||
static void M_Setup2PControlsMenu(INT32 choice)
|
||||
|
@ -7503,61 +7480,107 @@ static void M_Setup2PControlsMenu(INT32 choice)
|
|||
currentMenu->lastOn = itemOn;
|
||||
|
||||
// Hide the three non-P2 controls
|
||||
OP_MPControlsMenu[0].status = IT_GRAYEDOUT2;
|
||||
OP_MPControlsMenu[1].status = IT_GRAYEDOUT2;
|
||||
OP_MPControlsMenu[2].status = IT_GRAYEDOUT2;
|
||||
OP_ChangeControlsMenu[15].status = IT_DISABLED;
|
||||
OP_ChangeControlsMenu[15+1].status = IT_GRAYEDOUT2;
|
||||
OP_ChangeControlsMenu[15+2].status = IT_GRAYEDOUT2;
|
||||
OP_ChangeControlsMenu[15+3].status = IT_GRAYEDOUT2;
|
||||
// Hide the pause/console controls too
|
||||
OP_MiscControlsMenu[3].status = IT_GRAYEDOUT2;
|
||||
OP_MiscControlsMenu[4].status = IT_GRAYEDOUT2;
|
||||
OP_ChangeControlsMenu[36].status = IT_DISABLED;
|
||||
OP_ChangeControlsMenu[36+1].status = IT_GRAYEDOUT2;
|
||||
OP_ChangeControlsMenu[36+2].status = IT_GRAYEDOUT2;
|
||||
|
||||
OP_ControlListDef.prevMenu = &OP_P2ControlsDef;
|
||||
M_SetupNextMenu(&OP_ControlListDef);
|
||||
OP_ChangeControlsDef.prevMenu = &OP_P2ControlsDef;
|
||||
M_SetupNextMenu(&OP_ChangeControlsDef);
|
||||
}
|
||||
|
||||
#define controlheight 18
|
||||
|
||||
// Draws the Customise Controls menu
|
||||
static void M_DrawControl(void)
|
||||
{
|
||||
char tmp[50];
|
||||
INT32 i;
|
||||
INT32 x, y, i, max, cursory = 0;
|
||||
INT32 keys[2];
|
||||
|
||||
// draw title, strings and submenu
|
||||
M_DrawGenericMenu();
|
||||
x = currentMenu->x;
|
||||
y = currentMenu->y;
|
||||
|
||||
i = itemOn - (controlheight/2);
|
||||
if (i < 0)
|
||||
i = 0;
|
||||
|
||||
max = i + controlheight;
|
||||
if (max > currentMenu->numitems)
|
||||
{
|
||||
max = currentMenu->numitems;
|
||||
if (max < controlheight)
|
||||
i = 0;
|
||||
else
|
||||
i = max - controlheight;
|
||||
}
|
||||
|
||||
// draw title (or big pic)
|
||||
M_DrawMenuTitle();
|
||||
|
||||
M_CentreText(30,
|
||||
(setupcontrols_secondaryplayer ? "SET CONTROLS FOR SECONDARY PLAYER" :
|
||||
"PRESS ENTER TO CHANGE, BACKSPACE TO CLEAR"));
|
||||
|
||||
for (i = 0;i < currentMenu->numitems;i++)
|
||||
if (i)
|
||||
{
|
||||
if (currentMenu->menuitems[i].status != IT_CONTROL)
|
||||
continue;
|
||||
|
||||
keys[0] = setupcontrols[currentMenu->menuitems[i].alphaKey][0];
|
||||
keys[1] = setupcontrols[currentMenu->menuitems[i].alphaKey][1];
|
||||
|
||||
tmp[0] ='\0';
|
||||
if (keys[0] == KEY_NULL && keys[1] == KEY_NULL)
|
||||
{
|
||||
strcpy(tmp, "---");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (keys[0] != KEY_NULL)
|
||||
strcat (tmp, G_KeynumToString (keys[0]));
|
||||
|
||||
if (keys[0] != KEY_NULL && keys[1] != KEY_NULL)
|
||||
strcat(tmp," or ");
|
||||
|
||||
if (keys[1] != KEY_NULL)
|
||||
strcat (tmp, G_KeynumToString (keys[1]));
|
||||
|
||||
|
||||
}
|
||||
V_DrawRightAlignedString(BASEVIDWIDTH-currentMenu->x, currentMenu->y + i*8, V_YELLOWMAP, tmp);
|
||||
i++;
|
||||
V_DrawCenteredString(BASEVIDWIDTH/2, y, V_YELLOWMAP, "\x1A"); // up arrow
|
||||
y += SMALLLINEHEIGHT;
|
||||
}
|
||||
if (max != currentMenu->numitems)
|
||||
{
|
||||
max--;
|
||||
V_DrawCenteredString(BASEVIDWIDTH/2, y+(SMALLLINEHEIGHT*(max-i)), V_YELLOWMAP, "\x1B"); // down arrow
|
||||
}
|
||||
|
||||
for (; i < max; i++)
|
||||
{
|
||||
if (i == itemOn)
|
||||
cursory = y;
|
||||
|
||||
if (currentMenu->menuitems[i].status == IT_CONTROL)
|
||||
{
|
||||
V_DrawString(x, y, ((i == itemOn) ? V_YELLOWMAP : 0), currentMenu->menuitems[i].text);
|
||||
keys[0] = setupcontrols[currentMenu->menuitems[i].alphaKey][0];
|
||||
keys[1] = setupcontrols[currentMenu->menuitems[i].alphaKey][1];
|
||||
|
||||
tmp[0] ='\0';
|
||||
if (keys[0] == KEY_NULL && keys[1] == KEY_NULL)
|
||||
{
|
||||
strcpy(tmp, "---");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (keys[0] != KEY_NULL)
|
||||
strcat (tmp, G_KeynumToString (keys[0]));
|
||||
|
||||
if (keys[0] != KEY_NULL && keys[1] != KEY_NULL)
|
||||
strcat(tmp," or ");
|
||||
|
||||
if (keys[1] != KEY_NULL)
|
||||
strcat (tmp, G_KeynumToString (keys[1]));
|
||||
|
||||
|
||||
}
|
||||
V_DrawRightAlignedString(BASEVIDWIDTH-currentMenu->x, y, V_YELLOWMAP, tmp);
|
||||
}
|
||||
else if (currentMenu->menuitems[i].text)
|
||||
V_DrawString(x, y, V_TRANSLUCENT, currentMenu->menuitems[i].text);
|
||||
|
||||
y += SMALLLINEHEIGHT;
|
||||
}
|
||||
|
||||
V_DrawScaledPatch(currentMenu->x - 24, cursory, 0,
|
||||
W_CachePatchName("M_CURSOR", PU_CACHE));
|
||||
}
|
||||
|
||||
#undef controlbuffer
|
||||
|
||||
static INT32 controltochange;
|
||||
|
||||
static void M_ChangecontrolResponse(event_t *ev)
|
||||
|
|
Loading…
Reference in a new issue