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>
 |