void
FGAIManager::reinit()
{
+ // shutdown scenarios
+ unloadAllScenarios();
+
update(0.0);
std::for_each(ai_list.begin(), ai_list.end(), boost::mem_fn(&FGAIBase::reinit));
+
+ // (re-)load scenarios
+ postinit();
+}
+
+void
+FGAIManager::shutdown()
+{
+ unloadAllScenarios();
}
void
return true;
}
+void
+FGAIManager::unloadAllScenarios()
+{
+ ScenarioDict::iterator it = _scenarios.begin();
+ for (; it != _scenarios.end(); ++it) {
+ delete it->second;
+ } // of scenarios iteration
+
+
+ // remove /sim/ai node
+ root->removeChildren("scenario");
+ _scenarios.clear();
+}
+
+
SGPropertyNode_ptr
FGAIManager::loadScenarioFile(const std::string& filename)
{
virtual ~FGAIManager();
void init();
+ virtual void shutdown();
void postinit();
void reinit();
void bind();
bool removeObject(const SGPropertyNode* args);
bool unloadScenario( const std::string &filename );
+ void unloadAllScenarios();
SGPropertyNode_ptr root;
SGPropertyNode_ptr enabled;