From 22a3c2bc6df1f65ef086b5170302948bf27e02ad Mon Sep 17 00:00:00 2001 From: Lance Date: Sat, 16 Jan 2010 04:59:13 +0000 Subject: [PATCH] Menu code commit, Hexen 2 menus supported better (even includes sound in the menus now), menus are now mostly aligned and not underneath pictures anymore, Quake2 menus looking abit too git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3497 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- engine/client/m_items.c | 41 ++++- engine/client/m_options.c | 361 +++++++++++++++++++++++++++----------- engine/client/menu.c | 39 +++- 3 files changed, 325 insertions(+), 116 deletions(-) diff --git a/engine/client/m_items.c b/engine/client/m_items.c index 8cdc8e42f..4c4c92db3 100644 --- a/engine/client/m_items.c +++ b/engine/client/m_items.c @@ -290,6 +290,11 @@ void MenuDrawItems(int xpos, int ypos, menuoption_t *option, menu_t *menu) { int i; mpic_t *p; + + int mgt; + + mgt = M_GameType(); + while (option) { if (mousemoved && !bindingactive) @@ -300,7 +305,11 @@ void MenuDrawItems(int xpos, int ypos, menuoption_t *option, menu_t *menu) if (menu->selecteditem != option) { if (!option->common.noselectionsound) - S_LocalSound ("misc/menu1.wav"); + if (mgt == MGT_HEXEN2) + S_LocalSound ("raven/menu1.wav"); + else + S_LocalSound ("misc/menu1.wav"); + menu->selecteditem = option; menu->tooltiptime = realtime + 1; MenuTooltipSplit(menu, menu->selecteditem->common.tooltip); @@ -1512,6 +1521,9 @@ menuoption_t *M_PrevSelectableItem(menu_t *m, menuoption_t *old) void M_Complex_Key(int key) { + int mgt; + mgt = M_GameType(); + if (!currentmenu) return; //erm... @@ -1528,7 +1540,10 @@ void M_Complex_Key(int key) { if (bindingactive) { - S_LocalSound ("misc/menu1.wav"); + if (mgt == MGT_HEXEN2) + S_LocalSound ("raven/menu1.wav"); + else + S_LocalSound ("misc/menu1.wav"); if (key != K_ESCAPE && key != '`') { @@ -1545,7 +1560,10 @@ void M_Complex_Key(int key) case K_ESCAPE: //remove M_RemoveMenu(currentmenu); - S_LocalSound ("misc/menu3.wav"); + if (mgt == MGT_HEXEN2) + S_LocalSound ("raven/menu3.wav"); + else + S_LocalSound ("misc/menu3.wav"); break; case K_TAB: case K_DOWNARROW: @@ -1553,7 +1571,11 @@ void M_Complex_Key(int key) if (currentmenu->selecteditem) { - S_LocalSound ("misc/menu1.wav"); + if (mgt == MGT_HEXEN2) + S_LocalSound ("raven/menu1.wav"); + else + S_LocalSound ("misc/menu1.wav"); + if (currentmenu->cursoritem) currentmenu->cursoritem->common.posy = currentmenu->selecteditem->common.posy; } @@ -1563,7 +1585,11 @@ void M_Complex_Key(int key) if (currentmenu->selecteditem) { - S_LocalSound ("misc/menu1.wav"); + if (mgt == MGT_HEXEN2) + S_LocalSound ("raven/menu1.wav"); + else + S_LocalSound ("misc/menu1.wav"); + if (currentmenu->cursoritem) currentmenu->cursoritem->common.posy = currentmenu->selecteditem->common.posy; } @@ -1591,7 +1617,10 @@ void M_Complex_Key(int key) else if (key == K_ENTER || key == K_MOUSE1) { Cbuf_AddText(currentmenu->selecteditem->button.command, RESTRICT_LOCAL); - S_LocalSound ("misc/menu2.wav"); + if (mgt == MGT_HEXEN2) + S_LocalSound ("raven/menu2.wav"); + else + S_LocalSound ("misc/menu2.wav"); } break; case mt_custom: diff --git a/engine/client/m_options.c b/engine/client/m_options.c index 0ed035353..b1ecc94af 100644 --- a/engine/client/m_options.c +++ b/engine/client/m_options.c @@ -235,6 +235,7 @@ void M_Menu_Audio_f (void) int y = 32; menu_t *menu; int mgt; + int cursorpositionY; extern cvar_t nosound, precache, snd_leftisright, snd_khz, snd_eax, snd_speakers, ambient_level, bgmvolume, snd_playersoundvolume, ambient_fade, cl_staticsounds, snd_inactive, _snd_mixahead, snd_usemultipledevices, snd_noextraupdate, snd_show, bgmbuffer; static const char *soundqualityoptions[] = { @@ -277,10 +278,13 @@ void M_Menu_Audio_f (void) if (mgt == MGT_QUAKE2) { MC_AddCenterPicture(menu, 4, "pics/m_banner_options"); - y += 32; + y += 8; } else if (mgt == MGT_HEXEN2) { + MC_AddPicture(menu, 16, 0, "gfx/menu/hplaque.lmp"); + MC_AddCenterPicture(menu, 0, "gfx/menu/title3.lmp"); + y += 25+8; } else { @@ -288,8 +292,14 @@ void M_Menu_Audio_f (void) MC_AddCenterPicture(menu, 4, "gfx/p_option.lmp"); } + cursorpositionY = (y + 24); + menu->selecteditem = (union menuoption_s *) + MC_AddRedText(menu, 16, y, " Sound Options", false); y+=8; + MC_AddWhiteText(menu, 16, y, " ", false); y+=8; + y+=8; + MC_AddSlider(menu, 16, y, " CD Music Volume", &bgmvolume, 0, 1, 0.1);y+=8; MC_AddSlider(menu, 16, y, " CD Music Buffer", &bgmbuffer, 0, 10240, 1024);y+=8; MC_AddSlider(menu, 16, y, " Sound Volume", &volume, 0, 1, 0.1);y+=8; @@ -299,20 +309,20 @@ void M_Menu_Audio_f (void) MC_AddCheckBox(menu, 16, y, " No Sound", &nosound,0);y+=8; MC_AddCheckBox(menu, 16, y, " Static Sounds", &cl_staticsounds,0);y+=8; MC_AddCheckBox(menu, 16, y, " Precache", &precache,0);y+=8; - MC_AddCheckBox(menu, 16, y, " Low Quality Sound (8bit)", &loadas8bit,0);y+=8; - MC_AddCheckBox(menu, 16, y, " Flip Sound", &snd_leftisright,0);y+=8; - MC_AddCheckBox(menu, 16, y, "Play Sound While Inactive", &snd_inactive,0);y+=8; MC_AddCheckBox(menu, 16, y, " Experimental EAX 2", &snd_eax,0);y+=8; MC_AddCvarCombo(menu, 16, y, " Speaker Setup", &snd_speakers, speakeroptions, speakervalues);y+=8; MC_AddCvarCombo(menu, 16, y, " Sound Speed", &snd_khz, soundqualityoptions, soundqualityvalues);y+=8; MC_AddSlider(menu, 16, y, " Sound Mixahead", &_snd_mixahead,0,1,0.05);y+=8; MC_AddCheckBox(menu, 16, y, " Multiple Devices", &snd_usemultipledevices,0);y+=8; MC_AddCheckBox(menu, 16, y, " No Extra Sound Update", &snd_noextraupdate,0);y+=8; + MC_AddCheckBox(menu, 16, y, " Low Quality Sound (8bit)", &loadas8bit,0);y+=8; + MC_AddCheckBox(menu, 16, y, " Flip Sound", &snd_leftisright,0);y+=8; + MC_AddCheckBox(menu, 16, y, "Play Sound While Inactive", &snd_inactive,0);y+=8; //MC_AddCombo(menu, 16, y, " Show Sounds Playing", &snd_show,0);y+=8; y+=8; MC_AddConsoleCommand(menu, 16, y, " = Restart Sound =", "snd_restart\n");y+=8; - menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 225, 32, NULL, false); + menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 225, cursorpositionY, NULL, false); } #else @@ -329,6 +339,7 @@ void M_Menu_Particles_f (void) int y = 32; menu_t *menu; int mgt; + int cursorpositionY; extern cvar_t r_bouncysparks, r_part_rain, gl_part_flame, r_particlesystem, r_grenadetrail, r_rockettrail, r_part_sparks_textured, r_part_sparks_trifan, r_part_rain_quantity, r_part_beams, r_part_beams_textured, r_particle_tracelimit; char *psystemopts[] = @@ -354,10 +365,13 @@ void M_Menu_Particles_f (void) if (mgt == MGT_QUAKE2) { MC_AddCenterPicture(menu, 4, "pics/m_banner_options"); - y += 32; + y += 8; } else if (mgt == MGT_HEXEN2) { + MC_AddPicture(menu, 16, 0, "gfx/menu/hplaque.lmp"); + MC_AddCenterPicture(menu, 0, "gfx/menu/title6.lmp"); + y += 25+8; } else { @@ -365,8 +379,14 @@ void M_Menu_Particles_f (void) MC_AddCenterPicture(menu, 4, "gfx/p_option.lmp"); } + cursorpositionY = (y + 24); + menu->selecteditem = (union menuoption_s *) + MC_AddRedText(menu, 16, y, " Particle Options", false); y+=8; + MC_AddWhiteText(menu, 16, y, " ", false); y+=8; + y+=8; + MC_AddCvarCombo(menu, 16, y, " particle system", &r_particlesystem, psystemopts, psystemvals);y+=8; //fixme: hide the rest of the options if r_particlesystem==classic MC_AddConsoleCommand(menu, 16, y, " Choose particle set", "menu_particlesets");y+=8; @@ -380,11 +400,11 @@ void M_Menu_Particles_f (void) MC_AddCheckBox(menu, 16, y, " Rain", &r_part_rain,0); y+=8; MC_AddSlider(menu, 16, y, " Rain Quantity", &r_part_rain_quantity,0,10,1); y+=8; MC_AddCheckBox(menu, 16, y, " Torch Flame", &gl_part_flame,0); y+=8; + MC_AddSlider(menu, 16, y, " Particle Tracelimit", &r_particle_tracelimit,0,2000,50); y+=8; MC_AddCheckBox(menu, 16, y, " Particle Beams", &r_part_beams,0); y+=8; MC_AddCheckBox(menu, 16, y, "Textured Particle Beams", &r_part_beams_textured,0); y+=8; - MC_AddSlider(menu, 16, y, " Particle Tracelimit", &r_particle_tracelimit,0,2000,50); y+=8; - menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 200, 32, NULL, false); + menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 200, cursorpositionY, NULL, false); } enum { @@ -466,6 +486,7 @@ void M_Menu_FPS_f (void) int y = 32; menu_t *menu; int mgt; + int cursorpositionY; int i, len; extern cvar_t v_contentblend, show_fps, cl_r2g, cl_gibfilter, cl_expsprite, cl_deadbodyfilter; @@ -480,10 +501,13 @@ void M_Menu_FPS_f (void) if (mgt == MGT_QUAKE2) { MC_AddCenterPicture(menu, 4, "pics/m_banner_options"); - y += 32; + y += 8; } else if (mgt == MGT_HEXEN2) { + MC_AddPicture(menu, 16, 0, "gfx/menu/hplaque.lmp"); + MC_AddCenterPicture(menu, 0, "gfx/menu/title3.lmp"); + y += 25+8; } else { @@ -491,25 +515,29 @@ void M_Menu_FPS_f (void) MC_AddCenterPicture(menu, 4, "gfx/p_option.lmp"); } + cursorpositionY = (y + 24); + menu->selecteditem = (union menuoption_s *) - MC_AddConsoleCommand(menu, 16, y, " Particle Options", "menu_particles\n"); y+=8; + MC_AddRedText(menu, 16, y, " FPS Options", false); y+=8; + MC_AddWhiteText(menu, 16, y, " ", false); y+=8; + y+=8; for (i = 0; i < PRESET_MAX; i++) { len = strlen(preset[0].value[i]); - MC_AddConsoleCommand(menu, 100+8*(9-len), y, va("(preset) %s", preset[0].value[i]), va("fps_preset %s\n", preset[0].value[i])); y+=8; + MC_AddConsoleCommand(menu, 116, y, va("(preset) %s", preset[0].value[i]), va("fps_preset %s\n", preset[0].value[i])); y+=8; } - MC_AddCheckBox(menu, 16, y, " Show FPS", &show_fps,0);y+=8; + MC_AddCheckBox(menu, 16, y, " Show FPS", &show_fps,0);y+=8; - MC_AddCheckBox(menu, 16, y, " Content blend", &v_contentblend,0);y+=8; - MC_AddCheckBox(menu, 16, y, "Rockets to Grenades", &cl_r2g,0); y+=8; - MC_AddCheckBox(menu, 16, y, " Gib Filter", &cl_gibfilter,0); y+=8; - MC_AddSlider(menu, 16, y, " Dead Body Filter", &cl_deadbodyfilter,0,2,1); y+=8; - MC_AddCheckBox(menu, 16, y, " Explosion Sprite", &cl_expsprite,0); y+=8; - y+=4;MC_AddEditCvar(menu, 16, y, " Skybox", "r_skybox");y+=8;y+=4; + MC_AddCheckBox(menu, 16, y, " Content blend", &v_contentblend,0);y+=8; + MC_AddCheckBox(menu, 16, y, " Gib Filter", &cl_gibfilter,0); y+=8; + MC_AddSlider(menu, 16, y, " Dead Body Filter", &cl_deadbodyfilter,0,2,1); y+=8; + MC_AddCheckBox(menu, 16, y, " Explosion Sprite", &cl_expsprite,0); y+=8; + y+=4;MC_AddEditCvar(menu, 16, y, " Skybox", "r_skybox");y+=8;y+=4; + MC_AddCheckBox(menu, 16, y, " Rockets to Grenades", &cl_r2g,0); y+=8; - menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 250, 32, NULL, false); + menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 188, cursorpositionY, NULL, false); } //copy and pasted from renderer.c @@ -539,7 +567,7 @@ qboolean M_VideoApply3D (union menuoption_s *op,struct menu_s *menu,int key) if (key != K_ENTER) return false; - /*switch(info->multisamplingcombo->selectedoption) + switch(info->multisamplingcombo->selectedoption) { case 0: Cbuf_AddText("vid_multisample 0\n", RESTRICT_LOCAL); @@ -556,7 +584,7 @@ qboolean M_VideoApply3D (union menuoption_s *op,struct menu_s *menu,int key) case 4: Cbuf_AddText("vid_multisample 8\n", RESTRICT_LOCAL); break; - }*/ + } Cbuf_AddText("vid_restart\n", RESTRICT_LOCAL); @@ -568,7 +596,7 @@ qboolean M_VideoApply3D (union menuoption_s *op,struct menu_s *menu,int key) void M_Menu_3D_f (void) { static const char *msaalevels[] = - { + { "Off", "2x", "4x", @@ -582,10 +610,12 @@ void M_Menu_3D_f (void) threeDmenuinfo_t *info; menu_t *menu; int mgt; - int currentmsaalevel; + int cursorpositionY; + //int currentmsaalevel; #ifdef RGLQUAKE #endif extern cvar_t r_novis, gl_dither, cl_item_bobbing, r_waterwarp, r_nolerp, r_fastsky, gl_shadeq1, gl_shadeq3, gl_nocolors, gl_lerpimages, gl_keeptjunctions, gl_lateswap, r_mirroralpha, r_wateralpha, r_drawviewmodel, r_xflip, gl_maxdist, gl_motionblur, gl_motionblurscale, gl_blend2d, gl_blendsprites, r_flashblend, gl_cshiftenabled; + //static extern cvar_t vid_multisample; key_dest = key_menu; m_state = m_complex; @@ -598,10 +628,13 @@ void M_Menu_3D_f (void) if (mgt == MGT_QUAKE2) { MC_AddCenterPicture(menu, 4, "pics/m_banner_options"); - y += 32; + y += 8; } else if (mgt == MGT_HEXEN2) { + MC_AddPicture(menu, 16, 0, "gfx/menu/hplaque.lmp"); + MC_AddCenterPicture(menu, 0, "gfx/menu/title3.lmp"); + y += 25+8; } else { @@ -609,6 +642,8 @@ void M_Menu_3D_f (void) MC_AddCenterPicture(menu, 4, "gfx/p_option.lmp"); } + cursorpositionY = (y + 24); + /*if (vid_multisample.value == 8) currentmsaalevel = 4; else if (vid_multisample.value == 6) @@ -624,6 +659,10 @@ void M_Menu_3D_f (void) menu->selecteditem = (union menuoption_s *) + MC_AddRedText(menu, 16, y, " 3D Renderering Options", false); y+=8; + MC_AddWhiteText(menu, 16, y, " ", false); y+=8; + y+=8; + //info->multisamplingcombo = MC_AddCombo(menu, 16, y, " Multisample Anti-Aliasing", msaalevels, currentmsaalevel); y+=8; MC_AddCheckBox(menu, 16, y, " Calculate VIS", &r_novis,0); y+=8; MC_AddCheckBox(menu, 16, y, " Water Warp", &r_waterwarp,0); y+=8; @@ -631,15 +670,15 @@ void M_Menu_3D_f (void) MC_AddCheckBox(menu, 16, y, " Toggle Sky", &r_fastsky,0); y+=8; MC_AddCheckBox(menu, 16, y, " Q1 Shaders", &gl_shadeq1,0); y+=8; MC_AddCheckBox(menu, 16, y, " Q3 Shaders", &gl_shadeq3,0); y+=8; - MC_AddCheckBox(menu, 16, y, "Ignore Player Model Colors", &gl_nocolors,0); y+=8; MC_AddCheckBox(menu, 16, y, " Lerp Images", &gl_lerpimages,0); y+=8; - MC_AddCheckBox(menu, 16, y, " Toggle Colinear Vertexes", &gl_keeptjunctions,0); y+=8; + MC_AddSlider(menu, 16, y, " Maximum Distance", &gl_maxdist,1,8192,128); y+=8; MC_AddCheckBox(menu, 16, y, " GL Swapbuffer Delay", &gl_lateswap,0); y+=8; MC_AddCheckBox(menu, 16, y, " Mirror Reflections", &r_mirroralpha,0); y+=8; + MC_AddCheckBox(menu, 16, y, " Flip Horizontal View", &r_xflip,0); y+=8; MC_AddCheckBox(menu, 16, y, " Water Transparency", &r_wateralpha,0); y+=8; MC_AddSlider(menu, 16, y, " View Model Transparency", &r_drawviewmodel,0,1,0.1); y+=8; - MC_AddCheckBox(menu, 16, y, " Flip Horizontal View", &r_xflip,0); y+=8; - MC_AddSlider(menu, 16, y, " Maximum Distance", &gl_maxdist,1,8192,128); y+=8; + MC_AddCheckBox(menu, 16, y, "Ignore Player Model Colors", &gl_nocolors,0); y+=8; + MC_AddCheckBox(menu, 16, y, " Toggle Colinear Vertexes", &gl_keeptjunctions,0); y+=8; MC_AddSlider(menu, 16, y, " Motion Blur", &gl_motionblur,0,1,0.5); y+=8; MC_AddSlider(menu, 16, y, " Motion Blur Scale", &gl_motionblurscale,0,1,0.5); y+=8; MC_AddCheckBox(menu, 16, y, " 2D Blending", &gl_blend2d,0); y+=8; @@ -652,7 +691,7 @@ void M_Menu_3D_f (void) MC_AddCommand(menu, 16, y, " Apply", M_VideoApply3D); y+=8; //menu->selecteditem = (union menuoption_s *)info->multisamplingcombo; - menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 225, 32, NULL, false); + menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 225, cursorpositionY, NULL, false); } typedef struct { @@ -796,6 +835,7 @@ void M_Menu_Textures_f (void) texturemenuinfo_t *info; menu_t *menu; int mgt; + int cursorpositionY; int currenttexturefilter; int currentanisotropylevel; int currentmaxtexturesize; @@ -812,10 +852,13 @@ void M_Menu_Textures_f (void) if (mgt == MGT_QUAKE2) { MC_AddCenterPicture(menu, 4, "pics/m_banner_options"); - y += 32; + y += 8; } else if (mgt == MGT_HEXEN2) { + MC_AddPicture(menu, 16, 0, "gfx/menu/hplaque.lmp"); + MC_AddCenterPicture(menu, 0, "gfx/menu/title3.lmp"); + y += 25+8; } else { @@ -823,6 +866,8 @@ void M_Menu_Textures_f (void) MC_AddCenterPicture(menu, 4, "gfx/p_option.lmp"); } + cursorpositionY = (y + 24); + if (!Q_strcasecmp(gl_texturemode.string, "gl_nearest_mipmap_nearest")) currenttexturefilter = 0; else if (!Q_strcasecmp(gl_texturemode.string, "gl_linear_mipmap_linear")) @@ -877,6 +922,10 @@ void M_Menu_Textures_f (void) currentmaxtexturesize = 0; + MC_AddRedText(menu, 16, y, " Texturing Options", false); y+=8; + MC_AddWhiteText(menu, 16, y, " ", false); y+=8; + y+=8; + info->texturefiltercombo = MC_AddCombo(menu, 16, y, " Texture Filter", texturefilternames, currenttexturefilter); y+=8; info->anisotropycombo = MC_AddCombo(menu, 16, y, " Anisotropy Level", anisotropylevels, currentanisotropylevel); y+=8; MC_AddCheckBox(menu, 16, y, " 32bit Textures", &gl_load24bit,0); y+=8; @@ -908,19 +957,33 @@ void M_Menu_Textures_f (void) MC_AddCommand(menu, 16, y, " Apply", M_VideoApplyTextures); y+=8; menu->selecteditem = (union menuoption_s *)info->texturefiltercombo; - menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 220, 32, NULL, false); + menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 220, cursorpositionY, NULL, false); } -/*typedef struct { -} shadowlightingmenuinfo_t;*/ +typedef struct { + menucombo_t *loadlitcombo; +} shadowlightingmenuinfo_t; qboolean M_VideoApplyShadowLighting (union menuoption_s *op,struct menu_s *menu,int key) { - //shadowlightingmenuinfo_t *info = menu->data; + shadowlightingmenuinfo_t *info = menu->data; if (key != K_ENTER) return false; + switch(info->loadlitcombo->selectedoption) + { + case 0: + Cbuf_AddText("gl_loadlit 0\n", RESTRICT_LOCAL); + break; + case 1: + Cbuf_AddText("gl_loadlit 1\n", RESTRICT_LOCAL); + break; + case 2: + Cbuf_AddText("gl_loadlit 2\n", RESTRICT_LOCAL); + break; + } + Cbuf_AddText("vid_restart\n", RESTRICT_LOCAL); M_RemoveMenu(menu); @@ -932,25 +995,40 @@ void M_Menu_Shadow_Lighting_f (void) { int y = 32; menu_t *menu; + shadowlightingmenuinfo_t *info; int mgt; + int cursorpositionY; + int currentloadlit; #ifdef RGLQUAKE #endif extern cvar_t r_noaliasshadows, r_shadows, r_shadow_realtime_world, r_loadlits, gl_maxshadowlights, r_lightmap_saturation, r_dynamic, r_vertexlight, r_vertexdlights, r_lightstylesmooth, r_lightstylespeed, r_nolightdir, r_shadow_realtime_world_lightmaps, r_shadow_glsl_offsetmapping, r_shadow_glsl_offsetmapping_bias, r_shadow_glsl_offsetmapping_scale, r_shadow_bumpscale_basetexture, r_shadow_bumpscale_bumpmap, r_fb_bmodels, r_fb_models, gl_overbright, r_rocketlight, r_powerupglow, v_powerupshell, r_lightflicker, r_explosionlight; + static const char *loadlitoptions[] = + { + "Off", + "On", + "On (Regenerate Lighting)", + NULL + }; + key_dest = key_menu; m_state = m_complex; - menu = M_CreateMenu(0); + menu = M_CreateMenu(sizeof(shadowlightingmenuinfo_t)); + info = menu->data; mgt = M_GameType(); if (mgt == MGT_QUAKE2) { MC_AddCenterPicture(menu, 4, "pics/m_banner_options"); - y += 32; + y += 8; } else if (mgt == MGT_HEXEN2) { + MC_AddPicture(menu, 16, 0, "gfx/menu/hplaque.lmp"); + MC_AddCenterPicture(menu, 0, "gfx/menu/title3.lmp"); + y += 25+8; } else { @@ -958,9 +1036,32 @@ void M_Menu_Shadow_Lighting_f (void) MC_AddCenterPicture(menu, 4, "gfx/p_option.lmp"); } + cursorpositionY = (y + 24); + + currentloadlit = r_loadlits.value; + menu->selecteditem = (union menuoption_s *) + MC_AddRedText(menu, 16, y, " Shadow & Lighting Options", false); y+=8; + MC_AddWhiteText(menu, 16, y, " ", false); y+=8; + y+=8; + //MC_AddSlider(menu, 16, y, " Light Map Mode", &gl_lightmapmode,0,2,1); y+=8; + MC_AddSlider(menu, 16, y, " Light Map Saturation", &r_lightmap_saturation,0,1,0.1); y+=8; + MC_AddCheckBox(menu, 16, y, " Dynamic Lighting", &r_dynamic,0); y+=8; + MC_AddCheckBox(menu, 16, y, " Vertex Lighting", &r_vertexlight,0); y+=8; + MC_AddCheckBox(menu, 16, y, " Dynamic Vertex Lights", &r_vertexdlights,0); y+=8; + MC_AddCheckBox(menu, 16, y, " Lightstyle Smoothing", &r_lightstylesmooth,0); y+=8; + MC_AddSlider(menu, 16, y, " Lightstyle Animation Speed", &r_lightstylespeed,0,50,1); y+=8; + MC_AddCheckBox(menu, 16, y, " Fullbright BSP Models", &r_fb_bmodels,0); y+=8; + MC_AddCheckBox(menu, 16, y, " Fullbright Alias Models", &r_fb_models,0); y+=8; + MC_AddCheckBox(menu, 16, y, " Overbright Bits", &gl_overbright,0); y+=8; + MC_AddCheckBox(menu, 16, y, " Rocket Dynamic Lighting", &r_rocketlight,0); y+=8; + MC_AddSlider(menu, 16, y, " Powerup Glow", &r_powerupglow,0,2,1); y+=8; + MC_AddCheckBox(menu, 16, y, " Powerup Shell", &v_powerupshell,0); y+=8; + MC_AddCheckBox(menu, 16, y, " Light Flickering", &r_lightflicker,0); y+=8; + MC_AddSlider(menu, 16, y, " Explosion Light", &r_explosionlight,0,1,0.1); y+=8; + MC_AddCheckBox(menu, 16, y, " Surface Direction Model Lighting", &r_nolightdir,0); y+=8; MC_AddCheckBox(menu, 16, y, " Alias Model Shadows", &r_noaliasshadows,0); y+=8; MC_AddCheckBox(menu, 16, y, " Shadows", &r_shadows,0); y+=8; MC_AddCheckBox(menu, 16, y, "Realtime World Shadows & Lighting", &r_shadow_realtime_world,0); y+=8; @@ -970,28 +1071,14 @@ void M_Menu_Shadow_Lighting_f (void) MC_AddSlider(menu, 16, y, " GLSL Shadow Offsetmapping Scale", &r_shadow_glsl_offsetmapping_scale,0,-1,0.01); y+=8; MC_AddSlider(menu, 16, y, " Shadow Bumpscale Basetexture", &r_shadow_bumpscale_basetexture,0,10,1); y+=8; MC_AddSlider(menu, 16, y, " Shadow Bumpscale Bumpmap", &r_shadow_bumpscale_bumpmap,0,50,1); y+=8; - MC_AddSlider(menu, 16, y, " LIT Loading", &r_loadlits,0,2,1); y+=8; + info->loadlitcombo = MC_AddCombo(menu,16, y, " LIT Loading", loadlitoptions, currentloadlit); y+=8; MC_AddSlider(menu, 16, y, " Maximum Shadow Lights", &gl_maxshadowlights,0,1000,2); y+=8; - //MC_AddSlider(menu, 16, y, " Light Map Mode", &gl_lightmapmode,0,2,1); y+=8; - MC_AddSlider(menu, 16, y, " Light Map Saturation", &r_lightmap_saturation,0,1,0.1); y+=8; - MC_AddCheckBox(menu, 16, y, " Dynamic Lighting", &r_dynamic,0); y+=8; - MC_AddCheckBox(menu, 16, y, " Vertex Lighting", &r_vertexlight,0); y+=8; - MC_AddCheckBox(menu, 16, y, " Dynamic Vertex Lights", &r_vertexdlights,0); y+=8; - MC_AddCheckBox(menu, 16, y, " Lightstyle Smoothing", &r_lightstylesmooth,0); y+=8; - MC_AddSlider(menu, 16, y, " Lightstyle Animation Speed", &r_lightstylespeed,0,50,1); y+=8; - MC_AddCheckBox(menu, 16, y, " Surface Direction Model Lighting", &r_nolightdir,0); y+=8; - MC_AddCheckBox(menu, 16, y, " Fullbright BSP Models", &r_fb_bmodels,0); y+=8; - MC_AddCheckBox(menu, 16, y, " Fullbright Alias Models", &r_fb_models,0); y+=8; - MC_AddCheckBox(menu, 16, y, " Overbright Bits", &gl_overbright,0); y+=8; - MC_AddCheckBox(menu, 16, y, " Rocket Dynamic Lighting", &r_rocketlight,0); y+=8; - MC_AddSlider(menu, 16, y, " Powerup Glow", &r_powerupglow,0,2,1); y+=8; - MC_AddCheckBox(menu, 16, y, " Powerup Shell", &v_powerupshell,0); y+=8; - MC_AddCheckBox(menu, 16, y, " Light Flickering", &r_lightflicker,0); y+=8; - MC_AddSlider(menu, 16, y, " Explosion Light", &r_explosionlight,0,1,0.1); y+=8; y+=8; MC_AddCommand(menu, 16, y, " Apply", M_VideoApplyShadowLighting); y+=8; - menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 285, 32, NULL, false); + menu->selecteditem = (union menuoption_s *)info->loadlitcombo; + + menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 285, cursorpositionY, NULL, false); } typedef struct { @@ -1027,9 +1114,9 @@ void M_Menu_Teamplay_f (void) { static const char *noskinsoptions[] = { - "Enable Skins (Do Download New Skins)", + "Enable Skins (Download)", "Disable Skins", - "Enable Skins (Don't Download New Skins)", + "Enable Skins (No Download))", NULL }; @@ -1037,6 +1124,7 @@ void M_Menu_Teamplay_f (void) teamplaymenuinfo_t *info; menu_t *menu; int mgt; + int cursorpositionY; int currentnoskins; extern cvar_t cl_parseSay, cl_triggers, tp_forceTriggers, tp_loadlocs, cl_parseFunChars, cl_noblink, noskins; @@ -1051,10 +1139,13 @@ void M_Menu_Teamplay_f (void) if (mgt == MGT_QUAKE2) { MC_AddCenterPicture(menu, 4, "pics/m_banner_options"); - y += 32; + y += 8; } else if (mgt == MGT_HEXEN2) { + MC_AddPicture(menu, 16, 0, "gfx/menu/hplaque.lmp"); + MC_AddCenterPicture(menu, 0, "gfx/menu/title4.lmp"); + y += 25+8; } else { @@ -1062,8 +1153,14 @@ void M_Menu_Teamplay_f (void) MC_AddCenterPicture(menu, 4, "gfx/p_option.lmp"); } + cursorpositionY = (y + 24); + currentnoskins = noskins.value; + MC_AddRedText(menu, 16, y, " Teamplay Options", false); y+=8; + MC_AddWhiteText(menu, 16, y, " ", false); y+=8; + y+=8; + info->noskinscombo = MC_AddCombo(menu, 16, y, " Skins", noskinsoptions, currentnoskins); y+=8; y+=4;MC_AddEditCvar(menu, 16, y, " Enemy Skin", "cl_enemyskin"); y+=8+4; y+=4;MC_AddEditCvar(menu, 16, y, " Team Skin", "cl_teamskin"); y+=8+4; @@ -1071,13 +1168,13 @@ void M_Menu_Teamplay_f (void) y+=4;MC_AddEditCvar(menu, 16, y, " Fake Name", "cl_fakename"); y+=8+4; MC_AddCheckBox(menu, 16, y, " Parse Fun Chars", &cl_parseFunChars,0); y+=8; MC_AddCheckBox(menu, 16, y, " Parse Macros", &cl_parseSay,0); y+=8; - MC_AddCheckBox(menu, 16, y, " Teamplay Triggers", &cl_triggers,0); y+=8; - MC_AddCheckBox(menu, 16, y, "Force Teamplay Triggers", &tp_forceTriggers,0); y+=8; MC_AddCheckBox(menu, 16, y, " Load Locs", &tp_loadlocs,0); y+=8; MC_AddCheckBox(menu, 16, y, " No Blink", &cl_noblink,0); y+=8; y+=4;MC_AddEditCvar(menu, 16, y, " Sound Trigger", "tp_soundtrigger"); y+=8+4; y+=4;MC_AddEditCvar(menu, 16, y, " Fake Name", "cl_fakename"); y+=8+4; y+=4;MC_AddEditCvar(menu, 16, y, " Weapon Order", "tp_weapon_order"); y+=8+4; + MC_AddCheckBox(menu, 16, y, " Teamplay Triggers", &cl_triggers,0); y+=8; + MC_AddCheckBox(menu, 16, y, "Force Teamplay Triggers", &tp_forceTriggers,0); y+=8; MC_AddCommand(menu, 16, y, " Apply", M_Apply_Teamplay); y+=8; @@ -1087,7 +1184,7 @@ void M_Menu_Teamplay_f (void) MC_AddConsoleCommand(menu, 16, y, " Teamplay Item Names", "menu_teamplay_items\n"); y+=8; menu->selecteditem = (union menuoption_s *)info->noskinscombo; - menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 200, 32, NULL, false); + menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 200, cursorpositionY, NULL, false); } void M_Menu_Teamplay_Locations_f (void) @@ -1095,6 +1192,7 @@ void M_Menu_Teamplay_Locations_f (void) int y = 32; menu_t *menu; int mgt; + int cursorpositionY; extern cvar_t ; key_dest = key_menu; @@ -1107,10 +1205,13 @@ void M_Menu_Teamplay_Locations_f (void) if (mgt == MGT_QUAKE2) { MC_AddCenterPicture(menu, 4, "pics/m_banner_options"); - y += 32; + y += 8; } else if (mgt == MGT_HEXEN2) { + MC_AddPicture(menu, 16, 0, "gfx/menu/hplaque.lmp"); + MC_AddCenterPicture(menu, 0, "gfx/menu/title4.lmp"); + y += 25+8; } else { @@ -1118,11 +1219,13 @@ void M_Menu_Teamplay_Locations_f (void) MC_AddCenterPicture(menu, 4, "gfx/p_option.lmp"); } + cursorpositionY = (y + 24); + //menu->selecteditem = (union menuoption_s *) - MC_AddRedText(menu, 16, y, " Teamplay Location Names", false); y+=8; - MC_AddRedText(menu, 16, y, "-------------------------------------------------------------------", false); y+=8; - + MC_AddRedText(menu, 16, y, " Teamplay Location Names", false); y+=8; + MC_AddWhiteText(menu, 16, y, " ", false); y+=8; + y+=8; y+=4;MC_AddEditCvar(menu, 16, y, " Green Armor ", "loc_name_ga"); y+=8+4; y+=4;MC_AddEditCvar(menu, 16, y, " Grenade Launcher", "loc_name_gl"); y+=8+4; y+=4;MC_AddEditCvar(menu, 16, y, " Lightning Gun", "loc_name_lg"); y+=8+4; @@ -1141,7 +1244,7 @@ void M_Menu_Teamplay_Locations_f (void) y+=8; MC_AddConsoleCommand(menu, 16, y, "<- Teamplay Options", "menu_teamplay\n"); y+=8; - menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 232, 32, NULL, false); + menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 232, cursorpositionY, NULL, false); } void M_Menu_Teamplay_Needs_f (void) @@ -1149,6 +1252,7 @@ void M_Menu_Teamplay_Needs_f (void) int y = 32; menu_t *menu; int mgt; + int cursorpositionY; extern cvar_t ; key_dest = key_menu; @@ -1161,10 +1265,13 @@ void M_Menu_Teamplay_Needs_f (void) if (mgt == MGT_QUAKE2) { MC_AddCenterPicture(menu, 4, "pics/m_banner_options"); - y += 32; + y += 8; } else if (mgt == MGT_HEXEN2) { + MC_AddPicture(menu, 16, 0, "gfx/menu/hplaque.lmp"); + MC_AddCenterPicture(menu, 0, "gfx/menu/title4.lmp"); + y += 25+8; } else { @@ -1172,11 +1279,13 @@ void M_Menu_Teamplay_Needs_f (void) MC_AddCenterPicture(menu, 4, "gfx/p_option.lmp"); } + cursorpositionY = (y + 24); + //menu->selecteditem = (union menuoption_s *) - MC_AddRedText(menu, 16, y, " Teamplay Needed Items", false); y+=8; - MC_AddRedText(menu, 16, y, "-------------------------------------------------------------------", false); y+=8; - + MC_AddRedText(menu, 16, y, " Teamplay Needed Items", false); y+=8; + MC_AddWhiteText(menu, 16, y, " ", false); y+=8; + y+=8; y+=4;MC_AddEditCvar(menu, 16, y, " Cells", "tp_need_cells"); y+=8+4; y+=4;MC_AddEditCvar(menu, 16, y, " Green Armor", "tp_need_ga"); y+=8+4; y+=4;MC_AddEditCvar(menu, 16, y, " Health", "tp_need_health"); y+=8+4; @@ -1191,7 +1300,7 @@ void M_Menu_Teamplay_Needs_f (void) y+=8; MC_AddConsoleCommand(menu, 16, y, "<- Teamplay Options", "menu_teamplay\n"); y+=8; - menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 200, 32, NULL, false); + menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 200, cursorpositionY, NULL, false); } void M_Menu_Teamplay_Items_f (void) @@ -1199,6 +1308,7 @@ void M_Menu_Teamplay_Items_f (void) int y = 32; menu_t *menu; int mgt; + int cursorpositionY; extern cvar_t ; key_dest = key_menu; @@ -1211,10 +1321,13 @@ void M_Menu_Teamplay_Items_f (void) if (mgt == MGT_QUAKE2) { MC_AddCenterPicture(menu, 4, "pics/m_banner_options"); - y += 32; + y += 8; } else if (mgt == MGT_HEXEN2) { + MC_AddPicture(menu, 16, 0, "gfx/menu/hplaque.lmp"); + MC_AddCenterPicture(menu, 0, "gfx/menu/title4.lmp"); + y += 25+8; } else { @@ -1222,11 +1335,13 @@ void M_Menu_Teamplay_Items_f (void) MC_AddCenterPicture(menu, 4, "gfx/p_option.lmp"); } + cursorpositionY = (y + 24); + //menu->selecteditem = (union menuoption_s *) - MC_AddRedText(menu, 16, y, " Teamplay Item Names", false); y+=8; - MC_AddRedText(menu, 16, y, "-------------------------------------------------------------------", false); y+=8; - + MC_AddRedText(menu, 16, y, " Teamplay Item Names", false); y+=8; + MC_AddWhiteText(menu, 16, y, " ", false); y+=8; + y+=8; MC_AddConsoleCommand(menu, 16, y, " -> Teamplay Armor Names", "menu_teamplay_armor\n"); y+=8; MC_AddConsoleCommand(menu, 16, y, " -> Teamplay Weapon Names", "menu_teamplay_weapons\n"); y+=8; MC_AddConsoleCommand(menu, 16, y, " -> Teamplay Powerup Names", "menu_teamplay_powerups\n"); y+=8; @@ -1237,7 +1352,7 @@ void M_Menu_Teamplay_Items_f (void) y+=8; MC_AddConsoleCommand(menu, 16, y, " <- Teamplay Options", "menu_teamplay\n"); y+=8; - menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 64, 32, NULL, false); + menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 64, cursorpositionY, NULL, false); } void M_Menu_Teamplay_Items_Armor_f (void) @@ -1245,6 +1360,7 @@ void M_Menu_Teamplay_Items_Armor_f (void) int y = 32; menu_t *menu; int mgt; + int cursorpositionY; extern cvar_t ; key_dest = key_menu; @@ -1257,10 +1373,13 @@ void M_Menu_Teamplay_Items_Armor_f (void) if (mgt == MGT_QUAKE2) { MC_AddCenterPicture(menu, 4, "pics/m_banner_options"); - y += 32; + y += 8; } else if (mgt == MGT_HEXEN2) { + MC_AddPicture(menu, 16, 0, "gfx/menu/hplaque.lmp"); + MC_AddCenterPicture(menu, 0, "gfx/menu/title4.lmp"); + y += 25+8; } else { @@ -1268,11 +1387,13 @@ void M_Menu_Teamplay_Items_Armor_f (void) MC_AddCenterPicture(menu, 4, "gfx/p_option.lmp"); } + cursorpositionY = (y + 24); + //menu->selecteditem = (union menuoption_s *) - MC_AddRedText(menu, 16, y, " Teamplay Armor Names", false); y+=8; - MC_AddRedText(menu, 16, y, "-------------------------------------------------------------------", false); y+=8; - + MC_AddRedText(menu, 16, y, " Teamplay Armor Names", false); y+=8; + MC_AddWhiteText(menu, 16, y, " ", false); y+=8; + y+=8; y+=4;MC_AddEditCvar(menu, 16, y, " Armor", "tp_name_armor"); y+=8+4; y+=4;MC_AddEditCvar(menu, 16, y, " Armor Type - Green", "tp_name_armortype_ga"); y+=8+4; y+=4;MC_AddEditCvar(menu, 16, y, " Armor Type - Red", "tp_name_armortype_ra"); y+=8+4; @@ -1284,7 +1405,7 @@ void M_Menu_Teamplay_Items_Armor_f (void) y+=8; MC_AddConsoleCommand(menu, 16, y, "<- Teamplay Item Names", "menu_teamplay_items\n"); y+=8; - menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 232, 32, NULL, false); + menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 232, cursorpositionY, NULL, false); } void M_Menu_Teamplay_Items_Weapons_f (void) @@ -1292,6 +1413,7 @@ void M_Menu_Teamplay_Items_Weapons_f (void) int y = 32; menu_t *menu; int mgt; + int cursorpositionY; extern cvar_t ; key_dest = key_menu; @@ -1304,10 +1426,13 @@ void M_Menu_Teamplay_Items_Weapons_f (void) if (mgt == MGT_QUAKE2) { MC_AddCenterPicture(menu, 4, "pics/m_banner_options"); - y += 32; + y += 8; } else if (mgt == MGT_HEXEN2) { + MC_AddPicture(menu, 16, 0, "gfx/menu/hplaque.lmp"); + MC_AddCenterPicture(menu, 0, "gfx/menu/title4.lmp"); + y += 25+8; } else { @@ -1315,11 +1440,13 @@ void M_Menu_Teamplay_Items_Weapons_f (void) MC_AddCenterPicture(menu, 4, "gfx/p_option.lmp"); } + cursorpositionY = (y + 24); + //menu->selecteditem = (union menuoption_s *) - MC_AddRedText(menu, 16, y, " Teamplay Weapon Names", false); y+=8; - MC_AddRedText(menu, 16, y, "-------------------------------------------------------------------", false); y+=8; - + MC_AddRedText(menu, 16, y, " Teamplay Weapon Names", false); y+=8; + MC_AddWhiteText(menu, 16, y, " ", false); y+=8; + y+=8; y+=4;MC_AddEditCvar(menu, 16, y, " Axe", "tp_name_axe"); y+=8+4; y+=4;MC_AddEditCvar(menu, 16, y, " Grenade Launcher", "tp_name_gl"); y+=8+4; y+=4;MC_AddEditCvar(menu, 16, y, " Lightning Gun", "tp_name_lg"); y+=8+4; @@ -1333,7 +1460,7 @@ void M_Menu_Teamplay_Items_Weapons_f (void) y+=8; MC_AddConsoleCommand(menu, 16, y, "<- Teamplay Item Names", "menu_teamplay_items\n"); y+=8; - menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 200, 32, NULL, false); + menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 200, cursorpositionY, NULL, false); } void M_Menu_Teamplay_Items_Powerups_f (void) @@ -1341,6 +1468,7 @@ void M_Menu_Teamplay_Items_Powerups_f (void) int y = 32; menu_t *menu; int mgt; + int cursorpositionY; extern cvar_t ; key_dest = key_menu; @@ -1353,10 +1481,13 @@ void M_Menu_Teamplay_Items_Powerups_f (void) if (mgt == MGT_QUAKE2) { MC_AddCenterPicture(menu, 4, "pics/m_banner_options"); - y += 32; + y += 8; } else if (mgt == MGT_HEXEN2) { + MC_AddPicture(menu, 16, 0, "gfx/menu/hplaque.lmp"); + MC_AddCenterPicture(menu, 0, "gfx/menu/title4.lmp"); + y += 25+8; } else { @@ -1364,11 +1495,13 @@ void M_Menu_Teamplay_Items_Powerups_f (void) MC_AddCenterPicture(menu, 4, "gfx/p_option.lmp"); } + cursorpositionY = (y + 24); + //menu->selecteditem = (union menuoption_s *) - MC_AddRedText(menu, 16, y, " Teamplay Powerup Names", false); y+=8; - MC_AddRedText(menu, 16, y, "-------------------------------------------------------------------", false); y+=8; - + MC_AddRedText(menu, 16, y, " Teamplay Powerup Names", false); y+=8; + MC_AddWhiteText(menu, 16, y, " ", false); y+=8; + y+=8; y+=4;MC_AddEditCvar(menu, 16, y, " Pentagram", "tp_name_pent"); y+=8+4; y+=4;MC_AddEditCvar(menu, 16, y, " Pented", "tp_name_pented"); y+=8+4; y+=4;MC_AddEditCvar(menu, 16, y, " Quad", "tp_name_quad"); y+=8+4; @@ -1384,7 +1517,7 @@ void M_Menu_Teamplay_Items_Powerups_f (void) y+=8; MC_AddConsoleCommand(menu, 16, y, "<- Teamplay Item Names", "menu_teamplay_items\n"); y+=8; - menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 200, 32, NULL, false); + menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 200, cursorpositionY, NULL, false); } void M_Menu_Teamplay_Items_Ammo_Health_f (void) @@ -1392,6 +1525,7 @@ void M_Menu_Teamplay_Items_Ammo_Health_f (void) int y = 32; menu_t *menu; int mgt; + int cursorpositionY; extern cvar_t ; key_dest = key_menu; @@ -1404,10 +1538,13 @@ void M_Menu_Teamplay_Items_Ammo_Health_f (void) if (mgt == MGT_QUAKE2) { MC_AddCenterPicture(menu, 4, "pics/m_banner_options"); - y += 32; + y += 8; } else if (mgt == MGT_HEXEN2) { + MC_AddPicture(menu, 16, 0, "gfx/menu/hplaque.lmp"); + MC_AddCenterPicture(menu, 0, "gfx/menu/title4.lmp"); + y += 25+8; } else { @@ -1415,11 +1552,13 @@ void M_Menu_Teamplay_Items_Ammo_Health_f (void) MC_AddCenterPicture(menu, 4, "gfx/p_option.lmp"); } + cursorpositionY = (y + 24); + //menu->selecteditem = (union menuoption_s *) - MC_AddRedText(menu, 16, y, " Teamplay Ammo & Health Names", false); y+=8; - MC_AddRedText(menu, 16, y, "-------------------------------------------------------------------", false); y+=8; - + MC_AddRedText(menu, 16, y, " Teamplay Ammo & Health Names", false); y+=8; + MC_AddWhiteText(menu, 16, y, " ", false); y+=8; + y+=8; y+=4;MC_AddEditCvar(menu, 16, y, " Backpack", "tp_name_backpack"); y+=8+4; y+=4;MC_AddEditCvar(menu, 16, y, " Cells", "tp_name_cells"); y+=8+4; y+=4;MC_AddEditCvar(menu, 16, y, " Nails", "tp_name_nails"); y+=8+4; @@ -1431,7 +1570,7 @@ void M_Menu_Teamplay_Items_Ammo_Health_f (void) y+=8; MC_AddConsoleCommand(menu, 16, y, "<- Teamplay Item Names", "menu_teamplay_items\n"); y+=8; - menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 200, 32, NULL, false); + menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 200, cursorpositionY, NULL, false); } void M_Menu_Teamplay_Items_Team_Fortress_f (void) @@ -1439,6 +1578,7 @@ void M_Menu_Teamplay_Items_Team_Fortress_f (void) int y = 32; menu_t *menu; int mgt; + int cursorpositionY; extern cvar_t ; key_dest = key_menu; @@ -1451,10 +1591,13 @@ void M_Menu_Teamplay_Items_Team_Fortress_f (void) if (mgt == MGT_QUAKE2) { MC_AddCenterPicture(menu, 4, "pics/m_banner_options"); - y += 32; + y += 8; } else if (mgt == MGT_HEXEN2) { + MC_AddPicture(menu, 16, 0, "gfx/menu/hplaque.lmp"); + MC_AddCenterPicture(menu, 0, "gfx/menu/title4.lmp"); + y += 25+8; } else { @@ -1462,11 +1605,13 @@ void M_Menu_Teamplay_Items_Team_Fortress_f (void) MC_AddCenterPicture(menu, 4, "gfx/p_option.lmp"); } + cursorpositionY = (y + 24); + //menu->selecteditem = (union menuoption_s *) - MC_AddRedText(menu, 16, y, " Teamplay Team Fortress Item Names", false); y+=8; - MC_AddRedText(menu, 16, y, "-------------------------------------------------------------------", false); y+=8; - + MC_AddRedText(menu, 16, y, " Teamplay Team Fortress Item Names", false); y+=8; + MC_AddWhiteText(menu, 16, y, " ", false); y+=8; + y+=8; y+=4;MC_AddEditCvar(menu, 16, y, " Sentry Gun", "tp_name_sentry"); y+=8+4; y+=4;MC_AddEditCvar(menu, 16, y, " Dispenser", "tp_name_disp"); y+=8+4; y+=4;MC_AddEditCvar(menu, 16, y, " Flag", "tp_name_flag"); y+=8+4; @@ -1474,7 +1619,7 @@ void M_Menu_Teamplay_Items_Team_Fortress_f (void) y+=8; MC_AddConsoleCommand(menu, 16, y, "<- Teamplay Item Names", "menu_teamplay_items\n"); y+=8; - menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 200, 32, NULL, false); + menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 200, cursorpositionY, NULL, false); } void M_Menu_Teamplay_Items_Status_Location_Misc_f (void) @@ -1482,6 +1627,7 @@ void M_Menu_Teamplay_Items_Status_Location_Misc_f (void) int y = 32; menu_t *menu; int mgt; + int cursorpositionY; extern cvar_t ; key_dest = key_menu; @@ -1494,10 +1640,13 @@ void M_Menu_Teamplay_Items_Status_Location_Misc_f (void) if (mgt == MGT_QUAKE2) { MC_AddCenterPicture(menu, 4, "pics/m_banner_options"); - y += 32; + y += 8; } else if (mgt == MGT_HEXEN2) { + MC_AddPicture(menu, 16, 0, "gfx/menu/hplaque.lmp"); + MC_AddCenterPicture(menu, 0, "gfx/menu/title4.lmp"); + y += 25+8; } else { @@ -1505,11 +1654,13 @@ void M_Menu_Teamplay_Items_Status_Location_Misc_f (void) MC_AddCenterPicture(menu, 4, "gfx/p_option.lmp"); } + cursorpositionY = (y + 24); + //menu->selecteditem = (union menuoption_s *) - MC_AddRedText(menu, 16, y, " Teamplay Status, Location & Misc. Names", false); y+=8; - MC_AddRedText(menu, 16, y, "-------------------------------------------------------------------", false); y+=8; - + MC_AddRedText(menu, 16, y, " Teamplay Status, Location & Misc. Names", false); y+=8; + MC_AddWhiteText(menu, 16, y, " ", false); y+=8; + y+=8; y+=4;MC_AddEditCvar(menu, 16, y, " At (Location)", "tp_name_at"); y+=8+4; y+=4;MC_AddEditCvar(menu, 16, y, " Enemy", "tp_name_enemy"); y+=8+4; y+=4;MC_AddEditCvar(menu, 16, y, " None", "tp_name_none"); y+=8+4; @@ -1525,5 +1676,5 @@ void M_Menu_Teamplay_Items_Status_Location_Misc_f (void) y+=8; MC_AddConsoleCommand(menu, 16, y, "<- Teamplay Item Names", "menu_teamplay_items\n"); y+=8; - menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 200, 32, NULL, false); + menu->cursoritem = (menuoption_t*)MC_AddWhiteText(menu, 200, cursorpositionY, NULL, false); } \ No newline at end of file diff --git a/engine/client/menu.c b/engine/client/menu.c index 790b2c70d..29b437019 100644 --- a/engine/client/menu.c +++ b/engine/client/menu.c @@ -545,10 +545,22 @@ void M_Keys_Key (int k) { char cmd[80]; int keys[2]; + int mgt; + + mgt = M_GameType(); + + if (mgt == MGT_HEXEN2) + S_LocalSound ("raven/menu1.wav"); + else + S_LocalSound ("misc/menu1.wav"); if (bind_grab) { // defining a key - S_LocalSound ("misc/menu1.wav"); + if (mgt == MGT_HEXEN2) + S_LocalSound ("raven/menu1.wav"); + else + S_LocalSound ("misc/menu1.wav"); + if (k == K_ESCAPE) { bind_grab = false; @@ -571,7 +583,11 @@ void M_Keys_Key (int k) case K_LEFTARROW: case K_UPARROW: - S_LocalSound ("misc/menu1.wav"); + if (mgt == MGT_HEXEN2) + S_LocalSound ("raven/menu1.wav"); + else + S_LocalSound ("misc/menu1.wav"); + keys_cursor--; if (keys_cursor < 0) keys_cursor = numbindnames-1; @@ -579,7 +595,11 @@ void M_Keys_Key (int k) case K_DOWNARROW: case K_RIGHTARROW: - S_LocalSound ("misc/menu1.wav"); + if (mgt == MGT_HEXEN2) + S_LocalSound ("raven/menu1.wav"); + else + S_LocalSound ("misc/menu1.wav"); + keys_cursor++; if (keys_cursor >= numbindnames) keys_cursor = 0; @@ -587,7 +607,12 @@ void M_Keys_Key (int k) case K_ENTER: // go into bind mode M_FindKeysForCommand (bindnames[keys_cursor].command, keys); - S_LocalSound ("misc/menu2.wav"); + + if (mgt == MGT_HEXEN2) + S_LocalSound ("raven/menu2.wav"); + else + S_LocalSound ("misc/menu2.wav"); + if (keys[1] != -1) M_UnbindCommand (bindnames[keys_cursor].command); bind_grab = true; @@ -595,7 +620,11 @@ void M_Keys_Key (int k) case K_BACKSPACE: // delete bindings case K_DEL: // delete bindings - S_LocalSound ("misc/menu2.wav"); + if (mgt == MGT_HEXEN2) + S_LocalSound ("raven/menu1.wav"); + else + S_LocalSound ("misc/menu1.wav"); + M_UnbindCommand (bindnames[keys_cursor].command); break; }