]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - menu.c
don't complain about missing bolt3/beam models
[xonotic/darkplaces.git] / menu.c
diff --git a/menu.c b/menu.c
index 130d5bdf1e5f72961f70fc6fca8bdc604b4e787b..f1a1355204e01962b00f9a909a42131de0f6271d 100644 (file)
--- a/menu.c
+++ b/menu.c
@@ -1932,7 +1932,7 @@ void M_Options_Effects_Key (int k, char ascii)
 }
 
 
-#define        OPTIONS_GRAPHICS_ITEMS  12
+#define        OPTIONS_GRAPHICS_ITEMS  14
 
 int options_graphics_cursor;
 
@@ -1955,6 +1955,7 @@ extern cvar_t r_bloom_intensity;
 extern cvar_t r_bloom_power;
 extern cvar_t r_bloom_blur;
 extern cvar_t r_bloom_resolution;
+extern cvar_t gl_picmip;
 
 void M_Menu_Options_Graphics_AdjustSliders (int dir)
 {
@@ -1975,6 +1976,8 @@ void M_Menu_Options_Graphics_AdjustSliders (int dir)
        else if (options_graphics_cursor == optnum++) Cvar_SetValueQuick (&r_bloom_power,                           bound(1, r_bloom_power.value + dir * 1, 16));
        else if (options_graphics_cursor == optnum++) Cvar_SetValueQuick (&r_bloom_blur,                            bound(1, r_bloom_blur.value + dir * 1, 16));
        else if (options_graphics_cursor == optnum++) Cvar_SetValueQuick (&r_bloom_resolution,                      bound(64, r_bloom_resolution.value + dir * 64, 2048));
+       else if (options_graphics_cursor == optnum++) Cvar_SetValueQuick (&gl_picmip,                               bound(0, gl_picmip.value - dir, 3));
+       else if (options_graphics_cursor == optnum++) Cbuf_AddText ("r_restart\n");
 }
 
 
@@ -2006,6 +2009,8 @@ void M_Options_Graphics_Draw (void)
        M_Options_PrintSlider(  "            Bloom Power", true, r_bloom_power.value, 1, 16);
        M_Options_PrintSlider(  "             Bloom Blur", true, r_bloom_blur.value, 1, 16);
        M_Options_PrintSlider(  "       Bloom Resolution", true, r_bloom_resolution.value, 64, 2048);
+       M_Options_PrintSlider(  "        Texture Quality", true, gl_picmip.value, 3, 0);
+       M_Options_PrintCommand( "       Restart Renderer", true);
 }
 
 
@@ -4605,8 +4610,18 @@ static func_t m_draw, m_keydown;
 
 void MR_SetRouting (qboolean forceold);
 
-void MP_Error(void)
+void MP_Error(const char *format, ...)
 {
+       char errorstring[4096];
+       va_list argptr;
+
+       va_start (argptr, format);
+       dpvsnprintf (errorstring, sizeof(errorstring), format, argptr);
+       va_end (argptr);
+       Con_Printf( "Menu_Error: %s\n", errorstring );
+
+       PRVM_Crash();
+
        // fall back to the normal menu
 
        // say it
@@ -4614,10 +4629,10 @@ void MP_Error(void)
 
        key_dest = key_game;
 
-       //PRVM_ResetProg();
-
        // init the normal menu now -> this will also correct the menu router pointers
        MR_SetRouting (TRUE);
+
+       Host_AbortCurrentFrame();
 }
 
 void MP_Keydown (int key, char ascii)
@@ -4629,8 +4644,8 @@ void MP_Keydown (int key, char ascii)
        *prog->time = realtime;
 
        // pass key
-       prog->globals[OFS_PARM0] = (float) key;
-       prog->globals[OFS_PARM1] = (float) ascii;
+       prog->globals.generic[OFS_PARM0] = (float) key;
+       prog->globals.generic[OFS_PARM1] = (float) ascii;
        PRVM_ExecuteProgram(m_keydown, M_F_KEYDOWN"(float key, float ascii) required\n");
 
        PRVM_End;
@@ -4689,14 +4704,25 @@ void MP_Shutdown (void)
        PRVM_End;
 }
 
+void MP_Fallback (void)
+{
+       MP_Shutdown();
+
+       key_dest = key_game;
+
+       // init the normal menu now -> this will also correct the menu router pointers
+       MR_SetRouting (TRUE);
+}
+
 void MP_Init (void)
 {
        PRVM_Begin;
        PRVM_InitProg(PRVM_MENUPROG);
 
-       prog->crc = M_PROGHEADER_CRC;
+       prog->headercrc = M_PROGHEADER_CRC;
        prog->edictprivate_size = 0; // no private struct used
        prog->name = M_NAME;
+       prog->num_edicts = 1;
        prog->limit_edicts = M_MAX_EDICTS;
        prog->extensionstring = vm_m_extensions;
        prog->builtins = vm_m_builtins;
@@ -4708,7 +4734,7 @@ void MP_Init (void)
        // allocate the mempools
        prog->progs_mempool = Mem_AllocPool(M_PROG_FILENAME, 0, NULL);
 
-       PRVM_LoadProgs(M_PROG_FILENAME, m_numrequiredfunc, m_required_func);
+       PRVM_LoadProgs(M_PROG_FILENAME, m_numrequiredfunc, m_required_func, 0, NULL);
 
        // set m_draw and m_keydown
        m_draw = (func_t) (PRVM_ED_FindFunction(M_F_DRAW) - prog->functions);
@@ -4796,7 +4822,7 @@ void MR_Init_Commands(void)
        Cvar_RegisterVariable (&forceqmenu);
        Cvar_RegisterVariable (&menu_options_colorcontrol_correctionvalue);
        if (gamemode == GAME_NETHERWORLD)
-               Cmd_AddCommand ("menu_fallback", MP_Error); //Force to old-style menu
+               Cmd_AddCommand ("menu_fallback", MP_Fallback); //Force to old-style menu
        Cmd_AddCommand ("menu_restart",MR_Restart);
        Cmd_AddCommand ("togglemenu", Call_MR_ToggleMenu_f);
 }