WARNING
-------

        BACKUP YOUR SAVED GAMES BEFORE USE.

        Data structure have changed and impact load/save.

        YOU HAVE BEEN WARNED, BACKUP YOUR DATA.

README:
-------
Attempt to implement some kind of water management.
This file is a temporary note book.

DONE:
-----
basic water management implemented:
 -residence need water like food. Lack of water has the same consequences as lack of food.
 -random village has a water well.
 -well's range is shown in starvation window and around cursor
 -initial desert tiles have no underground water (added flag has_underground_water)
 -farm and charcoal (in communes) production depends on underground water
 -parks need ugw (no park on true desert tile)
 -2 scenarios: extreme_arid and extreme_wetland (random village is in between)
 -basic ecology: change desert with UGW (= bulldozed tile) to green after some monthes.
   (needed for showing UGW for placing farms communes and parks)
 -Tuning of aridity parameter and others (communes, farms, parks) seems rather correct.

 -additional data structure and load/save.
 -automagic upgrade of old games

AIM:
----
* simple ecology = periodic event :
   - neighbours  => % decrease/increase from desert to tree3. (tree3 need 4 neighbouring trees)
   - pollution ++%decrease
   - water ++%increase
   = just look nicer (change nothing in the game) but could show impact of human activities on forests :)

* Water quality (from drinkable to mortal).
  - altitude to know the local slope and the drainage basin.
        unit 1cm        +1/tile is enough slope for calm river, large river => +0/tile,
                        coast line +100, land + rand() % mountainity per tile.
        maybe just UGW_altitude. Need to be tested and displayed in altitude minimap.
        pb: ugw motion with desert tile:
                -probably need some iterations during creation to draw a path.
                -allow diagonal motion
  - residences, farms and industries can pollute water.
  - park along a river or around a well will also reduce the pollution.
  - pollution transported by water will follow the slope, so go in river and travel toward the bottom
      of the map (roughtly opposite of wind direction :-)
  - annual event = waste => pollution diffusion and slow diminution (1000 years)
	In NG_1.1 already, tips slowly degrade to green.

Won't do soon, maybe never:
---------------------------
* Areas without water could need high-tech deep well and/or pipes to feed the water station.

* residence near river should not need water well.

* transport capacity for water = water_on_road, water_on rail.... ?
  This mean quantity management of water. can be very tricky in addition to quality.
  rev 1170 uses range, so no need for transport.
  ? market can buy/sell water ? or waterwell is a watermarket ?

* fire/health cover in dry area should cost more (need more equipment ...)

* industries also need water (connection needed?, or pipes?)

REMARKS/NOTES:
--------------
Don't consider this is important, it's just some ideas caught while wandering in the
code. They are written here instead of somewhere else, but maybe they will just be forgotten
or go in the wiki.

* separation of engine and graphics is rather good
   - additional data structure could be useful
   - a building gives: tech at build time, average state (needs %, production %) during last period
   - the drawing modules uses the info to choose correct tile, and manage looping for
                cleaner animation (currently fast speed skip frames => weird animation).

* Within market range, everything can already jump across rivers.

* rivers are ready for transport: in lin-city.h
  #define MAX_FOOD_ON_RIVER (MAX_FOOD_ON_TRACK*2)
  #define MAX_LABOR_ON_RIVER (MAX_LABOR_ON_TRACK*2)
  #define MAX_COAL_ON_RIVER (MAX_COAL_ON_TRACK*2)
  #define MAX_GOODS_ON_RIVER (MAX_GOODS_ON_TRACK*2)
  #define MAX_ORE_ON_RIVER (MAX_ORE_ON_TRACK*2)
  #define MAX_STEEL_ON_RIVER (MAX_STEEL_ON_TRACK*2)

  but are not in GROUP_IS_TRANSPORT.
  #define GROUP_IS_TRANSPORT(group) \
            ((group == GROUP_TRACK) || \
             (group == GROUP_ROAD) || \
             (group == GROUP_RAIL) || \
             (group == GROUP_POWER_LINE))
  Beach scenario could cause trouble (stock many thing in the sea !).
  FLAG_IS_RIVER (=navigable) should allow to control this:
  	coast line = navigable = RIVER
	off shore = not navigable = WATER
  In current version (1195), in Beach all the sea is navigable.

* Speed of transport: (must think of this and look more carefully)
  afaik speed of transport +-= 1 tile/iteration for all transports
  it could be set to different value: speed = N <=> N iteration
  track_speed = 1
  road_speed = 2
  train_speed = 3
  river_speed = 0.3 but huge capacity for coal,ore and steel.
  	low speed should prevent absorbing everything, but once the
	river is loaded it should be a nice transport.

* Parks are not entertainment parks. They are biological depollution tool
 => they are build in very polluted areas (sometimes mortal)
 => no child games should appear there!

* Parks appear too early, when they are not needed.

* Graphic before rail techlevel should not have cars, but horses and bullocks instead.
* Low tech houses looks too modern.

* non-navigable waters (not seas) could very slowly become green
        less than 1/1000 chance per year, inversely proportionnal to surface.

* Minimap size is hardcoded 200 pixel = 2x WORLD_SIDE_LEN. Probably need to use pixel for sharp graphics.
