[Gcblue-commits] gcb_wx/src/database tcMissileDBObject.cpp, 1.24, 1.25
Status: Alpha
Brought to you by:
ddcforge
From: Dewitt C. <ddc...@us...> - 2006-09-05 01:04:27
|
Update of /cvsroot/gcblue/gcb_wx/src/database In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv24958/src/database Modified Files: tcMissileDBObject.cpp Log Message: Index: tcMissileDBObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/database/tcMissileDBObject.cpp,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** tcMissileDBObject.cpp 17 Aug 2006 01:28:03 -0000 1.24 --- tcMissileDBObject.cpp 5 Sep 2006 01:04:25 -0000 1.25 *************** *** 36,39 **** --- 36,40 ---- #include "database/tcSqlReader.h" #include "tcSensorDBObject.h" + #include "tcRadarDBObject.h" #include <sstream> *************** *** 48,56 **** ! teWeaponLaunchMode tcMissileDBObject::GetLaunchMode() { if (mnNumSegments==0) {return AUTO;} ! tsMissileFlightSegment *firstSegment = &maFlightProfile[0]; if (firstSegment->meGuidanceMode == GM_NAV) --- 49,57 ---- ! teWeaponLaunchMode tcMissileDBObject::GetLaunchMode() const { if (mnNumSegments==0) {return AUTO;} ! const tsMissileFlightSegment *firstSegment = &maFlightProfile[0]; if (firstSegment->meGuidanceMode == GM_NAV) *************** *** 129,132 **** --- 130,168 ---- /** + * @return true if missile is fire and forget + */ + bool tcMissileDBObject::IsFireAndForget() + { + if (fireAndForget == -1) + { + teWeaponLaunchMode launchMode = GetLaunchMode(); + if ((launchMode == DATUM_ONLY) || (launchMode == AUTO)) + { + fireAndForget = 1; + } + else if (launchMode == FC_TRACK) + { + fireAndForget = 0; + } + else // launchMode == SEEKER_TRACK + { + wxASSERT(launchMode == SEEKER_TRACK); + tcDatabaseObject* obj = database->GetObject(GetSensorKey()); + if (tcRadarDBObject* radar = dynamic_cast<tcRadarDBObject*>(obj)) + { + fireAndForget = (radar->isCommandReceiver || radar->isSemiactive) ? 0 : 1; + } + else + { + fireAndForget = 1; + } + } + + } + + return (fireAndForget != 0); + } + + /** * @return true if this missile relies on a fire control sensor from the parent platform for any of its guidance */ *************** *** 524,528 **** // set other params that do not come from database file ! sensorKey = NULL_INDEX; } --- 560,565 ---- // set other params that do not come from database file ! sensorKey = NULL_INDEX; ! fireAndForget = -1; } *************** *** 590,594 **** tcMissileDBObject::tcMissileDBObject(tcMissileDBObject& obj) : tcWeaponDBObject(obj), ! seekerFOV_rad(obj.seekerFOV_rad) { mnClassID = DTYPE_MISSILE; --- 627,632 ---- tcMissileDBObject::tcMissileDBObject(tcMissileDBObject& obj) : tcWeaponDBObject(obj), ! seekerFOV_rad(obj.seekerFOV_rad), ! fireAndForget(obj.fireAndForget) { mnClassID = DTYPE_MISSILE; *************** *** 629,633 **** tcMissileDBObject::tcMissileDBObject() : tcWeaponDBObject(), ! seekerFOV_rad(-1.0f) { mnClassID = DTYPE_MISSILE; --- 667,672 ---- tcMissileDBObject::tcMissileDBObject() : tcWeaponDBObject(), ! seekerFOV_rad(-1.0f), ! fireAndForget(-1) { mnClassID = DTYPE_MISSILE; |