]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - menu.c
fix darkplaces-dedicated.exe building to open a console
[xonotic/darkplaces.git] / menu.c
diff --git a/menu.c b/menu.c
index bcc5117e4d900bcb7b35f63380cabf3d1c1b414c..f7744e531dff1eca63cbd5ebcf398322a66f53ac 100644 (file)
--- a/menu.c
+++ b/menu.c
@@ -676,20 +676,20 @@ void M_ScanSaves (void)
        int             i, j;
        char    name[MAX_OSPATH];
        char    *str;
-       QFile   *f;
+       qfile_t *f;
        int             version;
 
        for (i=0 ; i<MAX_SAVEGAMES ; i++)
        {
                strcpy (m_filenames[i], "--- UNUSED SLOT ---");
                loadable[i] = false;
-               sprintf (name, "%s/s%i.sav", com_gamedir, i);
-               f = Qopen (name, "rz");
+               sprintf (name, "s%i.sav", i);
+               f = FS_Open (name, "r", false);
                if (!f)
                        continue;
-               str = Qgetline (f);
+               str = FS_Getline (f);
                sscanf (str, "%i\n", &version);
-               str = Qgetline (f);
+               str = FS_Getline (f);
                strncpy (m_filenames[i], str, sizeof(m_filenames[i])-1);
 
        // change _ back to space
@@ -697,7 +697,7 @@ void M_ScanSaves (void)
                        if (m_filenames[i][j] == '_')
                                m_filenames[i][j] = ' ';
                loadable[i] = true;
-               Qclose (f);
+               FS_Close (f);
        }
 }
 
