int NehGameType;
-enum {m_none, m_main, m_demo, m_singleplayer, m_load, m_save, m_multiplayer, m_setup, m_net, m_options, m_video, m_keys, m_help, m_quit, m_lanconfig, m_gameoptions, m_search, m_slist} m_state;
+enum m_state_e m_state;
void M_Menu_Main_f (void);
void M_Menu_SinglePlayer_f (void);
{
int i, j;
char name[MAX_OSPATH];
- FILE *f;
+ char *str;
+ QFile *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 = fopen (name, "r");
+ f = Qopen (name, "rz");
if (!f)
continue;
- fscanf (f, "%i\n", &version);
- fscanf (f, "%79s\n", name);
- strncpy (m_filenames[i], name, sizeof(m_filenames[i])-1);
+ str = Qgetline (f);
+ sscanf (str, "%i\n", &version);
+ str = Qgetline (f);
+ strncpy (m_filenames[i], str, sizeof(m_filenames[i])-1);
// change _ back to space
for (j=0 ; j<SAVEGAME_COMMENT_LENGTH ; j++)
if (m_filenames[i][j] == '_')
m_filenames[i][j] = ' ';
loadable[i] = true;
- fclose (f);
+ Qclose (f);
}
}
//=============================================================================
/* OPTIONS MENU */
-#define OPTIONS_ITEMS 21
+#define OPTIONS_ITEMS (vid_menudrawfn ? 24 : 23)
#define SLIDER_RANGE 10
case 3: // screen size
Cvar_SetValue ("viewsize", bound(30, scr_viewsize.value + dir * 10, 120));
break;
+ case 4:
+ Cvar_SetValue ("r_ser", !r_ser.value);
+ break;
- case 4: // overbright rendering
+ case 5: // overbright rendering
Cvar_SetValue ("gl_lightmode", !gl_lightmode.value);
break;
- case 5: // hardware gamma
+ case 6: // sky quality
+ Cvar_SetValue ("r_skyquality", bound(0, r_skyquality.value + dir, 4));
+ break;
+
+ case 7: // hardware gamma
Cvar_SetValue ("vid_gamma", bound(1, vid_gamma.value + dir * 0.25, 5));
break;
- case 6: // hardware brightness
+
+ case 8: // hardware brightness
Cvar_SetValue ("vid_brightness", bound(1, vid_brightness.value + dir * 0.25, 5));
break;
- case 7: // hardware contrast
+
+ case 9: // hardware contrast
Cvar_SetValue ("vid_contrast", bound(0.2, vid_contrast.value + dir * 0.08, 1));
break;
- case 8: // software brightness
+
+ case 10: // software brightness
Cvar_SetValue ("r_brightness", bound(1, r_brightness.value + dir * 0.25, 5));
break;
- case 9: // software base brightness
+
+ case 11: // software base brightness
Cvar_SetValue ("r_contrast", bound(0.2, r_contrast.value + dir * 0.08, 1));
break;
- case 10: // music volume
+
+ case 12: // music volume
#ifdef _WIN32
- bgmvolume.value += dir * 1.0;
+ Cvar_SetValue ("bgmvolume", bound(0, bgmvolume.value + dir * 1.0, 1));
#else
- bgmvolume.value += dir * 0.1;
+ Cvar_SetValue ("bgmvolume", bound(0, bgmvolume.value + dir * 0.1, 1));
#endif
- Cvar_SetValue ("bgmvolume", bound(1, bgmvolume.value, 5));
break;
- case 11: // sfx volume
- Cvar_SetValue ("volume", bound(1, volume.value + dir * 0.1, 5));
+
+ case 13: // sfx volume
+ Cvar_SetValue ("volume", bound(0, volume.value + dir * 0.1, 1));
break;
- case 12: // always run
+ case 14: // always run
if (cl_forwardspeed.value > 200)
{
Cvar_SetValue ("cl_forwardspeed", 200);
}
break;
- case 13: // lookspring
+ case 15: // lookspring
Cvar_SetValue ("lookspring", !lookspring.value);
break;
- case 14: // lookstrafe
+ case 16: // lookstrafe
Cvar_SetValue ("lookstrafe", !lookstrafe.value);
break;
- case 15: // mouse speed
+ case 17: // mouse speed
Cvar_SetValue ("sensitivity", bound(1, sensitivity.value + dir * 0.5, 50));
break;
- case 16: // mouse look
+ case 18: // mouse look
Cvar_SetValue ("freelook", !freelook.value);
break;
- case 17: // invert mouse
+ case 19: // invert mouse
Cvar_SetValue ("m_pitch", -m_pitch.value);
break;
- case 18: // windowed mouse
+ case 20: // windowed mouse
Cvar_SetValue ("vid_mouse", !vid_mouse.value);
break;
- case 19:
+ case 21:
Cvar_SetValue ("crosshair", bound(0, crosshair.value + dir, 5));
break;
+
+ case 22: // show framerate
+ Cvar_SetValue ("showfps", !showfps.value);
+ break;
}
}
M_Print(16, y, " Go to console");y += 8;
M_Print(16, y, " Reset to defaults");y += 8;
M_Print(16, y, " Screen size");M_DrawSlider(220, y, (scr_viewsize.value - 30) /(120 - 30));y += 8;
+ M_Print(16, y, "Hidden Surface Removal");M_DrawCheckbox(220, y, r_ser.value);y += 8;
M_Print(16, y, " Overbright Rendering");M_DrawCheckbox(220, y, gl_lightmode.value);y += 8;
+ M_Print(16, y, " Sky Quality");M_DrawSlider(220, y, r_skyquality.value / 4);y += 8;
M_Print(16, y, " Hardware Gamma");M_DrawSlider(220, y, (vid_gamma.value - 1) / 4);y += 8;
M_Print(16, y, " Hardware Brightness");M_DrawSlider(220, y, (vid_brightness.value - 1) / 4);y += 8;
M_Print(16, y, " Hardware Contrast");M_DrawSlider(220, y, (vid_contrast.value - 0.2) / 0.8);y += 8;
M_Print(16, y, " Invert Mouse");M_DrawCheckbox(220, y, m_pitch.value < 0);y += 8;
M_Print(16, y, " Use Mouse");M_DrawCheckbox(220, y, vid_mouse.value);y += 8;
M_Print(16, y, " Crosshair");M_DrawSlider(220, y, crosshair.value / 5);y += 8;
- M_Print(16, y, " Video Options");y += 8;
+ M_Print(16, y, " Show Framerate");M_DrawCheckbox(220, y, showfps.value);y += 8;
+ if (vid_menudrawfn)
+ M_Print(16, y, " Video Options");
+ y += 8;
// cursor
M_DrawCharacter(200, 32 + options_cursor*8, 12+((int)(realtime*4)&1));
case 2:
Cbuf_AddText ("exec default.cfg\n");
break;
- case 20:
- M_Menu_Video_f ();
+ case 22:
+ if (vid_menudrawfn)
+ M_Menu_Video_f ();
break;
default:
M_AdjustSliders (1);