From: Torsten Dreyer Date: Sat, 11 Sep 2010 19:23:11 +0000 (+0200) Subject: Environment bugfix: don't write unchanged cloud coverages X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=814daa3365f0a6c5df80e1a542b845cddae85b57;p=flightgear.git Environment bugfix: don't write unchanged cloud coverages Only write out changes of the cloud layer to avoid regeneration of the cloud layers if nothing has changed --- diff --git a/src/Environment/environment_mgr.cxx b/src/Environment/environment_mgr.cxx index 3f1c14431..5b79b25d0 100644 --- a/src/Environment/environment_mgr.cxx +++ b/src/Environment/environment_mgr.cxx @@ -302,6 +302,9 @@ void FGEnvironmentMgr::set_cloud_layer_coverage (int index, const char * coverage_name) { + if( thesky->get_cloud_layer(index)->getCoverageString() == coverage_name ) + return; + thesky->get_cloud_layer(index)->setCoverageString(coverage_name); _cloudLayersDirty = true; } @@ -316,10 +319,14 @@ FGEnvironmentMgr::get_cloud_layer_coverage_type (int index) const void FGEnvironmentMgr::set_cloud_layer_coverage_type (int index, int type ) { - if( index < 0 || index >= SGCloudLayer::SG_MAX_CLOUD_COVERAGES ) { + if( type < 0 || type >= SGCloudLayer::SG_MAX_CLOUD_COVERAGES ) { SG_LOG(SG_ALL,SG_WARN,"Unknown cloud layer type " << type << " ignored" ); return; } + + if( static_cast(type) == thesky->get_cloud_layer(index)->getCoverage() ) + return; + thesky->get_cloud_layer(index)->setCoverage(static_cast(type)); _cloudLayersDirty = true; }