From: divverent Date: Tue, 26 Jan 2010 06:23:53 +0000 (+0000) Subject: fix funny menu bug (why did it never happen for me)? X-Git-Tag: xonotic-v0.1.0preview~230^2~609 X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=commitdiff_plain;h=1dc239f97a1e99a72d17de824029d3c95664669b fix funny menu bug (why did it never happen for me)? BTW, who would ever call a _f function from other stuff than console commands... that's sick. git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@9860 d7cf8633-e32d-0410-b094-e92efae38249 --- diff --git a/cl_screen.c b/cl_screen.c index 82392b8b..9553a873 100644 --- a/cl_screen.c +++ b/cl_screen.c @@ -621,7 +621,7 @@ void SCR_SetUpToDrawConsole (void) if (scr_menuforcewhiledisconnected.integer && key_dest == key_game && cls.state == ca_disconnected) { if (framecounter >= 2) - MR_ToggleMenu_f(); + MR_ToggleMenu(1); else framecounter++; } diff --git a/keys.c b/keys.c index c7342593..eb57276c 100644 --- a/keys.c +++ b/keys.c @@ -1492,7 +1492,7 @@ Key_Event (int key, int ascii, qboolean down) if(key_consoleactive & KEY_CONSOLEACTIVE_FORCED) { key_consoleactive &= ~KEY_CONSOLEACTIVE_USER; - MR_ToggleMenu_f (); + MR_ToggleMenu(1); } else Con_ToggleConsole_f(); @@ -1513,7 +1513,7 @@ Key_Event (int key, int ascii, qboolean down) // csqc has priority over toggle menu if it wants to (e.g. handling escape for UI stuff in-game.. :sick:) q = CL_VM_InputEvent(down, key, ascii); if (!q && down) - MR_ToggleMenu_f (); + MR_ToggleMenu(1); break; default: diff --git a/menu.c b/menu.c index 5634d212..8067e63f 100644 --- a/menu.c +++ b/menu.c @@ -270,22 +270,22 @@ static void M_DrawTextBox(float x, float y, float width, float height) /* ================ -M_ToggleMenu_f +M_ToggleMenu ================ */ -void M_ToggleMenu_f (void) +void M_ToggleMenu(int mode) { m_entersound = true; if ((key_dest != key_menu && key_dest != key_menu_grabbed) || m_state != m_main) { - if(Cmd_Argc() == 2 && !strcmp(Cmd_Argv(1), "1")) + if(mode == 1) return; M_Menu_Main_f (); } else { - if(Cmd_Argc() == 2 && !strcmp(Cmd_Argv(1), "0")) + if(mode == 0) return; key_dest = key_game; m_state = m_none; @@ -4694,7 +4694,7 @@ static void M_ModList_Key(int k, int ascii) static void M_KeyEvent(int key, int ascii, qboolean downevent); static void M_Draw(void); -void M_ToggleMenu_f(void); +void M_ToggleMenu(int mode); static void M_Shutdown(void); void M_Init (void) @@ -5142,11 +5142,12 @@ void MP_Draw (void) R_SelectScene( RST_CLIENT ); } -void MP_ToggleMenu_f (void) +void MP_ToggleMenu(int mode) { PRVM_Begin; PRVM_SetProg(PRVM_MENUPROG); + prog->globals.generic[OFS_PARM0] = (float) mode; PRVM_ExecuteProgram(prog->funcoffsets.m_toggle,"m_toggle() required"); PRVM_End; @@ -5212,7 +5213,7 @@ void MP_Restart(void) void (*MR_KeyEvent) (int key, int ascii, qboolean downevent); void (*MR_Draw) (void); -void (*MR_ToggleMenu_f) (void); +void (*MR_ToggleMenu) (int mode); void (*MR_Shutdown) (void); void MR_SetRouting(qboolean forceold) @@ -5225,7 +5226,7 @@ void MR_SetRouting(qboolean forceold) // set menu router function pointers MR_KeyEvent = M_KeyEvent; MR_Draw = M_Draw; - MR_ToggleMenu_f = M_ToggleMenu_f; + MR_ToggleMenu = M_ToggleMenu; MR_Shutdown = M_Shutdown; // init @@ -5242,7 +5243,7 @@ void MR_SetRouting(qboolean forceold) // set menu router function pointers MR_KeyEvent = MP_KeyEvent; MR_Draw = MP_Draw; - MR_ToggleMenu_f = MP_ToggleMenu_f; + MR_ToggleMenu = MP_ToggleMenu; MR_Shutdown = MP_Shutdown; if(!mp_init) @@ -5263,9 +5264,11 @@ void MR_Restart(void) void Call_MR_ToggleMenu_f(void) { + int m; + m = ((Cmd_Argc() < 2) ? -1 : atoi(Cmd_Argv(1))); Host_StartVideo(); - if(MR_ToggleMenu_f) - MR_ToggleMenu_f(); + if(MR_ToggleMenu) + MR_ToggleMenu(m); } void MR_Init_Commands(void) diff --git a/menu.h b/menu.h index c1950fc2..cef87e2e 100644 --- a/menu.h +++ b/menu.h @@ -61,7 +61,7 @@ void M_Update_Return_Reason(char *s); void M_Init (void); void M_KeyEvent (int key); void M_Draw (void); -void M_ToggleMenu_f (void); +void M_ToggleMenu (int mode); // // menu prog menu @@ -69,7 +69,7 @@ void M_ToggleMenu_f (void); void MP_Init (void); void MP_KeyEvent (int key); void MP_Draw (void); -void MP_ToggleMenu_f (void); +void MP_ToggleMenu (int mode); void MP_Shutdown (void);*/ // @@ -81,7 +81,7 @@ void MR_Init (void); void MR_Restart (void); extern void (*MR_KeyEvent) (int key, int ascii, qboolean downevent); extern void (*MR_Draw) (void); -extern void (*MR_ToggleMenu_f) (void); +extern void (*MR_ToggleMenu) (int mode); extern void (*MR_Shutdown) (void); typedef struct video_resolution_s