[Gcblue-commits] gcb_wx/src/scriptinterface tcPlatformInterface.cpp,1.17,1.18 tcPlatformInterfaceExt
Status: Alpha
Brought to you by:
ddcforge
From: <ddc...@us...> - 2004-02-16 01:14:05
|
Update of /cvsroot/gcblue/gcb_wx/src/scriptinterface In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7358/src/scriptinterface Modified Files: tcPlatformInterface.cpp tcPlatformInterfaceExtension.cpp tcTrackInterface.cpp Log Message: Index: tcPlatformInterface.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/scriptinterface/tcPlatformInterface.cpp,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** tcPlatformInterface.cpp 13 Feb 2004 01:31:33 -0000 1.17 --- tcPlatformInterface.cpp 16 Feb 2004 01:06:23 -0000 1.18 *************** *** 208,217 **** // return false if no track , otherwise true ! bool tcPlatformInterface::GetTargetTrack(tcTrack& track) { tcGameObject* pGameObj = GetTargetObj(); if (pGameObj == NULL) {return false;} // target not found, do nothing // return truth data if own alliance ! if (mpSimState->mpUserInfo->IsOwnAlliance(pGameObj->mnAlliance)) { tcKinematics *pTargetKin = &pGameObj->mcKin; track.mfAlt_m = pTargetKin->mfAlt_m; --- 208,219 ---- // return false if no track , otherwise true ! bool tcPlatformInterface::GetTargetTrack(tcSensorMapTrack& track) ! { tcGameObject* pGameObj = GetTargetObj(); if (pGameObj == NULL) {return false;} // target not found, do nothing // return truth data if own alliance ! if (mpSimState->mpUserInfo->IsOwnAlliance(pGameObj->mnAlliance)) ! { tcKinematics *pTargetKin = &pGameObj->mcKin; track.mfAlt_m = pTargetKin->mfAlt_m; *************** *** 222,229 **** track.mnClassification = pGameObj->mpDBObject->mnType; track.mnAffiliation = FRIENDLY; return true; } ! else { ! return mpSimState->mcSensorMap.GetTrack(pGameObj->mnID,track,mpPlatformObj->mnAlliance); } } --- 224,246 ---- track.mnClassification = pGameObj->mpDBObject->mnType; track.mnAffiliation = FRIENDLY; + track.engaged.clear(); + track.intercepts.clear(); + track.assessedDamage = pGameObj->mfDamageLevel; return true; } ! else ! { ! tcSensorMapTrack *smtrack = ! mpSimState->mcSensorMap.GetSensorMapTrack(pGameObj->mnID,mpPlatformObj->mnAlliance); ! if (smtrack) ! { ! track = *smtrack; ! return true; ! } ! else ! { ! track.mnID = NULL_INDEX; ! return false; ! } } } *************** *** 237,241 **** return false; } ! tcTrack track; if (GetTargetTrack(track) == false) { return false; --- 254,258 ---- return false; } ! tcSensorMapTrack track; if (GetTargetTrack(track) == false) { return false; *************** *** 253,259 **** } ! tcTrack tcPlatformInterface::GetTargetTrackInfo(void) { ! tcTrack track; ! track.Clear(); GetTargetTrack(track); return track; --- 270,277 ---- } ! tcSensorMapTrack tcPlatformInterface::GetTargetTrackInfo(void) ! { ! tcSensorMapTrack track; ! GetTargetTrack(track); return track; *************** *** 264,269 **** * @return time to intercept in seconds */ ! float tcPlatformInterface::SetHeadingToInterceptTarget() { ! tcTrack track; float fHeading_rad, fTTI; --- 282,288 ---- * @return time to intercept in seconds */ ! float tcPlatformInterface::SetHeadingToInterceptTarget() ! { ! tcSensorMapTrack track; float fHeading_rad, fTTI; *************** *** 275,279 **** } ! float tcPlatformInterface::GetHeadingToDatum(float afLon_rad, float afLat_rad) { tsGeoPoint p; p.mfAlt_m = 0; --- 294,299 ---- } ! float tcPlatformInterface::GetHeadingToDatum(float afLon_rad, float afLat_rad) ! { tsGeoPoint p; p.mfAlt_m = 0; *************** *** 284,288 **** } ! float tcPlatformInterface::GetRangeToDatum(float afLon_rad, float afLat_rad) { tsGeoPoint p; p.mfAlt_m = 0; --- 304,309 ---- } ! float tcPlatformInterface::GetRangeToDatum(float afLon_rad, float afLat_rad) ! { tsGeoPoint p; p.mfAlt_m = 0; *************** *** 295,299 **** // return best launcher for target, best.mnLauncher set to -1 if // no compatible launchers or no target is selected ! tcLauncherInfo tcPlatformInterface::GetBestLauncher() { tcLauncherInfo best; best.mnLauncher = -1; --- 316,321 ---- // return best launcher for target, best.mnLauncher set to -1 if // no compatible launchers or no target is selected ! tcLauncherInfo tcPlatformInterface::GetBestLauncher() ! { tcLauncherInfo best; best.mnLauncher = -1; *************** *** 345,349 **** } ! bool tcPlatformInterface::GetLauncherInfo(tcLauncherInfo& info, int anLauncher) { info.mnLauncher = -1; --- 367,372 ---- } ! bool tcPlatformInterface::GetLauncherInfo(tcLauncherInfo& info, int anLauncher) ! { info.mnLauncher = -1; *************** *** 402,406 **** } ! void tcPlatformInterface::SendDatumToLauncher(float afLon_rad, float afLat_rad, int anLauncher) { tcPoint p; p.x = afLon_rad; --- 425,430 ---- } ! void tcPlatformInterface::SendDatumToLauncher(float afLon_rad, float afLat_rad, int anLauncher) ! { tcPoint p; p.x = afLon_rad; *************** *** 409,413 **** } ! bool tcPlatformInterface::HandoffTargetToLauncher(int anLauncher) { UINT32 nTargetID = mpPlatformObj->mcAI.mnTargetID; bool bAccept = mpSimState->DesignateLauncherTarget(mpPlatformObj->mnID,nTargetID,anLauncher); --- 433,438 ---- } ! bool tcPlatformInterface::HandoffTargetToLauncher(int anLauncher) ! { UINT32 nTargetID = mpPlatformObj->mcAI.mnTargetID; bool bAccept = mpSimState->DesignateLauncherTarget(mpPlatformObj->mnID,nTargetID,anLauncher); *************** *** 425,445 **** } ! int tcPlatformInterface::GetLauncherQuantity(int anLauncher) { return mpPlatformObj->GetLauncherQuantity(anLauncher); } ! bool tcPlatformInterface::HasOrders() { return mpPlatformObj->mcAI.HasOrders(); } ! tcOrder tcPlatformInterface::GetCurrentOrder() { return mpPlatformObj->mcAI.GetCurrentOrder(); } ! void tcPlatformInterface::CompletedOrder() { mpPlatformObj->mcAI.CompletedOrder(); } ! void tcPlatformInterface::AddOrder(std::string order_text, long data) { tcOrder o; o.mstrOrdername = order_text; --- 450,475 ---- } ! int tcPlatformInterface::GetLauncherQuantity(int anLauncher) ! { return mpPlatformObj->GetLauncherQuantity(anLauncher); } ! bool tcPlatformInterface::HasOrders() ! { return mpPlatformObj->mcAI.HasOrders(); } ! tcOrder tcPlatformInterface::GetCurrentOrder() ! { return mpPlatformObj->mcAI.GetCurrentOrder(); } ! void tcPlatformInterface::CompletedOrder() ! { mpPlatformObj->mcAI.CompletedOrder(); } ! void tcPlatformInterface::AddOrder(std::string order_text, long data) ! { tcOrder o; o.mstrOrdername = order_text; *************** *** 448,452 **** } ! void tcPlatformInterface::AddNavOrder(float afLon_rad, float afLat_rad) { tcOrder o; o.mstrOrdername = "Nav"; --- 478,483 ---- } ! void tcPlatformInterface::AddNavOrder(float afLon_rad, float afLat_rad) ! { tcOrder o; o.mstrOrdername = "Nav"; *************** *** 479,483 **** } ! void tcPlatformInterface::GetSensorMap(void) { UINT8 nAlliance = mpPlatformObj->mnAlliance; mpSensorMap = mpSimState->mcSensorMap.GetMap(nAlliance); --- 510,515 ---- } ! void tcPlatformInterface::GetSensorMap(void) ! { UINT8 nAlliance = mpPlatformObj->mnAlliance; mpSensorMap = mpSimState->mcSensorMap.GetMap(nAlliance); *************** *** 486,495 **** // sensor map commands ! tcTrackIterator tcPlatformInterface::GetFirstTrack(void) { tcTrackIterator t; t.mnID = -1; if (mpSensorMap == NULL) {return t;} ! if (mpSensorMap->GetTrackCount()==0) { t.mnID = NULL_INDEX; return t; --- 518,529 ---- // sensor map commands ! tcTrackIterator tcPlatformInterface::GetFirstTrack(void) ! { tcTrackIterator t; t.mnID = -1; if (mpSensorMap == NULL) {return t;} ! if (mpSensorMap->GetTrackCount()==0) ! { t.mnID = NULL_INDEX; return t; *************** *** 499,552 **** } ! int tcPlatformInterface::GetTrackCount(void) { if (mpSensorMap == NULL) {return 0;} return mpSensorMap->GetTrackCount(); } ! tcTrackIterator tcPlatformInterface::GetNextTrack(long nPos) { ! tcTrack *pTrack; tcTrackIterator t; tnPoolIndex nKey = nPos; ! mpSensorMap->GetNextTrack(nKey,pTrack); t.mnKey = nKey; ! tcTrack *pt = (tcTrack*)&t; ! *pt = *pTrack; return t; } ! ! tcTrack tcPlatformInterface::GetClosestAirTrack(float afMaxRange_km, UINT8 anAffiliation) { ! return GetClosestTrack(afMaxRange_km, PTYPE_AIR, anAffiliation); } ! tcTrack tcPlatformInterface::GetClosestSurfaceTrack(float afMaxRange_km, UINT8 anAffiliation) { ! return GetClosestTrack(afMaxRange_km, PTYPE_SURFACE, anAffiliation); } ! tcTrack tcPlatformInterface::GetClosestMissileTrack(float afMaxRange_km, UINT8 anAffiliation) { ! return GetClosestTrack(afMaxRange_km, PTYPE_MISSILE, anAffiliation); } // includes unknowns as matches to all affiliations ! tcTrack tcPlatformInterface::GetClosestTrack(float afMaxRange_km, ! UINT16 anClassMask, UINT8 anAffiliation) { ! tcTrack track; ! tcTrack *pTrack; ! track.mnID = NULL_INDEX; if (mpSensorMap == NULL) {return track;} int nCount = mpSensorMap->GetTrackCount(); ! if (nCount==0) { return track; } tnPoolIndex nPos = mpSensorMap->GetStartTrackPosition(); float fMinRange_km = 1e15f; ! for(int n=0;n<nCount;n++) { mpSensorMap->GetNextTrack(nPos, pTrack); bool bAffilMatch = (pTrack->mnAffiliation == anAffiliation) || (pTrack->mnAffiliation == UNKNOWN); ! if ((bAffilMatch)&&(pTrack->mnClassification & anClassMask)) { tsGeoPoint p; --- 533,604 ---- } ! int tcPlatformInterface::GetTrackCount(void) ! { if (mpSensorMap == NULL) {return 0;} return mpSensorMap->GetTrackCount(); } ! tcTrackIterator tcPlatformInterface::GetNextTrack(long nPos) ! { ! tcSensorMapTrack *pSMTrack; tcTrackIterator t; tnPoolIndex nKey = nPos; ! mpSensorMap->GetNextTrack(nKey, pSMTrack); t.mnKey = nKey; ! tcSensorMapTrack *pt = (tcSensorMapTrack*)&t; ! *pt = *pSMTrack; return t; } ! /** ! * @param maxEngagements use 0 to ignore engagement count ! */ ! tcSensorMapTrack tcPlatformInterface::GetClosestAirTrack(float afMaxRange_km, UINT8 anAffiliation, int maxEngagements) ! { ! return GetClosestTrack(afMaxRange_km, PTYPE_AIR, anAffiliation, maxEngagements); } ! /** ! * @param maxEngagements use 0 to ignore engagement count ! */ ! tcSensorMapTrack tcPlatformInterface::GetClosestSurfaceTrack(float afMaxRange_km, UINT8 anAffiliation, int maxEngagements) ! { ! return GetClosestTrack(afMaxRange_km, PTYPE_SURFACE, anAffiliation, maxEngagements); } ! /** ! * @param maxEngagements use 0 to ignore engagement count ! */ ! tcSensorMapTrack tcPlatformInterface::GetClosestMissileTrack(float afMaxRange_km, UINT8 anAffiliation, int maxEngagements) ! { ! return GetClosestTrack(afMaxRange_km, PTYPE_MISSILE, anAffiliation, maxEngagements); } // includes unknowns as matches to all affiliations ! /** ! * @param maxEngagements use 0 to ignore engagement count ! */ ! tcSensorMapTrack tcPlatformInterface::GetClosestTrack(float afMaxRange_km, ! UINT16 anClassMask, UINT8 anAffiliation, int maxEngagements) { ! tcSensorMapTrack track; ! tcSensorMapTrack *pTrack; if (mpSensorMap == NULL) {return track;} int nCount = mpSensorMap->GetTrackCount(); ! if (nCount==0) ! { return track; } tnPoolIndex nPos = mpSensorMap->GetStartTrackPosition(); float fMinRange_km = 1e15f; ! for(int n=0;n<nCount;n++) ! { mpSensorMap->GetNextTrack(nPos, pTrack); bool bAffilMatch = (pTrack->mnAffiliation == anAffiliation) || (pTrack->mnAffiliation == UNKNOWN); ! bool engagementsMatch = (maxEngagements == 0) || (pTrack->GetEngagedCount() <= maxEngagements); ! if ((bAffilMatch)&&(pTrack->mnClassification & anClassMask)&&(engagementsMatch)) { tsGeoPoint p; *************** *** 555,559 **** p.mfLon_rad = pTrack->mfLon_rad; float fRange_km = mpPlatformObj->mcKin.RangeToKm(&p); ! if ((fRange_km <= afMaxRange_km)&&(fRange_km < fMinRange_km)) { track = *pTrack; fMinRange_km = fRange_km; --- 607,612 ---- p.mfLon_rad = pTrack->mfLon_rad; float fRange_km = mpPlatformObj->mcKin.RangeToKm(&p); ! if ((fRange_km <= afMaxRange_km)&&(fRange_km < fMinRange_km)) ! { track = *pTrack; fMinRange_km = fRange_km; *************** *** 569,573 **** tcTrackList trackList; ! tcTrack *pTrack; wxASSERT(mpSensorMap); --- 622,626 ---- tcTrackList trackList; ! tcSensorMapTrack *pTrack; wxASSERT(mpSensorMap); *************** *** 606,610 **** * @return intercept heading to track in radians. */ ! float tcPlatformInterface::GetInterceptHeadingToTrack(const tcTrack& track) { float fHeading_rad, fTTI; --- 659,663 ---- * @return intercept heading to track in radians. */ ! float tcPlatformInterface::GetInterceptHeadingToTrack(const tcSensorMapTrack& track) { float fHeading_rad, fTTI; *************** *** 618,622 **** * @return range in km */ ! float tcPlatformInterface::GetRangeToTrack(const tcTrack& track) { wxASSERT(mpPlatformObj); --- 671,675 ---- * @return range in km */ ! float tcPlatformInterface::GetRangeToTrack(const tcSensorMapTrack& track) { wxASSERT(mpPlatformObj); *************** *** 631,635 **** * @return time to intercept in seconds. */ ! float tcPlatformInterface::SetHeadingToInterceptTrack(tcTrack track) { float fHeading_rad, fTTI; --- 684,688 ---- * @return time to intercept in seconds. */ ! float tcPlatformInterface::SetHeadingToInterceptTrack(tcSensorMapTrack track) { float fHeading_rad, fTTI; *************** *** 641,649 **** ! tcTrack tcPlatformInterface::GetTrackById(long id) { ! tcTrack track; - track.mnID = -1; // init to invalid tcGameObject* obj = mpSimState->GetObject(id); if (obj == NULL) return track; // target not found --- 694,701 ---- ! tcSensorMapTrack tcPlatformInterface::GetTrackById(long id) { ! tcSensorMapTrack track; tcGameObject* obj = mpSimState->GetObject(id); if (obj == NULL) return track; // target not found *************** *** 665,670 **** else { ! // returns false if not found ! mpSimState->mcSensorMap.GetTrack(obj->mnID,track,mpPlatformObj->mnAlliance); return track; } --- 717,723 ---- else { ! tcSensorMapTrack *pTrack = ! mpSimState->mcSensorMap.GetSensorMapTrack(obj->mnID, mpPlatformObj->mnAlliance); ! if (pTrack) track = *pTrack; return track; } Index: tcPlatformInterfaceExtension.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/scriptinterface/tcPlatformInterfaceExtension.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** tcPlatformInterfaceExtension.cpp 8 Jan 2004 23:54:27 -0000 1.6 --- tcPlatformInterfaceExtension.cpp 16 Feb 2004 01:06:23 -0000 1.7 *************** *** 57,60 **** --- 57,77 ---- ; + object class_smtrack = class_<tcSensorMapTrack>("tcSMTrack") + .def_readonly("Alt",&tcSensorMapTrack::mfAlt_m) + .def_readonly("Lat",&tcSensorMapTrack::mfLat_rad) + .def_readonly("Lon",&tcSensorMapTrack::mfLon_rad) + .def_readonly("Speed",&tcSensorMapTrack::mfSpeed_kts) + .def_readonly("Heading_rad",&tcSensorMapTrack::mfHeading_rad) + .def_readonly("Classification",&tcSensorMapTrack::mnClassification) + .def_readonly("Affiliation",&tcSensorMapTrack::mnAffiliation) + .def_readonly("ID",&tcSensorMapTrack::mnID) + .def("IsAir", &tcSensorMapTrack::IsAir) + .def("IsMissile", &tcSensorMapTrack::IsMissile) + .def("IsSurface", &tcSensorMapTrack::IsSurface) + .def("IsValid", &tcSensorMapTrack::IsValid) + .def("Offset", &tcSensorMapTrack::Offset) + .def("GetEngagedCount", &tcSensorMapTrack::GetEngagedCount) + ; + class_<tcTrackIterator>("TrackIterator") Index: tcTrackInterface.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/scriptinterface/tcTrackInterface.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** tcTrackInterface.cpp 26 Oct 2003 21:21:17 -0000 1.3 --- tcTrackInterface.cpp 16 Feb 2004 01:06:23 -0000 1.4 *************** *** 38,52 **** namespace ScriptInterface { ! void tcTrackInterface::DropTrack() { if (mpSensorMap == NULL) {return;} mpSensorMap->DropTrack(mnTrackID); } ! void tcTrackInterface::SetAffiliation(UINT8 anAffil) { if (mpSensorMap == NULL) {return;} if (mnTrackID == 0xFFFFFFFF) {return;} tcSensorMapTrack *pSMTrack = mpSensorMap->GetSensorMapTrack(mnTrackID); if (pSMTrack == NULL) {return;} ! pSMTrack->track.mnAffiliation = anAffil; } --- 38,54 ---- namespace ScriptInterface { ! void tcTrackInterface::DropTrack() ! { if (mpSensorMap == NULL) {return;} mpSensorMap->DropTrack(mnTrackID); } ! void tcTrackInterface::SetAffiliation(UINT8 anAffil) ! { if (mpSensorMap == NULL) {return;} if (mnTrackID == 0xFFFFFFFF) {return;} tcSensorMapTrack *pSMTrack = mpSensorMap->GetSensorMapTrack(mnTrackID); if (pSMTrack == NULL) {return;} ! pSMTrack->mnAffiliation = anAffil; } |