//-------------------------------------------------------------------
//
//  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 CTownHouseMesh_1
{
  string MeshFile = "Models/B_Town_1.mesh";
  string SkinFile = "Models/B_Town_1.skin";
}

class CTownHouseMesh_2
{
  string MeshFile = "Models/B_Town_1.mesh";
  string SkinFile = "Models/B_Town_1.skin";
}

class CTownHouseMesh_3
{
  string MeshFile = "Models/B_Town_1.mesh";
  string SkinFile = "Models/B_Town_1.skin";
}

class CTownHouseMesh_4
{
  string MeshFile = "Models/B_Town_4.mesh";
  string SkinFile = "Models/B_Town_4.skin";
}

class CTownHouseMesh_5
{
  string MeshFile = "Models/B_Town_5.mesh";
  string SkinFile = "Models/B_Town_5.skin";
}

class CTownHouseMesh_6
{
  string MeshFile = "Models/B_Town_5.mesh";
  string SkinFile = "Models/B_Town_5.skin";
}

class CTownHouseMesh_7
{
  string MeshFile = "Models/B_Town_5.mesh";
  string SkinFile = "Models/B_Town_5.skin";
}

class CTownHouseMesh_8
{
  string MeshFile = "Models/B_Town_4.mesh";
  string SkinFile = "Models/B_Town_4.skin";
}

class CTownHouseMesh_9
{
  string MeshFile = "Models/B_House_l.mesh";
  string SkinFile = "Models/B_House_l.skin";
}

class CTownHouseStateControl extends CUnitLifeControl
{
  void CTownHouseStateControl()
  {
    CUnitLifeControl(5000.0);
    m_DestroyPause = 20.0;
    m_ExplosionId  = "EXPLID_BuildingExplosion";
  }
}

// Building without ground control (for use in villages)
class CBaseTownHouse extends CBuilding, CUnitWithStateControl
{
  array m_MeshClassNames = array(
      "CTownHouseMesh_1",
      "CTownHouseMesh_2",
      "CTownHouseMesh_3",
      "CTownHouseMesh_4",
      "CTownHouseMesh_5",
      "CTownHouseMesh_6",
      "CTownHouseMesh_7",
      "CTownHouseMesh_8",
      "CTownHouseMesh_9"
    );

  void CBaseTownHouse()
  {
    int MeshNumber = rand_int(m_MeshClassNames.size());
    InitializeModelAsStatic(m_MeshClassNames[MeshNumber]);
    CUnitWithStateControl("CTownHouseStateControl");
  }
}

// Single game object
class CMountedTownHouse extends CBaseTownHouse
{
  void CMountedTownHouse()
  {
    InitializeGroundControl();
  }
}

