[Gcblue-commits] gcb_wx/src/sim tcGameView.cpp,1.7,1.8 tcSensorMap.cpp,1.6,1.7 tcWeaponObject.cpp,1.
Status: Alpha
Brought to you by:
ddcforge
From: <ddc...@us...> - 2004-02-16 01:14:05
|
Update of /cvsroot/gcblue/gcb_wx/src/sim In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7358/src/sim Modified Files: tcGameView.cpp tcSensorMap.cpp tcWeaponObject.cpp Log Message: Index: tcGameView.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcGameView.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** tcGameView.cpp 4 Dec 2003 05:15:22 -0000 1.7 --- tcGameView.cpp 16 Feb 2004 01:06:23 -0000 1.8 *************** *** 605,622 **** int nSize = mpSS->mcSensorMap.GetTrackCount(anAlliance); tnPoolIndex poolpos = mpSS->mcSensorMap.GetStartTrackPosition(anAlliance); ! tcTrack *pTrack, track; int i = 0; ! while((i++<nSize)&&(rnIndex < MAXMAPOBJ)) { ! mpSS->mcSensorMap.GetNextTrack(poolpos,pTrack,anAlliance); ! if (pTrack->mnFlags & TRACK_BEARING_ONLY) { track = *pTrack; tcGameObject *pGameObj = mpSS->GetObject(pTrack->mnPassivePlatformID); ! if (pGameObj != NULL) { track.mfLat_rad = (float)pGameObj->mcKin.mfLat_rad; track.mfLon_rad = (float)pGameObj->mcKin.mfLon_rad; } } ! else { pTrack->GetPrediction(track,afStatusTime); } --- 605,629 ---- int nSize = mpSS->mcSensorMap.GetTrackCount(anAlliance); tnPoolIndex poolpos = mpSS->mcSensorMap.GetStartTrackPosition(anAlliance); ! tcTrack *pTrack; ! tcTrack track; ! tcSensorMapTrack *pSMTrack; int i = 0; ! while((i++<nSize)&&(rnIndex < MAXMAPOBJ)) ! { ! mpSS->mcSensorMap.GetNextTrack(poolpos, pSMTrack, anAlliance); ! pTrack = (tcTrack*)pSMTrack; ! if (pTrack->mnFlags & TRACK_BEARING_ONLY) ! { track = *pTrack; tcGameObject *pGameObj = mpSS->GetObject(pTrack->mnPassivePlatformID); ! if (pGameObj != NULL) ! { track.mfLat_rad = (float)pGameObj->mcKin.mfLat_rad; track.mfLon_rad = (float)pGameObj->mcKin.mfLon_rad; } } ! else ! { pTrack->GetPrediction(track,afStatusTime); } Index: tcSensorMap.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcSensorMap.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** tcSensorMap.cpp 15 Feb 2004 19:47:23 -0000 1.6 --- tcSensorMap.cpp 16 Feb 2004 01:06:23 -0000 1.7 *************** *** 93,97 **** if (weapon) { ! if (!weapon->IsIntendedTarget(track.mnID)) { engaged.erase(engaged.begin() + n); // weapon isn't targeting track --- 93,97 ---- if (weapon) { ! if (!weapon->IsIntendedTarget(tcTrack::mnID)) { engaged.erase(engaged.begin() + n); // weapon isn't targeting track *************** *** 122,126 **** if (platform) { ! if (!platform->IsInterceptingTrack(track.mnID)) { intercepts.erase(intercepts.begin() + n); // platform isn't intercepting track --- 122,126 ---- if (platform) { ! if (!platform->IsInterceptingTrack(tcTrack::mnID)) { intercepts.erase(intercepts.begin() + n); // platform isn't intercepting track *************** *** 198,202 **** // if track already has active data then do not update with passive data ! if (track.mnFlags & TRACK_ACTIVE) {return false;} // search for existing match --- 198,202 ---- // if track already has active data then do not update with passive data ! if (tcTrack::mnFlags & TRACK_ACTIVE) {return false;} // search for existing match *************** *** 228,236 **** tnPoolIndex mnDatabaseID) { ! if (mnClassification != 0) { ! track.mnClassification |= mnClassification; } ! if (meAffiliation != UNKNOWN) { ! track.mnAffiliation = meAffiliation; } } --- 228,238 ---- tnPoolIndex mnDatabaseID) { ! if (mnClassification != 0) ! { ! tcTrack::mnClassification |= mnClassification; } ! if (meAffiliation != UNKNOWN) ! { ! tcTrack::mnAffiliation = meAffiliation; } } *************** *** 239,245 **** // check if reporting sensor has reported, if so update report // if not add new report if slots are free ! bool tcSensorMapTrack::AddReport(const Sensor::tcSensorReport& report) { // search for existing match ! for(int n=0;n<mnContributors;n++) { tcSensorReport *pSensorReport = &maSensorReport[n]; //bool bActivePassiveMatch = (pSensorReport->mnFlags & report.mnFlags & TRACK_BEARING_ONLY); --- 241,249 ---- // check if reporting sensor has reported, if so update report // if not add new report if slots are free ! bool tcSensorMapTrack::AddReport(const Sensor::tcSensorReport& report) ! { // search for existing match ! for(int n=0;n<mnContributors;n++) ! { tcSensorReport *pSensorReport = &maSensorReport[n]; //bool bActivePassiveMatch = (pSensorReport->mnFlags & report.mnFlags & TRACK_BEARING_ONLY); *************** *** 251,255 **** } // add new report if there is room ! if (mnContributors < MAX_SENSOR_REPORTS) { maSensorReport[mnContributors] = report; mnContributors++; --- 255,260 ---- } // add new report if there is room ! if (mnContributors < MAX_SENSOR_REPORTS) ! { maSensorReport[mnContributors] = report; mnContributors++; *************** *** 259,271 **** } ! // check for update reports and update track ! void tcSensorMapTrack::UpdateTrack(void) { bool bUpdated = false; // find first new active report since last update and update track ! for(int n=0;n<mnContributors;n++) { tcSensorReport *pSensorReport = &maSensorReport[n]; if ((!(pSensorReport->mnFlags & (TRACK_BEARING_ONLY|TRACK_TRIANGULATED))) ! &&(pSensorReport->mfTimestamp > track.mfTimestamp)) { int bSpeedValid = (pSensorReport->mnFlags & TRACK_SPEED_VALID) ; --- 264,280 ---- } ! /** ! * check for update reports and update track ! */ ! void tcSensorMapTrack::UpdateTrack(void) ! { bool bUpdated = false; // find first new active report since last update and update track ! for(int n=0;n<mnContributors;n++) ! { tcSensorReport *pSensorReport = &maSensorReport[n]; if ((!(pSensorReport->mnFlags & (TRACK_BEARING_ONLY|TRACK_TRIANGULATED))) ! &&(pSensorReport->mfTimestamp > tcTrack::mfTimestamp)) { int bSpeedValid = (pSensorReport->mnFlags & TRACK_SPEED_VALID) ; *************** *** 273,293 **** int bAltValid = (pSensorReport->mnFlags & TRACK_ALT_VALID); ! track.mnID = pSensorReport->mnTrackID; ! track.mfLat_rad = pSensorReport->mfLat_rad; ! track.mfLon_rad = pSensorReport->mfLon_rad; ! track.mfTimestamp = pSensorReport->mfTimestamp; ! track.mnFlags = TRACK_ACTIVE; ! if (bHeadingValid) { ! track.mfHeading_rad = pSensorReport->mfHeading_rad; ! track.mnFlags |= TRACK_HEADING_VALID; } ! if (bSpeedValid) { ! track.mfSpeed_kts = pSensorReport->mfSpeed_kts; ! track.mnFlags |= TRACK_SPEED_VALID; } ! if (bAltValid) { ! track.mfAlt_m = pSensorReport->mfAlt_m; ! track.mnFlags |= TRACK_ALT_VALID; } return; --- 282,305 ---- int bAltValid = (pSensorReport->mnFlags & TRACK_ALT_VALID); ! tcTrack::mnID = pSensorReport->mnTrackID; ! tcTrack::mfLat_rad = pSensorReport->mfLat_rad; ! tcTrack::mfLon_rad = pSensorReport->mfLon_rad; ! tcTrack::mfTimestamp = pSensorReport->mfTimestamp; ! tcTrack::mnFlags = TRACK_ACTIVE; ! if (bHeadingValid) ! { ! tcTrack::mfHeading_rad = pSensorReport->mfHeading_rad; ! tcTrack::mnFlags |= TRACK_HEADING_VALID; } ! if (bSpeedValid) ! { ! tcTrack::mfSpeed_kts = pSensorReport->mfSpeed_kts; ! tcTrack::mnFlags |= TRACK_SPEED_VALID; } ! if (bAltValid) ! { ! tcTrack::mfAlt_m = pSensorReport->mfAlt_m; ! tcTrack::mnFlags |= TRACK_ALT_VALID; } return; *************** *** 296,315 **** // if the track is passive update with first new passive ! if (track.mnFlags & TRACK_ACTIVE) {return;} ! for(int n=0;n<mnContributors;n++) { tcSensorReport *pSensorReport = &maSensorReport[n]; if ((pSensorReport->mnFlags & (TRACK_BEARING_ONLY | TRACK_TRIANGULATED)) ! &&(pSensorReport->mfTimestamp > track.mfTimestamp)) { ! track.mnID = pSensorReport->mnTrackID; ! track.mfLat_rad = pSensorReport->mfLat_rad; ! track.mfLon_rad = pSensorReport->mfLon_rad; ! track.mfHeading_rad = pSensorReport->mfHeading_rad; ! track.mfSpeed_kts = pSensorReport->mfSpeed_kts; ! track.mfTimestamp = pSensorReport->mfTimestamp; ! track.mnFlags = pSensorReport->mnFlags; ! track.mnPassivePlatformID = pSensorReport->mnSensorPlatformID; return; } --- 308,328 ---- // if the track is passive update with first new passive ! if (tcTrack::mnFlags & TRACK_ACTIVE) {return;} ! for(int n=0;n<mnContributors;n++) ! { tcSensorReport *pSensorReport = &maSensorReport[n]; if ((pSensorReport->mnFlags & (TRACK_BEARING_ONLY | TRACK_TRIANGULATED)) ! &&(pSensorReport->mfTimestamp > tcTrack::mfTimestamp)) { ! tcTrack::mnID = pSensorReport->mnTrackID; ! tcTrack::mfLat_rad = pSensorReport->mfLat_rad; ! tcTrack::mfLon_rad = pSensorReport->mfLon_rad; ! tcTrack::mfHeading_rad = pSensorReport->mfHeading_rad; ! tcTrack::mfSpeed_kts = pSensorReport->mfSpeed_kts; ! tcTrack::mfTimestamp = pSensorReport->mfTimestamp; ! tcTrack::mnFlags = pSensorReport->mnFlags; ! tcTrack::mnPassivePlatformID = pSensorReport->mnSensorPlatformID; return; } *************** *** 319,326 **** } ! // remove report n and shift other reports to fill array from beginning ! void tcSensorMapTrack::RemoveReport(int n) { if ((n<0)||(n>=mnContributors)) {return;} ! for(int k=n+1;k<mnContributors;k++) { maSensorReport[k-1] = maSensorReport[k]; } --- 332,343 ---- } ! /** ! * remove report n and shift other reports to fill array from beginning ! */ ! void tcSensorMapTrack::RemoveReport(int n) ! { if ((n<0)||(n>=mnContributors)) {return;} ! for(int k=n+1;k<mnContributors;k++) ! { maSensorReport[k-1] = maSensorReport[k]; } *************** *** 329,338 **** ! tcSensorMapTrack& tcSensorMapTrack::operator= (tcSensorMapTrack& t) { ! track = t.track; ! for(int i=0;i<MAX_SENSOR_REPORTS;i++) { maSensorReport[i] = t.maSensorReport[i]; } mnContributors = t.mnContributors; return(*this); } --- 346,373 ---- ! tcSensorMapTrack& tcSensorMapTrack::operator= (const tcSensorMapTrack& t) ! { ! *(tcTrack*)this = t ; ! ! mfLastUpdateTime = t.mfLastUpdateTime; ! for(int i=0;i<MAX_SENSOR_REPORTS;i++) ! { maSensorReport[i] = t.maSensorReport[i]; } mnContributors = t.mnContributors; + + for(int j=0;j<MAX_EMITTERS;j++) + { + maEmitterInfo[j] = t.maEmitterInfo[j]; + } + + mnEmitters = t.mnEmitters; + mnDatabaseID = t.mnDatabaseID; + matchupRating = t.matchupRating; + expectedDamage = t.expectedDamage; + assessedDamage = t.assessedDamage; + intercepts = t.intercepts; + engaged = t.engaged; + return(*this); } *************** *** 340,349 **** tcSensorMapTrack::tcSensorMapTrack() { ! track.mnID = NULL_INDEX; ! track.mnAffiliation = 0; ! track.mnAlliance = 0; ! track.mnClassification = 0; ! track.mfTimestamp = 0; ! track.mnFlags = 0; mnEmitters = 0; mnContributors = 0; --- 375,384 ---- tcSensorMapTrack::tcSensorMapTrack() { ! tcTrack::mnID = NULL_INDEX; ! tcTrack::mnAffiliation = 0; ! tcTrack::mnAlliance = 0; ! tcTrack::mnClassification = 0; ! tcTrack::mfTimestamp = 0; ! tcTrack::mnFlags = 0; mnEmitters = 0; mnContributors = 0; *************** *** 356,367 **** } ! tcSensorMapTrack::~tcSensorMapTrack() { } /******************************* tcAllianceSensorMap ****************************/ ! bool tcAllianceSensorMap::AddReport(const Sensor::tcSensorReport& report) { tnPoolIndex nTrackID = report.mnTrackID; tnPoolIndex nIdx = maTrackToSensorTrack[nTrackID]; ! if (nIdx == NULL_INDEX) { tcSensorMapTrack *psmtrack = new tcSensorMapTrack(); tnPoolIndex nKey; --- 391,405 ---- } ! tcSensorMapTrack::~tcSensorMapTrack() ! { } /******************************* tcAllianceSensorMap ****************************/ ! bool tcAllianceSensorMap::AddReport(const Sensor::tcSensorReport& report) ! { tnPoolIndex nTrackID = report.mnTrackID; tnPoolIndex nIdx = maTrackToSensorTrack[nTrackID]; ! if (nIdx == NULL_INDEX) ! { tcSensorMapTrack *psmtrack = new tcSensorMapTrack(); tnPoolIndex nKey; *************** *** 372,378 **** return true; } ! else { tcSensorMapTrack *psmtrack; ! if (maTrack.Lookup(nIdx, psmtrack) == false) { throw "sensor map index corrupt"; } --- 410,418 ---- return true; } ! else ! { tcSensorMapTrack *psmtrack; ! if (maTrack.Lookup(nIdx, psmtrack) == false) ! { throw "sensor map index corrupt"; } *************** *** 452,460 **** } ! void tcAllianceSensorMap::GetNextTrack(tnPoolIndex& pos, tcTrack*& pTrack) { tnPoolIndex nKey; ! tcSensorMapTrack *psmtrack; ! maTrack.GetNextAssoc(pos,nKey,psmtrack); ! pTrack = &psmtrack->track; } --- 492,499 ---- } ! void tcAllianceSensorMap::GetNextTrack(tnPoolIndex& pos, tcSensorMapTrack*& pTrack) ! { tnPoolIndex nKey; ! maTrack.GetNextAssoc(pos, nKey, pTrack); } *************** *** 506,515 **** if (psmtrack->mnContributors <= 0) { ! if (psmtrack->track.mnID >= 0) { ! maTrackToSensorTrack[psmtrack->track.mnID] = NULL_INDEX; // used to be = maTrack.GetPoolSize(); } char zBuff[128]; ! sprintf(zBuff,"Dropped track %d at time %.1f",psmtrack->track.mnID,afStatusTime); WTL(zBuff); #ifdef _DEBUG --- 545,554 ---- if (psmtrack->mnContributors <= 0) { ! if (psmtrack->mnID >= 0) { ! maTrackToSensorTrack[psmtrack->mnID] = NULL_INDEX; // used to be = maTrack.GetPoolSize(); } char zBuff[128]; ! sprintf(zBuff,"Dropped track %d at time %.1f",psmtrack->mnID,afStatusTime); WTL(zBuff); #ifdef _DEBUG *************** *** 547,556 **** if (anTrackID >= MAX_TRACKS) {return NULL;} nMapID = maTrackToSensorTrack[anTrackID]; ! if (nMapID == NULL_INDEX) {return false;} maTrack.Lookup(nMapID,pSMTrack); return pSMTrack; } /*******************************************************************************/ ! bool tcAllianceSensorMap::GetTrack(unsigned long anTrackID, tcTrack& track) { tcSensorMapTrack *pSensorTrack; --- 586,596 ---- if (anTrackID >= MAX_TRACKS) {return NULL;} nMapID = maTrackToSensorTrack[anTrackID]; ! if (nMapID == NULL_INDEX) {return NULL;} maTrack.Lookup(nMapID,pSMTrack); return pSMTrack; } /*******************************************************************************/ ! bool tcAllianceSensorMap::GetTrack(unsigned long anTrackID, tcTrack& track) ! { tcSensorMapTrack *pSensorTrack; *************** *** 558,562 **** return false; } ! track = pSensorTrack->track; return true; } --- 598,602 ---- return false; } ! track = *((tcTrack*)pSensorTrack); return true; } *************** *** 588,596 **** psmtrack = new tcSensorMapTrack; file.Read(psmtrack,sizeof(tcSensorMapTrack)); ! if ((unsigned long)psmtrack->track.mnID >= MAX_TRACKS) { WTL("tcAllianceSensorMap::Serialize - corrupt scenario file"); return false; } ! nKey = maTrackToSensorTrack[psmtrack->track.mnID]; maTrack.AddElementForceKey(psmtrack,nKey); } --- 628,636 ---- psmtrack = new tcSensorMapTrack; file.Read(psmtrack,sizeof(tcSensorMapTrack)); ! if ((unsigned long)psmtrack->mnID >= MAX_TRACKS) { WTL("tcAllianceSensorMap::Serialize - corrupt scenario file"); return false; } ! nKey = maTrackToSensorTrack[psmtrack->mnID]; maTrack.AddElementForceKey(psmtrack,nKey); } *************** *** 639,643 **** return pMap->GetStartTrackPosition(); } ! void tcSensorMap::GetNextTrack(tnPoolIndex& pos, tcTrack*& pTrack, UINT8 anAlliance) { tcAllianceSensorMap *pMap = GetMap(anAlliance); return pMap->GetNextTrack(pos, pTrack); --- 679,683 ---- return pMap->GetStartTrackPosition(); } ! void tcSensorMap::GetNextTrack(tnPoolIndex& pos, tcSensorMapTrack*& pTrack, UINT8 anAlliance) { tcAllianceSensorMap *pMap = GetMap(anAlliance); return pMap->GetNextTrack(pos, pTrack); Index: tcWeaponObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcWeaponObject.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** tcWeaponObject.cpp 15 Feb 2004 19:47:23 -0000 1.1 --- tcWeaponObject.cpp 16 Feb 2004 01:06:23 -0000 1.2 *************** *** 40,45 **** if (smtrack == NULL) { ! std::cerr << "tcWeaponObject::SetIntendedTarget - targetId not found in sensor map" ! << std::endl; return; } --- 40,46 ---- if (smtrack == NULL) { ! fprintf(stderr, "tcWeaponObject::SetIntendedTarget - targetId %d not found in sensor map", ! targetId); ! return; } |