diff --git a/reaction/Reaction-ChangeLog b/reaction/Reaction-ChangeLog index 46a185d4..147444ca 100644 --- a/reaction/Reaction-ChangeLog +++ b/reaction/Reaction-ChangeLog @@ -1,3 +1,4 @@ +- System menu makes a bit more sense now (removed irrelevant options, added new presets) - Change imagelist cmd to give more relevant information - Remove DiffuseRoughness shader param, add SpecularExponent shader param - Change R_SubdividePatchToGrid() to subdivide patches more evenly diff --git a/reaction/code/ui/ui_main.c b/reaction/code/ui/ui_main.c index b96f2311..1c162347 100644 --- a/reaction/code/ui/ui_main.c +++ b/reaction/code/ui/ui_main.c @@ -5649,148 +5649,135 @@ static void UI_Update(const char *name) //TTI: minor changes switch (val) { case 0: + trap_Cvar_SetValue("r_subdivisions", 1); + trap_Cvar_SetValue("r_lodCurveError", 10000); + break; + case 1: trap_Cvar_SetValue("r_subdivisions", 4); trap_Cvar_SetValue("r_lodCurveError", 250); break; - case 1: + case 2: trap_Cvar_SetValue("r_subdivisions", 8); trap_Cvar_SetValue("r_lodCurveError", 250); break; - case 2: - trap_Cvar_SetValue("r_subdivisions", 16); - trap_Cvar_SetValue("r_lodCurveError", 125); - break; } } else if (Q_stricmp(name, "ui_glCustom") == 0) { switch (val) { //TTI: new presets - case 0: // high quality - trap_Cvar_SetValue("r_allowExtensions", 1); - //trap_Cvar_SetValue("r_ext_multisample", 4); - trap_Cvar_SetValue("r_ext_framebuffer_multisample", 4); - - trap_Cvar_Set("r_texturemode", "GL_LINEAR_MIPMAP_LINEAR"); - trap_Cvar_SetValue("r_ext_texture_filter_anisotropic", 1); - trap_Cvar_SetValue("r_ext_max_anisotropy", 16); - - trap_Cvar_SetValue("ui_filteringMode", 5); - - trap_Cvar_SetValue("cg_simpleItems", 0); - trap_Cvar_SetValue("cg_marks", 1); - trap_Cvar_SetValue("cg_brassTime", 20000); - trap_Cvar_SetValue("cg_RQ3_glasstime", 20000); - trap_Cvar_SetValue("cg_shadows", 1); - trap_Cvar_SetValue("r_finish", 0); - trap_Cvar_SetValue("r_swapInterval", 0); - trap_Cvar_SetValue("r_picmip", 0); - trap_Cvar_SetValue("r_detailtextures", 1); - trap_Cvar_SetValue("r_lodBias", 0); - trap_Cvar_SetValue("r_subdivisions", 0); - trap_Cvar_SetValue("r_lodCurveError", 10000); - trap_Cvar_SetValue("r_colorbits", 32); - trap_Cvar_SetValue("r_texturebits", 32); - trap_Cvar_SetValue("r_stencilbits", 8); - trap_Cvar_SetValue("r_depthbits", 24); - trap_Cvar_SetValue("r_dynamiclight", 1); - trap_Cvar_SetValue("r_fastsky", 0); - trap_Cvar_SetValue("r_ext_multitexture", 1); - trap_Cvar_SetValue("r_ext_compressed_textures", 0); - break; - case 1: // normal - trap_Cvar_SetValue("r_allowExtensions", 1); - //trap_Cvar_SetValue("r_ext_multisample", 0); - trap_Cvar_SetValue("r_ext_framebuffer_multisample", 0); - - trap_Cvar_Set("r_texturemode", "GL_LINEAR_MIPMAP_LINEAR"); - trap_Cvar_SetValue("r_ext_texture_filter_anisotropic", 0); - trap_Cvar_SetValue("r_ext_max_anisotropy", 2); - - trap_Cvar_SetValue("ui_filteringMode", 1); - - trap_Cvar_SetValue("cg_simpleItems", 0); - trap_Cvar_SetValue("cg_marks", 1); + case 1: // normal trap_Cvar_SetValue("cg_brassTime", 7500); trap_Cvar_SetValue("cg_RQ3_glasstime", 7500); - trap_Cvar_SetValue("cg_shadows", 1); - trap_Cvar_SetValue("r_finish", 0); - trap_Cvar_SetValue("r_swapInterval", 0); + trap_Cvar_SetValue("r_picmip", 0); - trap_Cvar_SetValue("r_detailtextures", 1); - trap_Cvar_SetValue("r_lodBias", 0); + trap_Cvar_SetValue("r_hdr", 1); + trap_Cvar_SetValue("r_normalMapping", 1); + trap_Cvar_SetValue("r_specularMapping", 1); + trap_Cvar_SetValue("r_imageUpsample", 0); + + trap_Cvar_SetValue("r_lodBias", 1); trap_Cvar_SetValue("r_subdivisions", 4); trap_Cvar_SetValue("r_lodCurveError", 250); - trap_Cvar_SetValue("r_colorbits", 0); - trap_Cvar_SetValue("r_texturebits", 0); - trap_Cvar_SetValue("r_stencilbits", 8); - trap_Cvar_SetValue("r_depthbits", 0); - trap_Cvar_SetValue("r_dynamiclight", 1); - trap_Cvar_SetValue("r_fastsky", 0); - trap_Cvar_SetValue("r_ext_multitexture", 1); + + trap_Cvar_Set("r_textureMode", "GL_LINEAR_MIPMAP_LINEAR"); trap_Cvar_SetValue("r_ext_compressed_textures", 0); - break; - case 2: // fast - trap_Cvar_SetValue("r_allowExtensions", 1); - //trap_Cvar_SetValue("r_ext_multisample", 0); trap_Cvar_SetValue("r_ext_framebuffer_multisample", 0); - - trap_Cvar_Set("r_texturemode", "GL_LINEAR_MIPMAP_LINEAR"); trap_Cvar_SetValue("r_ext_texture_filter_anisotropic", 0); trap_Cvar_SetValue("r_ext_max_anisotropy", 2); - + trap_Cvar_SetValue("ui_filteringMode", 1); - - trap_Cvar_SetValue("cg_simpleItems", 0); - trap_Cvar_SetValue("cg_marks", 1); + trap_Cvar_SetValue("ui_shaderLevel", 1); + break; + case 2: // crappiest + trap_Cvar_SetValue("cg_brassTime", 0); + trap_Cvar_SetValue("cg_RQ3_glasstime", 0); + + trap_Cvar_SetValue("r_picmip", 2); + trap_Cvar_SetValue("r_hdr", 0); + trap_Cvar_SetValue("r_normalMapping", 0); + trap_Cvar_SetValue("r_specularMapping", 0); + trap_Cvar_SetValue("r_imageUpsample", 0); + + trap_Cvar_SetValue("r_lodBias", 2); + trap_Cvar_SetValue("r_subdivisions", 8); + trap_Cvar_SetValue("r_lodCurveError", 250); + + trap_Cvar_Set("r_textureMode", "GL_LINEAR_MIPMAP_NEAREST"); + trap_Cvar_SetValue("r_ext_compressed_textures", 1); + trap_Cvar_SetValue("r_ext_framebuffer_multisample", 0); + trap_Cvar_SetValue("r_ext_texture_filter_anisotropic", 0); + trap_Cvar_SetValue("r_ext_max_anisotropy", 2); + + trap_Cvar_SetValue("ui_filteringMode", 0); + trap_Cvar_SetValue("ui_shaderLevel", 0); + break; + case 3: // crap trap_Cvar_SetValue("cg_brassTime", 7500); trap_Cvar_SetValue("cg_RQ3_glasstime", 7500); - trap_Cvar_SetValue("cg_shadows", 0); - trap_Cvar_SetValue("r_finish", 0); - trap_Cvar_SetValue("r_swapInterval", 0); + trap_Cvar_SetValue("r_picmip", 1); - trap_Cvar_SetValue("r_detailtextures", 1); + trap_Cvar_SetValue("r_hdr", 1); + trap_Cvar_SetValue("r_normalMapping", 0); + trap_Cvar_SetValue("r_specularMapping", 0); + trap_Cvar_SetValue("r_imageUpsample", 0); + trap_Cvar_SetValue("r_lodBias", 1); trap_Cvar_SetValue("r_subdivisions", 8); trap_Cvar_SetValue("r_lodCurveError", 250); - trap_Cvar_SetValue("r_colorbits", 32); - trap_Cvar_SetValue("r_texturebits", 32); - trap_Cvar_SetValue("r_stencilbits", 8); - trap_Cvar_SetValue("r_depthbits", 0); - trap_Cvar_SetValue("r_dynamiclight", 1); - trap_Cvar_SetValue("r_fastsky", 0); - trap_Cvar_SetValue("r_ext_multitexture", 1); + + trap_Cvar_Set("r_textureMode", "GL_LINEAR_MIPMAP_LINEAR"); trap_Cvar_SetValue("r_ext_compressed_textures", 1); - break; - case 3: // fastest - trap_Cvar_SetValue("r_allowExtensions", 1); - //trap_Cvar_SetValue("r_ext_multisample", 0); trap_Cvar_SetValue("r_ext_framebuffer_multisample", 0); - - trap_Cvar_Set("r_texturemode", "GL_LINEAR_MIPMAP_NEAREST"); trap_Cvar_SetValue("r_ext_texture_filter_anisotropic", 0); trap_Cvar_SetValue("r_ext_max_anisotropy", 2); - - trap_Cvar_SetValue("ui_filteringMode", 0); - - trap_Cvar_SetValue("cg_simpleItems", 1); - trap_Cvar_SetValue("cg_marks", 0); - trap_Cvar_SetValue("cg_brassTime", 0); - trap_Cvar_SetValue("cg_RQ3_glasstime", 0); - trap_Cvar_SetValue("cg_shadows", 0); - trap_Cvar_SetValue("r_finish", 0); - trap_Cvar_SetValue("r_swapInterval", 0); - trap_Cvar_SetValue("r_picmip", 2); - trap_Cvar_SetValue("r_detailtextures", 0); - trap_Cvar_SetValue("r_lodBias", 2); - trap_Cvar_SetValue("r_subdivisions", 16); - trap_Cvar_SetValue("r_lodCurveError", 125); - trap_Cvar_SetValue("r_colorbits", 16); - trap_Cvar_SetValue("r_texturebits", 16); - trap_Cvar_SetValue("r_stencilbits", 0); - trap_Cvar_SetValue("r_depthbits", 0); - trap_Cvar_SetValue("r_dynamiclight", 0); - trap_Cvar_SetValue("r_fastsky", 1); - trap_Cvar_SetValue("r_ext_multitexture", 0); - trap_Cvar_SetValue("r_ext_compressed_textures", 1); + + trap_Cvar_SetValue("ui_filteringMode", 1); + trap_Cvar_SetValue("ui_shaderLevel", 0); + break; + case 4: // high quality + trap_Cvar_SetValue("cg_brassTime", 20000); + trap_Cvar_SetValue("cg_RQ3_glasstime", 20000); + + trap_Cvar_SetValue("r_picmip", 0); + trap_Cvar_SetValue("r_hdr", 1); + trap_Cvar_SetValue("r_normalMapping", 1); + trap_Cvar_SetValue("r_specularMapping", 1); + trap_Cvar_SetValue("r_imageUpsample", 1); + + trap_Cvar_SetValue("r_lodBias", 0); + trap_Cvar_SetValue("r_subdivisions", 1); + trap_Cvar_SetValue("r_lodCurveError", 10000); + + trap_Cvar_Set("r_textureMode", "GL_LINEAR_MIPMAP_LINEAR"); + trap_Cvar_SetValue("r_ext_compressed_textures", 0); + trap_Cvar_SetValue("r_ext_framebuffer_multisample", 2); + trap_Cvar_SetValue("r_ext_texture_filter_anisotropic", 1); + trap_Cvar_SetValue("r_ext_max_anisotropy", 8); + + trap_Cvar_SetValue("ui_filteringMode", 4); + trap_Cvar_SetValue("ui_shaderLevel", 1); + break; + case 5: // highest quality + trap_Cvar_SetValue("cg_brassTime", 20000); + trap_Cvar_SetValue("cg_RQ3_glasstime", 20000); + + trap_Cvar_SetValue("r_picmip", 0); + trap_Cvar_SetValue("r_hdr", 1); + trap_Cvar_SetValue("r_normalMapping", 1); + trap_Cvar_SetValue("r_specularMapping", 1); + trap_Cvar_SetValue("r_imageUpsample", 1); + + trap_Cvar_SetValue("r_lodBias", 0); + trap_Cvar_SetValue("r_subdivisions", 1); + trap_Cvar_SetValue("r_lodCurveError", 10000); + + trap_Cvar_Set("r_textureMode", "GL_LINEAR_MIPMAP_LINEAR"); + trap_Cvar_SetValue("r_ext_compressed_textures", 0); + trap_Cvar_SetValue("r_ext_framebuffer_multisample", 4); + trap_Cvar_SetValue("r_ext_texture_filter_anisotropic", 1); + trap_Cvar_SetValue("r_ext_max_anisotropy", 16); + + trap_Cvar_SetValue("ui_filteringMode", 5); + trap_Cvar_SetValue("ui_shaderLevel", 1); break; } } else if (Q_stricmp(name, "ui_filteringMode") == 0) { @@ -5827,6 +5814,18 @@ static void UI_Update(const char *name) trap_Cvar_SetValue("r_ext_max_anisotropy", 16); break; } + } else if (Q_stricmp(name, "ui_shaderLevel") == 0) { + switch (val) { + // per-pixel lighting + case 0: // flat (disabled) + trap_Cvar_SetValue("r_normalMapping", 0); + trap_Cvar_SetValue("r_specularMapping", 0); + break; + case 1: // bumpy (enabled) + trap_Cvar_SetValue("r_normalMapping", 1); + trap_Cvar_SetValue("r_specularMapping", 1); + break; + } } else if (Q_stricmp(name, "ui_mousePitch") == 0) { if (val == 0) { trap_Cvar_SetValue("m_pitch", 0.022f); @@ -6669,7 +6668,7 @@ static void UI_RunMenuScript(char **args) Menus_CloseAll(); } } else if (Q_stricmp(name, "glCustom") == 0) { - trap_Cvar_Set("ui_glCustom", "4"); + trap_Cvar_Set("ui_glCustom", "0"); //Makro - save/load the music volume } else if (Q_stricmp(name, "backupMusicVolume") == 0) { uiInfo.oldMusicVol = trap_Cvar_VariableValue("s_musicvolume"); diff --git a/reaction/uifiles/options.menu b/reaction/uifiles/options.menu index 4b46d734..6f0fd8eb 100644 --- a/reaction/uifiles/options.menu +++ b/reaction/uifiles/options.menu @@ -185,6 +185,7 @@ Group # 1 - Gameplay "Off" 0 } OPTION_BELOW("gr1_ctrl2") + action { uiScript glCustom } ASSIGN_HINT("hint_brasstime") END_OPTION ADD_HINT("hint_brasstime", "Change the amount of ejecting brass", "group1") @@ -199,6 +200,7 @@ Group # 1 - Gameplay "Off" 0 } OPTION_BELOW("gr1_ctrl3") + action { uiScript glCustom } ASSIGN_HINT("hint_glasstime") END_OPTION ADD_HINT("hint_glasstime", "Change the amount of glass fragments", "group1") diff --git a/reaction/uifiles/system.menu b/reaction/uifiles/system.menu index c903755f..dcf4805b 100644 --- a/reaction/uifiles/system.menu +++ b/reaction/uifiles/system.menu @@ -171,11 +171,12 @@ Group # 1 - Graphics BEGIN_OPTION("Quality", "ui_glCustom", ITEM_TYPE_MULTI, 1, 1) alignrect "line" ITEM_ALIGN_CENTER 56 32 112 VSIZE cvarFloatList { - "Fastest" 3 - "Fast" 2 + "Crappiest" 2 + "Crappy" 3 "Normal" 1 - "High Quality" 0 - "Custom" 4 + "High" 4 + "Highest" 5 + "Custom" 0 } action { uiScript update "ui_glCustom" } ASSIGN_HINT("hint_predef") @@ -194,18 +195,20 @@ Group # 1 - Graphics */ // GL Extensions // - + // required for the new renderer + /* BEGIN_OPTION("GL Extensions", "r_allowExtensions", ITEM_TYPE_YESNO, 2, 1) OPTION_BELOW("gr1_ctrl1") action { uiScript glCustom } ASSIGN_HINT("hint_glext") END_OPTION ADD_HINT("hint_glext", "Enable OpenGL extensions", "group1") + */ // Resolution // - BEGIN_SIMPLE_OPTION(3, 1) - OPTION_BELOW("gr1_ctrl2") + BEGIN_SIMPLE_OPTION(2, 1) + OPTION_BELOW("gr1_ctrl1") text "Resolution:" ownerDraw UI_RESOLUTION ASSIGN_HINT("hint_res") @@ -214,35 +217,34 @@ Group # 1 - Graphics // Color depth // - - BEGIN_OPTION("Color Depth", "r_colorbits", ITEM_TYPE_MULTI, 4, 1) + /* + BEGIN_OPTION("Color Depth", "r_colorbits", ITEM_TYPE_MULTI, 3, 1) cvarFloatList { "Desktop Default" 0 "16-bit" 16 "32-bit" 32 } - OPTION_BELOW("gr1_ctrl3") + OPTION_BELOW("gr1_ctrl2") action { uiScript glCustom ; uiScript update "r_colorbits" } ASSIGN_HINT("hint_depth") END_OPTION ADD_HINT("hint_depth", "Choose rendering color depth", "group1") - + */ // Fullscreen // - BEGIN_OPTION("Fullscreen", "ui_RQ3_fullscreen", ITEM_TYPE_YESNO, 5, 1) - OPTION_BELOW("gr1_ctrl4") - //action { uiScript glCustom } + BEGIN_OPTION("Fullscreen", "ui_RQ3_fullscreen", ITEM_TYPE_YESNO, 3, 1) + OPTION_BELOW("gr1_ctrl2") ASSIGN_HINT("hint_fullscreen") END_OPTION - ADD_HINT("hint_fullscreen", "Render in full screen or a window", "group1") + ADD_HINT("hint_fullscreen", "Render in full-screen or windowed mode", "group1") // Anti-Aliasing Mode // - BEGIN_OPTION("Anti-Aliasing", "r_ext_framebuffer_multisample", ITEM_TYPE_MULTI, 6, 1) + BEGIN_OPTION("Anti-Aliasing", "r_ext_framebuffer_multisample", ITEM_TYPE_MULTI, 4, 1) cvarFloatList { - "Off" 0 + "Off" 0 "2x MSAA" 2 "4x MSAA" 4 } - OPTION_BELOW("gr1_ctrl5") + OPTION_BELOW("gr1_ctrl3") action { uiScript glCustom ; } ASSIGN_HINT("hint_aa") END_OPTION @@ -251,22 +253,32 @@ Group # 1 - Graphics // Texture filtering mode // - BEGIN_OPTION("Filtering Mode", "ui_filteringMode", ITEM_TYPE_MULTI, 7, 1) + BEGIN_OPTION("Filtering Mode", "ui_filteringMode", ITEM_TYPE_MULTI, 5, 1) cvarFloatList { - "Bilinear" 0 - "Trilinear" 1 - "2x Anisotropic" 2 - "4x Anisotropic" 3 - "8x Anisotropic" 4 - "16x Anisotropic" 5 + "Bilinear" 0 + "Trilinear" 1 + "2x Anisotropic" 2 + "4x Anisotropic" 3 + "8x Anisotropic" 4 + "16x Anisotropic" 5 } - OPTION_BELOW("gr1_ctrl6") + OPTION_BELOW("gr1_ctrl4") action { uiScript glCustom ; uiScript update "ui_filteringMode" } ASSIGN_HINT("hint_texfilter") END_OPTION ADD_HINT("hint_texfilter", "Choose texture filtering mode", "group1") + // Per-pixel lighting // + + BEGIN_OPTION("Per-pixel Lighting", "ui_shaderLevel", ITEM_TYPE_YESNO, 6, 1) + OPTION_BELOW("gr1_ctrl5") + action { uiScript glCustom ; uiScript update "ui_shaderLevel" } + ASSIGN_HINT("hint_shader") + END_OPTION + ADD_HINT("hint_shader", "Use per-pixel lighting to improve render quality", "group1") + + // Lightmap/vertex // /* @@ -282,13 +294,13 @@ Group # 1 - Graphics // Geometric detail // - BEGIN_OPTION("Geometric Detail", "r_lodbias", ITEM_TYPE_MULTI, 8, 1) + BEGIN_OPTION("Geometric Detail", "r_lodbias", ITEM_TYPE_MULTI, 7, 1) cvarFloatList { "High" 0 "Medium" 1 "Low" 2 } - OPTION_BELOW("gr1_ctrl7") + OPTION_BELOW("gr1_ctrl6") action { uiScript glCustom ; uiScript update "r_lodbias" } ASSIGN_HINT("hint_geodetail") END_OPTION @@ -297,14 +309,14 @@ Group # 1 - Graphics // Texture detail // - BEGIN_OPTION("Texture Detail", "r_picmip", ITEM_TYPE_MULTI, 9, 1) + BEGIN_OPTION("Texture Detail", "r_picmip", ITEM_TYPE_MULTI, 8, 1) cvarFloatList { "Very Low" 3 "Low" 2 "Medium" 1 "High" 0 } - OPTION_BELOW("gr1_ctrl8") + OPTION_BELOW("gr1_ctrl7") action { uiScript glCustom ; } ASSIGN_HINT("hint_texdetail") END_OPTION @@ -312,24 +324,24 @@ Group # 1 - Graphics // Texture quality // - - BEGIN_OPTION("Texture Quality", "r_texturebits", ITEM_TYPE_MULTI, 10, 1) + /* + BEGIN_OPTION("Texture Quality", "r_texturebits", ITEM_TYPE_MULTI, 8, 1) cvarFloatList { "Default" 0 "16 bit" 16 "32 bit" 32 } - OPTION_BELOW("gr1_ctrl9") + OPTION_BELOW("gr1_ctrl7") action { uiScript glCustom ; } ASSIGN_HINT("hint_texquality") END_OPTION ADD_HINT("hint_texquality", "Choose texture quality", "group1") - + */ // Compressed textures // - BEGIN_OPTION("Compress Textures", "r_ext_compressed_textures", ITEM_TYPE_YESNO, 11, 1) - OPTION_BELOW("gr1_ctrl10") + BEGIN_OPTION("Compress Textures", "r_ext_compressed_textures", ITEM_TYPE_YESNO, 9, 1) + OPTION_BELOW("gr1_ctrl8") action { uiScript glCustom ; } ASSIGN_HINT("hint_compress") END_OPTION @@ -341,7 +353,7 @@ Group # 1 - Graphics itemdef { name "btn_apply,fade_alpha,allgroups,group1" style WINDOW_STYLE_EMPTY - alignrect "gr1_ctrl11" ITEM_ALIGN_RIGHT 0 24 80 VSIZE + alignrect "gr1_ctrl9" ITEM_ALIGN_RIGHT 0 24 80 VSIZE type ITEM_TYPE_BUTTON text "^_A^_pply >" shortcutKey "A"