CfgWorlds: Weather

There is, unfortunately, not much that can be gleaned about the weather part of the engine from island configs. Admittedly the weather in ArmA 2 isn't that complex, but there is very little you can conclude from looking at the definitions in the official maps' configs.

Note that the way the island class is set up in the official islands is slightly different from BISampleMap, and that it defines some weather-related classes. For instance, Chernarus:

class DefaultWorld
 {
  class Weather;
 };
 class CAWorld: DefaultWorld
 {
  class Grid{};
  class DayLightingBrightAlmost;
  class DayLightingRainy;
  class DefaultClutter;
  class Weather: Weather
  {
   class Lighting;
  };
 };

And more interestingly, Takistan:

 class DefaultWorld
 {
  class Weather
  {
   class Overcast;
  };
 };
 class CAWorld: DefaultWorld
 {
  class Grid{};
  class DayLightingBrightAlmost;
  class DayLightingRainy;
  class DefaultClutter;
  class EnvSounds;
  class Weather: Weather
  {
   class Lighting;
   class Overcast: Overcast
   {
    class Weather1;
    class Weather2;
    class Weather3;
    class Weather4;
    class Weather5;
    class Weather6;
   };
  };
 };

Apart from this, the only place weather is mentioned is when declaring the Weather class:

  class Weather: Weather
  {
   class Lighting: Lighting
   {
    class BrightAlmost: DayLightingBrightAlmost
    {
     overcast = 0;
    };
    class Rainy: DayLightingRainy
    {
     overcast = 1.0;
    };
   };
  };

Here the Lighting class under Weather imports lighting data from the DayLightingBrightAlmost and DayLightingRainy classes, adding an overcast value. If I had to guess I'd say it modifies the lighting somehow, but I don't have the slightest idea what it does.

The Takistan config is more interesting in this area, but this is only because for Chernarus the corresponding sections are found in CA.pbo\ca\config.bin. This section of the Takistan config is essentially the same, but with values and skyboxes appropriate for Takistan.

   class Overcast: Overcast
   {
    class Weather1: Weather1
    {
     sky = "ca\Takistan\Data\sky_clear_sky.paa";
     skyR = "ca\Takistan\Data\sky_clear_lco.paa";
     horizon = "ca\Takistan\Data\sky_clear_horizont_sky.paa";
    };
    class Weather7: Weather1
    {
     sky = "ca\Takistan\Data\sky_veryclear_sky.paa";
     skyR = "ca\Takistan\Data\sky_clear_lco.paa";
     horizon = "ca\Takistan\Data\sky_veryclear_horizont_sky.paa";
    };
    class Weather2: Weather2
    {
     sky = "ca\Takistan\Data\sky_almostclear_sky.paa";
     skyR = "ca\Takistan\Data\sky_almostclear_lco.paa";
     horizon = "ca\Takistan\Data\sky_almostclear_horizont_sky.paa";
    };
    class Weather3: Weather3
    {
     sky = "ca\Takistan\Data\sky_semicloudy_sky.paa";
     skyR = "ca\Takistan\Data\sky_semicloudy_lco.paa";
     horizon = "ca\Takistan\Data\sky_semicloudy_horizont_sky.paa";
    };
    class Weather4: Weather4
    {
     sky = "ca\Takistan\Data\sky_cloudy_sky.paa";
     skyR = "ca\Takistan\Data\sky_cloudy_lco.paa";
     horizon = "ca\Takistan\Data\sky_cloudy_horizont_sky.paa";
    };
    class Weather5: Weather5
    {
     sky = "ca\Takistan\Data\sky_mostlycloudy_sky.paa";
     skyR = "ca\Takistan\Data\sky_mostlycloudy_lco.paa";
     horizon = "ca\Takistan\Data\sky_mostlycloudy_horizont_sky.paa";
    };
    class Weather6: Weather6
    {
     sky = "ca\Takistan\Data\sky_overcast_sky.paa";
     skyR = "ca\Takistan\Data\sky_overcast_lco.paa";
     horizon = "ca\Takistan\Data\sky_overcast_horizont_sky.paa";
    };
   };
  };

This seems to define progressively more cloudy weather states, with each one overriding the default CA class. You can look up these textures to see which each one is, even though it's more or less obvious. sky is a plain sky texture, somewhat stretched for mapping. skyR is a spherical mapped sky texture. I'm not sure if this is used as an environment map or just to "cap" the skybox, or for something else entirely. horizon is the infamous horizon texture, and it usually a few distant mountains wrapped in varying weather.