[Gcblue-commits] gcb_wx/src/database tcGenericDBObject.cpp,1.15,1.16 tcLauncherDBObject.cpp,1.12,1.1
Status: Alpha
Brought to you by:
ddcforge
Update of /cvsroot/gcblue/gcb_wx/src/database In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13689/src/database Modified Files: tcGenericDBObject.cpp tcLauncherDBObject.cpp tcMissileDBObject.cpp tcSonarDBObject.cpp tcTorpedoDBObject.cpp tcWeaponDBObject.cpp Log Message: Sonar work, passive sonar, torpedoes Index: tcLauncherDBObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/database/tcLauncherDBObject.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** tcLauncherDBObject.cpp 5 Dec 2004 02:49:47 -0000 1.12 --- tcLauncherDBObject.cpp 7 Dec 2004 04:00:28 -0000 1.13 *************** *** 104,108 **** *csv >> s; mzChildClass = s.c_str(); *csv >> fireControlSensorClass; ! *csv >> s; displayName = s.c_str(); int i; mnConfigurations = 0; --- 104,108 ---- *csv >> s; mzChildClass = s.c_str(); *csv >> fireControlSensorClass; ! int i; mnConfigurations = 0; *************** *** 125,129 **** *csv << mzChildClass.mz; *csv << fireControlSensorClass; - *csv << displayName; for(unsigned i=0;i<MAX_LAUNCHER_CONFIGURATIONS;i++) --- 125,128 ---- *************** *** 160,164 **** localNode->SetAttribute("childClass", mzChildClass.mz); localNode->SetAttribute("fcSensorClass", fireControlSensorClass); - localNode->SetAttribute("displayName", displayName); for(unsigned int i=0;(i<mnConfigurations)&&(i<MAX_LAUNCHER_CONFIGURATIONS);i++) --- 159,162 ---- *************** *** 182,186 **** *csv << "Basic class"; *csv << "Fire control sensor class"; - *csv << "Display name"; for (unsigned i=0;i<MAX_LAUNCHER_CONFIGURATIONS;i++) --- 180,183 ---- *************** *** 211,215 **** columnString += "BasicClass varchar(30),"; columnString += "FireControlSens varchar(30),"; - columnString += "DisplayName varchar(30),"; for(unsigned i=0;i<MAX_LAUNCHER_CONFIGURATIONS;i++) --- 208,211 ---- *************** *** 233,237 **** mzChildClass = entry.GetString("BasicClass").c_str(); fireControlSensorClass = entry.GetString("FireControlSens"); - displayName = entry.GetString("DisplayName"); mnConfigurations = 0; --- 229,232 ---- *************** *** 265,269 **** s << "'" << mzChildClass.mz << "',"; s << "'" << fireControlSensorClass << "',"; - s << "'" << displayName << "',"; for(unsigned i=0;i<MAX_LAUNCHER_CONFIGURATIONS;i++) --- 260,263 ---- *************** *** 295,299 **** mzChildClass = "NOCHILDCLASS"; fireControlSensorClass = ""; ! displayName = ""; for(unsigned i=0;i<MAX_LAUNCHER_CONFIGURATIONS;i++) { --- 289,293 ---- mzChildClass = "NOCHILDCLASS"; fireControlSensorClass = ""; ! for(unsigned i=0;i<MAX_LAUNCHER_CONFIGURATIONS;i++) { *************** *** 318,322 **** mnConfigurations = obj.mnConfigurations; fireControlSensorClass = obj.fireControlSensorClass; - displayName = obj.displayName; } --- 312,315 ---- Index: tcSonarDBObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/database/tcSonarDBObject.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** tcSonarDBObject.cpp 2 Dec 2004 04:17:24 -0000 1.1 --- tcSonarDBObject.cpp 7 Dec 2004 04:00:28 -0000 1.2 *************** *** 170,173 **** --- 170,180 ---- columnString += "maxFrequency_Hz number(5),"; columnString += "isPassive number(1),"; + columnString += "isActive number(1),"; + columnString += "isTowed number(1),"; + columnString += "maxScope_m number(4),"; + columnString += "isWakeHoming number(1),"; + columnString += "applyScanLoss number(1),"; + columnString += "bearingResolution_deg number(5),"; + columnString += "audioFile varchar(30)"; } *************** *** 184,187 **** --- 191,202 ---- maxFrequency_Hz = entry.GetDouble("maxFrequency_Hz"); isPassive = entry.GetInt("isPassive") != 0; + + isActive = entry.GetInt("isActive") != 0; + isTowed = entry.GetInt("isTowed") != 0; + maxScope_m = entry.GetDouble("maxScope_m"); + isWakeHoming = entry.GetInt("isWakeHoming") != 0; + applyScanLoss = entry.GetInt("applyScanLoss") != 0; + bearingResolution_deg = entry.GetDouble("bearingResolution_deg"); + audioFile = entry.GetString("audioFile"); } *************** *** 202,205 **** --- 217,229 ---- s << maxFrequency_Hz << ","; s << (long)isPassive << ","; + + s << (long)isActive << ","; + s << (long)isTowed << ","; + s << maxScope_m << ","; + s << (long)isWakeHoming << ","; + s << (long)applyScanLoss << ","; + s << bearingResolution_deg << ","; + + s << "'" << audioFile.c_str() << "'"; *************** *** 214,218 **** minFrequency_Hz(2000), maxFrequency_Hz(3000), ! isPassive(false) { mzClass = "Default Sonar"; --- 238,248 ---- minFrequency_Hz(2000), maxFrequency_Hz(3000), ! isPassive(false), ! isActive(true), ! isTowed(false), ! maxScope_m(0), ! isWakeHoming(false), ! applyScanLoss(false), ! bearingResolution_deg(5.0f) { mzClass = "Default Sonar"; *************** *** 233,237 **** minFrequency_Hz(obj.minFrequency_Hz), maxFrequency_Hz(obj.maxFrequency_Hz), ! isPassive(obj.isPassive) { mnClassID = DTYPE_SONAR; --- 263,273 ---- minFrequency_Hz(obj.minFrequency_Hz), maxFrequency_Hz(obj.maxFrequency_Hz), ! isPassive(obj.isPassive), ! isActive(obj.isActive), ! isTowed(obj.isTowed), ! maxScope_m(obj.maxScope_m), ! isWakeHoming(obj.isWakeHoming), ! applyScanLoss(obj.applyScanLoss), ! bearingResolution_deg(obj.bearingResolution_deg) { mnClassID = DTYPE_SONAR; Index: tcWeaponDBObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/database/tcWeaponDBObject.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** tcWeaponDBObject.cpp 29 Nov 2004 03:55:05 -0000 1.6 --- tcWeaponDBObject.cpp 7 Dec 2004 04:00:28 -0000 1.7 *************** *** 112,115 **** --- 112,116 ---- localNode->SetAttribute("mfDamage" , mfDamage); localNode->SetAttribute("launchSpeed_mps" , launchSpeed_mps); + localNode->SetAttribute("targetFlags" , targetFlags); tcDatabaseObject::SerializeXml(node, load); *************** *** 122,125 **** --- 123,127 ---- *csv << "Damage"; *csv << "Launch Speed [m/s]"; + *csv << "Target Flags"; return 1; } *************** *** 136,140 **** columnString += "Damage number(5),"; ! columnString += "LaunchSpeed_mps number(5)"; } --- 138,143 ---- columnString += "Damage number(5),"; ! columnString += "LaunchSpeed_mps number(5),"; ! columnString += "targetFlags number(5)"; } *************** *** 145,148 **** --- 148,152 ---- mfDamage = entry.GetDouble("Damage"); launchSpeed_mps = entry.GetDouble("LaunchSpeed_mps"); + targetFlags = entry.GetInt("targetFlags"); } *************** *** 157,161 **** s << mfDamage << ","; ! s << launchSpeed_mps; valueString += s.str(); --- 161,166 ---- s << mfDamage << ","; ! s << launchSpeed_mps << ","; ! s << targetFlags; valueString += s.str(); *************** *** 163,173 **** ! tcWeaponDBObject::tcWeaponDBObject() : tcDatabaseObject() { mzClass = "Default weapon"; mnClassID = DTYPE_WEAPON; - - mfDamage = 1.0; - launchSpeed_mps = 0; } --- 168,178 ---- ! tcWeaponDBObject::tcWeaponDBObject() : tcDatabaseObject(), ! mfDamage(1.0), ! launchSpeed_mps(0), ! targetFlags(0) { mzClass = "Default weapon"; mnClassID = DTYPE_WEAPON; } *************** *** 178,181 **** --- 183,187 ---- mfDamage = obj.mfDamage; launchSpeed_mps = obj.launchSpeed_mps; + targetFlags = obj.targetFlags; } Index: tcMissileDBObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/database/tcMissileDBObject.cpp,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** tcMissileDBObject.cpp 29 Nov 2004 03:55:04 -0000 1.14 --- tcMissileDBObject.cpp 7 Dec 2004 04:00:28 -0000 1.15 *************** *** 154,161 **** file.Read(&maFlightProfile[i],sizeof(tsMissileFlightSegment)); } - if (anVersion >= VERSION_1_0_3) - { - file.Read(&mnTargetFlags,sizeof(mnTargetFlags)); - } } else --- 154,157 ---- *************** *** 186,192 **** file.Write(&maFlightProfile[i],sizeof(tsMissileFlightSegment)); } - if (anVersion >= VERSION_1_0_3) { - file.Write(&mnTargetFlags,sizeof(mnTargetFlags)); - } } return true; --- 182,185 ---- *************** *** 240,244 **** } - *csv >> mnTargetFlags; // set other params that do not come from database file --- 233,236 ---- *************** *** 285,289 **** } } - *csv << (long)mnTargetFlags; csv->WriteLine(); --- 277,280 ---- *************** *** 426,434 **** columnString += s.GetBuffer(); ! s.Format("GuidMode%d number(2),",i+1); columnString += s.GetBuffer(); - } ! columnString += "TargetFlags number(5)"; } --- 417,428 ---- columnString += s.GetBuffer(); ! s.Format("GuidMode%d number(2)",i+1); columnString += s.GetBuffer(); ! if (i < MAX_MISSILE_FLIGHT_SEGMENTS-1) ! { ! columnString += ","; ! } ! } } *************** *** 477,484 **** } - mnTargetFlags = entry.GetInt("TargetFlags"); // set other params that do not come from database file ! primarySeekerKey = NULL_INDEX; // what IS this? } --- 471,477 ---- } // set other params that do not come from database file ! primarySeekerKey = NULL_INDEX; } *************** *** 519,523 **** s << maFlightProfile[i].mfAltitude_m << ","; s << (long)maFlightProfile[i].meAltitudeMode << ","; ! s << (long)maFlightProfile[i].meGuidanceMode << ","; } else --- 512,516 ---- s << maFlightProfile[i].mfAltitude_m << ","; s << (long)maFlightProfile[i].meAltitudeMode << ","; ! s << (long)maFlightProfile[i].meGuidanceMode; } else *************** *** 526,533 **** s << "0,"; s << "0,"; ! s << "0,"; ! } ! } ! s << (long)mnTargetFlags; valueString += s.str(); --- 519,531 ---- s << "0,"; s << "0,"; ! s << "0"; ! } ! ! if (i < MAX_MISSILE_FLIGHT_SEGMENTS-1) ! { ! s << ","; ! } ! ! } valueString += s.str(); *************** *** 557,564 **** mfSustTime_s = obj.mfSustTime_s; mfShutdownSpeed_mps = obj.mfShutdownSpeed_mps; ! ! //mfDamage = obj.mfDamage; ! //meDamageType = obj.meDamageType; ! mnTargetFlags = obj.mnTargetFlags; mfRcs_dbsm = obj.mfRcs_dbsm; mfRange_km = obj.mfRange_km; --- 555,559 ---- mfSustTime_s = obj.mfSustTime_s; mfShutdownSpeed_mps = obj.mfShutdownSpeed_mps; ! mfRcs_dbsm = obj.mfRcs_dbsm; mfRange_km = obj.mfRange_km; Index: tcTorpedoDBObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/database/tcTorpedoDBObject.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** tcTorpedoDBObject.cpp 5 Dec 2004 02:58:25 -0000 1.1 --- tcTorpedoDBObject.cpp 7 Dec 2004 04:00:28 -0000 1.2 *************** *** 28,31 **** --- 28,32 ---- #include "tcTorpedoDBObject.h" + #include "tcSonarDBObject.h" #include "math_constants.h" #include "randfn.h" *************** *** 50,57 **** { maxTurnRate_radps = C_PIOVER180 * maxTurnRate_degps; ! fuelRate_kgpktps = fuelRate_kgps / maxSpeed_kts; } /** * workaround for write serialization issue --- 51,68 ---- { maxTurnRate_radps = C_PIOVER180 * maxTurnRate_degps; ! batteryRate_kWpkt = batteryRate_kW / maxSpeed_kts; ! ! // calculate range for simple model (overwrite param loaded from db) ! mfRange_km = (battery_kJ / batteryRate_kW) * maxSpeed_kts * 0.001f * C_KTSTOMPS; ! } + tcSonarDBObject* tcTorpedoDBObject::GetSeekerDBObj() const + { + wxASSERT(database); + return dynamic_cast<tcSonarDBObject*>(database->GetObject(sonarClass)); + } + /** * workaround for write serialization issue *************** *** 105,125 **** localNode->SetAttribute("maxDepth_m", maxDepth_m); localNode->SetAttribute("maxThrust_N", maxThrust_N); ! localNode->SetAttribute("fuel_kg", fuel_kg); ! localNode->SetAttribute("fuelRate_kgps", fuelRate_kgps); localNode->SetAttribute("maxSpeed_kts", maxSpeed_kts); localNode->SetAttribute("acceleration_ktsps", acceleration_ktsps); localNode->SetAttribute("mfRange_km", mfRange_km); localNode->SetAttribute("sonarClass", sonarClass.c_str()); ! ! ! for(size_t i=0; (i<defaultProfile.size())&&(i<MAX_TORPEDO_SEGMENTS); i++) ! { ! TiXmlElement* childNode = node->InsertEndChild(TiXmlElement("segment"))->ToElement(); ! ! childNode->SetAttribute("range_km", defaultProfile[i].range_km); ! childNode->SetAttribute("depth_m", defaultProfile[i].depth_m); ! childNode->SetAttribute("thrust", defaultProfile[i].thrust); ! childNode->SetAttribute("guidanceMode", (int)defaultProfile[i].meGuidanceMode); ! } tcWeaponDBObject::SerializeXml(node, load); --- 116,127 ---- localNode->SetAttribute("maxDepth_m", maxDepth_m); localNode->SetAttribute("maxThrust_N", maxThrust_N); ! localNode->SetAttribute("battery_kJ", battery_kJ); ! localNode->SetAttribute("batteryRate_kW", batteryRate_kW); localNode->SetAttribute("maxSpeed_kts", maxSpeed_kts); localNode->SetAttribute("acceleration_ktsps", acceleration_ktsps); localNode->SetAttribute("mfRange_km", mfRange_km); localNode->SetAttribute("sonarClass", sonarClass.c_str()); ! localNode->SetAttribute("wireGuidance", wireGuidance); ! localNode->SetAttribute("preEnableSpeed_kts", preEnableSpeed_kts); tcWeaponDBObject::SerializeXml(node, load); *************** *** 143,177 **** columnString += "maxDepth_m number(8),"; columnString += "maxThrust_N number(8),"; ! columnString += "fuel_kg number(8),"; ! columnString += "fuelRate_kgps number(8),"; columnString += "maxSpeed_kts number(8),"; columnString += "acceleration_ktsps number(8),"; columnString += "mfRange_km number(8),"; columnString += "sonarClass varchar(30),"; ! ! ! ! for(unsigned i=0; i<MAX_TORPEDO_SEGMENTS; i++) ! { ! tcString s; ! ! s.Format("Range%d_km number(5),",i+1); ! columnString += s.GetBuffer(); ! ! s.Format("Depth%d_m number(4),",i+1); ! columnString += s.GetBuffer(); ! ! s.Format("Thrust%d number(5),",i+1); ! columnString += s.GetBuffer(); ! ! s.Format("GuidMode%d number(2)",i+1); ! columnString += s.GetBuffer(); ! ! if (i < MAX_TORPEDO_SEGMENTS - 1) ! { ! columnString += ","; ! } ! } ! } --- 145,156 ---- columnString += "maxDepth_m number(8),"; columnString += "maxThrust_N number(8),"; ! columnString += "battery_kJ number(8),"; ! columnString += "batteryRate_kW number(8),"; columnString += "maxSpeed_kts number(8),"; columnString += "acceleration_ktsps number(8),"; columnString += "mfRange_km number(8),"; columnString += "sonarClass varchar(30),"; ! columnString += "wireGuidance number(1),"; ! columnString += "preEnableSpeed_kts number(3)"; } *************** *** 185,220 **** maxDepth_m = entry.GetDouble("maxDepth_m"); maxThrust_N = entry.GetDouble("maxThrust_N"); ! fuel_kg = entry.GetDouble("fuel_kg"); ! fuelRate_kgps = entry.GetDouble("fuelRate_kgps"); maxSpeed_kts = entry.GetDouble("maxSpeed_kts"); acceleration_ktsps = entry.GetDouble("acceleration_ktsps"); mfRange_km = entry.GetDouble("mfRange_km"); sonarClass = entry.GetString("sonarClass"); ! ! defaultProfile.clear(); ! ! for (unsigned i=0; i<MAX_TORPEDO_SEGMENTS; i++) ! { ! float range, depth, thrust; ! int guidanceMode; ! ! range = entry.GetDouble("Range%d_km", i+1); ! depth = entry.GetDouble("Depth%d_m", i+1); ! thrust = entry.GetDouble("Thrust%d", i+1); ! guidanceMode = entry.GetInt("GuidMode%d", i+1); ! ! if ((range > 0)||(depth > 0)||(thrust > 0)) ! { ! tsTorpedoSegment seg; ! ! seg.range_km = range; ! seg.depth_m = depth; ! seg.thrust = thrust; ! seg.meGuidanceMode = (TorpedoGuidanceMode)guidanceMode; ///< guidance mode ! ! defaultProfile.push_back(seg); ! } ! ! } } --- 164,175 ---- maxDepth_m = entry.GetDouble("maxDepth_m"); maxThrust_N = entry.GetDouble("maxThrust_N"); ! battery_kJ = entry.GetDouble("battery_kJ"); ! batteryRate_kW = entry.GetDouble("batteryRate_kW"); maxSpeed_kts = entry.GetDouble("maxSpeed_kts"); acceleration_ktsps = entry.GetDouble("acceleration_ktsps"); mfRange_km = entry.GetDouble("mfRange_km"); sonarClass = entry.GetString("sonarClass"); ! wireGuidance = entry.GetInt("wireGuidance") != 0; ! preEnableSpeed_kts = entry.GetDouble("preEnableSpeed_kts"); } *************** *** 233,264 **** s << maxDepth_m << ","; s << maxThrust_N << ","; ! s << fuel_kg << ","; ! s << fuelRate_kgps << ","; s << maxSpeed_kts << ","; s << acceleration_ktsps << ","; s << mfRange_km << ","; s << "'" << sonarClass.c_str() << "'" << ","; ! ! for (unsigned i=0; i<MAX_TORPEDO_SEGMENTS; i++) ! { ! if (i < defaultProfile.size()) ! { ! s << defaultProfile[i].range_km << ","; ! s << defaultProfile[i].depth_m << ","; ! s << defaultProfile[i].thrust << ","; ! s << (long)defaultProfile[i].meGuidanceMode; ! } ! else ! { ! s << "0,"; ! s << "0,"; ! s << "0,"; ! s << "0"; ! } ! if (i < MAX_TORPEDO_SEGMENTS - 1) ! { ! s << ","; ! } ! } --- 188,199 ---- s << maxDepth_m << ","; s << maxThrust_N << ","; ! s << battery_kJ << ","; ! s << batteryRate_kW << ","; s << maxSpeed_kts << ","; s << acceleration_ktsps << ","; s << mfRange_km << ","; s << "'" << sonarClass.c_str() << "'" << ","; ! s << wireGuidance << ","; ! s << preEnableSpeed_kts; *************** *** 275,284 **** maxDepth_m(obj.maxDepth_m), maxThrust_N(obj.maxThrust_N), ! fuel_kg(obj.fuel_kg), ! fuelRate_kgps(obj.fuelRate_kgps), maxSpeed_kts(obj.maxSpeed_kts), acceleration_ktsps(obj.acceleration_ktsps), mfRange_km(obj.mfRange_km), ! sonarClass(obj.sonarClass) { mnClassID = DTYPE_TORPEDO; --- 210,221 ---- maxDepth_m(obj.maxDepth_m), maxThrust_N(obj.maxThrust_N), ! battery_kJ(obj.battery_kJ), ! batteryRate_kW(obj.batteryRate_kW), maxSpeed_kts(obj.maxSpeed_kts), acceleration_ktsps(obj.acceleration_ktsps), mfRange_km(obj.mfRange_km), ! sonarClass(obj.sonarClass), ! wireGuidance(obj.wireGuidance), ! preEnableSpeed_kts(obj.preEnableSpeed_kts) { mnClassID = DTYPE_TORPEDO; *************** *** 295,304 **** maxDepth_m(500), maxThrust_N(100), ! fuel_kg(100), ! fuelRate_kgps(1), maxSpeed_kts(40), acceleration_ktsps(3), mfRange_km(10), ! sonarClass("") { mnClassID = DTYPE_TORPEDO; --- 232,243 ---- maxDepth_m(500), maxThrust_N(100), ! battery_kJ(100), ! batteryRate_kW(1), maxSpeed_kts(40), acceleration_ktsps(3), mfRange_km(10), ! sonarClass(""), ! wireGuidance(false), ! preEnableSpeed_kts(35) { mnClassID = DTYPE_TORPEDO; Index: tcGenericDBObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/database/tcGenericDBObject.cpp,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** tcGenericDBObject.cpp 29 Nov 2004 03:55:04 -0000 1.15 --- tcGenericDBObject.cpp 7 Dec 2004 04:00:28 -0000 1.16 *************** *** 600,603 **** --- 600,606 ---- columnString += s.GetBuffer(); + s.Format("L%d_name varchar(30),",i+1); + columnString += s.GetBuffer(); + s.Format("L%d_az number(8),",i+1); columnString += s.GetBuffer(); *************** *** 673,679 **** --- 676,685 ---- int i; mnNumLaunchers = 0; + launcherName.clear(); + for(i=0;i<MAXLAUNCHERS;i++) { std::string launcherClass; + std::string displayName; tcString s; *************** *** 681,688 **** --- 687,700 ---- launcherClass = entry.GetString(s.GetBuffer()); + s.Format("L%d_name",i+1); + displayName = entry.GetString(s.GetBuffer()); + + if (launcherClass.size() > 0) { maLauncherClass[mnNumLaunchers] = launcherClass.c_str(); + launcherName.push_back(displayName); + s.Format("L%d_az",i+1); launcherAz[mnNumLaunchers] = entry.GetDouble(s.GetBuffer()); *************** *** 796,799 **** --- 808,812 ---- { s << "'" << string(maLauncherClass[i].mz) << "',"; + s << "'" << launcherName[i].c_str() << "',"; s << launcherAz[i] << ","; s << launcherPosition[i].x << ","; *************** *** 804,807 **** --- 817,821 ---- { s << "'',"; + s << "'',"; s << "0,"; s << "0,"; *************** *** 913,919 **** mnNumSensors = obj.mnNumSensors; int i; ! for(i=0;i<MAXLAUNCHERS;i++) { maLauncherClass[i] = obj.maLauncherClass[i]; launcherAz[i] = obj.launcherAz[i]; launcherPosition[i] = obj.launcherPosition[i]; --- 927,934 ---- mnNumSensors = obj.mnNumSensors; int i; ! for(i=0;i<mnNumLaunchers;i++) { maLauncherClass[i] = obj.maLauncherClass[i]; + launcherName[i] = obj.launcherName[i]; launcherAz[i] = obj.launcherAz[i]; launcherPosition[i] = obj.launcherPosition[i]; |