break;
case K_ENTER:
- S_LocalSound ("misc/menu2.wav");
+ S_LocalSound ("misc/menu2.wav", true);
m_state = m_none;
key_dest = key_game;
Cbuf_AddText (va ("playdemo %s\n", NehahraDemos[demo_cursor].name));
case K_UPARROW:
case K_LEFTARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
demo_cursor--;
if (demo_cursor < 0)
demo_cursor = NumberOfNehahraDemos-1;
case K_DOWNARROW:
case K_RIGHTARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
demo_cursor++;
if (demo_cursor >= NumberOfNehahraDemos)
demo_cursor = 0;
break;
case K_DOWNARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
if (++m_main_cursor >= MAIN_ITEMS)
m_main_cursor = 0;
break;
case K_UPARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
if (--m_main_cursor < 0)
m_main_cursor = MAIN_ITEMS - 1;
break;
break;
case K_DOWNARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
if (++m_singleplayer_cursor >= SINGLEPLAYER_ITEMS)
m_singleplayer_cursor = 0;
break;
case K_UPARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
if (--m_singleplayer_cursor < 0)
m_singleplayer_cursor = SINGLEPLAYER_ITEMS - 1;
break;
break;
case K_ENTER:
- S_LocalSound ("misc/menu2.wav");
+ S_LocalSound ("misc/menu2.wav", true);
if (!loadable[load_cursor])
return;
m_state = m_none;
case K_UPARROW:
case K_LEFTARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
load_cursor--;
if (load_cursor < 0)
load_cursor = MAX_SAVEGAMES-1;
case K_DOWNARROW:
case K_RIGHTARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
load_cursor++;
if (load_cursor >= MAX_SAVEGAMES)
load_cursor = 0;
case K_UPARROW:
case K_LEFTARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
load_cursor--;
if (load_cursor < 0)
load_cursor = MAX_SAVEGAMES-1;
case K_DOWNARROW:
case K_RIGHTARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
load_cursor++;
if (load_cursor >= MAX_SAVEGAMES)
load_cursor = 0;
break;
case K_DOWNARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
if (++m_multiplayer_cursor >= MULTIPLAYER_ITEMS)
m_multiplayer_cursor = 0;
break;
case K_UPARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
if (--m_multiplayer_cursor < 0)
m_multiplayer_cursor = MULTIPLAYER_ITEMS - 1;
break;
int setup_top;
int setup_bottom;
int setup_rate;
+int setup_oldrate;
#define NUM_SETUP_CMDS 5
break;
case K_UPARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
setup_cursor--;
if (setup_cursor < 0)
setup_cursor = NUM_SETUP_CMDS-1;
break;
case K_DOWNARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
setup_cursor++;
if (setup_cursor >= NUM_SETUP_CMDS)
setup_cursor = 0;
case K_LEFTARROW:
if (setup_cursor < 1)
return;
- S_LocalSound ("misc/menu3.wav");
+ S_LocalSound ("misc/menu3.wav", true);
if (setup_cursor == 1)
setup_top = setup_top - 1;
if (setup_cursor == 2)
if (setup_cursor < 1)
return;
forward:
- S_LocalSound ("misc/menu3.wav");
+ S_LocalSound ("misc/menu3.wav", true);
if (setup_cursor == 1)
setup_top = setup_top + 1;
if (setup_cursor == 2)
Cbuf_AddText ( va ("name \"%s\"\n", setup_myname) );
if (setup_top != setup_oldtop || setup_bottom != setup_oldbottom)
Cbuf_AddText( va ("color %i %i\n", setup_top, setup_bottom) );
+ if (setup_rate != setup_oldrate)
+ Cbuf_AddText(va("rate %i\n", setup_rate));
+
m_entersound = true;
M_Menu_MultiPlayer_f ();
break;
}
-#define OPTIONS_ITEMS 36
+#define OPTIONS_ITEMS 37
int options_cursor;
void M_Menu_Options_AdjustSliders (int dir)
{
int optnum;
- S_LocalSound ("misc/menu3.wav");
+ S_LocalSound ("misc/menu3.wav", true);
optnum = 6;
if (options_cursor == optnum++)
Cvar_SetValueQuick (&scr_conbrightness, bound(0, scr_conbrightness.value + dir * 0.2, 1));
else if (options_cursor == optnum++)
Cvar_SetValueQuick (&scr_viewsize, bound(30, scr_viewsize.value + dir * 10, 120));
+ else if (options_cursor == optnum++)
+ Cvar_SetValueQuick (&scr_fov, bound(1, scr_fov.integer + dir * 1, 170));
else if (options_cursor == optnum++)
Cvar_SetValueQuick (&scr_screenshot_jpeg, !scr_screenshot_jpeg.integer);
else if (options_cursor == optnum++)
else if (options_cursor == optnum++)
Cvar_SetValueQuick (&gl_delayfinish, !gl_delayfinish.integer);
else if (options_cursor == optnum++)
- Cvar_SetValueQuick (&gl_texture_anisotropy, bound(1, gl_texture_anisotropy.value + dir, 8));
+ Cvar_SetValueQuick (&gl_texture_anisotropy, bound(1, gl_texture_anisotropy.integer + dir, gl_max_anisotropy));
else if (options_cursor == optnum++)
Cvar_SetValueQuick (&slowmo, bound(0, slowmo.value + dir * 0.25, 5));
else if (options_cursor == optnum++)
M_Options_PrintSlider( " Console Alpha", true, scr_conalpha.value, 0, 1);
M_Options_PrintSlider( "Conback Brightness", true, scr_conbrightness.value, 0, 1);
M_Options_PrintSlider( " Screen size", true, scr_viewsize.value, 30, 120);
+ M_Options_PrintSlider( " Field of View", true, scr_fov.integer, 1, 170);
M_Options_PrintCheckbox(" JPEG screenshots", jpeg_dll != NULL, scr_screenshot_jpeg.integer);
M_Options_PrintSlider( " JPEG quality", jpeg_dll != NULL, scr_screenshot_jpeg_quality.value, 0, 1);
M_Options_PrintCheckbox(" Sky", true, r_sky.integer);
M_Options_PrintCheckbox(" Texture Combine", true, gl_combine.integer);
M_Options_PrintCheckbox(" Dithering", true, gl_dither.integer);
M_Options_PrintCheckbox("Delay gfx (faster)", true, gl_delayfinish.integer);
- M_Options_PrintSlider( "Anisotropic Filter", gl_support_anisotropy, gl_texture_anisotropy.value, 1, 8);
+ M_Options_PrintSlider( "Anisotropic Filter", gl_support_anisotropy, gl_texture_anisotropy.integer, 1, gl_max_anisotropy);
M_Options_PrintSlider( " Game Speed", sv.active, slowmo.value, 0, 5);
M_Options_PrintSlider( " CD Music Volume", cdaudioinitialized.integer, bgmvolume.value, 0, 1);
M_Options_PrintSlider( " Sound Volume", snd_initialized.integer, volume.value, 0, 1);
return;
case K_UPARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
options_cursor--;
if (options_cursor < 0)
options_cursor = OPTIONS_ITEMS-1;
break;
case K_DOWNARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
options_cursor++;
if (options_cursor >= OPTIONS_ITEMS)
options_cursor = 0;
}
}
-#define OPTIONS_EFFECTS_ITEMS 22
+#define OPTIONS_EFFECTS_ITEMS 33
int options_effects_cursor;
extern cvar_t cl_particles_blood;
extern cvar_t cl_particles_blood_alpha;
extern cvar_t cl_particles_blood_bloodhack;
+extern cvar_t r_lightningbeam_thickness;
+extern cvar_t r_lightningbeam_scroll;
+extern cvar_t r_lightningbeam_repeatdistance;
+extern cvar_t r_lightningbeam_color_red;
+extern cvar_t r_lightningbeam_color_green;
+extern cvar_t r_lightningbeam_color_blue;
+extern cvar_t r_lightningbeam_qmbtexture;
void M_Menu_Options_Effects_AdjustSliders (int dir)
{
int optnum;
- S_LocalSound ("misc/menu3.wav");
+ S_LocalSound ("misc/menu3.wav", true);
optnum = 0;
if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_modellights, bound(0, r_modellights.value + dir, 8));
else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&cl_particles_blood, !cl_particles_blood.integer);
else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&cl_particles_blood_alpha, bound(0.2, cl_particles_blood_alpha.value + dir * 0.1, 1));
else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&cl_particles_blood_bloodhack, !cl_particles_blood_bloodhack.integer);
+ else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_lightningbeam_thickness, bound(1, r_lightningbeam_thickness.integer + dir, 10));
+ else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_lightningbeam_scroll, bound(0, r_lightningbeam_scroll.integer + dir, 10));
+ else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_lightningbeam_repeatdistance, bound(64, r_lightningbeam_repeatdistance.integer + dir * 64, 1024));
+ else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_lightningbeam_color_red, bound(0, r_lightningbeam_color_red.value + dir * 0.1, 1));
+ else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_lightningbeam_color_green, bound(0, r_lightningbeam_color_green.value + dir * 0.1, 1));
+ else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_lightningbeam_color_blue, bound(0, r_lightningbeam_color_blue.value + dir * 0.1, 1));
+ else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_lightningbeam_qmbtexture, !r_lightningbeam_qmbtexture.integer);
else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_lerpmodels, !r_lerpmodels.integer);
else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_lerpsprites, !r_lerpsprites.integer);
+ else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&gl_polyblend, bound(0, gl_polyblend.value + dir * 0.1, 1));
+ else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_skyscroll1, bound(-8, r_skyscroll1.value + dir * 0.1, 8));
+ else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_skyscroll2, bound(-8, r_skyscroll2.value + dir * 0.1, 8));
+ else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_waterwarp, bound(0, r_waterwarp.value + dir * 0.1, 1));
else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_wateralpha, bound(0, r_wateralpha.value + dir * 0.1, 1));
else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_waterscroll, bound(0, r_waterscroll.value + dir * 0.5, 10));
else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_watershader, bound(0, r_watershader.value + dir * 0.25, 10));
M_Options_PrintCheckbox(" Blood", true, cl_particles_blood.integer);
M_Options_PrintSlider( " Blood Opacity", true, cl_particles_blood_alpha.value, 0.2, 1);
M_Options_PrintCheckbox("Force New Blood Effect", true, cl_particles_blood_bloodhack.integer);
+ M_Options_PrintSlider( " Lightning Thickness", true, r_lightningbeam_thickness.integer, 1, 10);
+ M_Options_PrintSlider( " Lightning Scroll", true, r_lightningbeam_scroll.integer, 0, 10);
+ M_Options_PrintSlider( " Lightning Repeat Dist", true, r_lightningbeam_repeatdistance.integer, 64, 1024);
+ M_Options_PrintSlider( " Lightning Color Red", true, r_lightningbeam_color_red.value, 0, 1);
+ M_Options_PrintSlider( " Lightning Color Green", true, r_lightningbeam_color_green.value, 0, 1);
+ M_Options_PrintSlider( " Lightning Color Blue", true, r_lightningbeam_color_blue.value, 0, 1);
+ M_Options_PrintCheckbox(" Lightning QMB Texture", true, r_lightningbeam_qmbtexture.integer);
M_Options_PrintCheckbox(" Model Interpolation", true, r_lerpmodels.integer);
M_Options_PrintCheckbox(" Sprite Interpolation", true, r_lerpsprites.integer);
+ M_Options_PrintSlider( " View Blend", true, gl_polyblend.value, 0, 1);
+ M_Options_PrintSlider( "Upper Sky Scroll Speed", true, r_skyscroll1.value, -8, 8);
+ M_Options_PrintSlider( "Lower Sky Scroll Speed", true, r_skyscroll2.value, -8, 8);
+ M_Options_PrintSlider( " Underwater View Warp", true, r_waterwarp.value, 0, 1);
M_Options_PrintSlider( " Water Alpha (opacity)", true, r_wateralpha.value, 0, 1);
M_Options_PrintSlider( " Water Movement", true, r_waterscroll.value, 0, 10);
M_Options_PrintSlider( " GeForce3 Water Shader", true, r_watershader.value, 0, 10);
break;
case K_UPARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
options_effects_cursor--;
if (options_effects_cursor < 0)
options_effects_cursor = OPTIONS_EFFECTS_ITEMS-1;
break;
case K_DOWNARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
options_effects_cursor++;
if (options_effects_cursor >= OPTIONS_EFFECTS_ITEMS)
options_effects_cursor = 0;
{
int optnum;
float f;
- S_LocalSound ("misc/menu3.wav");
+ S_LocalSound ("misc/menu3.wav", true);
optnum = 1;
if (options_colorcontrol_cursor == optnum++)
return;
case K_UPARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
options_colorcontrol_cursor--;
if (options_colorcontrol_cursor < 0)
options_colorcontrol_cursor = OPTIONS_COLORCONTROL_ITEMS-1;
break;
case K_DOWNARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
options_colorcontrol_cursor++;
if (options_colorcontrol_cursor >= OPTIONS_COLORCONTROL_ITEMS)
options_colorcontrol_cursor = 0;
if (bind_grab)
{ // defining a key
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
if (k == K_ESCAPE)
{
bind_grab = false;
case K_LEFTARROW:
case K_UPARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
do
{
keys_cursor--;
case K_DOWNARROW:
case K_RIGHTARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
do
{
keys_cursor++;
case K_ENTER: // go into bind mode
M_FindKeysForCommand (bindnames[keys_cursor][0], keys);
- S_LocalSound ("misc/menu2.wav");
+ S_LocalSound ("misc/menu2.wav", true);
if (keys[NUMKEYS - 1] != -1)
M_UnbindCommand (bindnames[keys_cursor][0]);
bind_grab = true;
case K_BACKSPACE: // delete bindings
case K_DEL: // delete bindings
- S_LocalSound ("misc/menu2.wav");
+ S_LocalSound ("misc/menu2.wav", true);
M_UnbindCommand (bindnames[keys_cursor][0]);
break;
}
void M_Menu_Video_AdjustSliders (int dir)
{
- S_LocalSound ("misc/menu3.wav");
+ S_LocalSound ("misc/menu3.wav", true);
switch (video_cursor)
{
Cvar_SetValueQuick(&vid_height, current_vid_height);
Cvar_SetValueQuick(&vid_bitsperpixel, current_vid_bitsperpixel);
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
M_Menu_Options_f ();
break;
break;
case K_UPARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
video_cursor--;
if (video_cursor < 0)
video_cursor = VIDEO_ITEMS-1;
break;
case K_DOWNARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
video_cursor++;
if (video_cursor >= VIDEO_ITEMS)
video_cursor = 0;
break;
case K_UPARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
lanConfig_cursor--;
if (lanConfig_cursor < 0)
lanConfig_cursor = NUM_LANCONFIG_CMDS-1;
break;
case K_DOWNARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
lanConfig_cursor++;
if (lanConfig_cursor >= NUM_LANCONFIG_CMDS)
lanConfig_cursor = 0;
break;
case K_UPARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
gameoptions_cursor--;
if (gameoptions_cursor < 0)
gameoptions_cursor = NUM_GAMEOPTIONS-1;
break;
case K_DOWNARROW:
- S_LocalSound ("misc/menu1.wav");
+ S_LocalSound ("misc/menu1.wav", true);
gameoptions_cursor++;
if (gameoptions_cursor >= NUM_GAMEOPTIONS)
gameoptions_cursor = 0;
case K_LEFTARROW:
if (gameoptions_cursor == 0)
break;
- S_LocalSound ("misc/menu3.wav");
+ S_LocalSound ("misc/menu3.wav", true);
M_NetStart_Change (-1);
break;
case K_RIGHTARROW:
if (gameoptions_cursor == 0)
break;
- S_LocalSound ("misc/menu3.wav");
+ S_LocalSound ("misc/menu3.wav", true);
M_NetStart_Change (1);
break;
case K_ENTER:
- S_LocalSound ("misc/menu2.wav");
+ S_LocalSound ("misc/menu2.wav", true);
if (gameoptions_cursor == 0)
{
if (sv.active)
case K_UPARROW:
case K_LEFTARROW:
- S_LocalSound("misc/menu1.wav");
+ S_LocalSound("misc/menu1.wav", true);
slist_cursor--;
if (slist_cursor < 0)
slist_cursor = hostCacheCount - 1;
case K_DOWNARROW:
case K_RIGHTARROW:
- S_LocalSound("misc/menu1.wav");
+ S_LocalSound("misc/menu1.wav", true);
slist_cursor++;
if (slist_cursor >= hostCacheCount)
slist_cursor = 0;
break;
case K_ENTER:
- S_LocalSound("misc/menu2.wav");
+ S_LocalSound("misc/menu2.wav", true);
Cbuf_AddText(va("connect \"%s\"\n", hostcache[slist_cursor].cname));
break;
if (m_entersound)
{
- S_LocalSound ("misc/menu2.wav");
+ S_LocalSound ("misc/menu2.wav", true);
m_entersound = false;
}
#define M_F_INIT "m_init"
#define M_F_KEYDOWN "m_keydown"
#define M_F_DRAW "m_draw"
+// ng_menu function names
+#define M_F_DISPLAY "m_display"
+#define M_F_HIDE "m_hide"
+// normal menu names (rest)
#define M_F_TOGGLE "m_toggle"
#define M_F_SHUTDOWN "m_shutdown"
M_F_INIT,
M_F_KEYDOWN,
M_F_DRAW,
+#ifdef NG_MENU
+M_F_DISPLAY,
+M_F_HIDE,
+#else
M_F_TOGGLE,
+#endif
M_F_SHUTDOWN,
};
+#ifdef NG_MENU
+qboolean m_displayed;
+#endif
+
static int m_numrequiredfunc = sizeof(m_required_func) / sizeof(char*);
-static func_t m_draw,m_keydown;
+static func_t m_draw, m_keydown;
void MR_SetRouting (qboolean forceold);
// set time
*prog->time = realtime;
+#ifdef NG_MENU
+ m_displayed = !m_displayed;
+ if( m_displayed )
+ PRVM_ExecuteProgram((func_t) (PRVM_ED_FindFunction(M_F_DISPLAY) - prog->functions),"");
+ else
+ PRVM_ExecuteProgram((func_t) (PRVM_ED_FindFunction(M_F_HIDE) - prog->functions),"");
+#else
PRVM_ExecuteProgram((func_t) (PRVM_ED_FindFunction(M_F_TOGGLE) - prog->functions),"");
+#endif
PRVM_End;
}
m_draw = (func_t) (PRVM_ED_FindFunction(M_F_DRAW) - prog->functions);
m_keydown = (func_t) (PRVM_ED_FindFunction(M_F_KEYDOWN) - prog->functions);
+#ifdef NG_MENU
+ m_displayed = false;
+#endif
+
// set time
*prog->time = realtime;
// the normal quake menu only the first time
else if(COM_CheckParm("-useqmenu"))
MR_SetRouting (TRUE);
- else
- MR_SetRouting (FALSE);
+
+ MR_SetRouting (FALSE);
}