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 */
-#ifdef _WIN32
-#define OPTIONS_ITEMS 14
-#else
-#define OPTIONS_ITEMS 13
-#endif
+#define OPTIONS_ITEMS (vid_menudrawfn ? 24 : 23)
#define SLIDER_RANGE 10
key_dest = key_menu;
m_state = m_options;
m_entersound = true;
-
-#ifdef _WIN32
- if ((options_cursor == 13) && (modestate != MS_WINDOWED))
- {
- options_cursor = 0;
- }
-#endif
}
switch (options_cursor)
{
case 3: // screen size
- scr_viewsize.value += dir * 10;
- if (scr_viewsize.value < 30)
- scr_viewsize.value = 30;
- if (scr_viewsize.value > 120)
- scr_viewsize.value = 120;
- Cvar_SetValue ("viewsize", scr_viewsize.value);
- break;
- case 4: // brightness
- brightness.value += dir * 0.25;
- if (brightness.value < 1)
- brightness.value = 1;
- if (brightness.value > 5)
- brightness.value = 5;
- Cvar_SetValue ("brightness", brightness.value);
- break;
- case 5: // mouse speed
- sensitivity.value += dir * 0.5;
- if (sensitivity.value < 1)
- sensitivity.value = 1;
- if (sensitivity.value > 50)
- sensitivity.value = 50;
- Cvar_SetValue ("sensitivity", sensitivity.value);
- break;
- case 6: // music volume
+ Cvar_SetValue ("viewsize", bound(30, scr_viewsize.value + dir * 10, 120));
+ break;
+ case 4:
+ Cvar_SetValue ("r_ser", !r_ser.value);
+ break;
+
+ case 5: // overbright rendering
+ Cvar_SetValue ("gl_lightmode", !gl_lightmode.value);
+ break;
+
+ 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 8: // hardware brightness
+ Cvar_SetValue ("vid_brightness", bound(1, vid_brightness.value + dir * 0.25, 5));
+ break;
+
+ case 9: // hardware contrast
+ Cvar_SetValue ("vid_contrast", bound(0.2, vid_contrast.value + dir * 0.08, 1));
+ break;
+
+ case 10: // software brightness
+ Cvar_SetValue ("r_brightness", bound(1, r_brightness.value + dir * 0.25, 5));
+ break;
+
+ case 11: // software base brightness
+ Cvar_SetValue ("r_contrast", bound(0.2, r_contrast.value + dir * 0.08, 1));
+ break;
+
+ 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
- if (bgmvolume.value < 0)
- bgmvolume.value = 0;
- if (bgmvolume.value > 1)
- bgmvolume.value = 1;
- Cvar_SetValue ("bgmvolume", bgmvolume.value);
- break;
- case 7: // sfx volume
- volume.value += dir * 0.1;
- if (volume.value < 0)
- volume.value = 0;
- if (volume.value > 1)
- volume.value = 1;
- Cvar_SetValue ("volume", volume.value);
- break;
-
- case 8: // always run
+ break;
+
+ case 13: // sfx volume
+ Cvar_SetValue ("volume", bound(0, volume.value + dir * 0.1, 1));
+ break;
+
+ case 14: // always run
if (cl_forwardspeed.value > 200)
{
Cvar_SetValue ("cl_forwardspeed", 200);
}
break;
- case 9: // invert mouse
+ case 15: // lookspring
+ Cvar_SetValue ("lookspring", !lookspring.value);
+ break;
+
+ case 16: // lookstrafe
+ Cvar_SetValue ("lookstrafe", !lookstrafe.value);
+ break;
+
+ case 17: // mouse speed
+ Cvar_SetValue ("sensitivity", bound(1, sensitivity.value + dir * 0.5, 50));
+ break;
+
+ case 18: // mouse look
+ Cvar_SetValue ("freelook", !freelook.value);
+ break;
+
+ case 19: // invert mouse
Cvar_SetValue ("m_pitch", -m_pitch.value);
break;
- case 10: // lookspring
- Cvar_SetValue ("lookspring", !lookspring.value);
+ case 20: // windowed mouse
+ Cvar_SetValue ("vid_mouse", !vid_mouse.value);
break;
- case 11: // lookstrafe
- Cvar_SetValue ("lookstrafe", !lookstrafe.value);
+ case 21:
+ Cvar_SetValue ("crosshair", bound(0, crosshair.value + dir, 5));
break;
-#ifdef _WIN32
- case 13: // _windowed_mouse
- Cvar_SetValue ("_windowed_mouse", !_windowed_mouse.value);
+ case 22: // show framerate
+ Cvar_SetValue ("showfps", !showfps.value);
break;
-#endif
}
}
void M_Options_Draw (void)
{
- float r;
+ float y;
qpic_t *p;
- M_DrawPic (16, 4, Draw_CachePic ("gfx/qplaque.lmp") );
- p = Draw_CachePic ("gfx/p_option.lmp");
- M_DrawPic ( (320-p->width)/2, 4, p);
-
- M_Print (16, 32, " Customize controls");
- M_Print (16, 40, " Go to console");
- M_Print (16, 48, " Reset to defaults");
-
- M_Print (16, 56, " Screen size");
- r = (scr_viewsize.value - 30) / (120 - 30);
- M_DrawSlider (220, 56, r);
-
- M_Print (16, 64, " Brightness");
- r = (brightness.value - 1) / 4;
- M_DrawSlider (220, 64, r);
-
- M_Print (16, 72, " Mouse Speed");
- r = (sensitivity.value - 1)/50;
- M_DrawSlider (220, 72, r);
-
- M_Print (16, 80, " CD Music Volume");
- r = bgmvolume.value;
- M_DrawSlider (220, 80, r);
-
- M_Print (16, 88, " Sound Volume");
- r = volume.value;
- M_DrawSlider (220, 88, r);
-
- M_Print (16, 96, " Always Run");
- M_DrawCheckbox (220, 96, cl_forwardspeed.value > 200);
-
- M_Print (16, 104, " Invert Mouse");
- M_DrawCheckbox (220, 104, m_pitch.value < 0);
-
- M_Print (16, 112, " Lookspring");
- M_DrawCheckbox (220, 112, lookspring.value);
-
- M_Print (16, 120, " Lookstrafe");
- M_DrawCheckbox (220, 120, lookstrafe.value);
-
+ M_DrawPic(16, 4, Draw_CachePic("gfx/qplaque.lmp") );
+ p = Draw_CachePic("gfx/p_option.lmp");
+ M_DrawPic((320-p->width)/2, 4, p);
+
+ y = 32;
+ M_Print(16, y, " Customize controls");y += 8;
+ 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, " Software Brightness");M_DrawSlider(220, y, (r_brightness.value - 1) / 4);y += 8;
+ M_Print(16, y, " Software Contrast");M_DrawSlider(220, y, (r_contrast.value - 0.2) / 0.8);y += 8;
+ M_Print(16, y, " CD Music Volume");M_DrawSlider(220, y, bgmvolume.value);y += 8;
+ M_Print(16, y, " Sound Volume");M_DrawSlider(220, y, volume.value);y += 8;
+ M_Print(16, y, " Always Run");M_DrawCheckbox(220, y, cl_forwardspeed.value > 200);y += 8;
+ M_Print(16, y, " Lookspring");M_DrawCheckbox(220, y, lookspring.value);y += 8;
+ M_Print(16, y, " Lookstrafe");M_DrawCheckbox(220, y, lookstrafe.value);y += 8;
+ M_Print(16, y, " Mouse Speed");M_DrawSlider(220, y, (sensitivity.value - 1)/50);y += 8;
+ M_Print(16, y, " Mouse Look");M_DrawCheckbox(220, y, freelook.value);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, " Show Framerate");M_DrawCheckbox(220, y, showfps.value);y += 8;
if (vid_menudrawfn)
- M_Print (16, 128, " Video Options");
+ M_Print(16, y, " Video Options");
+ y += 8;
-#ifdef _WIN32
- if (modestate == MS_WINDOWED)
- {
- M_Print (16, 136, " Use Mouse");
- M_DrawCheckbox (220, 136, _windowed_mouse.value);
- }
-#endif
-
-// cursor
- M_DrawCharacter (200, 32 + options_cursor*8, 12+((int)(realtime*4)&1));
+ // cursor
+ M_DrawCharacter(200, 32 + options_cursor*8, 12+((int)(realtime*4)&1));
}
case 2:
Cbuf_AddText ("exec default.cfg\n");
break;
- case 12:
- M_Menu_Video_f ();
- break;
default:
- M_AdjustSliders (1);
+ // this is really just another case, but since it is calculated...
+ if (vid_menudrawfn && options_cursor == (OPTIONS_ITEMS - 1))
+ M_Menu_Video_f ();
+ else
+ M_AdjustSliders (1);
break;
}
return;
M_AdjustSliders (1);
break;
}
-
- if (options_cursor == 12 && vid_menudrawfn == NULL)
- {
- if (k == K_UPARROW)
- options_cursor = 11;
- else
- options_cursor = 0;
- }
-
-#ifdef _WIN32
- if ((options_cursor == 13) && (modestate != MS_WINDOWED))
- {
- if (k == K_UPARROW)
- options_cursor = 12;
- else
- options_cursor = 0;
- }
-#endif
}
//=============================================================================