I would actually prefer to model light as something of a flow...
Any outdoor tile would "bright" and causes problems for cave adapted dwarves. This implies a brightness of greater than 7/7.
the paths from outdoors to indoors are treated as a light source.
unlike a normal flow there is no random walk.
This means that light will form a "triangle"
7/7 6/7 5/7 4/7 3/7 2/7 1/7 0/7 ...
Dwarves are fine with anything from 7/7 to 1/7. At 0/7 or less the dwarves would be slowed in much the same way as they are without booze.
Allowing light flows to overlap and interact becomes a little trickier, and how to do it best may require some careful study.
X = wall
O = outdoors
# = amount of light
Example of a simple light source in a 1 wide hallway.
code:
XXXXXXXXXXXXXXXXXXXXX
O76543210000000000000
XXXXXXXXXXXXXXXXXXXXX
Example of a simple light source in a wide indoor area.
code:
X00000000
X11111110
X22222210
X33333210
X44443210
X55543210
X66543210
X76543210
O76543210
XXXX43210
X12333210
X12222210
X11111110
X00000000
Windows and glass block structures should allow light to pass through normally. And additional furniture could be devised to create or transport light for parts of the fortress farther from the surface. Torches, forges, candles, fires, etc would shed light in a similar but weaker manner.
A mirror could be placed that transmits light to a specific tile in line of sight (at -1 light level). Aim it at the wall at the end of a long hall to get a 6/7 light source (and light flowing outwards from there) from a mirror in 7/7 ilumination area. likewise, you could aim it at another mirror to bounce it around a corner.
One question that may arise is how light flowing from multiple light sources interact. If not at all, it would save a lot of CPU usage. If they stack, it wouldn't be to painful, but might lead to indoor areas with more than 7/7 light. and that would have to be addressed somehow.
One option would be to temporarily assign those tiles the same light sickness qualities as outdoor tiles and ignore everything over 7/7 light.
Another option would be that no matter how many sources, you can light sickness except outside as there are only so many light sources a dwarf can look at at the same time.
Yet another option might be that overlapping light zones "overflow" to create a footprint with a radius larger than the standard 7 tiles.
[ April 21, 2008: Message edited by: Nadaka ]