gcblue-commits Mailing List for Global Conflict Blue (Page 69)
Status: Alpha
Brought to you by:
ddcforge
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(6) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(112) |
Feb
(106) |
Mar
(88) |
Apr
(111) |
May
(53) |
Jun
(60) |
Jul
(58) |
Aug
(61) |
Sep
(45) |
Oct
(31) |
Nov
(71) |
Dec
(70) |
2005 |
Jan
(33) |
Feb
(57) |
Mar
(98) |
Apr
(47) |
May
(53) |
Jun
(79) |
Jul
(79) |
Aug
|
Sep
(33) |
Oct
(1) |
Nov
(20) |
Dec
(64) |
2006 |
Jan
(20) |
Feb
(1) |
Mar
(43) |
Apr
(11) |
May
(8) |
Jun
(23) |
Jul
|
Aug
(28) |
Sep
(58) |
Oct
(25) |
Nov
(47) |
Dec
(70) |
From: <ddc...@us...> - 2004-01-12 03:01:39
|
Update of /cvsroot/gcblue/gcb_wx/include/graphics In directory sc8-pr-cvs1:/tmp/cvs-serv7013/include/graphics Modified Files: ObjectUpdater.h Added Files: tc3DModel.h Log Message: animation test code --- NEW FILE: tc3DModel.h --- /** @file tc3DModel.h */ /* ** Copyright (C) 2003 Dewitt "Cole" Colclough (de...@tw...) ** All rights reserved. ** This file is part of the Global Conflict Blue (GCB) program. ** GCB is free software; you can redistribute it and/or modify ** it under the terms of version 2 of the GNU General Public License as ** published by the Free Software Foundation. ** GCB is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** You should have received a copy of the GNU General Public License ** along with GCB; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef _TC3DMODEL_H_ #define _TC3DMODEL_H_ #pragma once #include <osg/ref_ptr> #include <osg/Group> #include <osg/MatrixTransform> class tcGameObject; class tcAnimationInfo { public: osg::Vec3 axis; float omega; ///< radians per second void *switchVariable; ///< rotate if *switchVariable is non-zero osg::ref_ptr<osg::MatrixTransform> transform; ///< transform to rotate }; /** * Each database object holds source copy of object's tc3DModel. * tc3DModel is cloned to instantiate an object into the sim. * Clones share leaf nodes using ref_ptr. */ class tc3DModel { public: std::vector<tcAnimationInfo> animationInfo; ///< animation transforms to update at model level void AddChild(tc3DModel *child); tc3DModel* Clone(); void DetachFromParent(); tcGameObject* GetGameObj() {return gameObj;} osg::ref_ptr<osg::Node> GetNode(); unsigned int GetNumParents(); void Load(std::string model_name); void SetupUpdate(tcGameObject *obj); tc3DModel(); tc3DModel(const tc3DModel* source); ~tc3DModel(); private: osg::ref_ptr<osg::Group> modelGroup; ///< top level group for model, not shared osg::ref_ptr<osg::MatrixTransform> modelTransform; ///< positions object in world, not shared osg::ref_ptr<osg::Node> modelNode; ///< shared between instances of model tcGameObject *gameObj; ///< game object to use to update model state bool useSmoothing; }; #endif Index: ObjectUpdater.h =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/include/graphics/ObjectUpdater.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ObjectUpdater.h 11 Nov 2003 11:42:43 -0000 1.3 --- ObjectUpdater.h 12 Jan 2004 03:01:36 -0000 1.4 *************** *** 4,8 **** #include <osg/NodeCallback> ! class tcGameObject; class tc3DViewer; --- 4,8 ---- #include <osg/NodeCallback> ! class tc3DModel; class tc3DViewer; *************** *** 22,34 **** virtual void operator()(Node* node, NodeVisitor* nv); static void AttachViewer(tc3DViewer *v) {viewer = v;} - void SetGameObject(tcGameObject *obj) {gameObject = obj;} ObjectUpdater(); ! ObjectUpdater(tcGameObject *obj); virtual ~ObjectUpdater(); private: static tc3DViewer *viewer; ! tcGameObject *gameObject; ///< pointer to tcGameObject state }; --- 22,35 ---- virtual void operator()(Node* node, NodeVisitor* nv); static void AttachViewer(tc3DViewer *v) {viewer = v;} ObjectUpdater(); ! ObjectUpdater(tc3DModel *mod); virtual ~ObjectUpdater(); private: static tc3DViewer *viewer; ! tc3DModel *model; ///< tc3DModel has method to access sim tcGameObject ! ! void UpdateAnimations(); }; |
From: <ddc...@us...> - 2004-01-10 21:57:38
|
Update of /cvsroot/gcblue/gcb_wx/src/graphics In directory sc8-pr-cvs1:/tmp/cvs-serv25394/src/graphics Modified Files: Tag: v0_5_0 tcGraphicsEngine.cpp Log Message: flush stdout in tcGraphicsEngine init Index: tcGraphicsEngine.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/graphics/tcGraphicsEngine.cpp,v retrieving revision 1.12 retrieving revision 1.12.2.1 diff -C2 -d -r1.12 -r1.12.2.1 *** tcGraphicsEngine.cpp 1 Jan 2004 23:44:46 -0000 1.12 --- tcGraphicsEngine.cpp 10 Jan 2004 21:57:35 -0000 1.12.2.1 *************** *** 773,776 **** --- 773,778 ---- LogGLInfo(); LogPixelFormats(); + fflush (stdout); // to log debug info before crash + if (!Is3DCapable()) { |
From: <ddc...@us...> - 2004-01-10 21:55:34
|
Update of /cvsroot/gcblue/gcb_wx/src/sim In directory sc8-pr-cvs1:/tmp/cvs-serv22071/src/sim Modified Files: tc3DViewer.cpp tcGameObject.cpp tcGoalTracker.cpp tcSimState.cpp Log Message: Added better 3D model class for animation support Index: tc3DViewer.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tc3DViewer.cpp,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** tc3DViewer.cpp 3 Jan 2004 00:45:13 -0000 1.24 --- tc3DViewer.cpp 10 Jan 2004 21:55:31 -0000 1.25 *************** *** 56,59 **** --- 56,60 ---- #include "tc3DSky.h" #include "cspSky.h" + #include "tc3DModel.h" *************** *** 481,484 **** --- 482,486 ---- void tc3DViewer::LoadModel(tcGameObject *obj) { + #if 0 if (obj->model.valid()) return; // model already loaded obj->model = new osg::Group; *************** *** 501,504 **** --- 503,507 ---- fprintf(stderr,"Error loading 3D model: %s\n", model_name.c_str()); } + #endif } *************** *** 567,586 **** { tcGameObject *childObj = gameObj->children.at(n); ! if (!childObj->model.valid()) ! { ! LoadModel(childObj); ! } ! if (childObj->model->getNumParents() == 0) { if (useRelativeChildPos) { ! wxASSERT(gameObj->model->getNumChildren() == 1); ! osg::Transform *parentxform = gameObj->model.get()->getChild(0)->asTransform(); ! wxASSERT(parentxform); ! if (parentxform) parentxform->addChild(childObj->model.get()); } else { ! worldObjects->addChild(childObj->model.get()); } } --- 570,583 ---- { tcGameObject *childObj = gameObj->children.at(n); ! if (childObj->model->GetNumParents() == 0) { if (useRelativeChildPos) { ! // should be done as part of the GameObject::AddChild? ! gameObj->model->AddChild(childObj->model); } else { ! worldObjects->addChild(childObj->model->GetNode().get()); } } *************** *** 603,613 **** tcGameObject *gameObj; simState->maPlatformState.GetNextAssoc(poolpos,nKey,gameObj); ! if (!gameObj->model.valid()) ! { ! LoadModel(gameObj); ! } ! if (gameObj->model->getNumParents()==0) { ! worldObjects->addChild(gameObj->model.get()); } UpdateChildModels(gameObj); --- 600,607 ---- tcGameObject *gameObj; simState->maPlatformState.GetNextAssoc(poolpos,nKey,gameObj); ! wxASSERT(gameObj->model); // model should be created with gameObj ! if (gameObj->model->GetNumParents()==0) { ! worldObjects->addChild(gameObj->model->GetNode().get()); } UpdateChildModels(gameObj); *************** *** 849,853 **** { // set camera position to ! const osg::BoundingSphere& bs = obj->model->getBound(); cameraRange = 4*bs.radius(); if (cameraRange < 12.0f) cameraRange = 12.0f; --- 843,847 ---- { // set camera position to ! const osg::BoundingSphere& bs = obj->model->GetNode()->getBound(); cameraRange = 4*bs.radius(); if (cameraRange < 12.0f) cameraRange = 12.0f; *************** *** 912,916 **** HWND hwnd = (HWND)parent->GetHandle(); // returns handle to this window ! render_surface = new tcRenderSurface(hwnd); render_surface.get()->ref(); // prevents heap exception in debug mode, memory is modified after delete camera->setRenderSurface(render_surface.get()); --- 906,910 ---- HWND hwnd = (HWND)parent->GetHandle(); // returns handle to this window ! render_surface = new tcRenderSurface(hwnd); // leaks memory! render_surface.get()->ref(); // prevents heap exception in debug mode, memory is modified after delete camera->setRenderSurface(render_surface.get()); Index: tcGameObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcGameObject.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** tcGameObject.cpp 8 Dec 2003 03:06:36 -0000 1.8 --- tcGameObject.cpp 10 Jan 2004 21:55:31 -0000 1.9 *************** *** 27,30 **** --- 27,31 ---- #include "tcGameObject.h" #include "tcDatabase.h" + #include "tc3DModel.h" tcMapData* tcGameObject::mapData = NULL; *************** *** 126,129 **** --- 127,131 ---- mfDamageLevel = 0; mpDBObject = NULL; + model = NULL; } *************** *** 291,295 **** mnID = o.mnID; mnModelType = MTYPE_OBJECT; ! model = o.model; mpDBObject = o.mpDBObject; mzClass = o.mzClass; --- 293,297 ---- mnID = o.mnID; mnModelType = MTYPE_OBJECT; ! model = new tc3DModel(o.model); // straight copy is wrong, don't know if this is right mpDBObject = o.mpDBObject; mzClass = o.mzClass; *************** *** 315,318 **** --- 317,322 ---- mpDBObject = obj; mnID = NULL_INDEX; // remains NULL index for child + model = obj->Get3DModel(); + model->SetupUpdate(this); } *************** *** 323,325 **** --- 327,330 ---- { ClearChildren(); + if (model) delete model; } Index: tcGoalTracker.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcGoalTracker.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** tcGoalTracker.cpp 20 Nov 2003 23:41:45 -0000 1.2 --- tcGoalTracker.cpp 10 Jan 2004 21:55:31 -0000 1.3 *************** *** 44,48 **** { delete allianceGoals[i]; ! allianceGoals[i] = new tcGoal(); // set default goal (always unresolved) } } --- 44,48 ---- { delete allianceGoals[i]; ! allianceGoals[i] = new tcGoal(); // set default goal (always unresolved) (leaks memory) } } Index: tcSimState.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcSimState.cpp,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** tcSimState.cpp 5 Jan 2004 02:48:03 -0000 1.22 --- tcSimState.cpp 10 Jan 2004 21:55:31 -0000 1.23 *************** *** 37,40 **** --- 37,41 ---- #include "tcAeroAirObject.h" #include "tcAirDBObject.h" + #include "tc3DModel.h" *************** *** 554,562 **** mpCommandInterface->DisplayInfoMessage(s.GetBuffer()); } ! if (int nParents = pobj->model->getNumParents()) { // remove child model from parent to delete from scenegraph wxASSERT(nParents==1); ! pobj->model->getParent(0)->removeChild(pobj->model.get()); } maPlatformState.RemoveKey(nKey); --- 555,563 ---- mpCommandInterface->DisplayInfoMessage(s.GetBuffer()); } ! if (int nParents = pobj->model->GetNumParents()) { // remove child model from parent to delete from scenegraph wxASSERT(nParents==1); ! pobj->model->DetachFromParent(); } maPlatformState.RemoveKey(nKey); *************** *** 976,983 **** child->parent = NULL; // remove model from parent to allow model to be repositioned in scene graph ! if (int parentCount = child->model->getNumParents()) { wxASSERT(parentCount == 1); ! child->model->getParent(0)->removeChild(child->model.get()); } AddPlatform(child); --- 977,984 ---- child->parent = NULL; // remove model from parent to allow model to be repositioned in scene graph ! if (int parentCount = child->model->GetNumParents()) { wxASSERT(parentCount == 1); ! child->model->DetachFromParent(); } AddPlatform(child); *************** *** 1227,1231 **** /********************************************************************/ void tcSimState::RandInit() { ! int nPlatforms = 20; // number of platforms to add Clear(); --- 1228,1232 ---- /********************************************************************/ void tcSimState::RandInit() { ! int nPlatforms = 12; // number of platforms to add Clear(); *************** *** 1367,1372 **** { // remove child model from parent to allow repositioning in scenegraph ! wxASSERT(landing_unit->model->getNumParents()==1); ! landing_unit->model->getParent(0)->removeChild(landing_unit->model.get()); // remove from platformstate container maPlatformState.RemoveKeyWithoutDelete(key); --- 1368,1373 ---- { // remove child model from parent to allow repositioning in scenegraph ! wxASSERT(landing_unit->model->GetNumParents()==1); ! landing_unit->model->DetachFromParent(); // remove from platformstate container maPlatformState.RemoveKeyWithoutDelete(key); |
From: <ddc...@us...> - 2004-01-10 21:55:34
|
Update of /cvsroot/gcblue/gcb_wx/src/graphics In directory sc8-pr-cvs1:/tmp/cvs-serv22071/src/graphics Modified Files: tcGraphicsEngine.cpp Log Message: Added better 3D model class for animation support Index: tcGraphicsEngine.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/graphics/tcGraphicsEngine.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** tcGraphicsEngine.cpp 1 Jan 2004 23:44:46 -0000 1.12 --- tcGraphicsEngine.cpp 10 Jan 2004 21:55:31 -0000 1.13 *************** *** 773,776 **** --- 773,777 ---- LogGLInfo(); LogPixelFormats(); + fflush (stdout); if (!Is3DCapable()) { |
From: <ddc...@us...> - 2004-01-10 21:55:34
|
Update of /cvsroot/gcblue/gcb_wx/src/database In directory sc8-pr-cvs1:/tmp/cvs-serv22071/src/database Modified Files: tcDatabaseObject.cpp Log Message: Added better 3D model class for animation support Index: tcDatabaseObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/database/tcDatabaseObject.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** tcDatabaseObject.cpp 7 Dec 2003 14:29:32 -0000 1.3 --- tcDatabaseObject.cpp 10 Jan 2004 21:55:31 -0000 1.4 *************** *** 32,35 **** --- 32,36 ---- #include <fstream> #include "CsvTranslator.h" + #include "tc3DModel.h" namespace Database *************** *** 98,149 **** /***************************** tcDatabaseObject ***********************************/ ! void tcDatabaseObject::Load3DModel() { ! if (strlen(mz3DModelFileName.mz) <= 1) { ! // assign functional model ! switch (mnClassID) { ! case DTYPE_GENERIC: ! { ! if ((mnModelType == MTYPE_FIXEDWING)|| ! (mnModelType == MTYPE_FIXEDWINGX)|| ! (mnModelType == MTYPE_AIR)) ! { ! mz3DModelFileName = "fa1uk"; ! //pPlatformObj->mnModelType = MTYPE_FIXEDWING; ! } ! else if (mnModelType == MTYPE_HELO) { ! mz3DModelFileName = "rah66"; ! } ! else { ! mz3DModelFileName = "type45edit"; ! //pPlatformObj->mnModelType = MTYPE_SURFACE; ! } ! } ! break; ! case DTYPE_MISSILE: ! mz3DModelFileName = "roland_sam"; ! break; ! } } ! if (strlen(mz3DModelFileName.mz) <= 1) {return;} ! ! #if 0 // bypass load here in favor of OSG load ! char zFilePath[128]; ! mp3DObj = new tc3DObject; ! if (mp3DObj == NULL) {WTL("tcDatabaseObject::Load3DModel - Error 17");return;} ! strcpy(zFilePath,"3d\\"); // TODO: tie path to constant ! strcat(zFilePath,mz3DModelFileName.mz); ! strcat(zFilePath,".gc3"); ! if (mp3DObj->Load(zFilePath) == false) { ! tcString s; ! s.Format("tcDatabaseObject::Load3DModel - Load of %s failed",zFilePath); ! WTL(s.GetBuffer()); } ! else { ! tcString s; ! s.Format("tcDatabaseObject::Load3DModel - Load of %s succeeded (max dim: %f)", ! zFilePath,mp3DObj->mfDimension); ! WTL(s.GetBuffer()); } ! #endif } --- 99,129 ---- /***************************** tcDatabaseObject ***********************************/ ! tc3DModel* tcDatabaseObject::Get3DModel() ! { ! wxASSERT(model); ! if (model) ! { ! return model->Clone(); } ! else ! { ! return NULL; } ! } ! ! ! void tcDatabaseObject::Load3DModel() ! { ! if ((strlen(mz3DModelFileName.mz) <= 1) ! ||(std::string(mz3DModelFileName.mz) == "NONE")) ! { ! // no valid model identified ! //std::cerr << "tcDatabaseObject::Load3DModel -- no model for class " ! // << mzClass.mz << "\n"; ! return; } ! model = new tc3DModel(); ! wxASSERT(model); ! model->Load(mz3DModelFileName.mz); } *************** *** 208,211 **** --- 188,192 ---- if (mzDescription[n]=='\n') mzDescription[n]=' '; } + Load3DModel(); } else *************** *** 247,250 **** --- 228,232 ---- mnClassID = DTYPE_OBJECT; mnType = PTYPE_UNKNOWN; + model = NULL; } *************** *** 259,266 **** --- 241,253 ---- mz3DModelFileName = obj.mz3DModelFileName; strcpy(mzDescription, obj.mzDescription); // BAD, assumes obj has legal string + model = NULL; // model not copied } tcDatabaseObject::~tcDatabaseObject() { + if (model) + { + delete model; + } } |
From: <ddc...@us...> - 2004-01-10 21:55:34
|
Update of /cvsroot/gcblue/gcb_wx/include/database In directory sc8-pr-cvs1:/tmp/cvs-serv22071/include/database Modified Files: tcDatabaseObject.h Log Message: Added better 3D model class for animation support Index: tcDatabaseObject.h =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/include/database/tcDatabaseObject.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** tcDatabaseObject.h 4 Jan 2004 22:24:52 -0000 1.5 --- tcDatabaseObject.h 10 Jan 2004 21:55:31 -0000 1.6 *************** *** 38,41 **** --- 38,43 ---- #endif + class tc3DModel; + namespace Database { *************** *** 108,112 **** - #define DESCRIPTION_STRING_LENGTH 512 --- 110,113 ---- *************** *** 123,127 **** char mzDescription[DESCRIPTION_STRING_LENGTH]; ! void Load3DModel(void); void RandInit(void); virtual void PrintToFile(tcFile& file); --- 124,129 ---- char mzDescription[DESCRIPTION_STRING_LENGTH]; ! tc3DModel* Get3DModel(); ! void Load3DModel(); void RandInit(void); virtual void PrintToFile(tcFile& file); *************** *** 132,135 **** --- 134,140 ---- tcDatabaseObject(tcDatabaseObject& obj); ///< copy constructor virtual ~tcDatabaseObject(); + protected: + tc3DModel *model; + }; |
From: <ddc...@us...> - 2004-01-10 21:55:34
|
Update of /cvsroot/gcblue/gcb_wx/include/sim In directory sc8-pr-cvs1:/tmp/cvs-serv22071/include/sim Modified Files: tcGameObject.h Log Message: Added better 3D model class for animation support Index: tcGameObject.h =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/include/sim/tcGameObject.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** tcGameObject.h 8 Dec 2003 03:06:36 -0000 1.9 --- tcGameObject.h 10 Jan 2004 21:55:31 -0000 1.10 *************** *** 74,79 **** std::vector<tcGameObject*> children; std::vector<tcGameObject*> toLaunch; // list of ex-childrent to launch ! osg::ref_ptr<osg::Group> model; ///< 3D model ! UINT mnModelType; // class MTYPE_ identifier int mnID; --- 74,79 ---- std::vector<tcGameObject*> children; std::vector<tcGameObject*> toLaunch; // list of ex-childrent to launch ! //osg::ref_ptr<osg::Group> model; ///< 3D model ! tc3DModel *model; ///< 3D model UINT mnModelType; // class MTYPE_ identifier int mnID; |
From: <ddc...@us...> - 2004-01-10 21:55:34
|
Update of /cvsroot/gcblue/gcb_wx In directory sc8-pr-cvs1:/tmp/cvs-serv22071 Modified Files: GCblue.vcproj Log Message: Added better 3D model class for animation support Index: GCblue.vcproj =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/GCblue.vcproj,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** GCblue.vcproj 4 Jan 2004 22:24:52 -0000 1.32 --- GCblue.vcproj 10 Jan 2004 21:55:30 -0000 1.33 *************** *** 211,214 **** --- 211,217 ---- </File> <File + RelativePath="src\graphics\tc3DModel.cpp"> + </File> + <File RelativePath="src\graphics\tc3DSky.cpp"> </File> *************** *** 527,530 **** --- 530,536 ---- <File RelativePath="include\graphics\tc2DGraphicsSurface.h"> + </File> + <File + RelativePath="include\graphics\tc3DModel.h"> </File> <File |
From: <ddc...@us...> - 2004-01-09 21:48:46
|
Update of /cvsroot/gcblue/gcb_wx/scripts In directory sc8-pr-cvs1:/tmp/cvs-serv28369/scripts Modified Files: AI.py Log Message: Index: AI.py =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/scripts/AI.py,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** AI.py 8 Jan 2004 23:54:27 -0000 1.7 --- AI.py 9 Jan 2004 21:48:40 -0000 1.8 *************** *** 114,118 **** ! # Run from hostile missiles (will run from antiship missiles too!) # return 1 if evading, 0 otherwise def EvadeMissiles(UI): --- 114,118 ---- ! # Run from hostile missiles (will run from supersonic antiship missiles too!) # return 1 if evading, 0 otherwise def EvadeMissiles(UI): *************** *** 128,133 **** for n in range(0, nMissiles): missile_track = track_list.GetTrack(n) track_range = UI.GetRangeToTrack(missile_track) ! if (track_range < closest_range) or (~foundThreat): int_heading = UI.GetInterceptHeadingToTrack(missile_track) heading_diff = RadianHeadingDiff(int_heading, UI.GetHeadingRad()) --- 128,135 ---- for n in range(0, nMissiles): missile_track = track_list.GetTrack(n) + hasAAMspeed = (missile_track.Speed > 600) # ignore subsonic missiles track_range = UI.GetRangeToTrack(missile_track) ! isClosestThreat = (track_range < closest_range) or (~foundThreat) ! if hasAAMspeed and isClosestThreat: int_heading = UI.GetInterceptHeadingToTrack(missile_track) heading_diff = RadianHeadingDiff(int_heading, UI.GetHeadingRad()) |
From: <ddc...@us...> - 2004-01-09 21:48:46
|
Update of /cvsroot/gcblue/gcb_wx/src/sim In directory sc8-pr-cvs1:/tmp/cvs-serv28369/src/sim Modified Files: Game.cpp tcMapView.cpp Log Message: Index: Game.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/Game.cpp,v retrieving revision 1.51 retrieving revision 1.52 diff -C2 -d -r1.51 -r1.52 *** Game.cpp 8 Jan 2004 23:54:27 -0000 1.51 --- Game.cpp 9 Jan 2004 21:48:40 -0000 1.52 *************** *** 502,506 **** briefingConsoleLeft->Print(" "); // need this to get it to display // add buttons ! briefingConsoleLeft->AddButton(wxRect(10,leftConsoleHeight-22,50,18), ID_SKIPBRIEFING, " SKIP"); briefingConsoleBottom = new tcSoundConsole(this, wxPoint(0,mnHeight-mnBottomMargin), --- 502,506 ---- briefingConsoleLeft->Print(" "); // need this to get it to display // add buttons ! briefingConsoleLeft->AddButton(wxRect(10,leftConsoleHeight-20,50,14), ID_SKIPBRIEFING, " SKIP"); briefingConsoleBottom = new tcSoundConsole(this, wxPoint(0,mnHeight-mnBottomMargin), Index: tcMapView.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcMapView.cpp,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** tcMapView.cpp 5 Jan 2004 02:48:03 -0000 1.14 --- tcMapView.cpp 9 Jan 2004 21:48:40 -0000 1.15 *************** *** 1298,1302 **** // search for hook ! fHookDistance = mfScale_radppel*10.0f; // 20 pixels fMinDistance = 1e15f; nMinID = NULL_INDEX; --- 1298,1302 ---- // search for hook ! fHookDistance = mfScale_radppel*15.0f; // 15 pixels fMinDistance = 1e15f; nMinID = NULL_INDEX; |
From: <ddc...@us...> - 2004-01-08 23:54:30
|
Update of /cvsroot/gcblue/gcb_wx/src/sim In directory sc8-pr-cvs1:/tmp/cvs-serv11677/src/sim Modified Files: Game.cpp tcAIData.cpp Log Message: Index: Game.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/Game.cpp,v retrieving revision 1.50 retrieving revision 1.51 diff -C2 -d -r1.50 -r1.51 *** Game.cpp 5 Jan 2004 02:48:03 -0000 1.50 --- Game.cpp 8 Jan 2004 23:54:27 -0000 1.51 *************** *** 502,506 **** briefingConsoleLeft->Print(" "); // need this to get it to display // add buttons ! briefingConsoleLeft->AddButton(wxRect(10,leftConsoleHeight-20,50,12), ID_SKIPBRIEFING, "SKIP"); briefingConsoleBottom = new tcSoundConsole(this, wxPoint(0,mnHeight-mnBottomMargin), --- 502,506 ---- briefingConsoleLeft->Print(" "); // need this to get it to display // add buttons ! briefingConsoleLeft->AddButton(wxRect(10,leftConsoleHeight-22,50,18), ID_SKIPBRIEFING, " SKIP"); briefingConsoleBottom = new tcSoundConsole(this, wxPoint(0,mnHeight-mnBottomMargin), Index: tcAIData.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcAIData.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** tcAIData.cpp 30 Nov 2003 17:23:52 -0000 1.4 --- tcAIData.cpp 8 Jan 2004 23:54:27 -0000 1.5 *************** *** 131,138 **** ! void tcAIData::Clear(void) { ClearOrders(); ClearVars(); ! mfNextUpdate = 0; mfUpdateInterval = 4.0f; mzActionText = "-"; --- 131,139 ---- ! void tcAIData::Clear(void) ! { ClearOrders(); ClearVars(); ! mfNextUpdate = randf(4.0f); mfUpdateInterval = 4.0f; mzActionText = "-"; |
From: <ddc...@us...> - 2004-01-08 23:54:30
|
Update of /cvsroot/gcblue/gcb_wx/src/scriptinterface In directory sc8-pr-cvs1:/tmp/cvs-serv11677/src/scriptinterface Modified Files: tcPlatformInterface.cpp tcPlatformInterfaceExtension.cpp tcPlatformInterfaceExtensionB.cpp Log Message: Index: tcPlatformInterface.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/scriptinterface/tcPlatformInterface.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** tcPlatformInterface.cpp 5 Jan 2004 02:48:03 -0000 1.12 --- tcPlatformInterface.cpp 8 Jan 2004 23:54:27 -0000 1.13 *************** *** 531,539 **** } /** * @param track Track to intercept. * @return intercept heading to track in radians. */ ! float tcPlatformInterface::GetInterceptHeadingToTrack(tcTrack track) { float fHeading_rad, fTTI; --- 531,577 ---- } + tcTrackList tcPlatformInterface::GetTrackList(int anClassMask, + float afMaxRange_km, UINT8 anAffiliation) + { + tcTrackList trackList; + + tcTrack *pTrack; + + wxASSERT(mpSensorMap); + + int nCount = mpSensorMap->GetTrackCount(); + if (nCount==0) + { + return trackList; + } + + tnPoolIndex nPos = mpSensorMap->GetStartTrackPosition(); + for(int n=0;n<nCount;n++) + { + mpSensorMap->GetNextTrack(nPos, pTrack); + bool bAffilMatch = (pTrack->mnAffiliation == anAffiliation) || + (pTrack->mnAffiliation == UNKNOWN); + if ((bAffilMatch)&&(pTrack->mnClassification & anClassMask)) + { + tsGeoPoint p; + p.mfAlt_m = 0; + p.mfLat_rad = pTrack->mfLat_rad; + p.mfLon_rad = pTrack->mfLon_rad; + float fRange_km = mpPlatformObj->mcKin.RangeToKm(&p); + if (fRange_km <= afMaxRange_km) + { + trackList.track.push_back(*pTrack); + } + } + } + return trackList; + } + + /** * @param track Track to intercept. * @return intercept heading to track in radians. */ ! float tcPlatformInterface::GetInterceptHeadingToTrack(const tcTrack& track) { float fHeading_rad, fTTI; *************** *** 542,545 **** --- 580,595 ---- return fHeading_rad; } + + /** + * @param track Track to get range info about. + * @return range in km + */ + float tcPlatformInterface::GetRangeToTrack(const tcTrack& track) + { + wxASSERT(mpPlatformObj); + + return mpPlatformObj->mcKin.RangeToKm(track); + } + /** Index: tcPlatformInterfaceExtension.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/scriptinterface/tcPlatformInterfaceExtension.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** tcPlatformInterfaceExtension.cpp 3 Jan 2004 00:45:13 -0000 1.5 --- tcPlatformInterfaceExtension.cpp 8 Jan 2004 23:54:27 -0000 1.6 *************** *** 70,73 **** --- 70,77 ---- ; + class_<tcTrackList>("TrackList") + .def("Size",&tcTrackList::Size) + .def("GetTrack",&tcTrackList::GetTrack) + ; class_<tsGeoPoint>("tsGeoPoint") Index: tcPlatformInterfaceExtensionB.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/scriptinterface/tcPlatformInterfaceExtensionB.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** tcPlatformInterfaceExtensionB.cpp 5 Jan 2004 02:48:03 -0000 1.8 --- tcPlatformInterfaceExtensionB.cpp 8 Jan 2004 23:54:27 -0000 1.9 *************** *** 54,57 **** --- 54,58 ---- .def("GetMaxSpeed",&tcPlatformInterface::GetMaxSpeed) .def("GetHeading",&tcPlatformInterface::GetHeading) + .def("GetHeadingRad",&tcPlatformInterface::GetHeadingRad) .def("GetHeadingToDatum",&tcPlatformInterface::GetHeadingToDatum) .def("GetRangeToDatum",&tcPlatformInterface::GetRangeToDatum) *************** *** 112,117 **** --- 113,120 ---- .def("SetSensorState",&tcPlatformInterface::SetSensorState) .def("GetInterceptHeadingToTrack",&tcPlatformInterface::GetInterceptHeadingToTrack) + .def("GetRangeToTrack",&tcPlatformInterface::GetRangeToTrack) .def("SetHeadingToInterceptTrack",&tcPlatformInterface::SetHeadingToInterceptTrack) .def("GetTrackById",&tcPlatformInterface::GetTrackById) + .def("GetTrackList",&tcPlatformInterface::GetTrackList) // flightport, landing |
From: <ddc...@us...> - 2004-01-08 23:54:30
|
Update of /cvsroot/gcblue/gcb_wx/src/common In directory sc8-pr-cvs1:/tmp/cvs-serv11677/src/common Modified Files: simmath.cpp Log Message: Index: simmath.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/common/simmath.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** simmath.cpp 28 Oct 2003 12:32:34 -0000 1.3 --- simmath.cpp 8 Jan 2004 23:54:27 -0000 1.4 *************** *** 302,306 **** (float)k.mfLat_rad,(float)k.mfLon_rad); } ! // returns range in km including altitude difference float tcKinematics::RangeToKmAlt(tcKinematics& k) { return C_RADTOKM * nsNav::GCDistanceApprox_rad((float)mfLat_rad,(float)mfLon_rad, --- 302,308 ---- (float)k.mfLat_rad,(float)k.mfLon_rad); } ! /** ! * @return range in km including range due to altitude difference ! */ float tcKinematics::RangeToKmAlt(tcKinematics& k) { return C_RADTOKM * nsNav::GCDistanceApprox_rad((float)mfLat_rad,(float)mfLon_rad, *************** *** 314,317 **** --- 316,332 ---- } + /** + * @return approximate range in km, altitude difference is neglected + */ + float tcKinematics::RangeToKm(const tcTrack& track) + { + float lat_rad = (float)track.mfLat_rad; + float lon_rad = (float)track.mfLon_rad; + return C_RADTOKM * nsNav::GCDistanceApprox_rad((float)mfLat_rad,(float)mfLon_rad, + lat_rad,lon_rad); + } + + + void tcKinematics::Serialize(tcFile& file, bool abLoad) { if (abLoad) { *************** *** 339,343 **** } ! void tcKinematics::GetInterceptData2D(tcTrack& track, float& rfHeading_rad, float& rfTimeToIntercept) { float dx,dy; --- 354,358 ---- } ! void tcKinematics::GetInterceptData2D(const tcTrack& track, float& rfHeading_rad, float& rfTimeToIntercept) { float dx,dy; *************** *** 383,387 **** } ! void tcKinematics::GetInterceptData3D(tcTrack& track, float& rfHeading_rad, float& rfClimbAngle_rad, float& rfTimeToIntercept, float& rfRange_rad) { --- 398,402 ---- } ! void tcKinematics::GetInterceptData3D(const tcTrack& track, float& rfHeading_rad, float& rfClimbAngle_rad, float& rfTimeToIntercept, float& rfRange_rad) { |
From: <ddc...@us...> - 2004-01-08 23:54:30
|
Update of /cvsroot/gcblue/gcb_wx/scripts In directory sc8-pr-cvs1:/tmp/cvs-serv11677/scripts Modified Files: AI.py Log Message: Index: AI.py =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/scripts/AI.py,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** AI.py 5 Jan 2004 02:48:02 -0000 1.6 --- AI.py 8 Jan 2004 23:54:27 -0000 1.7 *************** *** 15,37 **** return elif (order_name == 'Patrol'): ! targetid = UnitInfo.GetTarget() ! if targetid != 0xFFFFFFFF: ! InterceptTarget(UnitInfo) ! return ! UnitInfo.SetVar(0,0) # set user variable 0 to zero ! # patrol box ! UnitInfo.SetAllSensorState(1) ! heading = UnitInfo.GetHeading() ! heading = heading + 45.0 ! if (heading >= 360.0): ! heading = heading - 360.0 ! UnitInfo.SetHeading(heading) ! UnitInfo.SetUpdate(30.0) ! # engage hostiles in range ! track_id = GetSuitableTarget(UnitInfo) ! if (track_id != 0xFFFFFFFF): ! UnitInfo.SetTarget(track_id) ! UnitInfo.SetHeadingToInterceptTarget() ! UnitInfo.SetUpdate(4.0) elif (order_name == 'Crash'): UnitInfo.SetAlt(0) --- 15,19 ---- return elif (order_name == 'Patrol'): ! Patrol(UnitInfo) elif (order_name == 'Crash'): UnitInfo.SetAlt(0) *************** *** 52,55 **** --- 34,39 ---- UnitInfo.CompletedOrder() AvoidGround(UnitInfo) # adjust altitude to avoid crashing into terrain + elif (order_name == 'ZigZagPatrol'): + ZigZagPatrol(UnitInfo) *************** *** 64,67 **** --- 48,117 ---- + def Patrol(UI): + targetid = UI.GetTarget() + if targetid != 0xFFFFFFFF: + InterceptTarget(UI) + return + UI.SetVar(0,0) # set user variable 0 to zero + # patrol box + UI.SetAllSensorState(1) + heading = UI.GetHeading() + heading = heading + 45.0 + if (heading >= 360.0): + heading = heading - 360.0 + UI.SetHeading(heading) + UI.SetUpdate(30.0) + # engage hostiles in range + track_id = GetSuitableTarget(UI) + if (track_id != 0xFFFFFFFF): + UI.SetTarget(track_id) + UI.SetHeadingToInterceptTarget() + UI.SetUpdate(4.0) + + # Patrols in given direction, zig-zagging along the way + # then reverses path + def ZigZagPatrol(UI): + targetid = UI.GetTarget() + if targetid != 0xFFFFFFFF: + InterceptTarget(UI) + return + call_count = UI.GetVar(0) + call_count = call_count + 1 + UI.SetVar(0, call_count) # increment call count + if (call_count == 1): + UI.SetVar(1, int(UI.GetHeading())) # this heading is used to determine patrol direction + UI.SetAllSensorState(1) + if (UI.Rand() < 0.5): + UI.SetVar(2, 1) + else: + UI.SetVar(2, 0) + + axis_heading = float(UI.GetVar(1)) + go_left = UI.GetVar(2) + if (go_left == 1): + UI.SetHeading(axis_heading - 30) + else: + UI.SetHeading(axis_heading + 30) + + UI.SetUpdate(20.0 + 2*UI.Rand()) + # engage hostiles in range + track_id = GetSuitableTarget(UI) + if (track_id != 0xFFFFFFFF): + UI.SetTarget(track_id) + UI.SetHeadingToInterceptTarget() + UI.SetUpdate(4.0) + + # abs() of difference between two radian headings + def RadianHeadingDiff(h1, h2): + delta = h1 - h2 + if (delta < -3.14159): + delta = delta + 6.28318 + elif (delta > 3.14159): + delta = delta - 6.28318 + if (delta < 0): + delta = -delta + return delta + + # Run from hostile missiles (will run from antiship missiles too!) # return 1 if evading, 0 otherwise *************** *** 69,77 **** if (UI.IsAir()==0): return 0 # only evade with air platforms ! threat_track = UI.GetClosestMissileTrack(100, 3) if (threat_track.IsValid()): - print 'fleeing' - flee_heading = UI.GetInterceptHeadingToTrack(threat_track) + 3.14 UI.SetHeadingRad(flee_heading) # run from missile if (UI.GetFuel() > 0.2): --- 119,146 ---- if (UI.IsAir()==0): return 0 # only evade with air platforms + + max_range = 100 # max range in km to look for missile threats + track_list = UI.GetTrackList(64, max_range, 3) # 64 returns missiles, 3 hostiles + nMissiles = track_list.Size() + closest_range = 10000 + foundThreat = 0 + flee_heading = 0 + for n in range(0, nMissiles): + missile_track = track_list.GetTrack(n) + track_range = UI.GetRangeToTrack(missile_track) + if (track_range < closest_range) or (~foundThreat): + int_heading = UI.GetInterceptHeadingToTrack(missile_track) + heading_diff = RadianHeadingDiff(int_heading, UI.GetHeadingRad()) + diff_thresh = 15/track_range # 90 deg at 10 km + if (heading_diff < diff_thresh): + foundThreat = 1 + closest_range = track_range + flee_heading = int_heading + 3.14 + threat_track = missile_track ! if (foundThreat==0): ! return 0 ! if (threat_track.IsValid()): UI.SetHeadingRad(flee_heading) # run from missile if (UI.GetFuel() > 0.2): *************** *** 79,83 **** else: SetFractionalSpeed(UI, 1.0) ! UI.SetUpdate(4.0) return 1 else: --- 148,152 ---- else: SetFractionalSpeed(UI, 1.0) ! UI.SetUpdate(6.0) return 1 else: |
From: <ddc...@us...> - 2004-01-08 23:54:30
|
Update of /cvsroot/gcblue/gcb_wx/include/scriptinterface In directory sc8-pr-cvs1:/tmp/cvs-serv11677/include/scriptinterface Modified Files: tcPlatformInterface.h Log Message: Index: tcPlatformInterface.h =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/include/scriptinterface/tcPlatformInterface.h,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** tcPlatformInterface.h 5 Jan 2004 02:48:02 -0000 1.10 --- tcPlatformInterface.h 8 Jan 2004 23:54:27 -0000 1.11 *************** *** 61,64 **** --- 61,75 ---- }; + class tcTrackList + { + public: + std::vector<tcTrack> track; + + tcTrack GetTrack(int n) {return track[n];} + int Size() {return (int)track.size();} + + tcTrackList() {track.clear();} + }; + /** * Interface class for Python-unit interface. *************** *** 82,85 **** --- 93,97 ---- float GetMaxSpeed() {return mpPlatformObj->mpDBObject->mfMaxSpeed_kts;} float GetHeading() {return C_180OVERPI*mpPlatformObj->mcKin.mfHeading_rad;} + float GetHeadingRad() {return mpPlatformObj->mcKin.mfHeading_rad;} float GetTerrainElevation(); bool HasThrottle(); *************** *** 154,158 **** tcTrack GetClosestSurfaceTrack(float afMaxRange_km, UINT8 anAffiliation); tcTrack GetClosestMissileTrack(float afMaxRange_km, UINT8 anAffiliation); ! float GetInterceptHeadingToTrack(tcTrack track); float SetHeadingToInterceptTrack(tcTrack track); tcTrack GetTrackById(long id); --- 166,172 ---- tcTrack GetClosestSurfaceTrack(float afMaxRange_km, UINT8 anAffiliation); tcTrack GetClosestMissileTrack(float afMaxRange_km, UINT8 anAffiliation); ! tcTrackList GetTrackList(int anClassMask, float afMaxRange_km, UINT8 anAffiliation); ! float GetInterceptHeadingToTrack(const tcTrack& track); ! float GetRangeToTrack(const tcTrack& track); float SetHeadingToInterceptTrack(tcTrack track); tcTrack GetTrackById(long id); |
From: <ddc...@us...> - 2004-01-08 23:54:30
|
Update of /cvsroot/gcblue/gcb_wx/include/common In directory sc8-pr-cvs1:/tmp/cvs-serv11677/include/common Modified Files: simmath.h Log Message: Index: simmath.h =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/include/common/simmath.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** simmath.h 3 Jan 2004 00:45:12 -0000 1.5 --- simmath.h 8 Jan 2004 23:54:26 -0000 1.6 *************** *** 162,170 **** float RangeToKm(const tsGeoPoint *apGeoPoint); float RangeToKm(tcKinematics& k); float RangeToKmAlt(tcKinematics& k); //float InterceptHeadingToTrack(tcTrack& track, float& afTimeToIntercept); ! void GetInterceptData2D(tcTrack& track, float& rfHeading_rad, float& rfTimeToIntercept); ! void GetInterceptData3D(tcTrack& track, float& rfHeading_rad, float& rfClimbAngle_rad, float& rfTimeToIntercept, float& rfRange_rad); void Serialize(tcFile& file, bool abLoad); --- 162,171 ---- float RangeToKm(const tsGeoPoint *apGeoPoint); float RangeToKm(tcKinematics& k); + float RangeToKm(const tcTrack& track); float RangeToKmAlt(tcKinematics& k); //float InterceptHeadingToTrack(tcTrack& track, float& afTimeToIntercept); ! void GetInterceptData2D(const tcTrack& track, float& rfHeading_rad, float& rfTimeToIntercept); ! void GetInterceptData3D(const tcTrack& track, float& rfHeading_rad, float& rfClimbAngle_rad, float& rfTimeToIntercept, float& rfRange_rad); void Serialize(tcFile& file, bool abLoad); |
From: <ddc...@us...> - 2004-01-05 02:50:37
|
Update of /cvsroot/gcblue/gcb_data/database In directory sc8-pr-cvs1:/tmp/cvs-serv13171/database Modified Files: air.csv esm.csv generic.csv launcher.csv missile.csv radar.csv Added Files: flightport.csv Log Message: --- NEW FILE: flightport.csv --- Database class,Model class id,Functional class id,ImageFileName,3DModelFileName,Description,Helo only?,Hangar capacity,S1-Launch,S1-x[m],S1-z,S1-y,S1-orientation[deg],S1-length[m],S2-Launch,S2-x[m],S2-z,S2-y,S2-orientation[deg],S2-length[m],S3-Launch,S3-x[m],S3-z,S3-y,S3-orientation[deg],S3-length[m],S4-Launch,S4-x[m],S4-z,S4-y,S4-orientation[deg],S4-length[m],S5-Launch,S5-x[m],S5-z,S5-y,S5-orientation[deg],S5-length[m],S6-Launch,S6-x[m],S6-z,S6-y,S6-orientation[deg],S6-length[m],S7-Launch,S7-x[m],S7-z,S7-y,S7-orientation[deg],S7-length[m],S8-Launch,S8-x[m],S8-z,S8-y,S8-orientation[deg],S8-length[m],S9-Launch,S9-x[m],S9-z,S9-y,S9-orientation[deg],S9-length[m],S10-Launch,S10-x[m],S10-z,S10-y,S10-orientation[deg],S10-length[m],S11-Launch,S11-x[m],S11-z,S11-y,S11-orientation[deg],S11-length[m],S12-Launch,S12-x[m],S12-z,S12-y,S12-orientation[deg],S12-length[m],S13-Launch,S13-x[m],S13-z,S13-y,S13-orientation[deg],S13-length[m],S14-Launch,S14-x[m],S14-z,S14-y,S14-orientation[deg],S14-length[m],S15-Launch,S15-x[m],S15-z,S15-y,S15-orientation[deg],S15-length[m],S16-Launch,S16-x[m],S16-z,S16-y,S16-orientation[deg],S16-length[m] HermesFlightDeck,0,0,NONE,NONE,Hermes test flight deck,0,16,1,-12.5,16,18.799999,2.5,0,1,-2.5,16,18.799999,-2,0,0,5,16,36.25,-30,0,0,1.25,16,45,-30,0,0,7.5,16,60,25,0,0,7.5,16,72.5,25,0,0,7.5,16,85,25,0,0,7.5,16,97.5,25,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Index: air.csv =================================================================== RCS file: /cvsroot/gcblue/gcb_data/database/air.csv,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** air.csv 1 Jan 2004 23:40:34 -0000 1.2 --- air.csv 5 Jan 2004 02:50:33 -0000 1.3 *************** *** 1,5 **** ! Database class,Model class id,Functional class id,ImageFileName,3DModelFileName,Description,Rcs_dbsm,MaxSpeed_kts,Accel_ktsps,TurnRate_degps,FuelCapacity [kg],FuelRate [kg/s],MaxAltitude_m,MaxDepth_m,AltitudeRate_mps,Toughness,Damage,Weight[kg],MaxThrust[N],Range_km,Launcher1,Launcher2,Launcher3,Launcher4,Launcher5,Launcher6,Launcher7,Launcher8,Sensor1,Sensor2,Sensor3,Sensor4,Sensor5,Sensor6,Sensor7,Sensor8,AfterburnFuelRate_kgps,AfterburnThrust_N,DragArea_sm,WingArea_sm,Cdpsub,Cdptran,Cdpsup,Mcm,Msupm,Kdi,MaxAoa_rad,MaxCl,Gmax ! AeroTest1,12,33,NONE,gr3uk,Test aircraft 1,10,1000,20,20,2000,1,15600,0,0,1,0,22000,215000,0,AAM Launcher,ASM Launcher,,,,,,,Fighter radar,,,,,,,,50,500000,200,40,5,10,7,0.9,1.1,0.3,0.1,0.5,5 ! AeroTest2,12,33,NONE,gr3uk,Test aircraft 2,10,1000,20,20,2000,1,15600,0,0,1,0,22000,215000,0,AAM Launcher,ASM Launcher,,,,,,,Fighter radar,,,,,,,,50,500000,200,40,5,25,50,0.9,1.1,0.3,0.1,0.5,5 ! Mig25,12,33,NONE,m50_co,Mig25 aero model test,10,2000,20,20,5000,1,20000,0,0,1,0,15000,150000,0,AAM Launcher,,,,,,,,Fighter radar,,,,,,,,15,220000,0.93,40,0.7,1.2,1,0.9,1.1,0.3,0.1,0.5,5 ! Harrier GR3a,12,33,NONE,gr3uk,"Single-engine; ""jump-jet"" fighter-bomber designed to fly from combat areas and aircraft carriers and to support ground forces. It was made by Hawker Siddeley Aviation and first flew on Aug. 31; 1966; after a long period of development.Powered by a vectored-thrust turbofan engine; the plane diverted its engine thrust downward for vertical takeoff using rotatable engine exhaust ports. It could carry a combination of armaments; including air-to-air missiles; air-to-surface antiship missiles; rockets; bombs.ÍÍ",0,639,20,20,1000,1,15600,0,0,1,0,15000,60000,0,AAM-SR Launcher,ASM Launcher,,,,,,,Fighter radar,,,,,,,,15,85000,1,40,0.7,5,20,0.9,1.1,0.3,0.1,0.5,5 --- 1,3 ---- ! Database class,Model class id,Functional class id,ImageFileName,3DModelFileName,Description,Rcs_dbsm,MaxSpeed_kts,Accel_ktsps,TurnRate_degps,FuelCapacity [kg],FuelRate [kg/s],MaxAltitude_m,MaxDepth_m,AltitudeRate_mps,Toughness,Damage,Weight[kg],MaxThrust[N],Range_km,Flightport Class,Launcher1,Launcher1-angle,Launcher2,Launcher2-angle,Launcher3,Launcher3-angle,Launcher4,Launcher4-angle,Launcher5,Launcher5-angle,Launcher6,Launcher6-angle,Launcher7,Launcher7-angle,Launcher8,Launcher8-angle,Sensor1,Sensor1-angle,Sensor2,Sensor2-angle,Sensor3,Sensor3-angle,Sensor4,Sensor4-angle,Sensor5,Sensor5-angle,Sensor6,Sensor6-angle,Sensor7,Sensor7-angle,Sensor8,Sensor8-angle,AfterburnFuelRate_kgps,AfterburnThrust_N,DragArea_sm,WingArea_sm,Cdpsub,Cdptran,Cdpsup,Mcm,Msupm,Kdi,MaxAoa_rad,MaxCl,Gmax ! Mig25,12,33,NONE,m50_co,Mig25 aero model test,10,2000,20,20,5000,1,20000,0,0,2,0,15000,150000,0,,AAM Launcher,0,,,,,,,,,,,,,,,Fighter radar,0,,,,,,,,,,,,,,,15,220000,0.93,40,0.7,1.2,1,0.9,1.1,0.3,0.1,0.5,5 ! Harrier GR3a,12,33,NONE,gr3uk,"Single-engine; ""jump-jet"" fighter-bomber designed to fly from combat areas and aircraft carriers and to support ground forces. It was made by Hawker Siddeley Aviation and first flew on Aug. 31; 1966; after a long period of development.Powered by a vectored-thrust turbofan engine; the plane diverted its engine thrust downward for vertical takeoff using rotatable engine exhaust ports. It could carry a combination of armaments; including air-to-air missiles; air-to-surface antiship missiles; rockets; bombs.ÍÍ",0,639,20,20,1000,1,15600,0,0,2,0,15000,60000,0,,AAM-SR Launcher,0,ASM Launcher,0,,,,,,,,,,,,,Fighter radar,0,,,,,,,,,,,,,,,15,85000,1,40,0.7,5,20,0.9,1.1,0.3,0.1,0.5,5 Index: esm.csv =================================================================== RCS file: /cvsroot/gcblue/gcb_data/database/esm.csv,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** esm.csv 30 Nov 2003 18:00:38 -0000 1.1 --- esm.csv 5 Jan 2004 02:50:33 -0000 1.2 *************** *** 1,3 **** Database class,Model class id,Functional class id,ImageFileName,3DModelFileName,Description,MaxRange_km,RefRange_km,FieldOfView_deg,ScanPeriod_s - ESM-B,0,0,NONE,,No description is available.,200.000000,80.000000,360.000000,8.000000 ESM-A,0,0,NONE,,No description is available.,100.000000,20.000000,360.000000,12.000000 --- 1,3 ---- Database class,Model class id,Functional class id,ImageFileName,3DModelFileName,Description,MaxRange_km,RefRange_km,FieldOfView_deg,ScanPeriod_s ESM-A,0,0,NONE,,No description is available.,100.000000,20.000000,360.000000,12.000000 + ESM-B,0,0,NONE,,No description is available.,200.000000,80.000000,360.000000,8.000000 Index: generic.csv =================================================================== RCS file: /cvsroot/gcblue/gcb_data/database/generic.csv,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** generic.csv 1 Jan 2004 23:40:34 -0000 1.3 --- generic.csv 5 Jan 2004 02:50:33 -0000 1.4 *************** *** 1,8 **** ! Database class,Model class id,Functional class id,ImageFileName,3DModelFileName,Description,Rcs_dbsm,MaxSpeed_kts,Accel_ktsps,TurnRate_degps,FuelCapacity [kg],FuelRate [kg/s],MaxAltitude_m,MaxDepth_m,AltitudeRate_mps,Toughness,Damage,Weight[kg],MaxThrust[N],Range_km,Launcher1,Launcher2,Launcher3,Launcher4,Launcher5,Launcher6,Launcher7,Launcher8,Sensor1,Sensor2,Sensor3,Sensor4,Sensor5,Sensor6,Sensor7,Sensor8 ! Generic aircraft,4,33,NONE,fa1uk,A generic aircraft.vailable.,0,500,10,20,1000,0,10000,0,0,1,0,1,0,0,AAM Launcher,ASM Launcher,,,,,,,Fighter radar,,,,,,, ! Patrol Boat,1,17,NONE,pg84,No description is available.,0,50,2,5,100000,0,0,0,0,1,0,1,0,0,SAM Launcher,,,,,,,,Generic radar,,,,,,, ! Cruiser,1,18,NONE,type45edit,No description is available.,0,32,1,1,0,0,0,0,0,1,0,1,0,0,SAM Launcher,SAM Launcher,SSM Launcher,,,,,,Air search radar,ESM-A,,,,,, ! Destroyer,1,18,NONE,type45edit,No description is available.,0,30,1,2,0,0,0,0,0,1,0,1,0,0,SAM Launcher,SSM Launcher,,,,,,,Generic radar,,,,,,, ! AEW aircraft,4,33,NONE,c130e_ar,No description is available.,0,300,10,8,1000,0,10000,0,0,1,0,1,0,0,,,,,,,,,AEW radar,ESM-A,,,,,, ! Harrier GR3+,4,33,NONE,gr3uk,"Single-engine; ""jump-jet"" fighter-bomber designed to fly from combat areas and aircraft carriers and to support ground forces. It was made by Hawker Siddeley Aviation and first flew on Aug. 31; 1966; after a long period of development.Powered by a vectored-thrust turbofan engine; the plane diverted its engine thrust downward for vertical takeoff using rotatable engine exhaust ports. It could carry a combination of armaments; including air-to-air missiles; air-to-surface antiship missiles; rockets; bombs.ÍÍ",0,639,20,20,1000,0,15600,0,0,1,0,22000,21500,0,AAM Launcher,ASM Launcher,,,,,,,Fighter radar,,,,,,, ! Hermes,2,18,NONE,hermes,Model from Marcelo's Falklands set.ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ,0,30,0.25,1,0,0,0,0,0,1,0,1,0,0,SAM Launcher,,,,,,,,Generic radar,,,,,,, --- 1,9 ---- ! Database class,Model class id,Functional class id,ImageFileName,3DModelFileName,Description,Rcs_dbsm,MaxSpeed_kts,Accel_ktsps,TurnRate_degps,FuelCapacity [kg],FuelRate [kg/s],MaxAltitude_m,MaxDepth_m,AltitudeRate_mps,Toughness,Damage,Weight[kg],MaxThrust[N],Range_km,Flightport Class,Launcher1,Launcher1-angle,Launcher2,Launcher2-angle,Launcher3,Launcher3-angle,Launcher4,Launcher4-angle,Launcher5,Launcher5-angle,Launcher6,Launcher6-angle,Launcher7,Launcher7-angle,Launcher8,Launcher8-angle,Sensor1,Sensor1-angle,Sensor2,Sensor2-angle,Sensor3,Sensor3-angle,Sensor4,Sensor4-angle,Sensor5,Sensor5-angle,Sensor6,Sensor6-angle,Sensor7,Sensor7-angle,Sensor8,Sensor8-angle ! Generic aircraft,4,33,NONE,fa1uk,A generic aircraft.vailable.,0,500,10,20,1000,0,10000,0,0,2,0,1,0,0,,AAM Launcher,0,ASM Launcher,0,,,,,,,,,,,,,Fighter radar,0,,,,,,,,,,,,,, ! Patrol Boat,1,17,NONE,pg84,No description is available.,0,50,2,5,100000,0,0,0,0,25,0,1,0,0,,SAM Launcher,0,,,,,,,,,,,,,,,Generic radar,0,,,,,,,,,,,,,, ! Cruiser,1,18,NONE,type45edit,No description is available.,0,32,0.7,1,0,0,0,0,0,200,0,1,0,0,,SAM Launcher,0,SAM Launcher,0,SSM Launcher,0,,,,,,,,,,,Air search radar,0,ESM-A,0,,,,,,,,,,,, ! Destroyer,1,18,NONE,type45edit,No description is available.,0,30,1,2,0,0,0,0,0,100,0,1,0,0,,SAM Launcher,0,SSM Launcher,0,,,,,,,,,,,,,Generic radar,0,,,,,,,,,,,,,, ! AEW aircraft,4,33,NONE,c130f_ar,No description is available.,0,300,10,8,1000,0,10000,0,0,2,0,1,0,0,,,,,,,,,,,,,,,,,,AEW radar,0,ESM-A,0,,,,,,,,,,,, ! Harrier GR3+,4,33,NONE,gr3uk,"Single-engine; ""jump-jet"" fighter-bomber designed to fly from combat areas and aircraft carriers and to support ground forces. It was made by Hawker Siddeley Aviation and first flew on Aug. 31; 1966; after a long period of development.Powered by a vectored-thrust turbofan engine; the plane diverted its engine thrust downward for vertical takeoff using rotatable engine exhaust ports. It could carry a combination of armaments; including air-to-air missiles; air-to-surface antiship missiles; rockets; bombs.ÍÍ",0,639,20,20,1000,0,15600,0,0,2,0,22000,21500,0,,AAM Launcher,0,ASM Launcher,0,,,,,,,,,,,,,Fighter radar,0,,,,,,,,,,,,,, ! Hermes,2,18,NONE,hermes,Model from Marcelo's Falklands set.ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ,0,30,0.25,1,0,0,0,0,0,200,0,1,0,0,HermesFlightDeck,SAM Launcher,0,,,,,,,,,,,,,,,Generic radar,0,,,,,,,,,,,,,, ! Type82,1,18,NONE,type82,Air defense destroyer; 1972; originally intended as a class of four; to escort the new CVA-01 class of carriers; the other three were canceled before being laid down when the new carriers were canceled. BRISTOL was therefore used principally as a trials platform for new weapons systems.,0,30,0.5,1,0,0,0,0,0,250,0,1,0,0,,SAM Launcher,0,SSM Launcher,0,,,,,,,,,,,,,Air search radar,0,ESM-A,0,,,,,,,,,,,, Index: launcher.csv =================================================================== RCS file: /cvsroot/gcblue/gcb_data/database/launcher.csv,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** launcher.csv 1 Jan 2004 23:40:34 -0000 1.2 --- launcher.csv 5 Jan 2004 02:50:33 -0000 1.3 *************** *** 1,6 **** Database class,Model class id,Functional class id,ImageFileName,3DModelFileName,Description,Basic capacity,Basic class,Cap1,Class1,Cap2,Class2,Cap3,Class3,Cap4,Class4,Cap5,Class5,Cap6,Class6,Cap7,Class7,Cap8,Class8 - SAM Launcher,0,0,NONE,,No description is available.,10,SAM-I,10,SAM-I,,,,,,,,,,,,,, - AAM Launcher,0,0,NONE,,No description is available.,4,AAM-I,4,AAM-I,,,,,,,,,,,,,, - ASM Launcher,0,0,NONE,,No description is available.,4,ASM-I,4,ASM-I,,,,,,,,,,,,,, - SSM Launcher,0,0,NONE,,No description is available.,10,SSM-I,10,SSM-I,,,,,,,,,,,,,, AAM-SR Launcher,0,0,NONE,,No description is available.,4,AAM-SR,4,AAM-SR,,,,,,,,,,,,,, --- 1,6 ---- Database class,Model class id,Functional class id,ImageFileName,3DModelFileName,Description,Basic capacity,Basic class,Cap1,Class1,Cap2,Class2,Cap3,Class3,Cap4,Class4,Cap5,Class5,Cap6,Class6,Cap7,Class7,Cap8,Class8 AAM-SR Launcher,0,0,NONE,,No description is available.,4,AAM-SR,4,AAM-SR,,,,,,,,,,,,,, + SSM Launcher,0,0,NONE,,No description is available.,10,SSM-I,10,SSM-I,,,,,,,,,,,,,, + ASM Launcher,0,0,NONE,,No description is available.,4,ASM-I,4,ASM-I,,,,,,,,,,,,,, + AAM Launcher,0,0,NONE,,No description is available.,4,AAM-I,4,AAM-I,,,,,,,,,,,,,, + SAM Launcher,0,0,NONE,,No description is available.,10,SAM-I,10,SAM-I,,,,,,,,,,,,,, Index: missile.csv =================================================================== RCS file: /cvsroot/gcblue/gcb_data/database/missile.csv,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** missile.csv 1 Jan 2004 23:40:34 -0000 1.2 --- missile.csv 5 Jan 2004 02:50:33 -0000 1.3 *************** *** 1,6 **** Database class,Model class id,Functional class id,ImageFileName,3DModelFileName,Description,Mass_kg,DragArea_sm,Gmax,MaxTurnRate_degps,Cdpsub,Cdptran,Cdpsup,Mcm,Msupm,Kdi,BoostThrust_N,BoostTime_s,SustThrust_N,SustTime_s,Damage,DamageType,Rcs_dbsm,Range_km,ShutdownSpeed_mps,SensorClass1,SensorClass2,Range_km[1],Alt_m[1],AltMode[1],GuidanceMode[1],Range_km[2],Alt_m[2],AltMode[2],GuidanceMode[2],Range_km[3],Alt_m[3],AltMode[3],GuidanceMode[3],Range_km[4],Alt_m[4],AltMode[4],GuidanceMode[4],Range_km[5],Alt_m[5],AltMode[5],GuidanceMode[5],Range_km[6],Alt_m[6],AltMode[6],GuidanceMode[6],Range_km[7],Alt_m[7],AltMode[7],GuidanceMode[7],Range_km[8],Alt_m[8],AltMode[8],GuidanceMode[8],TargetFlags ! ASM-I,5,64,NONE,am39,No description is available.,100,0.01,20,15,0.2,0.4,0.3,0.9,1.1,0.1,50000,20,20000,120,100,0,10,180,200,ASM Seeker,none,20,15000,0,1,9,5000,2,2,,,,,,,,,,,,,,,,,,,,,,,,,1 ! AAM-I,5,64,NONE,aim9b,No description is available.,100,0.01,20,15,0.1,0.19,0.125,0.9,1.1,0.1,80000,5,50000,55,100,0,0,60,200,AAM Seeker,none,30,15000,0,2,9,5000,2,2,,,,,,,,,,,,,,,,,,,,,,,,,2 ! SAM-I,5,64,NONE,roland_sam,No description is available.,80,0.003,20,15,0.15,0.2,0.15,0.9,1.1,0.1,100000,10,80000,60,100,0,10,120,400,SAM Seeker,none,0,10000,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10 ! SSM-I,5,64,NONE,mm38,No description is available.,80,0.01,20,15,0.1,0.18,0.13,0.9,1.1,0.1,45000,300,10000,20,100,0,0,150,150,SSM Seeker,none,20,300,0,1,5,100,2,2,,,,,,,,,,,,,,,,,,,,,,,,,1 ! AAM-SR,5,64,NONE,aim9b,Short range air-to-air generic,100,0.01,20,15,0.1,0.19,0.125,0.9,1.1,0.1,80000,5,50000,20,100,0,0,60,200,AAM Seeker,none,0,5000,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2 --- 1,6 ---- Database class,Model class id,Functional class id,ImageFileName,3DModelFileName,Description,Mass_kg,DragArea_sm,Gmax,MaxTurnRate_degps,Cdpsub,Cdptran,Cdpsup,Mcm,Msupm,Kdi,BoostThrust_N,BoostTime_s,SustThrust_N,SustTime_s,Damage,DamageType,Rcs_dbsm,Range_km,ShutdownSpeed_mps,SensorClass1,SensorClass2,Range_km[1],Alt_m[1],AltMode[1],GuidanceMode[1],Range_km[2],Alt_m[2],AltMode[2],GuidanceMode[2],Range_km[3],Alt_m[3],AltMode[3],GuidanceMode[3],Range_km[4],Alt_m[4],AltMode[4],GuidanceMode[4],Range_km[5],Alt_m[5],AltMode[5],GuidanceMode[5],Range_km[6],Alt_m[6],AltMode[6],GuidanceMode[6],Range_km[7],Alt_m[7],AltMode[7],GuidanceMode[7],Range_km[8],Alt_m[8],AltMode[8],GuidanceMode[8],TargetFlags ! AAM-SR,5,64,NONE,aim9b,Short range air-to-air generic,100,0.01,20,15,0.1,0.19,0.125,0.9,1.1,0.1,80000,5,50000,20,2,0,0,40,200,AAM Seeker,none,0,5000,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2 ! SSM-I,5,64,NONE,mm38,No description is available.,80,0.01,20,15,0.1,0.18,0.13,0.9,1.1,0.1,45000,300,10000,20,50,0,0,200,150,SSM Seeker,none,20,300,0,1,5,100,2,2,,,,,,,,,,,,,,,,,,,,,,,,,1 ! SAM-I,5,64,NONE,roland_sam,No description is available.,80,0.003,20,15,0.15,0.2,0.15,0.9,1.1,0.1,100000,10,80000,50,3,0,10,100,400,SAM Seeker,none,0,10000,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10 ! AAM-I,5,64,NONE,aim9b,No description is available.,100,0.01,20,15,0.1,0.19,0.125,0.9,1.1,0.1,80000,5,50000,55,3,0,0,60,200,AAM Seeker,none,30,15000,0,2,9,5000,2,2,,,,,,,,,,,,,,,,,,,,,,,,,2 ! ASM-I,5,64,NONE,am39,No description is available.,100,0.01,20,15,0.2,0.4,0.3,0.9,1.1,0.1,50000,20,20000,120,50,0,10,180,200,ASM Seeker,none,20,15000,0,1,9,5000,2,2,,,,,,,,,,,,,,,,,,,,,,,,,1 Index: radar.csv =================================================================== RCS file: /cvsroot/gcblue/gcb_data/database/radar.csv,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** radar.csv 30 Nov 2003 18:00:40 -0000 1.1 --- radar.csv 5 Jan 2004 02:50:33 -0000 1.2 *************** *** 1,9 **** Database class,Model class id,Functional class id,ImageFileName,3DModelFileName,Description,MaxRange_km,RefRange_km,FieldOfView_deg,ScanPeriod_s,MinRange_km,ERP_dBW,MinRangeRate_mps,DetectsSurface,DetectsAir - Air search radar,0,0,NONE,,No description is available.,200.000000,100.000000,360.000000,9.000000,0.100000,100.000000,0.000000,0,1 - AEW radar,0,0,NONE,,No description is available.,200.000000,150.000000,360.000000,12.000000,0.100000,100.000000,0.000000,1,1 - Generic radar,0,0,NONE,,No description is available.,100.000000,50.000000,360.000000,8.000000,0.100000,80.000000,0.000000,1,1 - Fighter radar,0,0,NONE,,No description is available.,130.000000,60.000000,90.000000,4.000000,0.100000,80.000000,0.000000,1,1 - ASM Seeker,0,0,NONE,,No description is available.,50.000000,50.000000,60.000000,4.000000,0.100000,70.000000,0.000000,1,0 - AAM Seeker,0,0,NONE,,No description is available.,80.000000,80.000000,90.000000,3.000000,0.100000,70.000000,0.000000,0,1 - SAM Seeker,0,0,NONE,,No description is available.,70.000000,70.000000,360.000000,3.000000,0.100000,70.000000,0.000000,0,1 SSM Seeker,0,0,NONE,,No description is available.,50.000000,50.000000,60.000000,4.000000,0.100000,70.000000,0.000000,1,0 --- 1,9 ---- Database class,Model class id,Functional class id,ImageFileName,3DModelFileName,Description,MaxRange_km,RefRange_km,FieldOfView_deg,ScanPeriod_s,MinRange_km,ERP_dBW,MinRangeRate_mps,DetectsSurface,DetectsAir SSM Seeker,0,0,NONE,,No description is available.,50.000000,50.000000,60.000000,4.000000,0.100000,70.000000,0.000000,1,0 + SAM Seeker,0,0,NONE,,No description is available.,70.000000,70.000000,360.000000,3.000000,0.100000,70.000000,0.000000,0,1 + AAM Seeker,0,0,NONE,,No description is available.,80.000000,80.000000,90.000000,3.000000,0.100000,70.000000,0.000000,0,1 + ASM Seeker,0,0,NONE,,No description is available.,50.000000,50.000000,60.000000,4.000000,0.100000,70.000000,0.000000,1,0 + Fighter radar,0,0,NONE,,No description is available.,130.000000,60.000000,90.000000,4.000000,0.100000,80.000000,0.000000,1,1 + Generic radar,0,0,NONE,,No description is available.,100.000000,50.000000,360.000000,8.000000,0.100000,80.000000,0.000000,1,1 + AEW radar,0,0,NONE,,No description is available.,200.000000,150.000000,360.000000,12.000000,0.100000,100.000000,0.000000,1,1 + Air search radar,0,0,NONE,,No description is available.,200.000000,100.000000,360.000000,9.000000,0.100000,100.000000,0.000000,0,1 |
From: <ddc...@us...> - 2004-01-05 02:50:37
|
Update of /cvsroot/gcblue/gcb_data/scenario In directory sc8-pr-cvs1:/tmp/cvs-serv13171/scenario Modified Files: SurfAir.py Added Files: CarrierTest.py HighPolyShips.py Log Message: --- NEW FILE: CarrierTest.py --- # SM is ScenarioManager object def CreateScenario(SM): SM.CreateAlliance(1, 'Friendly') SM.CreateAlliance(2, 'OPFOR') SM.SetUserAlliance(1) SM.SetScenarioDescription('Test scenario, aircraft carrier vs. ragtag forces') SM.SetScenarioLoaded(1) SM.SetScenarioName('CarrierTest') SM.SetDateTime(2004, 6, 15, 16, 0, 0) unit = SM.GetDefaultUnit() order = SM.GetDefaultOrder() order.SetOrderName('Patrol') unit.AddOrder(order) ### Alliance 2 (enemy) units unit.className = 'Mig25' unit.unitName = 'Bear 72' unit.SetPosition(-5.5, 49.6, 1500) # lon, lat, alt unit.heading = 90 unit.speed = 0.7 SM.AddUnitToAlliance(unit, 2) unit.className = 'Mig25' unit.unitName = 'Bear 73' unit.SetPosition(-5.5, 49.7, 1500) # lon, lat, alt unit.heading = 90 unit.speed = 0.7 SM.AddUnitToAlliance(unit, 2) unit.className = 'Mig25' unit.unitName = 'Bear 74' unit.SetPosition(-5.7, 49.4, 1500) # lon, lat, alt unit.heading = 90 unit.speed = 0.7 SM.AddUnitToAlliance(unit, 2) unit.className = 'Mig25' unit.unitName = 'Bear 75' unit.SetPosition(-5.7, 49.5, 1500) # lon, lat, alt unit.heading = 90 unit.speed = 0.7 SM.AddUnitToAlliance(unit, 2) unit.className = 'Cruiser' unit.unitName = 'Bigfish 1' unit.SetPosition(-5.6, 49.8, 0) unit.heading = 95 unit.speed = 1.0 SM.AddUnitToAlliance(unit, 2) unit.className = 'Destroyer' unit.unitName = 'Bigfish 2' unit.SetPosition(-5.6, 49.65, 0) unit.heading = 95 unit.speed = 1.0 SM.AddUnitToAlliance(unit, 2) ### Alliance 1 units (friendly) unit.ClearOrders() unit.className = 'Mig25' unit.unitName = 'Laser 1' unit.SetPosition(-4.4, 49.8, 1500) unit.heading = 270 unit.speed = 0.7 SM.AddUnitToAlliance(unit, 1) unit.className = 'Harrier GR3a' unit.unitName = 'Striker 1' unit.SetPosition(-4.25, 49.7, 1200) unit.heading = 340 unit.speed = 0.5 SM.AddUnitToAlliance(unit, 1) unit.className = 'Patrol Boat' unit.unitName = 'Picket 1' unit.SetPosition(-4.25, 49.65, 0) unit.heading = 270 unit.speed = 0.7 SM.AddUnitToAlliance(unit, 1) unit.className = 'Hermes' unit.unitName = 'HMS Questionable' unit.SetPosition(-4.3, 49.7, 0) unit.heading = 260 unit.speed = 1.0 SM.AddUnitToAlliance(unit, 1) nAir = 7 for n in range(0, nAir): unitName = 'Hammer %d' % (n + 1) # AddUnitToFlightDeck(<carrier name>,<unit class>,<name>, <location>) # <location>: 1 = HANGAR, 2 = DECK, 3 = CATAPULT SM.AddUnitToFlightDeck('HMS Questionable','Harrier GR3a',unitName, 3) SM.AddUnitToFlightDeck('HMS Questionable','AEW aircraft','Goose 1', 3) SM.AddUnitToFlightDeck('HMS Questionable','Mig25','Laser 2', 1) SM.AddUnitToFlightDeck('HMS Questionable','Mig25','Laser 3', 1) SM.AddUnitToFlightDeck('HMS Questionable','Mig25','Laser 4', 1) AddGoals(SM) def AddGoals(SM): # alliance 1 goals goal_1a = SM.DestroyGoal('Bigfish 1') goal_1b = SM.DestroyGoal('Bigfish 2') goal_1 = SM.CompoundGoal(0) # 0 - AND, 1 - OR goal_1.AddGoal(goal_1a) goal_1.AddGoal(goal_1b) SM.SetAllianceGoal(1, goal_1) # alliance 2 goals goal_2 = SM.DestroyGoal('HMS Questionable') SM.SetAllianceGoal(2, goal_2) # BM is BriefingManager (same as ScenarioManager for now) object def CreateBriefing(BM): BM.SetEventTime(0) BM.Pause() BM.PauseAudio() BM.SetBriefingMode(1) # 0 - normal tactical display, 1 - briefing disp BM.Set3DMode(0) # 0 - off, 1 - small, 2 - med, 3 - full screen BM.ConsoleText('Briefing follows...') BM.SetEventTime(4) BM.ConsoleText('') # a blank line BM.ConsoleText('Destroy the forces to the West') BM.ConsoleText('Protect your forces') BM.ConsoleText('') BM.SetEventTime(7) BM.ChangeMapView(-5.5, 50.1, 4.0) # (lon, lat, lon span) in degrees BM.SetEventTime(8) BM.ConsoleText('') BM.ConsoleText('Enemy consists of ragtag rebel forces') BM.ConsoleText('') BM.ConsoleText('Destroy at will.') BM.ConsoleText('The two enemy surface ships are your high priority targets') BM.SetEventTime(9) # text, lon, lat, duration in seconds, 0 - no effect, 1 - blend effect BM.MapText('Approx location of OPFOR', -5.5, 49.9, 12, 1) BM.SetEventTime(12) BM.Set3DMode(2) # large 3D, console still visible # unit, duration, az1, az2, el1, el2, range1, range2 BM.ConsoleText('You have command of the aircraft carrier, ') BM.ConsoleText(' HMS Questionable to assist you in your mission') BM.ConsoleText('') BM.ConsoleText('Hit the "F" key after hooking your carrier to'); BM.ConsoleText(' raise the flight deck control panel'); BM.TrackCamera('HMS Questionable', 10.0, 100.0, -100.0, 1500.0, -50.0, 150.0, 100.0) BM.Text3D('HMS Questionable', 10.0, 0.5, 0.2, 24.0, 1) BM.SetEventTime(22) BM.Set3DMode(1) BM.ConsoleText('') BM.ConsoleText('On to the mission, Good hunting.') BM.SetEventTime(28) BM.Set3DMode(1) BM.SetBriefingMode(0) # leave briefing mode BM.PlayAudio('tension1',0) # name, seek time from beginning of song BM.Resume() # resumes game --- NEW FILE: HighPolyShips.py --- # SM is ScenarioManager object def CreateScenario(SM): SM.CreateAlliance(1, 'Friendly') SM.CreateAlliance(2, 'OPFOR') SM.SetUserAlliance(1) SM.SetScenarioDescription('Test scenario with high poly count Type82 Bristol') SM.SetScenarioLoaded(1) SM.SetScenarioName('High poly count test') SM.SetDateTime(2004, 4, 15, 14, 0, 0) unit = SM.GetDefaultUnit() order = SM.GetDefaultOrder() order.SetOrderName('Patrol') unit.AddOrder(order) ### Alliance 2 (enemy) units unit.className = 'Mig25' unit.unitName = 'Bear 72' unit.SetPosition(-5.5, 49.9, 1500) # lon, lat, alt unit.heading = 90 unit.speed = 0.7 SM.AddUnitToAlliance(unit, 2) unit.className = 'Mig25' unit.unitName = 'Bear 73' unit.SetPosition(-5.5, 49.85, 1500) # lon, lat, alt unit.heading = 90 unit.speed = 0.7 SM.AddUnitToAlliance(unit, 2) unit.className = 'Destroyer' unit.unitName = 'Plate 12' unit.SetPosition(-5.6, 49.9, 0) unit.heading = 95 unit.speed = 1.0 SM.AddUnitToAlliance(unit, 2) ### Alliance 1 units (friendly) unit.ClearOrders() unit.className = 'Mig25' unit.unitName = 'Laser 1' unit.SetPosition(-4.4, 49.8, 1500) unit.heading = 270 unit.speed = 0.7 SM.AddUnitToAlliance(unit, 1) unit.className = 'Harrier GR3a' unit.unitName = 'Striker 1' unit.SetPosition(-4.25, 49.7, 1200) unit.heading = 340 unit.speed = 0.5 SM.AddUnitToAlliance(unit, 1) unit.className = 'Type82' unit.unitName = 'Bristol 1' unit.SetPosition(-4.30, 49.7, 0) unit.heading = 260 unit.speed = 1.0 SM.AddUnitToAlliance(unit, 1) unit.className = 'Type82' unit.unitName = 'Bristol 2' unit.SetPosition(-4.31, 49.7, 0) unit.heading = 260 unit.speed = 1.0 SM.AddUnitToAlliance(unit, 1) unit.className = 'Type82' unit.unitName = 'Bristol 3' unit.SetPosition(-4.32, 49.7, 0) unit.heading = 260 unit.speed = 1.0 SM.AddUnitToAlliance(unit, 1) AddGoals(SM) def AddGoals(SM): # alliance 1 goals goal_1a = SM.DestroyGoal('Plate 12') goal_1b = SM.DestroyGoal('Bear 72') goal_1 = SM.CompoundGoal(0) # 0 - AND, 1 - OR goal_1.AddGoal(goal_1a) goal_1.AddGoal(goal_1b) SM.SetAllianceGoal(1, goal_1) # alliance 2 goals goal_2 = SM.DestroyGoal('Laser 1') SM.SetAllianceGoal(2, goal_2) # BM is BriefingManager (same as ScenarioManager for now) object def CreateBriefing(BM): BM.SetEventTime(0) BM.Pause() BM.PauseAudio() BM.SetBriefingMode(1) # 0 - normal tactical display, 1 - briefing disp BM.Set3DMode(0) # 0 - off, 1 - small, 2 - med, 3 - full screen BM.ConsoleText('Briefing follows...') BM.SetEventTime(4) BM.ConsoleText('') # a blank line BM.ConsoleText('This is a version of SurfAir that uses') BM.ConsoleText('a high poly count Type82 Bristol model for') BM.ConsoleText('graphics performance test.') BM.ConsoleText('') BM.SetEventTime(7) BM.ChangeMapView(-5.5, 50.1, 4.0) # (lon, lat, lon span) in degrees BM.SetEventTime(8) BM.ConsoleText('') BM.ConsoleText('Enemy consists of one Destroyer and two Mig25s') BM.SetEventTime(9) # text, lon, lat, duration in seconds, 0 - no effect, 1 - blend effect BM.MapText('Approx location of OPFOR', -5.5, 49.9, 12, 1) BM.SetEventTime(12) BM.Set3DMode(2) # large 3D, console still visible # unit, duration, az1, az2, el1, el2, range1, range2 BM.ConsoleText('') BM.ConsoleText('Your destroyers are armed with SAMs and SSMs'); BM.TrackCamera('Bristol 3', 13.0, 2000.0, 200.0, 50.0, 0.0, 120.0, 50.0) BM.Text3D('Type 82 Bristol Destroyers', 12.0, 0.5, 0.2, 24.0, 1) BM.SetEventTime(25) BM.TrackCamera('Bristol 3', 8.0, 200.0, -200.0, 0.0, -50.0, 50.0, 40.0) BM.SetEventTime(33) BM.ConsoleText('') BM.ConsoleText('Your Harrier provides strike support to take out the destroyer.') BM.FlybyCamera('Striker 1', 5.0, 80, 120, 15, 5, 50, 65) BM.Text3D('HARRIER', 5.0, 0.5, 0.2, 24.0, 1) BM.SetEventTime(38) BM.Set3DMode(1) BM.ConsoleText('') BM.ConsoleText('On to the mission, Good hunting.') BM.SetEventTime(40) BM.Set3DMode(1) BM.SetBriefingMode(0) # leave briefing mode BM.PlayAudio('tension1',0) # name, seek time from beginning of song BM.Resume() # resumes game Index: SurfAir.py =================================================================== RCS file: /cvsroot/gcblue/gcb_data/scenario/SurfAir.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** SurfAir.py 1 Jan 2004 23:40:34 -0000 1.1 --- SurfAir.py 5 Jan 2004 02:50:33 -0000 1.2 *************** *** 107,111 **** BM.ConsoleText('Your cruiser is armed with SAMs and SSMs'); BM.TrackCamera('Grizzly 1', 10.0, 100.0, -100.0, 1500.0, -50.0, 150.0, 100.0) ! BM.Text3D('CRUISER', 10.0, 0.7, 0.5, 24.0, 1) BM.SetEventTime(22) --- 107,111 ---- BM.ConsoleText('Your cruiser is armed with SAMs and SSMs'); BM.TrackCamera('Grizzly 1', 10.0, 100.0, -100.0, 1500.0, -50.0, 150.0, 100.0) ! BM.Text3D('CRUISER', 10.0, 0.5, 0.2, 24.0, 1) BM.SetEventTime(22) *************** *** 114,118 **** BM.ConsoleText('The 4 key will active afterburners') BM.FlybyCamera('Laser 1', 4.0, 80, 120, 15, 5, 50, 65) ! BM.Text3D('MIG25', 4.0, 0.7, 0.5, 24.0, 1) BM.SetEventTime(26) --- 114,118 ---- BM.ConsoleText('The 4 key will active afterburners') BM.FlybyCamera('Laser 1', 4.0, 80, 120, 15, 5, 50, 65) ! BM.Text3D('MIG25', 4.0, 0.5, 0.2, 24.0, 1) BM.SetEventTime(26) *************** *** 120,124 **** BM.ConsoleText('Your Harrier provides strike support to take out the destroyer.') BM.FlybyCamera('Striker 1', 5.0, 80, 120, 15, 5, 50, 65) ! BM.Text3D('HARRIER', 5.0, 0.7, 0.5, 24.0, 1) BM.SetEventTime(31) --- 120,124 ---- BM.ConsoleText('Your Harrier provides strike support to take out the destroyer.') BM.FlybyCamera('Striker 1', 5.0, 80, 120, 15, 5, 50, 65) ! BM.Text3D('HARRIER', 5.0, 0.5, 0.2, 24.0, 1) BM.SetEventTime(31) |
From: <ddc...@us...> - 2004-01-05 02:50:36
|
Update of /cvsroot/gcblue/gcb_data/3d In directory sc8-pr-cvs1:/tmp/cvs-serv13171/3d Added Files: t82.bmp t82a.bmp type82.3ds Log Message: --- NEW FILE: t82.bmp --- (This appears to be a binary file; contents omitted.) --- NEW FILE: t82a.bmp --- (This appears to be a binary file; contents omitted.) --- NEW FILE: type82.3ds --- (This appears to be a binary file; contents omitted.) |
Update of /cvsroot/gcblue/gcb_wx/src/sim In directory sc8-pr-cvs1:/tmp/cvs-serv12807/src/sim Modified Files: Game.cpp tcAeroAirObject.cpp tcCarrierObject.cpp tcFlightPort.cpp tcMapView.cpp tcPlatformObject.cpp tcSimState.cpp Log Message: Index: Game.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/Game.cpp,v retrieving revision 1.49 retrieving revision 1.50 diff -C2 -d -r1.49 -r1.50 *** Game.cpp 4 Jan 2004 22:24:52 -0000 1.49 --- Game.cpp 5 Jan 2004 02:48:03 -0000 1.50 *************** *** 112,116 **** mbPaused = false; mbScenarioEdit = false; ! mbAccelerateTime = false; meScreenMode = TACTICAL; mbSaveScenario = false; --- 112,116 ---- mbPaused = false; mbScenarioEdit = false; ! accelerateTime = 0; meScreenMode = TACTICAL; mbSaveScenario = false; *************** *** 1206,1213 **** mcSimState.SetTime(gameTime); mcSimState.SetDateTime(gameDateZulu); ! if (mbAccelerateTime) { ! const int accelSteps = 3; ! for (int step=0;step<accelSteps;step++) { mcSimState.Update(); --- 1206,1212 ---- mcSimState.SetTime(gameTime); mcSimState.SetDateTime(gameDateZulu); ! if (accelerateTime) { ! for (int step=0;step<accelerateTime;step++) { mcSimState.Update(); *************** *** 1221,1224 **** --- 1220,1236 ---- directorTime += fdt; dateTimeString = gameDateZulu.asString(); + if (mbPaused) + { + char buff[16]; + sprintf(buff," [PAUSED]"); + dateTimeString += buff; + } + else if (accelerateTime) + { + char buff[16]; + sprintf(buff," [%dx]",accelerateTime+1); + dateTimeString += buff; + } + tacticalMap->SetDateTime(dateTimeString); viewer->SetGameTime(gameTime); *************** *** 1458,1465 **** { case 'a': ! mbAccelerateTime = !mbAccelerateTime; return; case 'F': viewer->ToggleFog(); return; case 'p': --- 1470,1488 ---- { case 'a': ! accelerateTime++; ! if (accelerateTime == 4) ! { ! accelerateTime = 7; // jump to 8x from 4x ! } ! else if (accelerateTime > 7) ! { ! accelerateTime = 0; // return to normal time after 8x ! } return; case 'F': viewer->ToggleFog(); + return; + case 'K': + tacticalMap->ToggleShowTrackTags(); return; case 'p': Index: tcAeroAirObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcAeroAirObject.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** tcAeroAirObject.cpp 9 Dec 2003 00:36:03 -0000 1.2 --- tcAeroAirObject.cpp 5 Jan 2004 02:48:03 -0000 1.3 *************** *** 179,191 **** if (fuel_kg > 0) { if (throttleFraction <= 1.0f) { fThrust_N = mpDBObject->mfMaxThrust_N*throttleFraction; ! fuel_kg -= throttleFraction * mpDBObject->mfFuelRate_kgps * dt_s; } else { fThrust_N = mpDBObject->mfAfterburnThrust_N; ! fuel_kg -= mpDBObject->mfAfterburnFuelRate_kgps * dt_s; } if (fuel_kg < 0) fuel_kg = 0; // sets fuel back to zero after flame out --- 179,192 ---- if (fuel_kg > 0) { + float damagePenalty = 1.0f + 4.0f*mfDamageLevel; // fuel consumption increases with damage if (throttleFraction <= 1.0f) { fThrust_N = mpDBObject->mfMaxThrust_N*throttleFraction; ! fuel_kg -= throttleFraction * mpDBObject->mfFuelRate_kgps * dt_s * damagePenalty; } else { fThrust_N = mpDBObject->mfAfterburnThrust_N; ! fuel_kg -= mpDBObject->mfAfterburnFuelRate_kgps * dt_s * damagePenalty; } if (fuel_kg < 0) fuel_kg = 0; // sets fuel back to zero after flame out *************** *** 222,226 **** K_dp = GetParasiticDragCoefficient(vmach); ! fDrag_N = rhv2*K_dp; fThrust_N = UpdateThrust(dt_s); --- 223,227 ---- K_dp = GetParasiticDragCoefficient(vmach); ! fDrag_N = rhv2*K_dp*(1 + mfDamageLevel); // drag increases with fractional damage fThrust_N = UpdateThrust(dt_s); Index: tcCarrierObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcCarrierObject.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** tcCarrierObject.cpp 4 Jan 2004 22:24:52 -0000 1.5 --- tcCarrierObject.cpp 5 Jan 2004 02:48:03 -0000 1.6 *************** *** 53,57 **** --- 53,100 ---- } + /** + * Supports aero air model and air generic models. Adding other + * model types will fail. + * @return true if successful, false otherwise + */ + bool tcCarrierObject::AddChildToFlightDeck(std::string className, std::string unitName, + teLocation loc) + { + tcGameObject *child = NULL; // object to add to flight_deck + + tcDatabaseObject *dbObj = database->GetObject(className); + if (tcAirDBObject *airDBObj = dynamic_cast<tcAirDBObject*>(dbObj)) + { + child = new tcAeroAirObject(airDBObj); + } + else if (tcGenericDBObject *genericDBObj = dynamic_cast<tcGenericDBObject*>(dbObj)) + { + if (genericDBObj->mnModelType == MTYPE_FIXEDWING) + { + child = new tcAirObject(genericDBObj); + } + else + { + std::cerr << "Attempted to add non-air generic object type to carrier: " << + className << "\n"; + return false; + } + } + else + { + std::cerr << "Attempted to add non-air object type to carrier: " << + className << "\n"; + return false; + } + + child->mzUnit = unitName.c_str(); + child->mnAlliance = mnAlliance; + child->SetRelativePosition(0,0,0); + child->SetRelativeOrientation(0,0,0); + AddChild(child); // add child to carrier object + flight_deck.AddObject(child, loc); // add child to flight_deck + return true; + } /******************************************************************************/ void tcCarrierObject::RandInitNear(float afLon_deg, float afLat_deg) { Index: tcFlightPort.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcFlightPort.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** tcFlightPort.cpp 4 Jan 2004 22:24:53 -0000 1.4 --- tcFlightPort.cpp 5 Jan 2004 02:48:03 -0000 1.5 *************** *** 461,465 **** int spot_idx = FindEmptySpot(airstate->goal_location, loc_vector); airstate->goal_spot = spot_idx; ! airstate->ready_time = afStatusTime + 10.0f; // short times for test MoveObjectToGoal(airstate); } --- 461,465 ---- int spot_idx = FindEmptySpot(airstate->goal_location, loc_vector); airstate->goal_spot = spot_idx; ! airstate->ready_time = afStatusTime + 300.0f; // short times for test MoveObjectToGoal(airstate); } Index: tcMapView.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcMapView.cpp,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** tcMapView.cpp 3 Jan 2004 00:45:13 -0000 1.13 --- tcMapView.cpp 5 Jan 2004 02:48:03 -0000 1.14 *************** *** 82,86 **** mfLonCenter = mrectCurrentView.XCenter(); mfLatCenter = mrectCurrentView.YCenter(); ! if (mfLonWidth < C_PIOVER180*2.0f) { mfGridSize_rad = C_PIOVER180*(10.0f/60.0f); // 10 nmi } --- 82,86 ---- mfLonCenter = mrectCurrentView.XCenter(); mfLatCenter = mrectCurrentView.YCenter(); ! if (mfLonWidth < C_PIOVER180*1.5f) { mfGridSize_rad = C_PIOVER180*(10.0f/60.0f); // 10 nmi } *************** *** 1448,1452 **** if (isControlDown) { ! SetViewCenterZoom(point,2.0f); if (mpSound != NULL) {mpSound->PlayEffect(SEFFECT_BEEP2);} return; --- 1448,1452 ---- if (isControlDown) { ! SetViewCenterZoom(point,1.5f); if (mpSound != NULL) {mpSound->PlayEffect(SEFFECT_BEEP2);} return; *************** *** 1481,1485 **** if (isControlDown) { ! SetViewCenterZoom(point,0.5f); if (mpSound != NULL) {mpSound->PlayEffect(SEFFECT_BEEP2);} return; // old returned true --- 1481,1485 ---- if (isControlDown) { ! SetViewCenterZoom(point,0.7f); if (mpSound != NULL) {mpSound->PlayEffect(SEFFECT_BEEP2);} return; // old returned true Index: tcPlatformObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcPlatformObject.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** tcPlatformObject.cpp 4 Jan 2004 22:24:53 -0000 1.8 --- tcPlatformObject.cpp 5 Jan 2004 02:48:03 -0000 1.9 *************** *** 112,116 **** radtoplusminuspi(dh_rad); // map dh_deg to [-180,180] float dh_max = C_PIOVER180*mpDBObject->mfTurnRate_degps*dt_s; ! // linearly reduce turn rate near goal float absdh_rad = fabsf(dh_rad); --- 112,119 ---- radtoplusminuspi(dh_rad); // map dh_deg to [-180,180] float dh_max = C_PIOVER180*mpDBObject->mfTurnRate_degps*dt_s; ! if (mfDamageLevel > 0.2f) ! { ! dh_max *= 0.5f; ! } // linearly reduce turn rate near goal float absdh_rad = fabsf(dh_rad); Index: tcSimState.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcSimState.cpp,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** tcSimState.cpp 4 Jan 2004 22:24:53 -0000 1.21 --- tcSimState.cpp 5 Jan 2004 02:48:03 -0000 1.22 *************** *** 304,311 **** /********************************************************************/ /** ! * normalize to toughness if a platform obj, otherwise return afDamage */ float tcSimState::GetFractionalDamage(float afDamage, tcGameObject *apGameObj) { tcPlatformObject *pPlatformObj = dynamic_cast<tcPlatformObject*>(apGameObj); if (pPlatformObj != NULL) --- 304,318 ---- /********************************************************************/ /** ! * normalize to toughness if a platform obj, otherwise return afDamage. ! * This effectively sets all missile toughness to 1.0 */ float tcSimState::GetFractionalDamage(float afDamage, tcGameObject *apGameObj) { + float damageEffectiveness = randf(1.0f); + + if (damageEffectiveness < 0.1f) return 0; // 10% of weapons duds for now! + + afDamage = afDamage * damageEffectiveness; // scale damage by effectiveness + tcPlatformObject *pPlatformObj = dynamic_cast<tcPlatformObject*>(apGameObj); if (pPlatformObj != NULL) |
From: <ddc...@us...> - 2004-01-05 02:48:06
|
Update of /cvsroot/gcblue/gcb_wx/src/scriptinterface In directory sc8-pr-cvs1:/tmp/cvs-serv12807/src/scriptinterface Modified Files: tcPlatformInterface.cpp tcPlatformInterfaceExtensionB.cpp tcScenarioInterface.cpp Log Message: Index: tcPlatformInterface.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/scriptinterface/tcPlatformInterface.cpp,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** tcPlatformInterface.cpp 3 Jan 2004 00:45:13 -0000 1.11 --- tcPlatformInterface.cpp 5 Jan 2004 02:48:03 -0000 1.12 *************** *** 72,75 **** --- 72,83 ---- /** + * @return fraction of fuel remaining + */ + float tcPlatformInterface::GetFuel() const + { + return mpPlatformObj->fuel_kg / mpPlatformObj->mpDBObject->mfFuelCapacity_kg; + } + + /** * Get landing state (gear up/down). * @return 1 gear down/ready to land, 0 otherwise or bad object Index: tcPlatformInterfaceExtensionB.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/scriptinterface/tcPlatformInterfaceExtensionB.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** tcPlatformInterfaceExtensionB.cpp 8 Dec 2003 03:06:36 -0000 1.7 --- tcPlatformInterfaceExtensionB.cpp 5 Jan 2004 02:48:03 -0000 1.8 *************** *** 49,52 **** --- 49,53 ---- // navigation related commands .def("GetAlt", &tcPlatformInterface::GetAltitude) + .def("GetFuel", &tcPlatformInterface::GetFuel) .def("GetMaxAlt", &tcPlatformInterface::GetMaxAltitude) .def("GetSpeed",&tcPlatformInterface::GetSpeed) Index: tcScenarioInterface.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/scriptinterface/tcScenarioInterface.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** tcScenarioInterface.cpp 1 Jan 2004 23:44:47 -0000 1.7 --- tcScenarioInterface.cpp 5 Jan 2004 02:48:03 -0000 1.8 *************** *** 39,42 **** --- 39,44 ---- #include "tcGoalTracker.h" #include "tcGoal.h" + #include "tcCarrierObject.h" + #include "tcAeroAirObject.h" using namespace std; *************** *** 126,129 **** --- 128,132 ---- class_<tcScenarioInterface>("ScenarioInterface") .def("AddUnitToAlliance",&tcScenarioInterface::AddUnitToAlliance) + .def("AddUnitToFlightDeck",&tcScenarioInterface::AddUnitToFlightDeck) .def("CreateAlliance",&tcScenarioInterface::CreateAlliance) .def("GetDefaultOrder",&tcScenarioInterface::GetDefaultOrder) *************** *** 210,213 **** --- 213,222 ---- } } + // limit initial speed of aero objects for now, need something to calculate + // steady state speed based on throttle and altitude. + if (tcAeroAirObject *aeroAirObj = dynamic_cast<tcAeroAirObject*>(gameObj)) + { + if (aeroAirObj->mcKin.mfSpeed_kts > 690.0f) aeroAirObj->mcKin.mfSpeed_kts = 690.0f; + } if (tcAirObject *airObj = dynamic_cast<tcAirObject*>(gameObj)) { *************** *** 217,220 **** --- 226,262 ---- simState->AddPlatform(gameObj); return true; + } + + /** + * @param parentName unitname of parent carrier object + * @param className class of (air) unit to add + * @param unitName unitname of unit to add + * @param loc, HANGAR = 1, READY = 2, LAUNCH = 3 + * @return true if successful, false otherwise + */ + bool tcScenarioInterface::AddUnitToFlightDeck(std::string parentName, + std::string className, + std::string unitName, int locCode) + { + wxASSERT(simState); + tcGameObject* parentObj = simState->GetObjectByName(parentName); + if (tcCarrierObject* carrierObj = dynamic_cast<tcCarrierObject*>(parentObj)) + { + teLocation loc; + if (locCode == 1) loc = HANGAR; + else if (locCode == 2) loc = READY; + else if (locCode == 3) loc = LAUNCH; + else + { + cerr << "Bad location code when adding to " << parentName << "\n"; + return false; + } + return carrierObj->AddChildToFlightDeck(className, unitName, loc); + } + else + { + cerr << "Parent object not found: " << parentName << "\n"; + return false; + } } |
From: <ddc...@us...> - 2004-01-05 02:48:06
|
Update of /cvsroot/gcblue/gcb_wx/scripts In directory sc8-pr-cvs1:/tmp/cvs-serv12807/scripts Modified Files: AI.py Log Message: Index: AI.py =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/scripts/AI.py,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** AI.py 3 Jan 2004 00:45:12 -0000 1.5 --- AI.py 5 Jan 2004 02:48:02 -0000 1.6 *************** *** 6,13 **** Order = UnitInfo.GetCurrentOrder() order_name = Order.order_name else: order_name = '--' ! UnitInfo.SetActionText(order_name) ! if (order_name == 'Patrol'): targetid = UnitInfo.GetTarget() if targetid != 0xFFFFFFFF: --- 6,18 ---- Order = UnitInfo.GetCurrentOrder() order_name = Order.order_name + UnitInfo.SetActionText(order_name) else: order_name = '--' ! UnitInfo.SetUpdate(4.0) ! UnitInfo.SetActionText(order_name) ! return ! if (EvadeMissiles(UnitInfo)): ! return ! elif (order_name == 'Patrol'): targetid = UnitInfo.GetTarget() if targetid != 0xFFFFFFFF: *************** *** 47,52 **** UnitInfo.CompletedOrder() AvoidGround(UnitInfo) # adjust altitude to avoid crashing into terrain ! else: ! UnitInfo.SetUpdate(4.0) def AvoidGround(UI): --- 52,56 ---- UnitInfo.CompletedOrder() AvoidGround(UnitInfo) # adjust altitude to avoid crashing into terrain ! def AvoidGround(UI): *************** *** 60,63 **** --- 64,87 ---- + # Run from hostile missiles (will run from antiship missiles too!) + # return 1 if evading, 0 otherwise + def EvadeMissiles(UI): + if (UI.IsAir()==0): + return 0 # only evade with air platforms + + threat_track = UI.GetClosestMissileTrack(100, 3) + if (threat_track.IsValid()): + print 'fleeing' + flee_heading = UI.GetInterceptHeadingToTrack(threat_track) + 3.14 + UI.SetHeadingRad(flee_heading) # run from missile + if (UI.GetFuel() > 0.2): + SetFractionalSpeed(UI, 1.1) + else: + SetFractionalSpeed(UI, 1.0) + UI.SetUpdate(4.0) + return 1 + else: + return 0 + def Land(UI,dest_id): # 0 - init, 1 - distant, 2 - init approach, 3 - final approach *************** *** 127,131 **** ! def InterceptTarget(UI): targetid = UI.GetTarget() if targetid == 0xFFFFFFFF: --- 151,155 ---- ! def InterceptTarget(UI): targetid = UI.GetTarget() if targetid == 0xFFFFFFFF: |
From: <ddc...@us...> - 2004-01-05 02:48:05
|
Update of /cvsroot/gcblue/gcb_wx/include/scriptinterface In directory sc8-pr-cvs1:/tmp/cvs-serv12807/include/scriptinterface Modified Files: tcPlatformInterface.h tcScenarioInterface.h Log Message: Index: tcPlatformInterface.h =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/include/scriptinterface/tcPlatformInterface.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** tcPlatformInterface.h 3 Jan 2004 00:45:12 -0000 1.9 --- tcPlatformInterface.h 5 Jan 2004 02:48:02 -0000 1.10 *************** *** 77,80 **** --- 77,81 ---- // basic nav commands: heading, speed, altitude float GetAltitude() {return mpPlatformObj->mcKin.mfAlt_m;} + float GetFuel() const; float GetMaxAltitude() {return mpPlatformObj->mpDBObject->mfMaxAltitude_m;} float GetSpeed() {return mpPlatformObj->mcKin.mfSpeed_kts;} Index: tcScenarioInterface.h =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/include/scriptinterface/tcScenarioInterface.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** tcScenarioInterface.h 1 Jan 2004 23:44:46 -0000 1.6 --- tcScenarioInterface.h 5 Jan 2004 02:48:02 -0000 1.7 *************** *** 63,67 **** double alt; ///< alt in meters double heading; ///< heading in deg ! double speed; ///< fractional speed, 0 to 1 void AddOrder(tcOrder order); --- 63,67 ---- double alt; ///< alt in meters double heading; ///< heading in deg ! double speed; ///< fractional speed or throttle setting, 0 to 1 void AddOrder(tcOrder order); *************** *** 78,81 **** --- 78,83 ---- // Interface functions to be called through Python bool AddUnitToAlliance(tcScenarioUnit unit, int alliance); + bool AddUnitToFlightDeck(std::string parentName, std::string className, + std::string unitName, int locCode); void CreateAlliance(int alliance, std::string name); tcOrder GetDefaultOrder(); |
From: <ddc...@us...> - 2004-01-05 02:48:05
|
Update of /cvsroot/gcblue/gcb_wx/include/sim In directory sc8-pr-cvs1:/tmp/cvs-serv12807/include/sim Modified Files: Game.h tcCarrierObject.h tcMapView.h Log Message: Index: Game.h =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/include/sim/Game.h,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** Game.h 3 Jan 2004 00:45:12 -0000 1.21 --- Game.h 5 Jan 2004 02:48:02 -0000 1.22 *************** *** 190,194 **** bool mbQuit; ///< set to true to exit game bool mbScenarioEdit; ///< scenario edit mode ! bool mbAccelerateTime; bool mb3DActive; te3DSize size3D; ///< @see te3DSize --- 190,195 ---- bool mbQuit; ///< set to true to exit game bool mbScenarioEdit; ///< scenario edit mode ! int accelerateTime; ///< time acceleration factor, 0 is no accel, 1 is 2x, 2 is 3x, etc ! ///< could try merge with pause, so 0 = pause, 1 = norm, 2 = 2x, etc bool mb3DActive; te3DSize size3D; ///< @see te3DSize Index: tcCarrierObject.h =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/include/sim/tcCarrierObject.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** tcCarrierObject.h 8 Dec 2003 03:06:36 -0000 1.4 --- tcCarrierObject.h 5 Jan 2004 02:48:02 -0000 1.5 *************** *** 34,37 **** --- 34,38 ---- tcFlightPort flight_deck; + bool AddChildToFlightDeck(std::string className, std::string unitName, teLocation loc); int CheckLanding(tcGameObject *obj); virtual void Clear(); Index: tcMapView.h =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/include/sim/tcMapView.h,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** tcMapView.h 3 Jan 2004 00:45:12 -0000 1.11 --- tcMapView.h 5 Jan 2004 02:48:02 -0000 1.12 *************** *** 297,300 **** --- 297,301 ---- void SetDateTime(std::string s) {dateTime = s;} void SetHookID(long id) {mnHookID = id;} + void ToggleShowTrackTags() {mbShowTrackID = !mbShowTrackID;} void UpdateViewBounds() {mpMapData->GetTheaterArea(mrectViewBounds);} tcTacticalMapView(wxWindow *parent, |
From: <ddc...@us...> - 2004-01-05 02:48:05
|
Update of /cvsroot/gcblue/gcb_wx/help In directory sc8-pr-cvs1:/tmp/cvs-serv12807/help Modified Files: help.html Log Message: Index: help.html =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/help/help.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** help.html 11 Dec 2003 01:40:57 -0000 1.4 --- help.html 5 Jan 2004 02:48:02 -0000 1.5 *************** *** 52,56 **** <tr> <td>F3</td> ! <td>Toggle 3D large/small</td> </tr> <tr> --- 52,56 ---- <tr> <td>F3</td> ! <td>Cycle 3D small/large/fullscreen</td> </tr> <tr> *************** *** 59,66 **** --- 59,78 ---- </tr> <tr> + <td>F5</td> + <td>Toggle tactical briefing display</td> + </tr> + <tr> <td>F8</td> <td>Toggle 3D wireframe (test feature)</td> </tr> <tr> + <td>F10</td> + <td>Shift environment time back 15 minutes (for viewing different sky conditions)</td> + </tr> + <tr> + <td>F11</td> + <td>Shift environment time forward 15 minutes</td> + </tr> + <tr> <td>F12</td> <td>Disable color elevation map (test feature, may improve speed)</td> *************** *** 70,80 **** <td>Accelerate time 4x</td> </tr> ! <tr> <td>p</td> <td>Pause</td> </tr> ! <tr> <td>F</td> <td>Toggle fog</td> </tr> </table> --- 82,96 ---- <td>Accelerate time 4x</td> </tr> ! <tr> <td>p</td> <td>Pause</td> </tr> ! <tr> <td>F</td> <td>Toggle fog</td> + </tr> + <tr> + <td>K</td> + <td>Toggle track ID tags</td> </tr> </table> |