Added base class AIStateMachine.

This is the skeleton needed to implement classes that can be reused and
work together, which can perform asynchronous tasks (read: need to wait
for certain events before they can continue).

An example would be the task of waiting for a given inventory folder to
be read. This could then be used to improve the builtin AO
(automatically reading that folder when a notecard is dropped, and
continuing when the whole folder is read).

It's first use will be communication with a filepicker that runs
in a plugin.
This commit is contained in:
Aleric Inglewood
2011-05-05 16:34:38 +02:00
parent 474acdbff9
commit f6b57d956d
12 changed files with 757 additions and 6 deletions

View File

@@ -75,6 +75,7 @@
#include "llnetmap.h"
#include "llrender.h"
#include "llfloaterchat.h"
#include "statemachine/aistatemachine.h"
#include "aithreadsafe.h"
#include "llviewerobjectlist.h"
#include "lldrawpoolbump.h"
@@ -119,6 +120,11 @@ static bool handleTerrainDetailChanged(const LLSD& newvalue)
return true;
}
bool handleStateMachineMaxTimeChanged(const LLSD& newvalue)
{
AIStateMachine::updateSettings();
return true;
}
static bool handleSetShaderChanged(const LLSD& newvalue)
{
@@ -707,6 +713,7 @@ void settings_setup_listeners()
gSavedSettings.getControl("AudioLevelMic")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1));
gSavedSettings.getControl("LipSyncEnabled")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1));
gSavedSettings.getControl("TranslateChat")->getSignal()->connect(boost::bind(&handleTranslateChatPrefsChanged, _1));
gSavedSettings.getControl("StateMachineMaxTime")->getSignal()->connect(boost::bind(&handleStateMachineMaxTimeChanged, _1));
gSavedSettings.getControl("CloudsEnabled")->getSignal()->connect(boost::bind(&handleCloudSettingsChanged, _1));
gSavedSettings.getControl("SkyUseClassicClouds")->getSignal()->connect(boost::bind(&handleCloudSettingsChanged, _1));