This works well for static light-sources, like fluorescent light-strips.
How about carrying a lamp around with you that will illuminate adjoining
locations? (i.e. if you leave the lamp and go to a neighbouring location
you'll find it's lit).
A simple solution is to have a demon that goes through each compass
direction in turn, lighting or unlighting rooms.
Of course, you'd have to watch out for doors and such.
It's only realistic for the lamp to have this behaviour if, in fact, the
neighbouring location is 'close' to the location with the lamp. Some
locations might be very big, and you wouldn't want the light to spread
out from these.
There are several ways around this. You could have a property for each
location, an X-byte distance array, giving the distance from the current
location to the location in direction X. Maybe simply, a distance of 0
means that the location is close (the default), and 1 means it's fairly
far away. Maybe you could calculate actual distances in metres, or
something.
It's a lot of bother to code, I know, but it would look pretty good. You
could also use the distance array to do things like looking into nearby
locations (is it near enough to see?), seeing how far objects will go if
you throw them, doing a more realistic time system by updating the clock
according to how far the player has travelled,....
Luke