]> git.mxchange.org Git - flightgear.git/commitdiff
Refactor ridgelift: use simgear::TiedPropertyList
authorTorsten Dreyer <Torsten@t3r.de>
Mon, 14 Feb 2011 19:26:39 +0000 (20:26 +0100)
committerTorsten Dreyer <Torsten@t3r.de>
Mon, 14 Feb 2011 19:26:39 +0000 (20:26 +0100)
src/Environment/ridge_lift.cxx
src/Environment/ridge_lift.hxx

index 9598f2bbb908400c9ead7f396232aeaf8b0f6f80..5f0bd26396dc5ea40a9c1ec19e1b9047a5c38b98 100644 (file)
@@ -103,42 +103,20 @@ void FGRidgeLift::init(void)
 void FGRidgeLift::bind() {
        string prop;
 
+       _tiedProperties.setRoot( fgGetNode("/environment/ridge-lift",true));
        for( int i = 0; i < 5; i++ ) {
-               prop = CreateIndexedPropertyName("/environment/ridge-lift/probe-elev-m", i );
-               fgTie( prop.c_str(), this, i, &FGRidgeLift::get_probe_elev_m); // read-only
-
-               prop = CreateIndexedPropertyName("/environment/ridge-lift/probe-lat-deg", i );
-               fgTie( prop.c_str(), this, i, &FGRidgeLift::get_probe_lat_deg); // read-only
-
-               prop = CreateIndexedPropertyName("/environment/ridge-lift/probe-lon-deg", i );
-               fgTie( prop.c_str(), this, i, &FGRidgeLift::get_probe_lon_deg); // read-only
+               _tiedProperties.Tie( "probe-elev-m", i, this, i, &FGRidgeLift::get_probe_elev_m );
+               _tiedProperties.Tie( "probe-lat-deg", i, this, i, &FGRidgeLift::get_probe_lat_deg );
+               _tiedProperties.Tie( "probe-lon-deg", i, this, i, &FGRidgeLift::get_probe_lon_deg );
        }
 
        for( int i = 0; i < 4; i++ ) {
-               prop = CreateIndexedPropertyName("/environment/ridge-lift/slope", i );
-               fgTie( prop.c_str(), this, i, &FGRidgeLift::get_slope); // read-only
+               _tiedProperties.Tie( "slope", i, this, i, &FGRidgeLift::get_slope );
        }
 }
 
 void FGRidgeLift::unbind() {
-       string prop;
-
-       for( int i = 0; i < 5; i++ ) {
-
-               prop = CreateIndexedPropertyName("/environment/ridge-lift/probe-elev-m", i );
-               fgUntie( prop.c_str() );
-
-               prop = CreateIndexedPropertyName("/environment/ridge-lift/probe-lat-deg", i );
-               fgUntie( prop.c_str() );
-
-               prop = CreateIndexedPropertyName("/environment/ridge-lift/probe-lon-deg", i );
-               fgUntie( prop.c_str() );
-       }
-
-       for( int i = 0; i < 4; i++ ) {
-               prop = CreateIndexedPropertyName("/environment/ridge-lift/slope", i );
-               fgUntie( prop.c_str() );
-       }
+       _tiedProperties.Untie();
 }
 
 void FGRidgeLift::update(double dt) {
index a5e97d62083a56379b005e48be394dfbd0bdaf1b..642683c06141e0bcebf2e7ef818437c24fd1b469 100644 (file)
@@ -36,6 +36,7 @@
 #include <string>
 using std::string;
 
+#include <simgear/props/tiedpropertylist.hxx>
 
 class FGRidgeLift : public SGSubsystem {
 public:
@@ -80,6 +81,7 @@ private:
        SGPropertyNode_ptr _user_latitude_node;
        SGPropertyNode_ptr _ground_elev_node;
 
+       simgear::TiedPropertyList _tiedProperties;
 };
 
 #endif  // _FG_RidgeLift_HXX