working on the termination of the last hardcoded dialogs in Autopilot/auto_gui.cxx:
- move fg_init/parseWaypoints() to route_mgr/postinit() - don't delete initial string list to keep it available for subsystem reinit
This commit is contained in:
parent
4b856b508a
commit
3b4e532372
3 changed files with 13 additions and 28 deletions
|
@ -30,6 +30,7 @@
|
||||||
#include <FDM/flight.hxx>
|
#include <FDM/flight.hxx>
|
||||||
#include <Main/fg_props.hxx>
|
#include <Main/fg_props.hxx>
|
||||||
|
|
||||||
|
#include "auto_gui.hxx" // FIXME temporary dependency (NewWaypoint)
|
||||||
#include "route_mgr.hxx"
|
#include "route_mgr.hxx"
|
||||||
|
|
||||||
|
|
||||||
|
@ -80,6 +81,17 @@ void FGRouteMgr::init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void FGRouteMgr::postinit() {
|
||||||
|
string_list *waypoints = globals->get_initial_waypoints();
|
||||||
|
if (!waypoints)
|
||||||
|
return;
|
||||||
|
|
||||||
|
vector<string>::iterator it;
|
||||||
|
for (it = waypoints->begin(); it != waypoints->end(); ++it)
|
||||||
|
NewWaypoint(*it);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void FGRouteMgr::bind() { }
|
void FGRouteMgr::bind() { }
|
||||||
void FGRouteMgr::unbind() { }
|
void FGRouteMgr::unbind() { }
|
||||||
|
|
||||||
|
|
|
@ -84,6 +84,7 @@ public:
|
||||||
~FGRouteMgr();
|
~FGRouteMgr();
|
||||||
|
|
||||||
void init ();
|
void init ();
|
||||||
|
void postinit ();
|
||||||
void bind ();
|
void bind ();
|
||||||
void unbind ();
|
void unbind ();
|
||||||
void update (double dt);
|
void update (double dt);
|
||||||
|
|
|
@ -1021,29 +1021,6 @@ static bool fgSetPosFromFix( const string& id ) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void parseWaypoints() {
|
|
||||||
string_list *waypoints = globals->get_initial_waypoints();
|
|
||||||
if (waypoints) {
|
|
||||||
vector<string>::iterator i;
|
|
||||||
for (i = waypoints->begin();
|
|
||||||
i != waypoints->end();
|
|
||||||
i++)
|
|
||||||
{
|
|
||||||
NewWaypoint(*i);
|
|
||||||
}
|
|
||||||
// Now were done using the way points we can deallocate the
|
|
||||||
// memory they used
|
|
||||||
while (waypoints->begin() != waypoints->end()) {
|
|
||||||
waypoints->pop_back();
|
|
||||||
}
|
|
||||||
delete waypoints;
|
|
||||||
globals->set_initial_waypoints(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1817,11 +1794,6 @@ bool fgInitSubsystems() {
|
||||||
globals->add_subsystem("nasal", nasal);
|
globals->add_subsystem("nasal", nasal);
|
||||||
nasal->init();
|
nasal->init();
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
|
||||||
// At this point we could try and parse the waypoint options
|
|
||||||
///////////////////////////////////////////////////////////////////
|
|
||||||
parseWaypoints();
|
|
||||||
|
|
||||||
// initialize methods that depend on other subsystems.
|
// initialize methods that depend on other subsystems.
|
||||||
globals->get_subsystem_mgr()->postinit();
|
globals->get_subsystem_mgr()->postinit();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue