//
// 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>
+#include <simgear/misc/sg_path.hxx>
-#ifndef __cplusplus
-# error This library requires C++
-#endif
+// forward decls
+class SGPropertyNode;
+
+// Return the current base package version
+std::string fgBasePackageVersion();
+
+bool fgInitHome();
+
+// Read in configuration (file and command line)
+int fgInitConfig ( int argc, char **argv, bool reinit );
+
+int fgInitAircraft(bool reinit);
+
+// log various settings / configuration state
+void fgOutputSettings();
+
+// Initialize the localization
+SGPropertyNode *fgInitLocale(const char *language);
+
+// Init navaids and waypoints
+bool fgInitNav ();
// General house keeping initializations
-int fgInitGeneral ( void );
+bool fgInitGeneral ();
+
+// Create all the subsystems needed by the sim
+void fgCreateSubsystems(bool duringReset);
-// 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.
-int fgInitSubsystems( void );
+// 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();
-// Reset
-void fgReInitSubsystems( void );
+void fgStartNewReset();
+#endif // _FG_INIT_HXX
-#endif // _FG_INIT_H