//
// Written by Curtis Olson, started August 1997.
//
-// Copyright (C) 1997 Curtis L. Olson - curt@infoplane.com
+// Copyright (C) 1997 Curtis L. Olson - http://www.flightgear.org/~curt
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
//
// 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.
//
// $Id$
#ifndef _FG_INIT_HXX
#define _FG_INIT_HXX
+#include <string>
-#ifndef __cplusplus
-# error This library requires C++
-#endif
-
-
-#ifdef HAVE_CONFIG
-# include <config.h>
-#endif
-
-#include <simgear/compiler.h>
-#include <simgear/timing/sg_time.hxx>
-
-#include STL_STRING
-
-#include <Airports/simple.hxx>
-
-SG_USING_STD(string);
-
-
-// Read in configuration (files and command line optoins) but only set
-// fg_root
-bool fgInitFGRoot ( int argc, char **argv );
-
+// forward decls
+class SGPropertyNode;
+class SGPath;
// Return the current base package version
-string fgBasePackageVersion();
+std::string fgBasePackageVersion();
// Read in configuration (file and command line)
SGPropertyNode *fgInitLocale(const char *language);
-// General house keeping initializations
-bool fgInitGeneral ( void );
-
-
-// This is the top level init routine which calls all the other
-// initialization routines. If you are adding a subsystem to flight
-// gear, its initialization call should located in this routine.
-bool fgInitSubsystems( void );
-
-
-// Reset
-void fgReInitSubsystems( void );
-
+// Init navaids and waypoints
+bool fgInitNav ();
-// find basic airport location info from airport database
-bool fgFindAirportID( const string& id, FGAirport *a );
-// Set pos given an airport id
-bool fgSetPosFromAirportID( const string& id );
-
-// Set tower position given an airport id
-bool fgSetTowerPosFromAirportID( const string& id, double hdg );
-
-// Set position and heading given an airport id and heading (degrees)
-bool fgSetPosFromAirportIDandHdg( const string& id, double tgt_hdg );
-
-//find altitude given glideslope and offset distance or offset distance
-//given glideslope and altitude
-void fgSetPosFromGlideSlope(void);
-
-// Initialize various time dependent systems (lighting, sun position, etc.)
-// returns a new instance of the SGTime class
-SGTime *fgInitTime();
+// General house keeping initializations
+bool fgInitGeneral ();
+
+
+// Create all the subsystems needed by the sim
+void fgCreateSubsystems();
+
+// called after the subsystems have been bound and initialised,
+// to peform final init
+void fgPostInitSubsystems();
+
+// Reset: this is what the 'reset' command (and hence, GUI) is attached to
+void fgReInitSubsystems();
+
+/*
+ * Search in the current directory, and in on directory deeper
+ * for <aircraft>-set.xml configuration files and show the aircaft name
+ * and the contents of the<description> tag in a sorted manner.
+ *
+ * @parampath the directory to search for configuration files
+ */
+void fgShowAircraft(const SGPath &path);
#endif // _FG_INIT_HXX