]> git.mxchange.org Git - flightgear.git/blobdiff - src/Environment/metarproperties.cxx
Bugfix - untie property.
[flightgear.git] / src / Environment / metarproperties.cxx
index f76ee6684086e5d9b0d8dd6252a76bb1387ccf59..f1e25f41925dc497ad4096e6f2d570a2783ed154 100644 (file)
 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 //
 
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
 #include "metarproperties.hxx"
 #include "fgmetar.hxx"
 #include "environment.hxx"
@@ -31,6 +35,8 @@ using std::string;
 
 namespace Environment {
 
+static vector<string> coverage_string;
+
 MetarProperties::MetarProperties( SGPropertyNode_ptr rootNode ) :
   _rootNode(rootNode),
   _metarValidNode( rootNode->getNode( "valid", true ) ),
@@ -58,6 +64,14 @@ MetarProperties::MetarProperties( SGPropertyNode_ptr rootNode ) :
   _snow(0.0),
   _snow_cover(false)
 {
+  // Hack to avoid static initialization order problems on OSX
+  if( coverage_string.size() == 0 ) {
+    coverage_string.push_back(SGCloudLayer::SG_CLOUD_CLEAR_STRING);
+    coverage_string.push_back(SGCloudLayer::SG_CLOUD_FEW_STRING);
+    coverage_string.push_back(SGCloudLayer::SG_CLOUD_SCATTERED_STRING);
+    coverage_string.push_back(SGCloudLayer::SG_CLOUD_BROKEN_STRING);
+    coverage_string.push_back(SGCloudLayer::SG_CLOUD_OVERCAST_STRING);
+  }
   // don't tie metar-valid, so listeners get triggered
   _metarValidNode->setBoolValue( false );
   _tiedProperties.setRoot( _rootNode );
@@ -92,13 +106,6 @@ MetarProperties::~MetarProperties()
 {
 }
 
-static const string coverage_string[] = { 
-  SGCloudLayer::SG_CLOUD_CLEAR_STRING,
-  SGCloudLayer::SG_CLOUD_FEW_STRING,
-  SGCloudLayer::SG_CLOUD_SCATTERED_STRING,
-  SGCloudLayer::SG_CLOUD_BROKEN_STRING,
-  SGCloudLayer::SG_CLOUD_OVERCAST_STRING,
-};
 
 static const double thickness_value[] = { 0, 65, 600, 750, 1000 };