Merge branch 'next' of git://gitorious.org/fg/flightgear into next
This commit is contained in:
commit
1830f2be4d
4 changed files with 31 additions and 11 deletions
|
@ -35,6 +35,7 @@
|
|||
#include <simgear/structure/event_mgr.hxx>
|
||||
#include <simgear/sound/soundmgr_openal.hxx>
|
||||
#include <simgear/misc/ResourceManager.hxx>
|
||||
#include <simgear/props/propertyObject.hxx>
|
||||
|
||||
#include <Aircraft/controls.hxx>
|
||||
#include <Airports/runways.hxx>
|
||||
|
@ -148,6 +149,7 @@ FGGlobals::FGGlobals() :
|
|||
channellist( NULL )
|
||||
{
|
||||
simgear::ResourceManager::instance()->addProvider(new AircraftResourceProvider());
|
||||
simgear::PropertyObjectBase::setDefaultRoot(props);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -187,9 +187,6 @@ bool FGAISchedule::init()
|
|||
|
||||
bool FGAISchedule::update(time_t now, const SGVec3d& userCart)
|
||||
{
|
||||
if (!fgGetBool("/sim/traffic-manager/enabled"))
|
||||
return true;
|
||||
|
||||
time_t
|
||||
totalTimeEnroute,
|
||||
elapsedTimeEnroute,
|
||||
|
|
|
@ -75,7 +75,11 @@ using std::strcmp;
|
|||
/******************************************************************************
|
||||
* TrafficManager
|
||||
*****************************************************************************/
|
||||
FGTrafficManager::FGTrafficManager()
|
||||
FGTrafficManager::FGTrafficManager() :
|
||||
inited(false),
|
||||
enabled("/sim/traffic-manager/enabled"),
|
||||
aiEnabled("/sim/ai/enabled"),
|
||||
metarValid("/environment/metar/valid")
|
||||
{
|
||||
//score = 0;
|
||||
//runCount = 0;
|
||||
|
@ -125,6 +129,10 @@ FGTrafficManager::~FGTrafficManager()
|
|||
|
||||
void FGTrafficManager::init()
|
||||
{
|
||||
if (!enabled || !aiEnabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
heuristicsVector heuristics;
|
||||
HeuristicMap heurMap;
|
||||
|
||||
|
@ -218,13 +226,22 @@ void FGTrafficManager::init()
|
|||
compareSchedules);
|
||||
currAircraft = scheduledAircraft.begin();
|
||||
currAircraftClosest = scheduledAircraft.begin();
|
||||
|
||||
inited = true;
|
||||
}
|
||||
|
||||
void FGTrafficManager::update(double /*dt */ )
|
||||
{
|
||||
if (fgGetBool("/environment/metar/valid") == false) {
|
||||
if (!enabled || !aiEnabled || !metarValid) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!inited) {
|
||||
// lazy-initialization, we've been enabled at run-time
|
||||
SG_LOG(SG_GENERAL, SG_INFO, "doing lazy-init of TrafficManager");
|
||||
init();
|
||||
}
|
||||
|
||||
time_t now = time(NULL) + fgGetLong("/sim/time/warp");
|
||||
if (scheduledAircraft.size() == 0) {
|
||||
return;
|
||||
|
|
|
@ -47,6 +47,7 @@
|
|||
#define _TRAFFICMGR_HXX_
|
||||
|
||||
#include <simgear/structure/subsystem_mgr.hxx>
|
||||
#include <simgear/props/propertyObject.hxx>
|
||||
#include <simgear/xml/easyxml.hxx>
|
||||
#include <simgear/misc/sg_path.hxx>
|
||||
|
||||
|
@ -54,19 +55,19 @@
|
|||
#include "Schedule.hxx"
|
||||
|
||||
|
||||
typedef vector<int> IdList;
|
||||
typedef vector<int>::iterator IdListIterator;
|
||||
typedef std::vector<int> IdList;
|
||||
typedef std::vector<int>::iterator IdListIterator;
|
||||
|
||||
class Heuristic
|
||||
{
|
||||
public:
|
||||
string registration;
|
||||
std::string registration;
|
||||
unsigned int runCount;
|
||||
unsigned int hits;
|
||||
};
|
||||
|
||||
typedef vector<Heuristic> heuristicsVector;
|
||||
typedef vector<Heuristic>::iterator heuristicsVectorIterator;
|
||||
typedef std::vector<Heuristic> heuristicsVector;
|
||||
typedef std::vector<Heuristic>::iterator heuristicsVectorIterator;
|
||||
|
||||
typedef std::map < std::string, Heuristic> HeuristicMap;
|
||||
typedef HeuristicMap::iterator HeuristicMapIterator;
|
||||
|
@ -77,11 +78,13 @@ typedef HeuristicMap::iterator HeuristicMapIterator;
|
|||
class FGTrafficManager : public SGSubsystem, public XMLVisitor
|
||||
{
|
||||
private:
|
||||
bool inited;
|
||||
|
||||
ScheduleVector scheduledAircraft;
|
||||
ScheduleVectorIterator currAircraft, currAircraftClosest;
|
||||
vector<string> elementValueStack;
|
||||
|
||||
string mdl, livery, registration, callsign, fltrules,
|
||||
std::string mdl, livery, registration, callsign, fltrules,
|
||||
port, timeString, departurePort, departureTime, arrivalPort, arrivalTime,
|
||||
repeat, acType, airline, m_class, flighttype, requiredAircraft, homePort;
|
||||
int cruiseAlt;
|
||||
|
@ -96,6 +99,7 @@ private:
|
|||
void readTimeTableFromFile(SGPath infilename);
|
||||
void Tokenize(const string& str, vector<string>& tokens, const string& delimiters = " ");
|
||||
|
||||
simgear::PropertyObject<bool> enabled, aiEnabled, metarValid;
|
||||
public:
|
||||
FGTrafficManager();
|
||||
~FGTrafficManager();
|
||||
|
|
Loading…
Reference in a new issue