//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
-// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef _FG_AISHIP_HXX
#define _FG_AISHIP_HXX
-#include "AIManager.hxx"
#include "AIBase.hxx"
-
+class FGAIManager;
class FGAIShip : public FGAIBase {
public:
- FGAIShip();
- ~FGAIShip();
+ FGAIShip(object_type ot = otShip);
+ virtual ~FGAIShip();
- bool init();
- void update(double dt);
+ virtual void readFromScenario(SGPropertyNode* scFileNode);
+
+ virtual bool init();
+ virtual void bind();
+ virtual void unbind();
+ virtual void update(double dt);
+ void setFlightPlan(FGAIFlightPlan* f);
+ void setName(const string&);
+ void setRudder(float r);
+ void setRoll(double rl);
+
+ void ProcessFlightPlan( double dt );
void AccelTo(double speed);
void PitchTo(double angle);
void YawTo(double angle);
void ClimbTo(double altitude);
void TurnTo(double heading);
+ bool hdg_lock;
+
+ virtual const char* getTypeString(void) const { return "ship"; }
+protected:
+
+ string name; // The name of this ship.
+
private:
- bool hdg_lock;
- double rudder;
+ float rudder, tgt_rudder;
+ double rudder_constant, roll_constant, speed_constant, hdg_constant;
void Run(double dt);
double sign(double x);