//-------------------------------------------------------------------
//
//  This code is copyright 2001 by G5 Software.
//  Any unauthorized usage, either in part or in whole of this code
//  is strictly prohibited. Violators WILL be prosecuted to the
//  maximum extent allowed by law.
//
//-------------------------------------------------------------------

class CGermanJeepMesh
{
  string MeshFile = "Models/G_Jeep.mesh";
  string SkinFile = "Models/G_Jeep.skin";
  string AnimFile = "Models/G_Jeep.anim";
}

class CGermanJeepStateControl extends CMobileGroundUnitStateControl
{
  void CGermanJeepStateControl()
  {
    CMobileGroundUnitStateControl(500.0);
    m_DestroyPause = 7.5;
    m_ExplosionId  = "EXPLID_GermanJeepExplosion";
  }
}

class CGermanJeepBehavior extends
    CBaseBehavior, CGermanJeepMoveParameters, CGermanJeepFireParameters
{
  boolean  HasRadar = false;

  void CGermanJeepBehavior()
  {
    CBaseBehavior();
  }
}

class CGermanJeepMoveParameters
{
  boolean  CanMove = true;

  float  MaxSpeed              = 25;   // m/s
  float  MaxAngleSpeed         = 8;    // rad/s
  float  MaxAccelleration      = 25;   // m/(s*s)
  float  MaxAngleAccelleration = 25;   // rad/(s*s)

  float  MoveBank     = -.03; //#TMP: 
  float  RotationBank = .006;   //#TMP:
}

class CGermanJeepFireParameters
{
  boolean  CanFire = false;
};

class CGermanJeep extends
  CGroundUnit,
  CArmedUnit,
  CUnitWithSound,
  CUnitWithCamera,
  CUnitWithStateControl,
  CUnitWithBehavior
{
  void CGermanJeep()
  {
    InitializeModelAsStatic("CGermanJeepMesh");
    CUnitWithStateControl("CGermanJeepStateControl");
    InitializeSound("CGermanJeepEngineSound");

    //#TODO create weapons

    InitializeVehicleBehavior("CGermanJeepBehavior");
    Core_AddClassificator("German");
    Core_AddClassificator("Jeep");        // for cockpit identification
    Core_AddClassificator("GroundUnit");  // for behavior fire logic
  }
}

