Index: ps/trunk/binaries/data/config/default.cfg =================================================================== --- ps/trunk/binaries/data/config/default.cfg +++ ps/trunk/binaries/data/config/default.cfg @@ -61,7 +61,7 @@ ; if false, actors won't be rendered but anything entity will be. renderactors = true -waterugly=false; Force usage of the fixed pipeline water. This is faster, but really, really ugly. +watereffects=true ; When disabled, force usage of the fixed pipeline water. This is faster, but really, really ugly. waterfancyeffects = false waterrealdepth = true waterrefraction = true Index: ps/trunk/binaries/data/mods/public/gui/options/options.js =================================================================== --- ps/trunk/binaries/data/mods/public/gui/options/options.js +++ ps/trunk/binaries/data/mods/public/gui/options/options.js @@ -74,7 +74,6 @@ switch (option.type) { case "boolean": - case "invertedboolean": // More space for the label let text = Engine.GetGUIObjectByName(category + "Label[" + i + "]"); let size = text.size; @@ -109,23 +108,18 @@ warn("Unknown option source type '" + param + "'"); } } - // invertedboolean when we want to display the opposite of the flag value - var inverted = option.type === "invertedboolean"; - if (inverted) - checked = !checked; - onUpdate = function(key, keyRenderer, inverted) + onUpdate = function(key, keyRenderer) { return function() { - let val = inverted ? !this.checked : this.checked; if (keyRenderer) - Engine["Renderer_Set" + keyRenderer + "Enabled"](val); - Engine.ConfigDB_CreateValue("user", key, String(val)); + Engine["Renderer_Set" + keyRenderer + "Enabled"](this.checked); + Engine.ConfigDB_CreateValue("user", key, String(this.checked)); Engine.ConfigDB_SetChanges("user", true); updateOptionPanel(); }; - }(key, keyRenderer, inverted); + }(key, keyRenderer); // Load final data to the control element. control.checked = checked; @@ -299,7 +293,7 @@ for (let item in g_Controls) { let control = g_Controls[item]; - if (control.type !== "boolean" && control.type !== "invertedboolean" || !control.dependencies) + if (control.type != "boolean" || !control.dependencies) continue; for (let dependency of control.dependencies) @@ -354,7 +348,7 @@ // needs to update renderer values (which are all of boolean type) if (control.parameters.renderer) { - if (control.type !== "boolean" && control.type !== "invertedboolean") + if (control.type != "boolean") { warn("Invalid type option " + control.type + " defined in renderer for " + item + ": will not be reverted"); continue; Index: ps/trunk/binaries/data/mods/public/gui/options/options.json =================================================================== --- ps/trunk/binaries/data/mods/public/gui/options/options.json +++ ps/trunk/binaries/data/mods/public/gui/options/options.json @@ -197,10 +197,10 @@ "parameters": { "config": "particles", "renderer": "Particles" } }, { - "type": "invertedboolean", + "type": "boolean", "label": "Water Effects", "tooltip": "When OFF, use the lowest settings possible to render water. This makes other settings irrelevant.", - "parameters": { "config": "waterugly", "renderer": "WaterUgly" }, + "parameters": { "config": "watereffects", "renderer": "WaterEffects" }, "dependencies": [ "waterfancyeffects", "waterrealdepth", "waterreflection", "waterrefraction", "watershadows" ] }, { Index: ps/trunk/source/ps/GameSetup/Config.h =================================================================== --- ps/trunk/source/ps/GameSetup/Config.h +++ ps/trunk/source/ps/GameSetup/Config.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2016 Wildfire Games. +/* Copyright (C) 2017 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -50,8 +50,8 @@ // flag to switch on shadows extern bool g_Shadows; -// Force the use of the fixed function for rendering water. -extern bool g_WaterUgly; +// If disabled, force the use of the fixed function for rendering water. +extern bool g_WaterEffects; // Add foam and waves near the shores, trails following ships, and other HQ things. extern bool g_WaterFancyEffects; // Use real depth for water rendering. Index: ps/trunk/source/ps/GameSetup/Config.cpp =================================================================== --- ps/trunk/source/ps/GameSetup/Config.cpp +++ ps/trunk/source/ps/GameSetup/Config.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2016 Wildfire Games. +/* Copyright (C) 2017 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -42,7 +42,7 @@ bool g_Shadows = false; bool g_ShadowPCF = false; -bool g_WaterUgly = false; +bool g_WaterEffects = true; bool g_WaterFancyEffects = false; bool g_WaterRealDepth = false; bool g_WaterRefraction = false; @@ -96,7 +96,7 @@ CFG_GET_VAL("shadows", g_Shadows); CFG_GET_VAL("shadowpcf", g_ShadowPCF); - CFG_GET_VAL("waterugly", g_WaterUgly); + CFG_GET_VAL("watereffects", g_WaterEffects); CFG_GET_VAL("waterfancyeffects", g_WaterFancyEffects); CFG_GET_VAL("waterrealdepth", g_WaterRealDepth); CFG_GET_VAL("waterrefraction", g_WaterRefraction); Index: ps/trunk/source/ps/GameSetup/GameSetup.cpp =================================================================== --- ps/trunk/source/ps/GameSetup/GameSetup.cpp +++ ps/trunk/source/ps/GameSetup/GameSetup.cpp @@ -614,8 +614,8 @@ g_Renderer.SetOptionBool(CRenderer::OPT_SHADOWS, g_Shadows); g_ConfigDB.SetValueBool(CFG_SYSTEM, "shadows", g_Shadows); - g_Renderer.SetOptionBool(CRenderer::OPT_WATERUGLY, g_WaterUgly); - g_ConfigDB.SetValueBool(CFG_SYSTEM, "waterugly", g_WaterUgly); + g_Renderer.SetOptionBool(CRenderer::OPT_WATEREFFECTS, g_WaterEffects); + g_ConfigDB.SetValueBool(CFG_SYSTEM, "watereffects", g_WaterEffects); g_Renderer.SetOptionBool(CRenderer::OPT_WATERFANCYEFFECTS, g_WaterFancyEffects); g_ConfigDB.SetValueBool(CFG_SYSTEM, "waterfancyeffects", g_WaterFancyEffects); g_Renderer.SetOptionBool(CRenderer::OPT_WATERREALDEPTH, g_WaterRealDepth); Index: ps/trunk/source/ps/GameSetup/HWDetect.cpp =================================================================== --- ps/trunk/source/ps/GameSetup/HWDetect.cpp +++ ps/trunk/source/ps/GameSetup/HWDetect.cpp @@ -150,8 +150,8 @@ void SetDisableAllWater(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), bool disabled) { - if (!IsOverridden("waterugly")) - g_WaterUgly = disabled; + if (!IsOverridden("watereffects")) + g_WaterEffects = !disabled; if (!IsOverridden("waterfancyeffects")) g_WaterFancyEffects = !disabled; if (!IsOverridden("waterrealdepth")) Index: ps/trunk/source/renderer/PatchRData.cpp =================================================================== --- ps/trunk/source/renderer/PatchRData.cpp +++ ps/trunk/source/renderer/PatchRData.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2013 Wildfire Games. +/* Copyright (C) 2017 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -1485,7 +1485,10 @@ g_Renderer.m_Stats.m_DrawCalls++; g_Renderer.m_Stats.m_WaterTris += m_VBWaterIndices->m_Count / 3; } - if (m_VBWaterShore != 0x0 && g_Renderer.GetWaterManager()->m_WaterFancyEffects && !g_Renderer.GetWaterManager()->m_WaterUgly) + + if (m_VBWaterShore != 0x0 && + g_Renderer.GetWaterManager()->m_WaterEffects && + g_Renderer.GetWaterManager()->m_WaterFancyEffects) { SWaterVertex *base=(SWaterVertex *)m_VBWaterShore->m_Owner->Bind(); Index: ps/trunk/source/renderer/Renderer.h =================================================================== --- ps/trunk/source/renderer/Renderer.h +++ ps/trunk/source/renderer/Renderer.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2016 Wildfire Games. +/* Copyright (C) 2017 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -75,7 +75,7 @@ enum Option { OPT_NOVBO, OPT_SHADOWS, - OPT_WATERUGLY, + OPT_WATEREFFECTS, OPT_WATERFANCYEFFECTS, OPT_WATERREALDEPTH, OPT_WATERREFLECTION, @@ -138,7 +138,7 @@ bool m_NoVBO; bool m_Shadows; - bool m_WaterUgly; + bool m_WaterEffects; bool m_WaterFancyEffects; bool m_WaterRealDepth; bool m_WaterRefraction; Index: ps/trunk/source/renderer/Renderer.cpp =================================================================== --- ps/trunk/source/renderer/Renderer.cpp +++ ps/trunk/source/renderer/Renderer.cpp @@ -430,7 +430,7 @@ m_Options.m_NoVBO = false; m_Options.m_RenderPath = RP_DEFAULT; m_Options.m_Shadows = false; - m_Options.m_WaterUgly = true; + m_Options.m_WaterEffects = false; m_Options.m_WaterFancyEffects = false; m_Options.m_WaterRealDepth = false; m_Options.m_WaterRefraction = false; @@ -691,8 +691,8 @@ m_Options.m_Shadows = value; MakeShadersDirty(); break; - case OPT_WATERUGLY: - m_Options.m_WaterUgly = value; + case OPT_WATEREFFECTS: + m_Options.m_WaterEffects = value; break; case OPT_WATERFANCYEFFECTS: m_Options.m_WaterFancyEffects = value; @@ -751,8 +751,8 @@ return m_Options.m_NoVBO; case OPT_SHADOWS: return m_Options.m_Shadows; - case OPT_WATERUGLY: - return m_Options.m_WaterUgly; + case OPT_WATEREFFECTS: + return m_Options.m_WaterEffects; case OPT_WATERFANCYEFFECTS: return m_Options.m_WaterFancyEffects; case OPT_WATERREALDEPTH: Index: ps/trunk/source/renderer/WaterManager.h =================================================================== --- ps/trunk/source/renderer/WaterManager.h +++ ps/trunk/source/renderer/WaterManager.h @@ -77,8 +77,8 @@ int m_WaterCurrentTex; bool m_RenderWater; - // Force the use of the fixed function for rendering. - bool m_WaterUgly; + // If disabled, force the use of the fixed function for rendering. + bool m_WaterEffects; // Those variables register the current quality level. If there is a change, I have to recompile the shader. // Use real depth or use the fake precomputed one. bool m_WaterRealDepth; Index: ps/trunk/source/renderer/WaterManager.cpp =================================================================== --- ps/trunk/source/renderer/WaterManager.cpp +++ ps/trunk/source/renderer/WaterManager.cpp @@ -112,7 +112,7 @@ m_ShoreWaves_VBIndices = NULL; - m_WaterUgly = false; + m_WaterEffects = true; m_WaterFancyEffects = false; m_WaterRealDepth = false; m_WaterRefraction = false; @@ -1119,8 +1119,9 @@ // This will set the bools properly void WaterManager::UpdateQuality() { - if (g_Renderer.GetOptionBool(CRenderer::OPT_WATERUGLY) != m_WaterUgly) { - m_WaterUgly = g_Renderer.GetOptionBool(CRenderer::OPT_WATERUGLY); + if (g_Renderer.GetOptionBool(CRenderer::OPT_WATEREFFECTS) != m_WaterEffects) + { + m_WaterEffects = g_Renderer.GetOptionBool(CRenderer::OPT_WATEREFFECTS); m_NeedsReloading = true; } if (g_Renderer.GetOptionBool(CRenderer::OPT_WATERFANCYEFFECTS) != m_WaterFancyEffects) { @@ -1147,9 +1148,5 @@ bool WaterManager::WillRenderFancyWater() { - if (!g_Renderer.GetCapabilities().m_PrettyWater) - return false; - if (!m_RenderWater || m_WaterUgly) - return false; - return true; + return m_RenderWater && m_WaterEffects && g_Renderer.GetCapabilities().m_PrettyWater; } Index: ps/trunk/source/renderer/scripting/JSInterface_Renderer.h =================================================================== --- ps/trunk/source/renderer/scripting/JSInterface_Renderer.h +++ ps/trunk/source/renderer/scripting/JSInterface_Renderer.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2014 Wildfire Games. +/* Copyright (C) 2017 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -34,7 +34,7 @@ DECLARE_BOOLEAN_SCRIPT_SETTING(ShadowPCF); DECLARE_BOOLEAN_SCRIPT_SETTING(Particles); DECLARE_BOOLEAN_SCRIPT_SETTING(PreferGLSL); - DECLARE_BOOLEAN_SCRIPT_SETTING(WaterUgly); + DECLARE_BOOLEAN_SCRIPT_SETTING(WaterEffects); DECLARE_BOOLEAN_SCRIPT_SETTING(WaterFancyEffects); DECLARE_BOOLEAN_SCRIPT_SETTING(WaterRealDepth); DECLARE_BOOLEAN_SCRIPT_SETTING(WaterReflection); Index: ps/trunk/source/renderer/scripting/JSInterface_Renderer.cpp =================================================================== --- ps/trunk/source/renderer/scripting/JSInterface_Renderer.cpp +++ ps/trunk/source/renderer/scripting/JSInterface_Renderer.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2014 Wildfire Games. +/* Copyright (C) 2017 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -34,7 +34,7 @@ IMPLEMENT_BOOLEAN_SCRIPT_SETTING(PARTICLES, Particles); IMPLEMENT_BOOLEAN_SCRIPT_SETTING(PREFERGLSL, PreferGLSL); -IMPLEMENT_BOOLEAN_SCRIPT_SETTING(WATERUGLY, WaterUgly); +IMPLEMENT_BOOLEAN_SCRIPT_SETTING(WATEREFFECTS, WaterEffects); IMPLEMENT_BOOLEAN_SCRIPT_SETTING(WATERFANCYEFFECTS, WaterFancyEffects); IMPLEMENT_BOOLEAN_SCRIPT_SETTING(SHADOWPCF, ShadowPCF); IMPLEMENT_BOOLEAN_SCRIPT_SETTING(SHADOWS, Shadows); @@ -73,7 +73,7 @@ REGISTER_BOOLEAN_SCRIPT_SETTING(ShadowPCF); REGISTER_BOOLEAN_SCRIPT_SETTING(Particles); REGISTER_BOOLEAN_SCRIPT_SETTING(PreferGLSL); - REGISTER_BOOLEAN_SCRIPT_SETTING(WaterUgly); + REGISTER_BOOLEAN_SCRIPT_SETTING(WaterEffects); REGISTER_BOOLEAN_SCRIPT_SETTING(WaterFancyEffects); REGISTER_BOOLEAN_SCRIPT_SETTING(WaterRealDepth); REGISTER_BOOLEAN_SCRIPT_SETTING(WaterReflection);