FlightGear support for queued commands
This enables queued commands to be processed once per main event loop. At present this is done after subsystem updates.
This commit is contained in:
parent
6860627dea
commit
7c2a5e9e99
3 changed files with 11 additions and 1 deletions
|
@ -970,6 +970,10 @@ static struct {
|
|||
void
|
||||
fgInitCommands ()
|
||||
{
|
||||
// set our property root as the implicit default root for the
|
||||
// command managr
|
||||
SGCommandMgr::instance()->setImplicitRoot(globals->get_props());
|
||||
|
||||
SG_LOG(SG_GENERAL, SG_BULK, "Initializing basic built-in commands:");
|
||||
for (int i = 0; built_ins[i].name != 0; i++) {
|
||||
SG_LOG(SG_GENERAL, SG_BULK, " " << built_ins[i].name);
|
||||
|
|
|
@ -1194,6 +1194,9 @@ void fgStartNewReset()
|
|||
fgInitConfig(0, NULL, true);
|
||||
fgInitGeneral(); // all of this?
|
||||
|
||||
// set out new property root on the command manager
|
||||
SGCommandMgr::instance()->setImplicitRoot(globals->get_props());
|
||||
|
||||
flightgear::Options::sharedInstance()->processOptions();
|
||||
|
||||
// Rebuild the lists of allowed paths for cases where a path comes from an
|
||||
|
|
|
@ -55,6 +55,7 @@ extern bool global_crashRptEnabled;
|
|||
#include <simgear/math/SGMath.hxx>
|
||||
#include <simgear/math/sg_random.h>
|
||||
#include <simgear/misc/strutils.hxx>
|
||||
#include <simgear/structure/commands.hxx>
|
||||
|
||||
#include <Add-ons/AddonManager.hxx>
|
||||
#include <Main/locale.hxx>
|
||||
|
@ -122,6 +123,8 @@ static void fgMainLoop( void )
|
|||
// update all subsystems
|
||||
globals->get_subsystem_mgr()->update(sim_dt);
|
||||
|
||||
// flush commands waiting in the queue
|
||||
SGCommandMgr::instance()->executedQueuedCommands();
|
||||
simgear::AtomicChangeListener::fireChangeListeners();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue