X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FAIModel%2FAIFlightPlan.cxx;h=381f9e94498f0680d44eaab337aa4a08005edf04;hb=40639d38a877b7f58702db0c2b8831985b8ddbaf;hp=c901cbf5348f976648b663cd05fdca5c2227e84d;hpb=d24fe199143c3cd0adecd74f02430125e2bad45e;p=flightgear.git diff --git a/src/AIModel/AIFlightPlan.cxx b/src/AIModel/AIFlightPlan.cxx index c901cbf53..381f9e944 100644 --- a/src/AIModel/AIFlightPlan.cxx +++ b/src/AIModel/AIFlightPlan.cxx @@ -46,10 +46,15 @@ using std::cerr; +FGAIFlightPlan::FGAIFlightPlan() +{ + sid = 0; +} FGAIFlightPlan::FGAIFlightPlan(const string& filename) { int i; + sid = 0; start_time = 0; leg = 10; gateId = 0; @@ -61,7 +66,7 @@ FGAIFlightPlan::FGAIFlightPlan(const string& filename) try { readProperties(path.str(), &root); - } catch (const sg_exception &e) { + } catch (const sg_exception &) { SG_LOG(SG_GENERAL, SG_ALERT, "Error reading AI flight plan: " << path.str()); // cout << path.str() << endl; @@ -118,6 +123,7 @@ FGAIFlightPlan::FGAIFlightPlan(FGAIAircraft *ac, const string& acType, const string& airline) { + sid = 0; repeat = false; leg = 10; gateId=0; @@ -171,7 +177,7 @@ FGAIFlightPlan::FGAIFlightPlan(FGAIAircraft *ac, waypoints.push_back(wpt); } } - catch (const sg_exception &e) { + catch (const sg_exception &) { SG_LOG(SG_GENERAL, SG_WARN, "Error reading AI flight plan: "); cerr << "Errno = " << errno << endl; @@ -360,6 +366,26 @@ void FGAIFlightPlan::IncrementWaypoint(bool eraseWaypoints ) } +void FGAIFlightPlan::DecrementWaypoint(bool eraseWaypoints ) +{ + if (eraseWaypoints) + { + if (wpt_iterator == waypoints.end()) + wpt_iterator--; + else + { + delete *(waypoints.end()); + waypoints.erase(waypoints.end()); + wpt_iterator = waypoints.end(); + wpt_iterator--; + } + } + else + wpt_iterator--; + +} + + // gives distance in feet from a position to a waypoint double FGAIFlightPlan::getDistanceToGo(double lat, double lon, waypoint* wp) const{ return SGGeodesy::distanceM(SGGeod::fromDeg(lon, lat), @@ -462,7 +488,7 @@ void FGAIFlightPlan::deleteTaxiRoute() int FGAIFlightPlan::getRouteIndex(int i) { - if ((i > 0) && (i < waypoints.size())) { + if ((i > 0) && (i < (int)waypoints.size())) { return waypoints[i]->routeIndex; } else