#endif
#include <simgear/compiler.h>
+#include <simgear/sg_inlines.h>
#include <stdio.h> // size_t
#include <string>
FGTank* tank = Propulsion->GetTank(i);
d = node->getNode( "density-ppg", true )->getDoubleValue();
- if( d > 0.0 )
+ if( d > 0.0 ) {
tank->SetDensity( d );
+ } else {
+ node->getNode( "density-ppg", true )->setDoubleValue( SG_MAX2<double>(tank->GetDensity(), 0.1) );
+ }
d = node->getNode( "level-lbs", true )->getDoubleValue();
- if( d > 0.0 )
+ if( d > 0.0 ) {
tank->SetContents( d );
+ } else {
+ node->getNode( "level-lbs", true )->setDoubleValue( tank->GetContents() );
+ }
+ /* Capacity is read-only in FGTank and can't be overwritten from FlightGear */
+ node->getNode("capacity-gal_us", true )->setDoubleValue( tank->GetCapacityGallons() );
}
Propulsion->SetFuelFreeze((fgGetNode("/sim/freeze/fuel",true))->getBoolValue());
TankProperties::TankProperties(SGPropertyNode_ptr rootNode ) :
_content_kg(0.0),
- _density_kgpm3(755.0), // avg. AVGAS density (more or less)
+ _density_kgpm3(0.0),
_capacity_m3(0.0)
{
_tiedProperties.setRoot( rootNode );