[Gcblue-commits] gcb_wx/src/sim tcESMSensor.cpp,1.1,1.2 tcGameObjIterator.cpp,1.1,1.2 tcLauncherStat
Status: Alpha
Brought to you by:
ddcforge
Update of /cvsroot/gcblue/gcb_wx/src/sim In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26928/src/sim Modified Files: tcESMSensor.cpp tcGameObjIterator.cpp tcLauncherState.cpp tcRadar.cpp tcSensorState.cpp tcSimState.cpp Log Message: Index: tcESMSensor.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcESMSensor.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** tcESMSensor.cpp 7 Feb 2004 02:19:54 -0000 1.1 --- tcESMSensor.cpp 12 Feb 2004 01:54:49 -0000 1.2 *************** *** 21,24 **** --- 21,26 ---- #include "aerror.h" #include "nsNav.h" + #include "tcGameObject.h" + #include "tcRadar.h" /** *************** *** 44,49 **** * */ ! bool tcESMSensor::IsDetected(const tsESMTargetInfo& asETI, float& rfAz_rad) { float fTargetAz_rad; float fTargetRange_km; --- 46,67 ---- * */ ! bool tcESMSensor::IsDetected(const tcRadar* emitter, float& rfAz_rad) { + wxASSERT(emitter); + wxASSERT(emitter->parent); + + if (emitter == NULL) {return false;} + if ((!emitter->mbActive)||(emitter->IsSemiactive())) {return false;} + + const tcKinematics& emitter_kin = emitter->parent->mcKin; + + float emitterERP_dBW = emitter->mpDBObj->mfERP_dBW; + float emitterFOV_rad = C_PIOVER180*emitter->mpDBObj->mfFieldOfView_deg; + + // look az is az relative to north, might have to change later + float lookAz_rad = parent->mcKin.mfHeading_rad + mountAz_rad; + float emitterAz_rad = emitter_kin.mfHeading_rad + emitter->mountAz_rad; + + float fTargetAz_rad; float fTargetRange_km; *************** *** 52,62 **** bool bInEmitterScan = false; ! if (mpDBObj==NULL) ! { ! return false; ! } ! fTargetAz_rad = nsNav::GCHeadingApprox_rad(msCurrentPos.mfLat_rad,msCurrentPos.mfLon_rad, ! asETI.mfLat_rad,asETI.mfLon_rad); rfAz_rad = fTargetAz_rad; if (rfAz_rad < 0) {rfAz_rad += C_TWOPI;} --- 70,80 ---- bool bInEmitterScan = false; ! wxASSERT(mpDBObj); ! wxASSERT(parent); ! const tcKinematics& sensor_kin = parent->mcKin; // kinematic state of parent object ! ! fTargetAz_rad = nsNav::GCHeadingApprox_rad(sensor_kin.mfLat_rad, sensor_kin.mfLon_rad, ! emitter_kin.mfLat_rad, emitter_kin.mfLon_rad); rfAz_rad = fTargetAz_rad; if (rfAz_rad < 0) {rfAz_rad += C_TWOPI;} *************** *** 68,80 **** else { float fHalfFOV_rad = 0.5f*C_PIOVER180*mpDBObj->mfFieldOfView_deg; ! fCoverageAz1 = mfLookAz_rad - fHalfFOV_rad; ! fCoverageAz2 = mfLookAz_rad + fHalfFOV_rad; ! bInSearchVolume = AngleWithinRange(fTargetAz_rad,fCoverageAz1,fCoverageAz2) != 0; if (!bInSearchVolume) {return false;} } // check same for emitter ! if (asETI.mfEmitterFOV_rad >= C_TWOPIM) { bInEmitterScan = true; --- 86,99 ---- else { + float lookAz_rad = sensor_kin.mfHeading_rad + mountAz_rad; float fHalfFOV_rad = 0.5f*C_PIOVER180*mpDBObj->mfFieldOfView_deg; ! fCoverageAz1 = lookAz_rad - fHalfFOV_rad; ! fCoverageAz2 = lookAz_rad + fHalfFOV_rad; ! bInSearchVolume = AngleWithinRange(fTargetAz_rad, fCoverageAz1, fCoverageAz2) != 0; if (!bInSearchVolume) {return false;} } // check same for emitter ! if (emitterFOV_rad >= C_TWOPIM) { bInEmitterScan = true; *************** *** 82,97 **** else { ! float fEmitterAz_rad = fTargetAz_rad + C_PI; // az of this plat relative to emitter ! if (fEmitterAz_rad > C_TWOPI) {fEmitterAz_rad -= C_TWOPI;} ! float fHalfFOV_rad = 0.5f*asETI.mfEmitterFOV_rad; ! fCoverageAz1 = asETI.mfEmitterAz_rad - fHalfFOV_rad; ! fCoverageAz2 = asETI.mfEmitterAz_rad + fHalfFOV_rad; ! bInEmitterScan = AngleWithinRange(fEmitterAz_rad,fCoverageAz1,fCoverageAz2) != 0; if (!bInEmitterScan) {return false;} } ! float fRadarHorizon = C_RADARHOR*(sqrtf(asETI.mfAlt_m) +sqrtf(msCurrentPos.mfAlt_m)); ! fTargetRange_km = C_RADTOKM*nsNav::GCDistanceApprox_rad(msCurrentPos.mfLat_rad,msCurrentPos.mfLon_rad, ! asETI.mfLat_rad,asETI.mfLon_rad); //rfRange_km = fTargetRange_km; if (fTargetRange_km > fRadarHorizon) --- 101,117 ---- else { ! float esmBearing_rad = fTargetAz_rad + C_PI; // bearing of ESM platform relative to emitter ! if (esmBearing_rad > C_TWOPI) {esmBearing_rad -= C_TWOPI;} ! float fHalfFOV_rad = 0.5f * emitterFOV_rad; ! fCoverageAz1 = emitterAz_rad - fHalfFOV_rad; ! fCoverageAz2 = emitterAz_rad + fHalfFOV_rad; ! bInEmitterScan = AngleWithinRange(esmBearing_rad, fCoverageAz1, fCoverageAz2) != 0; if (!bInEmitterScan) {return false;} } ! float fRadarHorizon = C_RADARHOR*(sqrtf(emitter_kin.mfAlt_m) + sqrtf(sensor_kin.mfAlt_m)); ! fTargetRange_km = C_RADTOKM*nsNav::GCDistanceApprox_rad( ! sensor_kin.mfLat_rad, sensor_kin.mfLon_rad, ! emitter_kin.mfLat_rad, emitter_kin.mfLon_rad); //rfRange_km = fTargetRange_km; if (fTargetRange_km > fRadarHorizon) *************** *** 100,104 **** } ! float fSNR = asETI.mfEmitterERP_dBW + 20.0f*(log10f(mpDBObj->mfRefRange_km)-log10f(fTargetRange_km)); --- 120,124 ---- } ! float fSNR = emitterERP_dBW + 20.0f*(log10f(mpDBObj->mfRefRange_km)-log10f(fTargetRange_km)); Index: tcGameObjIterator.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcGameObjIterator.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** tcGameObjIterator.cpp 7 Feb 2004 02:19:54 -0000 1.1 --- tcGameObjIterator.cpp 12 Feb 2004 01:54:49 -0000 1.2 *************** *** 69,73 **** { long id; ! simState->maPlatformState.GetNextAssoc(currentPos, id, currentObj); nIterated++; --- 69,76 ---- { long id; ! if (nIterated < nSize) // kind of a hack, nIterated > nSize is used for end condition ! { ! simState->maPlatformState.GetNextAssoc(currentPos, id, currentObj); ! } nIterated++; Index: tcLauncherState.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcLauncherState.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** tcLauncherState.cpp 7 Feb 2004 02:19:54 -0000 1.6 --- tcLauncherState.cpp 12 Feb 2004 01:54:49 -0000 1.7 *************** *** 177,190 **** } tnPoolIndex nSensorKey = pMissileDBObj->GetPrimarySeekerKey(); - - float seekerAz = parent->mcKin.mfHeading_rad + ldata.pointingAngle; - tsGeoPoint seekerLoc; - seekerLoc.Set((float)parent->mcKin.mfLon_rad,(float)parent->mcKin.mfLat_rad); long fcID = parent->mnID; unsigned fcIdx = ldata.fireControlSensorIdx; ! bool canDetect = ! simState->RadarCanDetect(nSensorKey,targetObj,seekerLoc,seekerAz, fcID, fcIdx); if (canDetect) { --- 177,187 ---- } tnPoolIndex nSensorKey = pMissileDBObj->GetPrimarySeekerKey(); long fcID = parent->mnID; unsigned fcIdx = ldata.fireControlSensorIdx; ! bool canDetect = simState->RadarCanDetect(nSensorKey, targetObj, ! parent, ldata.pointingAngle, fcID, fcIdx); ! if (canDetect) { Index: tcRadar.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcRadar.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** tcRadar.cpp 7 Feb 2004 02:19:54 -0000 1.1 --- tcRadar.cpp 12 Feb 2004 01:54:49 -0000 1.2 *************** *** 103,108 **** } ! ! const tcKinematics *kin = &target->mcKin; if (mpDBObj->mfFieldOfView_deg >= 360.0f) { --- 103,108 ---- } ! const tcKinematics *rdr_kin = &parent->mcKin; // kinematic state of radar parent object ! const tcKinematics *tgt_kin = &target->mcKin; // state of target object if (mpDBObj->mfFieldOfView_deg >= 360.0f) { *************** *** 111,126 **** else { ! fTargetAz_rad = nsNav::GCHeadingApprox_rad(msCurrentPos.mfLat_rad,msCurrentPos.mfLon_rad, ! kin->mfLat_rad,kin->mfLon_rad); float fHalfFOV_rad = 0.5f*C_PIOVER180*mpDBObj->mfFieldOfView_deg; ! fCoverageAz1 = mfLookAz_rad - fHalfFOV_rad; ! fCoverageAz2 = mfLookAz_rad + fHalfFOV_rad; bInSearchVolume = AngleWithinRange(fTargetAz_rad,fCoverageAz1,fCoverageAz2) != 0; if (!bInSearchVolume) {range_km=0;return false;} } ! float fRadarHorizon = C_RADARHOR*(sqrtf(kin->mfAlt_m) +sqrtf(msCurrentPos.mfAlt_m)); ! fTargetRange_km = C_RADTOKM*nsNav::GCDistanceApprox_rad(msCurrentPos.mfLat_rad,msCurrentPos.mfLon_rad, ! kin->mfLat_rad,kin->mfLon_rad); range_km = fTargetRange_km; if (fTargetRange_km > fRadarHorizon) --- 111,127 ---- else { ! float lookAz_rad = parent->mcKin.mfHeading_rad + mountAz_rad; ! fTargetAz_rad = nsNav::GCHeadingApprox_rad(rdr_kin->mfLat_rad, rdr_kin->mfLon_rad, ! tgt_kin->mfLat_rad, tgt_kin->mfLon_rad); float fHalfFOV_rad = 0.5f*C_PIOVER180*mpDBObj->mfFieldOfView_deg; ! fCoverageAz1 = lookAz_rad - fHalfFOV_rad; ! fCoverageAz2 = lookAz_rad + fHalfFOV_rad; bInSearchVolume = AngleWithinRange(fTargetAz_rad,fCoverageAz1,fCoverageAz2) != 0; if (!bInSearchVolume) {range_km=0;return false;} } ! float fRadarHorizon = C_RADARHOR*(sqrtf(tgt_kin->mfAlt_m) +sqrtf(rdr_kin->mfAlt_m)); ! fTargetRange_km = C_RADTOKM*nsNav::GCDistanceApprox_rad(rdr_kin->mfLat_rad, rdr_kin->mfLon_rad, ! tgt_kin->mfLat_rad,tgt_kin->mfLon_rad); range_km = fTargetRange_km; if (fTargetRange_km > fRadarHorizon) *************** *** 254,257 **** --- 255,290 ---- { if (!UpdateScan(t)) return; // only update once per scan period + wxASSERT(parent); + + tcRect region; + GetTestArea(region); + + /* + tnPoolIndex aTargetKeys[100]; + tnPoolIndex nTargetID; + int nCount; + + tsGeoPoint currentpos; + tcGameObject *pTarget; + + currentpos.Set((float)applat->mcKin.mfLon_rad,(float)applat->mcKin.mfLat_rad,applat->mcKin.mfAlt_m); + apSensorState->UpdateCoverage(currentpos,applat->mcKin.mfHeading_rad); + apSensorState->GetTestArea(region); + nCount = GetPlatformsWithinRegion(aTargetKeys, 100, ®ion); + bool bOwnAllianceUpdate = mpUserInfo->IsOwnAlliance(applat->mnAlliance); + for(int k=0;k<nCount;k++) { + nTargetID = aTargetKeys[k]; + if (nTargetID != applat->mnID) { // no self detection + pTarget = GetObject(nTargetID); + tcRadar *pRadarSS = dynamic_cast<tcRadar*>(apSensorState); + if (pRadarSS) { + ProcessRadarDetection(applat,pTarget,pRadarSS); + } + else if (tcESMSensor *pESMSS = dynamic_cast<tcESMSensor*>(apSensorState)) { + ProcessESMDetection(applat,pTarget,pESMSS); + } + } + } + */ } Index: tcSensorState.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcSensorState.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** tcSensorState.cpp 7 Feb 2004 02:19:54 -0000 1.5 --- tcSensorState.cpp 12 Feb 2004 01:54:49 -0000 1.6 *************** *** 30,56 **** void tcSensorState::GetTestArea(tcRect& region) { ! if (mpDBObj==NULL) {return;} float fRangeX_rad, fRangeY_rad; fRangeY_rad = C_KMTORAD*mpDBObj->mfMaxRange_km; ! fRangeX_rad = fRangeY_rad/cosf(msCurrentPos.mfLat_rad); ! ! region.left = msCurrentPos.mfLon_rad - fRangeX_rad; ! region.right = msCurrentPos.mfLon_rad + fRangeX_rad; ! region.bottom = msCurrentPos.mfLat_rad - fRangeY_rad; ! region.top = msCurrentPos.mfLat_rad + fRangeY_rad; ! } ! /** ! * may want to change this to use a pointer to the platform ! * to get platform info vs. passing this information with ! * methods like this. ! * @param az_rad platform heading ! */ ! void tcSensorState::UpdateCoverage(tsGeoPoint p,float az_rad) ! { ! msCurrentPos.mfLon_rad = p.mfLon_rad; ! msCurrentPos.mfLat_rad = p.mfLat_rad; ! mfLookAz_rad = az_rad + mountAz_rad; ! msCurrentPos.mfAlt_m = p.mfAlt_m + mfSensorHeight_m; } --- 30,44 ---- void tcSensorState::GetTestArea(tcRect& region) { ! wxASSERT(mpDBObj); ! wxASSERT(parent); ! //if (mpDBObj==NULL) {return;} float fRangeX_rad, fRangeY_rad; fRangeY_rad = C_KMTORAD*mpDBObj->mfMaxRange_km; ! fRangeX_rad = fRangeY_rad/cosf(parent->mcKin.mfLat_rad); ! region.left = parent->mcKin.mfLon_rad - fRangeX_rad; ! region.right = parent->mcKin.mfLon_rad + fRangeX_rad; ! region.bottom = parent->mcKin.mfLat_rad - fRangeY_rad; ! region.top = parent->mcKin.mfLat_rad + fRangeY_rad; } *************** *** 87,95 **** file.Read(&mfCurrentScanPeriod_s,sizeof(mfCurrentScanPeriod_s)); file.Read(&mfLastScan,sizeof(mfLastScan)); - file.Read(&mfLookAz_rad,sizeof(mfLookAz_rad)); file.Read(&mountAz_rad,sizeof(mountAz_rad)); file.Read(&mfSensorHeight_m,sizeof(mfSensorHeight_m)); file.Read(&mnMode,sizeof(mnMode)); - file.Read(&msCurrentPos,sizeof(msCurrentPos)); } else --- 75,81 ---- *************** *** 99,107 **** file.Write(&mfCurrentScanPeriod_s,sizeof(mfCurrentScanPeriod_s)); file.Write(&mfLastScan,sizeof(mfLastScan)); - file.Write(&mfLookAz_rad,sizeof(mfLookAz_rad)); file.Write(&mountAz_rad,sizeof(mountAz_rad)); file.Write(&mfSensorHeight_m,sizeof(mfSensorHeight_m)); file.Write(&mnMode,sizeof(mnMode)); - file.Write(&msCurrentPos,sizeof(msCurrentPos)); } } --- 85,91 ---- *************** *** 140,150 **** mfCurrentScanPeriod_s = ss.mfCurrentScanPeriod_s; mfLastScan = ss.mfLastScan; - mfLookAz_rad = ss.mfLookAz_rad; mountAz_rad = ss.mountAz_rad; ! mfSensorHeight_m =ss.mfSensorHeight_m; mnDBKey = ss.mnDBKey; mnMode = ss.mnMode; mpDBObj = ss.mpDBObj; ! msCurrentPos = ss.msCurrentPos; return(*this); } --- 124,133 ---- mfCurrentScanPeriod_s = ss.mfCurrentScanPeriod_s; mfLastScan = ss.mfLastScan; mountAz_rad = ss.mountAz_rad; ! mfSensorHeight_m = ss.mfSensorHeight_m; mnDBKey = ss.mnDBKey; mnMode = ss.mnMode; mpDBObj = ss.mpDBObj; ! parent = NULL; return(*this); } Index: tcSimState.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcSimState.cpp,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** tcSimState.cpp 7 Feb 2004 02:19:54 -0000 1.30 --- tcSimState.cpp 12 Feb 2004 01:54:49 -0000 1.31 *************** *** 126,143 **** * If this is used with a non forward looking radar, it will not work * correctly. * @param fcID id of platform that has fire control sensor (for semi-active) * @param fcIdx index of fire control sensor on fc platform (for semi-active) */ bool tcSimState::RadarCanDetect(tnPoolIndex anSensorKey, const tcGameObject* target, ! tsGeoPoint asSensorLocation, float afSensorAz, long fcID, unsigned fcIdx) { float fRange_km; ! if (mcDefaultRadar.InitFromDB(mpDatabase,anSensorKey,0)==false) { return false; } mcDefaultRadar.mbActive = true; if (mcDefaultRadar.IsSemiactive()) --- 126,146 ---- * If this is used with a non forward looking radar, it will not work * correctly. + * @param reference object that radar is assumed co-located with + * @param afSensorAz mount azimuth relative to reference obj heading * @param fcID id of platform that has fire control sensor (for semi-active) * @param fcIdx index of fire control sensor on fc platform (for semi-active) */ bool tcSimState::RadarCanDetect(tnPoolIndex anSensorKey, const tcGameObject* target, ! tcGameObject* reference, float afSensorAz, long fcID, unsigned fcIdx) { float fRange_km; ! if (mcDefaultRadar.InitFromDB(mpDatabase, anSensorKey, afSensorAz)==false) { return false; } mcDefaultRadar.mbActive = true; + mcDefaultRadar.SetParent(reference); if (mcDefaultRadar.IsSemiactive()) *************** *** 145,149 **** mcDefaultRadar.SetIlluminator(fcID, fcIdx); } ! mcDefaultRadar.UpdateCoverage(asSensorLocation,afSensorAz); return mcDefaultRadar.CanDetectTarget(target,fRange_km); } --- 148,152 ---- mcDefaultRadar.SetIlluminator(fcID, fcIdx); } ! return mcDefaultRadar.CanDetectTarget(target,fRange_km); } *************** *** 738,754 **** /********************************************************************/ ! bool tcSimState::IsDetectedESM(tcESMSensor *apESM, tcRadar *apEmitterRadar, ! tcGameObject *apEmitterPlatform, float& rfAz_rad) { ! if ((!apEmitterRadar->mbActive)||(apEmitterRadar->IsSemiactive())) {return false;} ! tsESMTargetInfo sETI; ! sETI.mfLat_rad = (float)apEmitterPlatform->mcKin.mfLat_rad; ! sETI.mfLon_rad = (float)apEmitterPlatform->mcKin.mfLon_rad; ! sETI.mfAlt_m = apEmitterPlatform->mcKin.mfAlt_m; ! sETI.mfEmitterERP_dBW = apEmitterRadar->mpDBObj->mfERP_dBW; ! sETI.mfEmitterFOV_rad = C_PIOVER180*apEmitterRadar->mpDBObj->mfFieldOfView_deg; ! // look az is az relative to north, might have to change later ! sETI.mfEmitterAz_rad = apEmitterRadar->mfLookAz_rad; // + apEmitterPlatform->mcKin.mfHeading_rad; ! return apESM->IsDetected(sETI,rfAz_rad); } --- 741,747 ---- /********************************************************************/ ! bool tcSimState::IsDetectedESM(tcESMSensor *apESM, tcRadar *apEmitterRadar, float& rfAz_rad) { ! return apESM->IsDetected(apEmitterRadar, rfAz_rad); } *************** *** 768,772 **** if (tcMissileObject *pMissileObj = dynamic_cast<tcMissileObject*>(apTarget)) { tcRadar *pRadarSS = pMissileObj->GetSensorState(); ! bDetected = IsDetectedESM(apESMSS, pRadarSS, apTarget, fAz_rad); if ((bDetected)&&(nEmitters < MAX_EMITTERS)) { maEmitter[nEmitters++] = pRadarSS->mnDBKey; --- 761,765 ---- if (tcMissileObject *pMissileObj = dynamic_cast<tcMissileObject*>(apTarget)) { tcRadar *pRadarSS = pMissileObj->GetSensorState(); ! bDetected = IsDetectedESM(apESMSS, pRadarSS, fAz_rad); if ((bDetected)&&(nEmitters < MAX_EMITTERS)) { maEmitter[nEmitters++] = pRadarSS->mnDBKey; *************** *** 780,784 **** tcRadar *pRadarSS = dynamic_cast<tcRadar*>(pSensorArray->at(n)); if (pRadarSS) { ! if (IsDetectedESM(apESMSS, pRadarSS, apTarget, fAz_rad)) { bDetected = true; if (nEmitters < MAX_EMITTERS) { --- 773,778 ---- tcRadar *pRadarSS = dynamic_cast<tcRadar*>(pSensorArray->at(n)); if (pRadarSS) { ! if (IsDetectedESM(apESMSS, pRadarSS, fAz_rad)) ! { bDetected = true; if (nEmitters < MAX_EMITTERS) { *************** *** 871,875 **** currentpos.Set((float)applat->mcKin.mfLon_rad,(float)applat->mcKin.mfLat_rad,applat->mcKin.mfAlt_m); ! apSensorState->UpdateCoverage(currentpos,applat->mcKin.mfHeading_rad); apSensorState->GetTestArea(region); nCount = GetPlatformsWithinRegion(aTargetKeys, 100, ®ion); --- 865,869 ---- currentpos.Set((float)applat->mcKin.mfLon_rad,(float)applat->mcKin.mfLat_rad,applat->mcKin.mfAlt_m); ! //apSensorState->UpdateCoverage(currentpos,applat->mcKin.mfHeading_rad); apSensorState->GetTestArea(region); nCount = GetPlatformsWithinRegion(aTargetKeys, 100, ®ion); *************** *** 905,909 **** currentpos.Set((float)apGameObj->mcKin.mfLon_rad,(float)apGameObj->mcKin.mfLat_rad, apGameObj->mcKin.mfAlt_m); ! apRadarSS->UpdateCoverage(currentpos,apGameObj->mcKin.mfHeading_rad); apRadarSS->GetTestArea(region); nCount = GetPlatformsWithinRegion(aTargetKeys, 100, ®ion); --- 899,903 ---- currentpos.Set((float)apGameObj->mcKin.mfLon_rad,(float)apGameObj->mcKin.mfLat_rad, apGameObj->mcKin.mfAlt_m); ! //apRadarSS->UpdateCoverage(currentpos,apGameObj->mcKin.mfHeading_rad); apRadarSS->GetTestArea(region); nCount = GetPlatformsWithinRegion(aTargetKeys, 100, ®ion); *************** *** 1038,1042 **** } /********************************************************************/ ! void tcSimState::UpdateSeeker(tcGameObject *applat, tcRadar *apRadarSS) { long nTargetID; tsGeoPoint currentpos; --- 1032,1037 ---- } /********************************************************************/ ! void tcSimState::UpdateSeeker(tcGameObject *applat, tcRadar *apRadarSS) ! { long nTargetID; tsGeoPoint currentpos; *************** *** 1052,1056 **** currentpos.Set((float)applat->mcKin.mfLon_rad,(float)applat->mcKin.mfLat_rad); ! apRadarSS->UpdateCoverage(currentpos,applat->mcKin.mfHeading_rad); pTrack = &apRadarSS->mcTrack; --- 1047,1051 ---- currentpos.Set((float)applat->mcKin.mfLon_rad,(float)applat->mcKin.mfLat_rad); ! //apRadarSS->UpdateCoverage(currentpos,applat->mcKin.mfHeading_rad); pTrack = &apRadarSS->mcTrack; |