From 295ae6a650060e82487dbc766038d2be3b5321b5 Mon Sep 17 00:00:00 2001 From: James Turner Date: Tue, 2 Apr 2013 18:00:31 +0100 Subject: [PATCH] Tweaks for run-time scenario toggling. --- src/AIModel/AIManager.cxx | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/AIModel/AIManager.cxx b/src/AIModel/AIManager.cxx index f2af74acb..8652641f9 100644 --- a/src/AIModel/AIManager.cxx +++ b/src/AIModel/AIManager.cxx @@ -303,6 +303,16 @@ FGAIManager::processThermal( double dt, FGAIThermal* thermal ) { bool FGAIManager::loadScenarioCommand(const SGPropertyNode* args) { std::string name = args->getStringValue("name"); + if (args->hasChild("load-property")) { + // slightly ugly, to simplify life in the dialogs, make load allow + // loading or unloading based on a bool property. + bool loadIt = fgGetBool(args->getStringValue("load-property")); + if (!loadIt) { + // user actually wants to unload, fine. + return unloadScenario(name); + } + } + if (_scenarios.find(name) != _scenarios.end()) { SG_LOG(SG_AI, SG_WARN, "scenario '" << name << "' already loaded"); return false; @@ -315,6 +325,7 @@ bool FGAIManager::loadScenarioCommand(const SGPropertyNode* args) for (; root->hasChild("scenario", index); ++index) {} SGPropertyNode* scenarioNode = root->getChild("scenario", index, true); + scenarioNode->setAttribute(SGPropertyNode::USERARCHIVE, true); scenarioNode->setStringValue(name); } -- 2.39.5