@@ -949,7 +949,7 @@ void M_MenuPlayerTranslate (qbyte *translation, int top, int bottom)
        if (menuplyr_load)
        {
                menuplyr_load = false;
-               f = COM_LoadFile("gfx/menuplyr.lmp", true);
+               f = FS_LoadFile("gfx/menuplyr.lmp", true);
                if (!f)
                {
                        menuplyr_failed = true;
@@ -1274,7 +1274,7 @@ void M_DrawCheckbox (int x, int y, int on)
 }
 
 
-#define OPTIONS_ITEMS 27
+#define OPTIONS_ITEMS 28
 
 int options_cursor;
 
@@ -1287,6 +1287,7 @@ void M_Menu_Options_f (void)
 
 extern cvar_t gl_delayfinish;
 extern cvar_t slowmo;
+extern dllhandle_t jpeg_dll;
 
 void M_Menu_Options_AdjustSliders (int dir)
 {
@@ -1301,46 +1302,50 @@ void M_Menu_Options_AdjustSliders (int dir)
                Cvar_SetValueQuick (&scr_viewsize, bound(30, scr_viewsize.value + dir * 10, 120));
                break;
        case 8:
-               Cvar_SetValueQuick (&r_sky, !r_sky.integer);
+               if (jpeg_dll != NULL)
+                       Cvar_SetValueQuick (&scr_screenshot_jpeg, !scr_screenshot_jpeg.integer);
                break;
        case 9:
-               Cvar_SetValueQuick (&v_overbrightbits, bound(0, v_overbrightbits.integer + dir, 4));
+               Cvar_SetValueQuick (&r_sky, !r_sky.integer);
                break;
        case 10:
-               Cvar_SetValueQuick (&gl_combine, !gl_combine.integer);
+               Cvar_SetValueQuick (&v_overbrightbits, bound(0, v_overbrightbits.integer + dir, 4));
                break;
        case 11:
-               Cvar_SetValueQuick (&gl_dither, !gl_dither.integer);
+               Cvar_SetValueQuick (&gl_combine, !gl_combine.integer);
                break;
        case 12:
-               Cvar_SetValueQuick (&gl_delayfinish, !gl_delayfinish.integer);
+               Cvar_SetValueQuick (&gl_dither, !gl_dither.integer);
                break;
        case 13:
+               Cvar_SetValueQuick (&gl_delayfinish, !gl_delayfinish.integer);
+               break;
+       case 14:
                Cvar_SetValueQuick (&slowmo, bound(0, slowmo.value + dir * 0.25, 5));
                break;
-       case 14: // music volume
+       case 15: // music volume
                #ifdef _WIN32
                Cvar_SetValueQuick (&bgmvolume, bound(0, bgmvolume.value + dir * 1.0, 1));
                #else
                Cvar_SetValueQuick (&bgmvolume, bound(0, bgmvolume.value + dir * 0.1, 1));
                #endif
                break;
-       case 15: // sfx volume
+       case 16: // sfx volume
                Cvar_SetValueQuick (&volume, bound(0, volume.value + dir * 0.1, 1));
                break;
-       case 16:
+       case 17:
                Cvar_SetValueQuick (&crosshair, bound(0, crosshair.integer + dir, 5));
                break;
-       case 17:
+       case 18:
                Cvar_SetValueQuick (&crosshair_size, bound(1, crosshair_size.value + dir, 5));
                break;
-       case 18: // static crosshair
+       case 19: // static crosshair
                Cvar_SetValueQuick (&crosshair_static, !crosshair_static.integer);
                break;
-       case 19: // show framerate
+       case 20: // show framerate
                Cvar_SetValueQuick (&showfps, !showfps.integer);
                break;
-       case 20: // always run
+       case 21: // always run
                if (cl_forwardspeed.value > 200)
                {
                        Cvar_SetValueQuick (&cl_forwardspeed, 200);
@@ -1352,22 +1357,22 @@ void M_Menu_Options_AdjustSliders (int dir)
                        Cvar_SetValueQuick (&cl_backspeed, 400);
                }
                break;
-       case 21: // lookspring
+       case 22: // lookspring
                Cvar_SetValueQuick (&lookspring, !lookspring.integer);
                break;
-       case 22: // lookstrafe
+       case 23: // lookstrafe
                Cvar_SetValueQuick (&lookstrafe, !lookstrafe.integer);
                break;
-       case 23: // mouse speed
+       case 24: // mouse speed
                Cvar_SetValueQuick (&sensitivity, bound(1, sensitivity.value + dir * 0.5, 50));
                break;
-       case 24: // mouse look
+       case 25: // mouse look
                Cvar_SetValueQuick (&freelook, !freelook.integer);
                break;
-       case 25: // invert mouse
+       case 26: // invert mouse
                Cvar_SetValueQuick (&m_pitch, -m_pitch.value);
                break;
-       case 26: // windowed mouse
+       case 27: // windowed mouse
                Cvar_SetValueQuick (&vid_mouse, !vid_mouse.integer);
                break;
        }
@@ -1391,6 +1396,7 @@ void M_Options_Draw (void)
        M_Print(16, y, " Color Control Options");y += 8;
        M_Print(16, y, "         2D Resolution");M_DrawSlider(220, y, scr_2dresolution.value, 0, 1);y += 8;
        M_Print(16, y, "           Screen size");M_DrawSlider(220, y, scr_viewsize.value, 30, 120);y += 8;
+       M_ItemPrint(16, y, "      JPEG screenshots", jpeg_dll != NULL);M_DrawCheckbox(220, y, scr_screenshot_jpeg.integer);y += 8;
        M_Print(16, y, "                   Sky");M_DrawCheckbox(220, y, r_sky.integer);y += 8;
        M_Print(16, y, "       Overbright Bits");M_DrawSlider(220, y, v_overbrightbits.value, 0, 4);y += 8;
        M_Print(16, y, "       Texture Combine");M_DrawCheckbox(220, y, gl_combine.integer);y += 8;
@@ -1433,6 +1439,7 @@ void M_Options_Key (int k)
                        break;
                case 1:
                        m_state = m_none;
+                       key_dest = key_game;
                        Con_ToggleConsole_f ();
                        break;
                case 2:
@@ -3023,6 +3030,8 @@ int maxplayers;
 qboolean m_serverInfoMessage = false;
 double m_serverInfoMessageTime;
 
+extern cvar_t sv_public;
+
 void M_Menu_GameOptions_f (void)
 {
        key_dest = key_menu;
@@ -3035,8 +3044,8 @@ void M_Menu_GameOptions_f (void)
 }
 
 
-int gameoptions_cursor_table[] = {40, 56, 64, 72, 80, 88, 96, 112, 120};
-#define        NUM_GAMEOPTIONS 9
+int gameoptions_cursor_table[] = {40, 56, 64, 72, 80, 88, 96, 104, 120, 128};
+#define        NUM_GAMEOPTIONS 10
 int            gameoptions_cursor;
 
 void M_GameOptions_Draw (void)
@@ -3139,14 +3148,17 @@ void M_GameOptions_Draw (void)
        else
                M_Print (160, 96, va("%i minutes", timelimit.integer));
 
+       M_Print (0, 104, "    Public server");
+       M_Print (160, 104, (sv_public.integer == 0) ? "no" : "yes");
+
        g = lookupgameinfo();
 
-       M_Print (0, 112, "         Episode");
-       M_Print (160, 112, g->episodes[startepisode].description);
+       M_Print (0, 120, "         Episode");
+       M_Print (160, 120, g->episodes[startepisode].description);
 
-       M_Print (0, 120, "           Level");
-       M_Print (160, 120, g->levels[g->episodes[startepisode].firstLevel + startlevel].description);
-       M_Print (160, 128, g->levels[g->episodes[startepisode].firstLevel + startlevel].name);
+       M_Print (0, 128, "           Level");
+       M_Print (160, 128, g->levels[g->episodes[startepisode].firstLevel + startlevel].description);
+       M_Print (160, 136, g->levels[g->episodes[startepisode].firstLevel + startlevel].name);
 
 // line cursor
        M_DrawCharacter (144, gameoptions_cursor_table[gameoptions_cursor], 12+((int)(realtime*4)&1));
@@ -3251,6 +3263,10 @@ void M_NetStart_Change (int dir)
                break;
 
        case 7:
+               Cvar_SetValueQuick (&sv_public, !sv_public.integer);
+               break;
+
+       case 8:
                startepisode += dir;
                g = lookupgameinfo();
 
@@ -3263,7 +3279,7 @@ void M_NetStart_Change (int dir)
                startlevel = 0;
                break;
 
-       case 8:
+       case 9:
                startlevel += dir;
                g = lookupgameinfo();
 
@@ -3354,7 +3370,6 @@ void M_Menu_Search_f (void)
 
 void M_Search_Draw (void)
 {
-       const char* string;
        cachepic_t      *p;
        int x;
 
@@ -3382,11 +3397,7 @@ void M_Search_Draw (void)
                return;
        }
 
-       if (gamemode == GAME_TRANSFUSION)
-               string = "No Transfusion servers found";
-       else
-               string = "No Quake servers found";
-       M_PrintWhite ((320/2) - ((22*8)/2), 64, string);
+       M_PrintWhite ((320/2) - ((22*8)/2), 64, va("No %s servers found", gamename));
        if ((realtime - searchCompleteTime) < 3.0)
                return;
 
@@ -3563,9 +3574,9 @@ void M_Init (void)
 
        if (gamemode == GAME_NEHAHRA)
        {
-               if (COM_FileExists("maps/neh1m4.bsp"))
+               if (FS_FileExists("maps/neh1m4.bsp"))
                {
-                       if (COM_FileExists("hearing.dem"))
+                       if (FS_FileExists("hearing.dem"))
                        {
                                Con_Printf("Nehahra movie and game detected.\n");
                                NehGameType = TYPE_BOTH;
@@ -3578,7 +3589,7 @@ void M_Init (void)
                }
                else
                {
-                       if (COM_FileExists("hearing.dem"))
+                       if (FS_FileExists("hearing.dem"))
                        {
                                Con_Printf("Nehahra movie detected.\n");
                                NehGameType = TYPE_DEMO;