//-------------------------------------------------------------------
//
//  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 CBasePoles
{
  int    QuadtreeDepth   = 8;

  Array  LevelRange      = [ 2300.0, 1500.0 ];

  float  BurnDelay       = 10.0;
  float  ModelDistance   = 10.0;

  String BulletHitEffect = "PoleBulletHitEffect";
  String BulletHitSound  = "PoleBulletHitSound";
  String ExplosionEffect = "PoleExplosionEffect";
  String ExplosionSound  = "PoleExplosionSound";
}

class CBasePolesC1 extends CBasePoles, CBaseZoneMap
{
  //
  //  Poles
  //

  Array  WoodenPole  = [ new #AnimatedObject<CC1_WoodenLampModel>(),
                         "wooden",
                         [
                          ["PoleLampEffect", "Lamp_A"],
                          ["PoleLampEffect", "Lamp_B"]
                         ]
                       ];
  Array  CementPole  = [ new #AnimatedObject<CC1_StreetLampModel>(),
                         "cement",
                         [
                           ["PoleLampEffect", "Lamp_A"]
                         ]
                       ];

  //
  // Settings
  //

  String SkinClass = "CBasePolesSkinC1";

  Array ZoneValues = [
      ZMC_Pole01,
      ZMC_Pole02
    ];

  Array Descriptors = [
      [ WoodenPole ],
      [ CementPole ]
    ];

  Array RoadZoneValues = [
      ZMC_Road01,
      ZMC_Road02
    ];
}

class CBasePolesC2 extends CBasePoles, CBaseZoneMap
{
  //
  //  Poles
  //

  Array  WoodenPole  = [ new #AnimatedObject<CC2_WoodenLampModel>(),
                         "wooden",
                         [
                          ["PoleLampEffect", "Lamp_A"],
                          ["PoleLampEffect", "Lamp_B"]
                         ]
                       ];
  Array  CementPole  = [ new #AnimatedObject<CC2_StreetLampModel>(),
                         "cement",
                         [
                           ["PoleLampEffect", "Lamp_A"]
                         ]
                       ];

  //
  // Settings
  //

  String SkinClass = "CBasePolesSkinC2";

  Array ZoneValues = [
      ZMC_Pole01,
      ZMC_Pole02
    ];

  Array RoadZoneValues = [
      ZMC_Road01,
      ZMC_Road02
    ];

  Array Descriptors = [
      [ WoodenPole ],
      [ CementPole ]
    ];
}

class CBasePolesC3 extends CBasePoles, CBaseZoneMap
{
  //
  //  Poles
  //

  Array  WoodenPole  = [ new #AnimatedObject<CC3_WoodenLampModel>(),
                         "wooden",
                         [
                          ["PoleLampEffect", "Lamp_A"],
                          ["PoleLampEffect", "Lamp_B"]
                         ]
                       ];
  Array  CementPole  = [ new #AnimatedObject<CC3_StreetLampModel>(),
                         "cement",
                         [
                           ["PoleLampEffect", "Lamp_A"],
                           ["PoleLampEffect", "Lamp_B"]
                         ]
                       ];

  //
  // Settings
  //

  String SkinClass = "CBasePolesSkinC3";

  Array ZoneValues = [
      ZMC_Pole01,
      ZMC_Pole02
    ];

  Array RoadZoneValues = [
      ZMC_Road01,
      ZMC_Road02
    ];

  Array Descriptors = [
      [ WoodenPole ],
      [ CementPole ]
    ];
}

class CBasePolesC4 extends CBasePoles, CBaseZoneMap
{
  //
  //  Poles
  //

  Array  WoodenPole  = [ new #AnimatedObject<CC4_WoodenLampModel>(),
                         "wooden",
                         [
                          ["PoleLampEffect", "Lamp_A"],
                          ["PoleLampEffect", "Lamp_B"]
                         ]
                       ];
  Array  CementPole  = [ new #AnimatedObject<CC4_StreetLampModel>(),
                         "cement",
                         [
                           ["PoleLampEffect", "Lamp_A"],
                           ["PoleLampEffect", "Lamp_B"]
                         ]
                       ];

  //
  // Settings
  //

  String SkinClass = "CBasePolesSkinC4";

  Array ZoneValues = [
      ZMC_Pole01,
      ZMC_Pole02
    ];

  Array RoadZoneValues = [
      ZMC_Road01,
      ZMC_Road02
    ];

  Array Descriptors = [
      [ WoodenPole ],
      [ CementPole ]
    ];
}

class CBasePolesSkinC1
{
  Array Materials = [
      new CForestBillboardMaterial(
        "wooden",
        "Textures/Wooden_Pole.tex",
        418, 258, 79, 248
      ),

      new CForestBillboardMaterial(
        "cement",
        "Textures/Poles_Billboard.tex",
        38, 259, 67, 250
      )
  ];
}

class CBasePolesSkinC2
{
  Array Materials = [
      new CForestBillboardMaterial(
        "wooden",
        "Textures/Wooden_Pole.tex",
        394, 4, 108, 248
      ),

      new CForestBillboardMaterial(
        "cement",
        "Textures/Poles_Billboard.tex",
        143, 259, 90, 250
      )
  ];
}

class CBasePolesSkinC3
{
  Array Materials = [
      new CForestBillboardMaterial(
        "wooden",
        "Textures/Wooden_Pole.tex",
        295, 258, 673, 248
      ),

      new CForestBillboardMaterial(
        "cement",
        "Textures/Poles_Billboard.tex",
        290, 258, 69, 250
      )
  ];
}

class CBasePolesSkinC4
{
  Array Materials = [
      new CForestBillboardMaterial(
        "wooden",
        "Textures/Wooden_Pole.tex",
        272, 3, 95, 248
      ),

      new CForestBillboardMaterial(
        "cement",
        "Textures/Poles_Billboard.tex",
        416, 260, 75, 250
      )
  ];
}


