@ -92,6 +92,7 @@ bool Launcher::GraphicsPage::loadSettings()
if ( ! setupSDL ( ) )
if ( ! setupSDL ( ) )
return false ;
return false ;
// Visuals
if ( Settings : : Manager : : getBool ( " vsync " , " Video " ) )
if ( Settings : : Manager : : getBool ( " vsync " , " Video " ) )
vSyncCheckBox - > setCheckState ( Qt : : Checked ) ;
vSyncCheckBox - > setCheckState ( Qt : : Checked ) ;
@ -131,6 +132,15 @@ bool Launcher::GraphicsPage::loadSettings()
framerateLimitSpinBox - > setValue ( fpsLimit ) ;
framerateLimitSpinBox - > setValue ( fpsLimit ) ;
}
}
// Lighting
int lightingMethod = 1 ;
if ( Settings : : Manager : : getString ( " lighting method " , " Shaders " ) = = " legacy " )
lightingMethod = 0 ;
else if ( Settings : : Manager : : getString ( " lighting method " , " Shaders " ) = = " shaders " )
lightingMethod = 2 ;
lightingMethodComboBox - > setCurrentIndex ( lightingMethod ) ;
// Shadows
if ( Settings : : Manager : : getBool ( " actor shadows " , " Shadows " ) )
if ( Settings : : Manager : : getBool ( " actor shadows " , " Shadows " ) )
actorShadowsCheckBox - > setCheckState ( Qt : : Checked ) ;
actorShadowsCheckBox - > setCheckState ( Qt : : Checked ) ;
if ( Settings : : Manager : : getBool ( " player shadows " , " Shadows " ) )
if ( Settings : : Manager : : getBool ( " player shadows " , " Shadows " ) )
@ -167,6 +177,8 @@ bool Launcher::GraphicsPage::loadSettings()
void Launcher : : GraphicsPage : : saveSettings ( )
void Launcher : : GraphicsPage : : saveSettings ( )
{
{
// Visuals
// Ensure we only set the new settings if they changed. This is to avoid cluttering the
// Ensure we only set the new settings if they changed. This is to avoid cluttering the
// user settings file (which by definition should only contain settings the user has touched)
// user settings file (which by definition should only contain settings the user has touched)
bool cVSync = vSyncCheckBox - > checkState ( ) ;
bool cVSync = vSyncCheckBox - > checkState ( ) ;
@ -219,6 +231,11 @@ void Launcher::GraphicsPage::saveSettings()
Settings : : Manager : : setFloat ( " framerate limit " , " Video " , 0 ) ;
Settings : : Manager : : setFloat ( " framerate limit " , " Video " , 0 ) ;
}
}
// Lighting
static std : : array < std : : string , 3 > lightingMethodMap = { " legacy " , " shaders compatibility " , " shaders " } ;
Settings : : Manager : : setString ( " lighting method " , " Shaders " , lightingMethodMap [ lightingMethodComboBox - > currentIndex ( ) ] ) ;
// Shadows
int cShadowDist = shadowDistanceCheckBox - > checkState ( ) ! = Qt : : Unchecked ? shadowDistanceSpinBox - > value ( ) : 0 ;
int cShadowDist = shadowDistanceCheckBox - > checkState ( ) ! = Qt : : Unchecked ? shadowDistanceSpinBox - > value ( ) : 0 ;
if ( Settings : : Manager : : getInt ( " maximum shadow map distance " , " Shadows " ) ! = cShadowDist )
if ( Settings : : Manager : : getInt ( " maximum shadow map distance " , " Shadows " ) ! = cShadowDist )
Settings : : Manager : : setInt ( " maximum shadow map distance " , " Shadows " , cShadowDist ) ;
Settings : : Manager : : setInt ( " maximum shadow map distance " , " Shadows " , cShadowDist ) ;