/* ============= OpenMenuFromMain ============= */ void OpenMenuFromMain (void) { switch (m_main_cursor) { case 0: M_Menu_Game_f (); break; case 1: M_Menu_Multiplayer_f(); break; case 2: M_Menu_Options_f (); break; case 3: M_Menu_Video_f (); break; case 4: M_Menu_Quit_f (); break; } }
static void MainMenu_Callback( void *self ) { int index; menubitmap_s *b; b = (menubitmap_s *)self; index = b - m_main.bitmaps; switch( index ) { case 0: M_Menu_Game_f(); break; case 1: M_Menu_Multiplayer_f(); break; case 2: M_Menu_Options_f(); break; case 3: M_Menu_Video_f(); break; case 4: M_Menu_Quit_f(); break; } }
/* ============= M_Main_Key ============= */ const char *M_Main_Key (int32_t key) { const char *sound = menu_move_sound; switch (key) { case K_GAMEPAD_B: case K_GAMEPAD_BACK: case K_GAMEPAD_START: case K_ESCAPE: #ifdef ERASER_COMPAT_BUILD // special hack for Eraser build if (cls.state == ca_disconnected) M_Menu_Quit_f (); else UI_PopMenu (); #else // can't exit menu if disconnected, // so restart demo loop if (cls.state == ca_disconnected) Cbuf_AddText ("d1\n"); UI_PopMenu (); #endif break; case K_GAMEPAD_DOWN: case K_GAMEPAD_LSTICK_DOWN: case K_GAMEPAD_RSTICK_DOWN: case K_KP_DOWNARROW: case K_DOWNARROW: if (++m_main_cursor >= MAIN_ITEMS) m_main_cursor = 0; return sound; case K_GAMEPAD_UP: case K_GAMEPAD_LSTICK_UP: case K_GAMEPAD_RSTICK_UP: case K_KP_UPARROW: case K_UPARROW: if (--m_main_cursor < 0) m_main_cursor = MAIN_ITEMS - 1; return sound; case K_GAMEPAD_A: case K_KP_ENTER: case K_ENTER: m_entersound = true; switch (m_main_cursor) { case 0: M_Menu_Game_f (); break; case 1: M_Menu_Multiplayer_f(); break; case 2: M_Menu_Options_f (); break; case 3: M_Menu_Video_f (); break; case 4: M_Menu_Quit_f (); break; } } return NULL; }