+ SGPropertyNode * tnode = node->getChild("thruster", 0, true);
+ FGThruster * thruster = Propulsion->GetEngine(i)->GetThruster();
+
+ switch (Propulsion->GetEngine(i)->GetType()) {
+ case FGEngine::etPiston:
+ { // FGPiston code block
+ FGPiston* eng = (FGPiston*)Propulsion->GetEngine(i);
+ node->setDoubleValue("egt-degf", eng->getExhaustGasTemp_degF());
+ node->setDoubleValue("oil-temperature-degf", eng->getOilTemp_degF());
+ node->setDoubleValue("oil-pressure-psi", eng->getOilPressure_psi());
+ node->setDoubleValue("mp-osi", eng->getManifoldPressure_inHg());
+ // NOTE: mp-osi is not in ounces per square inch.
+ // This error is left for reasons of backwards compatibility with
+ // existing FlightGear sound and instrument configurations.
+ node->setDoubleValue("mp-inhg", eng->getManifoldPressure_inHg());
+ node->setDoubleValue("cht-degf", eng->getCylinderHeadTemp_degF());
+ node->setDoubleValue("rpm", eng->getRPM());
+ } // end FGPiston code block
+ break;
+ case FGEngine::etRocket:
+ { // FGRocket code block
+ FGRocket* eng = (FGRocket*)Propulsion->GetEngine(i);
+ } // end FGRocket code block
+ break;
+ case FGEngine::etTurbine:
+ { // FGTurbine code block
+ FGTurbine* eng = (FGTurbine*)Propulsion->GetEngine(i);
+ node->setDoubleValue("n1", eng->GetN1());
+ node->setDoubleValue("n2", eng->GetN2());
+ node->setDoubleValue("egt-degf", 32 + eng->GetEGT()*9/5);
+ node->setBoolValue("augmentation", eng->GetAugmentation());
+ node->setBoolValue("water-injection", eng->GetInjection());
+ node->setBoolValue("ignition", eng->GetIgnition());
+ node->setDoubleValue("nozzle-pos-norm", eng->GetNozzle());
+ node->setDoubleValue("inlet-pos-norm", eng->GetInlet());
+ node->setDoubleValue("oil-pressure-psi", eng->getOilPressure_psi());
+ node->setBoolValue("reversed", eng->GetReversed());
+ node->setBoolValue("cutoff", eng->GetCutoff());
+ node->setDoubleValue("epr", eng->GetEPR());
+ globals->get_controls()->set_reverser(i, eng->GetReversed() );
+ globals->get_controls()->set_cutoff(i, eng->GetCutoff() );
+ globals->get_controls()->set_water_injection(i, eng->GetInjection() );
+ globals->get_controls()->set_augmentation(i, eng->GetAugmentation() );
+ } // end FGTurbine code block
+ break;
+ case FGEngine::etTurboprop:
+ { // FGTurboProp code block
+ FGTurboProp* eng = (FGTurboProp*)Propulsion->GetEngine(i);
+ node->setDoubleValue("n1", eng->GetN1());
+ //node->setDoubleValue("n2", eng->GetN2());
+ node->setDoubleValue("itt_degf", 32 + eng->GetITT()*9/5);
+ node->setBoolValue("ignition", eng->GetIgnition());
+ node->setDoubleValue("nozzle-pos-norm", eng->GetNozzle());
+ node->setDoubleValue("inlet-pos-norm", eng->GetInlet());
+ node->setDoubleValue("oil-pressure-psi", eng->getOilPressure_psi());
+ node->setBoolValue("reversed", eng->GetReversed());
+ node->setBoolValue("cutoff", eng->GetCutoff());
+ node->setBoolValue("starting", eng->GetEngStarting());
+ node->setBoolValue("generator-power", eng->GetGeneratorPower());
+ node->setBoolValue("damaged", eng->GetCondition());
+ node->setBoolValue("ielu-intervent", eng->GetIeluIntervent());
+ node->setDoubleValue("oil-temperature-degf", eng->getOilTemp_degF());
+// node->setBoolValue("onfire", eng->GetFire());
+ globals->get_controls()->set_reverser(i, eng->GetReversed() );
+ globals->get_controls()->set_cutoff(i, eng->GetCutoff() );
+ } // end FGTurboProp code block
+ break;
+ case FGEngine::etElectric:
+ { // FGElectric code block
+ FGElectric* eng = (FGElectric*)Propulsion->GetEngine(i);
+ node->setDoubleValue("rpm", eng->getRPM());
+ } // end FGElectric code block
+ break;
+ case FGEngine::etUnknown:
+ break;
+ }