X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FAIModel%2FAIManager.cxx;h=315920ab5ce15cb58a8b3a565fcb438d4562cc82;hb=388a0a5b6af2b91f2ed36488177813d693ed374e;hp=9813b9dc25f768542f0378e344e5e2850d34c564;hpb=ef152ee4113ca38526f4c9ed283d2d8ac5e47d67;p=flightgear.git diff --git a/src/AIModel/AIManager.cxx b/src/AIModel/AIManager.cxx index 9813b9dc2..315920ab5 100644 --- a/src/AIModel/AIManager.cxx +++ b/src/AIModel/AIManager.cxx @@ -18,6 +18,8 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#include + #include #include #include @@ -39,6 +41,7 @@ #include "AITanker.hxx" #include "AIWingman.hxx" #include "AIGroundVehicle.hxx" +#include "AIEscort.hxx" FGAIManager::FGAIManager() { _dt = 0.0; @@ -311,6 +314,11 @@ FGAIManager::processScenario( const string &filename ) { groundvehicle->readFromScenario(scEntry); attach(groundvehicle); + } else if (type == "escort") { + FGAIEscort* escort = new FGAIEscort; + escort->readFromScenario(scEntry); + attach(escort); + } else if (type == "thunderstorm") { FGAIStorm* storm = new FGAIStorm; storm->readFromScenario(scEntry); @@ -375,7 +383,7 @@ FGAIManager::getStartPosition(const string& id, const string& pid, std::string pnumber = scEntry->getStringValue("pennant-number"); std::string name = scEntry->getStringValue("name"); if (type == "carrier" && (pnumber == id || name == id)) { - osg::ref_ptr carrier = new FGAICarrier; + SGSharedPtr carrier = new FGAICarrier; carrier->readFromScenario(scEntry); if (carrier->getParkPosition(pid, geodPos, hdng, uvw)) { @@ -395,8 +403,8 @@ const FGAIBase * FGAIManager::calcCollision(double alt, double lat, double lon, double fuse_range) { // we specify tgt extent (ft) according to the AIObject type - double tgt_ht[] = {0, 50 ,100, 250, 0, 100, 0, 0, 50, 50, 50}; - double tgt_length[] = {0, 100, 200, 750, 0, 50, 0, 0, 200, 100, 100}; + double tgt_ht[] = {0, 50, 100, 250, 0, 100, 0, 0, 50, 50, 20, 100, 50}; + double tgt_length[] = {0, 100, 200, 750, 0, 50, 0, 0, 200, 100, 40, 200, 100}; ai_list_iterator ai_list_itr = ai_list.begin(); ai_list_iterator end = ai_list.end(); @@ -407,11 +415,11 @@ FGAIManager::calcCollision(double alt, double lat, double lon, double fuse_range if (fabs(tgt_alt - alt) > tgt_ht[type] || type == FGAIBase::otBallistic || type == FGAIBase::otStorm || type == FGAIBase::otThermal ) { - SG_LOG(SG_GENERAL, SG_DEBUG, "AIManager: skipping " - << fabs(tgt_alt - alt) - << " " - << type - ); + //SG_LOG(SG_GENERAL, SG_DEBUG, "AIManager: skipping " + // << fabs(tgt_alt - alt) + // << " " + // << type + // ); ++ai_list_itr; continue; } @@ -422,14 +430,14 @@ FGAIManager::calcCollision(double alt, double lat, double lon, double fuse_range double range = calcRange(lat, lon, tgt_lat, tgt_lon); - SG_LOG(SG_GENERAL, SG_DEBUG, "AIManager: AI list size " - << ai_list.size() - << " type " << type - << " ID " << id - << " range " << range - //<< " bearing " << bearing - << " alt " << tgt_alt - ); + //SG_LOG(SG_GENERAL, SG_DEBUG, "AIManager: AI list size " + // << ai_list.size() + // << " type " << type + // << " ID " << id + // << " range " << range + // //<< " bearing " << bearing + // << " alt " << tgt_alt + // ); tgt_length[type] += fuse_range;