From 58aa15ece98b4f822bbc500e4a31a346cb29582d Mon Sep 17 00:00:00 2001
From: curt <curt>
Date: Mon, 3 Dec 2001 22:17:03 +0000
Subject: [PATCH] JSBSim sync.

---
 src/FDM/JSBSim/FGForce.h        | 4 ++++
 src/FDM/JSBSim/FGPropeller.cpp  | 4 ++--
 src/FDM/JSBSim/FGPropulsion.cpp | 1 +
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/FDM/JSBSim/FGForce.h b/src/FDM/JSBSim/FGForce.h
index e2f0e1e73..61a97f453 100644
--- a/src/FDM/JSBSim/FGForce.h
+++ b/src/FDM/JSBSim/FGForce.h
@@ -260,6 +260,10 @@ public:
   inline void SetLocationY(double y) {vXYZn(2) = y;}
   inline void SetLocationZ(double z) {vXYZn(3) = z;}
   inline void SetLocation(FGColumnVector3 vv) { vXYZn = vv; }
+  
+  inline double GetLocationX( void ) { return vXYZn(1);}
+  inline double GetLocationY( void ) { return vXYZn(2);}
+  inline double GetLocationZ( void ) { return vXYZn(3);}
   FGColumnVector3& GetLocation(void) { return vXYZn; }
 
   //these angles are relative to body axes, not earth!!!!!
diff --git a/src/FDM/JSBSim/FGPropeller.cpp b/src/FDM/JSBSim/FGPropeller.cpp
index e77de0123..e2080e388 100644
--- a/src/FDM/JSBSim/FGPropeller.cpp
+++ b/src/FDM/JSBSim/FGPropeller.cpp
@@ -158,8 +158,8 @@ double FGPropeller::Calculate(double PowerAvailable)
   if (P_Factor > 0.0001) {
     alpha = fdmex->GetTranslation()->Getalpha();
     beta  = fdmex->GetTranslation()->Getbeta();
-    SetLocationY(P_Factor*alpha*fabs(Sense)/Sense);
-    SetLocationZ(P_Factor*beta*fabs(Sense)/Sense);
+    SetLocationY( GetLocationY() + P_Factor*alpha*fabs(Sense)/Sense);
+    SetLocationZ( GetLocationZ() + P_Factor*beta*fabs(Sense)/Sense);
   } else if (P_Factor < 0.000) {
     cerr << "P-Factor value in config file must be greater than zero" << endl;
   }
diff --git a/src/FDM/JSBSim/FGPropulsion.cpp b/src/FDM/JSBSim/FGPropulsion.cpp
index 0dcaf9010..33c6594f2 100644
--- a/src/FDM/JSBSim/FGPropulsion.cpp
+++ b/src/FDM/JSBSim/FGPropulsion.cpp
@@ -125,6 +125,7 @@ bool FGPropulsion::GetSteadyState(void)
       Engines[i]->SetTrimMode(true);
       Thrusters[i]->SetdeltaT(dt*rate);
       steady=false;
+      steady_count=0;
       while (!steady && j < 6000) {
         PowerAvailable = Engines[i]->Calculate(Thrusters[i]->GetPowerRequired());
         lastThrust = currentThrust;