Allow the menus to overide the Escape key.

This commit is contained in:
Bill Currie 2011-03-25 18:02:59 +09:00
parent 896791b209
commit 84afc458fa
3 changed files with 16 additions and 14 deletions

View File

@ -139,7 +139,7 @@ void Menu_Init (void);
void Menu_Load (void);
void Menu_Draw (struct view_s *view);
void Menu_Draw_Hud (struct view_s *view);
void Menu_KeyEvent (knum_t key, short unicode, qboolean down);
int Menu_KeyEvent (knum_t key, short unicode, qboolean down);
void Menu_Enter (void);
void Menu_Leave (void);

View File

@ -460,6 +460,11 @@ C_KeyEvent (knum_t key, short unicode, qboolean down)
if (!down)
return;
if (key_dest == key_menu) {
if (Menu_KeyEvent (key, unicode, down))
return;
}
if (down && (key == QFK_ESCAPE || unicode == '\x1b')) {
switch (key_dest) {
case key_menu:
@ -488,11 +493,8 @@ C_KeyEvent (knum_t key, short unicode, qboolean down)
}
if (key_dest == key_menu) {
Menu_KeyEvent (key, unicode, down);
return;
}
if (key_dest == key_message) {
} else if (key_dest == key_message) {
if (chat_team) {
il = say_team_line;
} else {

View File

@ -619,14 +619,14 @@ Menu_Draw_Hud (view_t *view)
run_menu_post ();
}
void
int
Menu_KeyEvent (knum_t key, short unicode, qboolean down)
{
menu_item_t *item;
int ret;
if (!menu)
return;
return 0;
if (menu->keyevent) {
run_menu_pre ();
PR_RESET_PARAMS (&menu_pr_state);
@ -637,7 +637,7 @@ Menu_KeyEvent (knum_t key, short unicode, qboolean down)
ret = R_INT (&menu_pr_state);
run_menu_post ();
if (ret)
return;
return 1;
} else if (menu->items && menu->items[menu->cur_item]->func
&& menu->items[menu->cur_item]->allkeys) {
run_menu_pre ();
@ -652,21 +652,21 @@ Menu_KeyEvent (knum_t key, short unicode, qboolean down)
ret = R_INT (&menu_pr_state);
run_menu_post ();
if (ret)
return;
return 1;
}
if (!menu || !menu->items)
return;
return 0;
switch (key) {
case QFK_DOWN:
case QFM_WHEEL_DOWN:
menu->cur_item++;
menu->cur_item %= menu->num_items;
break;
return 1;
case QFK_UP:
case QFM_WHEEL_UP:
menu->cur_item += menu->num_items - 1;
menu->cur_item %= menu->num_items;
break;
return 1;
case QFK_RETURN:
case QFM_BUTTON1:
{
@ -690,9 +690,9 @@ Menu_KeyEvent (knum_t key, short unicode, qboolean down)
}
}
}
break;
return 1;
default:
break;
return 0;
}
}