[Gcblue-commits] gcb_wx/src/database tcAirDBObject.cpp,1.8,1.9 tcDatabase.cpp,1.14,1.15 tcDatabaseOb
Status: Alpha
Brought to you by:
ddcforge
|
From: Dewitt C. <ddc...@us...> - 2004-08-09 02:35:26
|
Update of /cvsroot/gcblue/gcb_wx/src/database In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2303/src/database Modified Files: tcAirDBObject.cpp tcDatabase.cpp tcDatabaseObject.cpp tcFlightportDBObject.cpp tcGenericDBObject.cpp tcLauncherDBObject.cpp tcMissileDBObject.cpp tcRadarDBObject.cpp tcSensorDBObject.cpp tcSqlReader.cpp tcWeaponDBObject.cpp Log Message: Index: tcSensorDBObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/database/tcSensorDBObject.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** tcSensorDBObject.cpp 8 Aug 2004 00:31:33 -0000 1.6 --- tcSensorDBObject.cpp 9 Aug 2004 02:35:15 -0000 1.7 *************** *** 137,140 **** --- 137,145 ---- { tcDatabaseObject::ReadSql(entry); + + mfMaxRange_km = entry.GetDouble("MaxRange_km"); + mfRefRange_km = entry.GetDouble("RefRange_km"); + mfFieldOfView_deg = entry.GetDouble("FieldOfView_deg"); + mfScanPeriod_s = entry.GetDouble("ScanPeriod_s"); } Index: tcRadarDBObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/database/tcRadarDBObject.cpp,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** tcRadarDBObject.cpp 8 Aug 2004 00:31:33 -0000 1.11 --- tcRadarDBObject.cpp 9 Aug 2004 02:35:15 -0000 1.12 *************** *** 209,212 **** --- 209,223 ---- { tcSensorDBObject::ReadSql(entry); + + mfMinRange_km = entry.GetDouble("MinRange_km"); + mfERP_dBW = entry.GetDouble("ERP_dBW"); + mfMinRangeRate_mps = entry.GetDouble("MinRangeRate_mps"); + maxFireControlTracks = entry.GetInt("MaxFireControlTracks"); + isSemiactive = entry.GetInt("IsSemiactive") != 0; + isCommandReceiver = entry.GetInt("IsCommandReceiver") != 0; + mbDetectsSurface = entry.GetInt("DetectsSurface") != 0; + mbDetectsAir = entry.GetInt("DetectsAir") != 0; + mbDetectsGround = entry.GetInt("DetectsGround") != 0; + } Index: tcWeaponDBObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/database/tcWeaponDBObject.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** tcWeaponDBObject.cpp 8 Aug 2004 00:31:33 -0000 1.3 --- tcWeaponDBObject.cpp 9 Aug 2004 02:35:15 -0000 1.4 *************** *** 129,132 **** --- 129,136 ---- { tcDatabaseObject::ReadSql(entry); + + mfDamage = entry.GetDouble("Damage"); + launchSpeed_mps = entry.GetDouble("LaunchSpeed_mps"); + } Index: tcFlightportDBObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/database/tcFlightportDBObject.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** tcFlightportDBObject.cpp 8 Aug 2004 00:31:33 -0000 1.4 --- tcFlightportDBObject.cpp 9 Aug 2004 02:35:15 -0000 1.5 *************** *** 257,260 **** --- 257,285 ---- void tcFlightportDBObject::ReadSql(tcSqlReader& entry) { + tcDatabaseObject::ReadSql(entry); + + heloOnly = entry.GetInt("IsHeloOnly"); + hangarCapacity = entry.GetInt("HangarCapacity"); + + spotInfo.clear(); + int i; + for(i=0;i<MAX_DB_SPOTS;i++) + { + spotDBInfo info; + info.isLaunch = entry.GetInt("Sp%d_launch", i+1); + info.x = entry.GetDouble("Sp%d_x", i+1); + info.y = entry.GetDouble("Sp%d_y", i+1); + info.z = entry.GetDouble("Sp%d_z", i+1); + info.orientation_deg = entry.GetDouble("Sp%d_dir_deg", i+1); + info.length = entry.GetDouble("Sp%d_len", i+1); + + bool isValid = (info.x != 0)||(info.y !=0)||(info.z != 0); + if (isValid) + { + spotInfo.push_back(info); + } + } + + } Index: tcLauncherDBObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/database/tcLauncherDBObject.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** tcLauncherDBObject.cpp 8 Aug 2004 00:31:33 -0000 1.8 --- tcLauncherDBObject.cpp 9 Aug 2004 02:35:15 -0000 1.9 *************** *** 165,169 **** *csv << "Basic class"; *csv << "Fire control sensor class"; ! for(unsigned i=0;i<MAX_LAUNCHER_CONFIGURATIONS;i++) { tcString s; --- 165,170 ---- *csv << "Basic class"; *csv << "Fire control sensor class"; ! ! for (unsigned i=0;i<MAX_LAUNCHER_CONFIGURATIONS;i++) { tcString s; *************** *** 208,211 **** --- 209,236 ---- { tcDatabaseObject::ReadSql(entry); + + cycleTime = entry.GetDouble("CycleTime_s"); + mnCapacity = entry.GetInt("BasicCap"); + mzChildClass = entry.GetString("BasicClass").c_str(); + fireControlSensorClass = entry.GetString("FireControlSens"); + + + mnConfigurations = 0; + for (unsigned i=0;i<MAX_LAUNCHER_CONFIGURATIONS;i++) + { + tcString s; + + s.Format("Cap%d", i+1); + maCapacity[mnConfigurations] = entry.GetInt(s.GetBuffer()); + + s.Format("Class%d", i+1); + maChildClass[mnConfigurations] = entry.GetString(s.GetBuffer()).c_str(); + + if (maCapacity[mnConfigurations] && + (strlen(maChildClass[mnConfigurations].mz) > 0)) + { + mnConfigurations++; + } + } } Index: tcGenericDBObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/database/tcGenericDBObject.cpp,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** tcGenericDBObject.cpp 8 Aug 2004 00:31:33 -0000 1.11 --- tcGenericDBObject.cpp 9 Aug 2004 02:35:15 -0000 1.12 *************** *** 508,513 **** columnString += s.GetBuffer(); - //if (i < MAXLAUNCHERS - 1) columnString += ","; - } --- 508,511 ---- *************** *** 544,547 **** --- 542,636 ---- void tcGenericDBObject::ReadSql(tcSqlReader& entry) { + tcDatabaseObject::ReadSql(entry); + + mfRcs_dbsm = entry.GetDouble("Rcs_dbsm"); + mfMaxSpeed_kts = entry.GetDouble("MaxSpeed_kts"); + mfAccel_ktsps = entry.GetDouble("Accel_ktsps"); + mfTurnRate_degps = entry.GetDouble("TurnRate_degps"); + mfFuelCapacity_kg = entry.GetDouble("FuelCapacity_kg"); + mfFuelRate_kgps = entry.GetDouble("FuelRate_kgps"); + mfMaxAltitude_m = entry.GetDouble("MaxAltitude_m"); + mfMaxDepth_m = entry.GetDouble("MaxDepth_m"); + mfAltitudeRate_mps = entry.GetDouble("AltitudeRate_mps"); + mfToughness = entry.GetDouble("Toughness"); + mfDamage = entry.GetDouble("Damage"); + mfWeight_kg = entry.GetDouble("Weight_kg"); + mfMaxThrust_N = entry.GetDouble("MaxThrust_N"); + mfRange_km = entry.GetDouble("Range_km"); + flightportClass = entry.GetString("FlightportClass").c_str(); + + // read launchers + int i; + mnNumLaunchers = 0; + for(i=0;i<MAXLAUNCHERS;i++) + { + std::string launcherClass; + tcString s; + + s.Format("L%d_class",i+1); + launcherClass = entry.GetString(s.GetBuffer()); + + if (launcherClass.size() > 0) + { + maLauncherClass[mnNumLaunchers] = launcherClass.c_str(); + + s.Format("L%d_az",i+1); + launcherAz[mnNumLaunchers] = entry.GetDouble(s.GetBuffer()); + + s.Format("L%d_x",i+1); + launcherPosition[mnNumLaunchers].x = entry.GetDouble(s.GetBuffer()); + + s.Format("L%d_y",i+1); + launcherPosition[mnNumLaunchers].y = entry.GetDouble(s.GetBuffer()); + + s.Format("L%d_z",i+1); + launcherPosition[mnNumLaunchers].z = entry.GetDouble(s.GetBuffer()); + + mnNumLaunchers++; + } + } + + // read sensors + mnNumSensors = 0; + for(i=0;i<MAXSENSORS;i++) + { + std::string sensorClass; + tcString s; + + s.Format("S%d_class", i+1); + sensorClass = entry.GetString(s.GetBuffer()); + + if (sensorClass.size() > 0) + { + maSensorClass[mnNumSensors] = sensorClass.c_str(); + + s.Format("S%d_az", i+1); + sensorAz[mnNumSensors++] = entry.GetDouble(s.GetBuffer()); + } + + } + + // read animations + for(i=0;i<MAXANIMATIONS;i++) + { + tcString s; + animationDBInfo ai; + + s.Format("Anim%d_obj", i+1); + ai.objectName = entry.GetString(s.GetBuffer()); + + if (ai.objectName.size() > 0) + { + s.Format("Anim%d_type", i+1); + ai.animationType = entry.GetString(s.GetBuffer()); + + s.Format("Anim%d_param", i+1); + ai.param = entry.GetInt(s.GetBuffer()); + + animationInfo.push_back(ai); + } + } + Animate3DModel(); + } Index: tcDatabase.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/database/tcDatabase.cpp,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** tcDatabase.cpp 8 Aug 2004 00:31:33 -0000 1.14 --- tcDatabase.cpp 9 Aug 2004 02:35:15 -0000 1.15 *************** *** 185,249 **** { std::string path(DATABASE_PATH); ! std::string fileName = path + string("database") + suffix + ".db"; sqlite::connection sqlConnection(fileName.c_str()); ! if (load) { } ! else { ! // tcGenericDBObject ! { ! tcDBObjSerializerSql<tcGenericDBObject> ! serializer(this, sqlConnection, "generics"); ! serializer.Save(); ! } ! // tcMissileDBObject ! { ! tcDBObjSerializerSql<tcMissileDBObject> ! serializer(this, sqlConnection, "missiles"); ! serializer.Save(); ! } ! // tcLauncherDBObject ! { ! tcDBObjSerializerSql<tcLauncherDBObject> ! serializer(this, sqlConnection, "launchers"); ! serializer.Save(); ! } ! // tcRadarDBObject ! { ! tcDBObjSerializerSql<tcRadarDBObject> ! serializer(this, sqlConnection, "radars"); ! serializer.Save(); ! } ! // tcESMDBObject ! { ! tcDBObjSerializerSql<tcESMDBObject> ! serializer(this, sqlConnection, "esm"); ! serializer.Save(); ! } ! // tcAirDBObject ! { ! tcDBObjSerializerSql<tcAirDBObject> ! serializer(this, sqlConnection, "air"); ! serializer.Save(); ! } ! // tcFlightportDBObject ! { ! tcDBObjSerializerSql<tcFlightportDBObject> ! serializer(this, sqlConnection, "flightports"); ! serializer.Save(); ! } ! // tcBallisticDBObject ! { ! tcDBObjSerializerSql<tcBallisticDBObject> ! serializer(this, sqlConnection, "ballistic"); ! serializer.Save(); ! } } } --- 185,252 ---- { std::string path(DATABASE_PATH); ! std::string fileName = path + string("database") + suffix + ".db"; sqlite::connection sqlConnection(fileName.c_str()); ! // tcGenericDBObject { + tcDBObjSerializerSql<tcGenericDBObject> + serializer(this, sqlConnection, "generics"); + if (load) serializer.Load(); + else serializer.Save(); } ! // tcMissileDBObject { ! tcDBObjSerializerSql<tcMissileDBObject> ! serializer(this, sqlConnection, "missiles"); ! if (load) serializer.Load(); ! else serializer.Save(); ! } ! // tcLauncherDBObject ! { ! tcDBObjSerializerSql<tcLauncherDBObject> ! serializer(this, sqlConnection, "launchers"); ! if (load) serializer.Load(); ! else serializer.Save(); ! } ! // tcRadarDBObject ! { ! tcDBObjSerializerSql<tcRadarDBObject> ! serializer(this, sqlConnection, "radars"); ! if (load) serializer.Load(); ! else serializer.Save(); ! } ! // tcESMDBObject ! { ! tcDBObjSerializerSql<tcESMDBObject> ! serializer(this, sqlConnection, "esm"); ! if (load) serializer.Load(); ! else serializer.Save(); ! } ! // tcAirDBObject ! { ! tcDBObjSerializerSql<tcAirDBObject> ! serializer(this, sqlConnection, "air"); ! if (load) serializer.Load(); ! else serializer.Save(); ! } ! // tcFlightportDBObject ! { ! tcDBObjSerializerSql<tcFlightportDBObject> ! serializer(this, sqlConnection, "flightports"); ! if (load) serializer.Load(); ! else serializer.Save(); ! } ! // tcBallisticDBObject ! { ! tcDBObjSerializerSql<tcBallisticDBObject> ! serializer(this, sqlConnection, "ballistic"); ! if (load) serializer.Load(); ! else serializer.Save(); } + } *************** *** 833,837 **** { int nResult = SerializeCSV(suffix, false); ! SerializeSql(suffix, false); if (nResult==false) { --- 836,840 ---- { int nResult = SerializeCSV(suffix, false); ! if (nResult==false) { Index: tcAirDBObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/database/tcAirDBObject.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** tcAirDBObject.cpp 8 Aug 2004 00:31:33 -0000 1.8 --- tcAirDBObject.cpp 9 Aug 2004 02:35:15 -0000 1.9 *************** *** 159,162 **** --- 159,179 ---- void tcAirDBObject::ReadSql(tcSqlReader& entry) { + tcGenericDBObject::ReadSql(entry); + + mfAltThrustDecay_pm = entry.GetDouble("ThrustDecay"); + mfAfterburnFuelRate_kgps = entry.GetDouble("ABFuelRate_kgps"); + mfAfterburnThrust_N = entry.GetDouble("ABThrust_N"); + mfDragArea_sm = entry.GetDouble("DragArea_sm"); + mfWingArea_sm = entry.GetDouble("WingArea_sm"); + mfCdpsub = entry.GetDouble("Cdpsub"); + mfCdptran = entry.GetDouble("Cdptran"); + mfCdpsup = entry.GetDouble("Cdpsup"); + mfMcm = entry.GetDouble("Mcm"); + mfMsupm = entry.GetDouble("Msupm"); + mfKdi = entry.GetDouble("Kdi"); + mfMaxAoa_rad = entry.GetDouble("MaxAoa_rad"); + mfMaxCl = entry.GetDouble("MaxCl"); + mfGmax = entry.GetDouble("Gmax"); + } Index: tcSqlReader.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/database/tcSqlReader.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** tcSqlReader.cpp 8 Aug 2004 00:31:33 -0000 1.1 --- tcSqlReader.cpp 9 Aug 2004 02:35:15 -0000 1.2 *************** *** 23,27 **** #include "tcSqlReader.h" #include "sqlite/sqlite_plus.h" ! namespace Database --- 23,27 ---- #include "tcSqlReader.h" #include "sqlite/sqlite_plus.h" ! #include <stdarg.h> namespace Database *************** *** 52,55 **** --- 52,71 ---- return data.getdouble((int)index); } + + /** + * Version that accepts format string with variable arguments + * to create field string. + */ + double tcSqlReader::GetDouble(const char* fmt, ...) + { + va_list argp; + + va_start(argp, fmt); + vsprintf(buffer, fmt, argp); + va_end(argp); + + return GetDouble(std::string(buffer)); + } + /** * throws exception if column <field> not found in map *************** *** 64,67 **** --- 80,98 ---- /** + * Version that accepts format string with variable arguments + * to create field string. + */ + int tcSqlReader::GetInt(const char* fmt, ...) + { + va_list argp; + + va_start(argp, fmt); + vsprintf(buffer, fmt, argp); + va_end(argp); + + return GetInt(std::string(buffer)); + } + + /** * throws exception if column <field> not found in map * @return data element from column name <field> as string *************** *** 74,77 **** --- 105,123 ---- } + /** + * Version that accepts format string with variable arguments + * to create field string. + */ + std::string tcSqlReader::GetString(const char* fmt, ...) + { + va_list argp; + + va_start(argp, fmt); + vsprintf(buffer, fmt, argp); + va_end(argp); + + return GetString(std::string(buffer)); + } + unsigned int tcSqlReader::LookupFieldIndex(std::string& field) Index: tcDatabaseObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/database/tcDatabaseObject.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** tcDatabaseObject.cpp 8 Aug 2004 00:31:33 -0000 1.10 --- tcDatabaseObject.cpp 9 Aug 2004 02:35:15 -0000 1.11 *************** *** 261,264 **** --- 261,275 ---- void tcDatabaseObject::ReadSql(tcSqlReader& entry) { + mzClass = entry.GetString("DatabaseClass").c_str(); + mnModelType = entry.GetInt("ModelClassId"); + + mnType = entry.GetInt("ClassificationId"); + mzImageFileName = entry.GetString("ImageFileName").c_str(); + mz3DModelFileName = entry.GetString("ModelFileName").c_str(); + + std::string desc = entry.GetString("Description"); + strncpy(mzDescription, desc.c_str(),DESCRIPTION_STRING_LENGTH-1); + + Load3DModel(); } Index: tcMissileDBObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/database/tcMissileDBObject.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** tcMissileDBObject.cpp 8 Aug 2004 00:31:33 -0000 1.9 --- tcMissileDBObject.cpp 9 Aug 2004 02:35:15 -0000 1.10 *************** *** 65,68 **** --- 65,69 ---- if (primarySeekerKey != NULL_INDEX) return primarySeekerKey; primarySeekerKey = database->GetKey(maSensorClass[0]); + if (primarySeekerKey == NULL_INDEX) { *************** *** 400,403 **** --- 401,450 ---- { tcWeaponDBObject::ReadSql(entry); + + mfMass_kg = entry.GetDouble("Mass_kg"); + mfDragArea_sm = entry.GetDouble("DragArea_sm"); + mfGmax = entry.GetDouble("Gmax"); + mfMaxTurnRate_degps = entry.GetDouble("MaxTurnRate_degps"); + mfCdpsub = entry.GetDouble("Cdpsub"); + mfCdptran = entry.GetDouble("Cdptran"); + mfCdpsup = entry.GetDouble("Cdpsup"); + mfMcm = entry.GetDouble("Mcm"); + mfMsupm = entry.GetDouble("Msupm"); + mfKdi = entry.GetDouble("Kdi"); + mfBoostThrust_N = entry.GetDouble("BoostThrust_N"); + mfBoostTime_s = entry.GetDouble("BoostTime_s"); + mfSustThrust_N = entry.GetDouble("SustThrust_N"); + mfSustTime_s = entry.GetDouble("SustTime_s"); + mfRcs_dbsm = entry.GetDouble("Rcs_dbsm"); + mfRange_km = entry.GetDouble("Range_km"); + mfShutdownSpeed_mps = entry.GetDouble("ShutdownSpeed_mps"); + maSensorClass[0] = entry.GetString("SensorClass1").c_str(); + maSensorClass[1] = entry.GetString("SensorClass2").c_str(); + + mnNumSegments = 0; + for (unsigned i=0;i<MAX_MISSILE_FLIGHT_SEGMENTS;i++) + { + float range, alt; + int altMode, guidanceMode; + + range = entry.GetDouble("Rng%d_km", i+1); + alt = entry.GetDouble("Alt%d_m", i+1); + altMode = entry.GetInt("AltMode%d", i+1); + guidanceMode = entry.GetInt("GuidMode%d", i+1); + + if ((range > 0)||(alt > 0)) + { + maFlightProfile[mnNumSegments].mfRange_km = range; + maFlightProfile[mnNumSegments].mfAltitude_m = alt; + maFlightProfile[mnNumSegments].meAltitudeMode = (teAltitudeMode)altMode; + maFlightProfile[mnNumSegments++].meGuidanceMode = (teGuidanceMode)guidanceMode; + } + + } + mnTargetFlags = entry.GetInt("TargetFlags"); + + // set other params that do not come from database file + primarySeekerKey = NULL_INDEX; // what IS this? + } |