tl;dr: brooks should have a special tile that acts like a constructed wall (with brook "floor" above) that lets water pass through, assuming I'm not missing some glaring logical problem with such.
like someone said. Imagine the brook being filled with lots and lots and lots of diffrent sized rocks. you can still walk over it on the right stones and it's to shallow to drive a water wheel with the stones in place, channeling out the squares would remove the rocks from that area and show the entire unhindered depth of the brook. I guess.
I'm sure I'm not the only one, but
here's a post where I even drew a diagram.
Say I manage to dam the brook close to the beginning of the map, or I redirect it into a bottomless pit.. and I would enter the brook bed from the bottom... would the "rocks" still be there making up walls now or would there be a long empty hall with an invisbile ceiling?
I can't say that I've done it, but I would assume that the long hall with ceiling is what happens. So yeah, there's an example of where my way of viewing it breaks down.
Hmm, I'd suggest following algorithmn... first any creature can wade through 7/7 water if the z-level aboth is empty, second water can stack upon water. that is, if there is 7/7 water in a z-level below, it wont fall down. If a creature is in a 7/7 water tile, and there is water in the z-level aboth stacking onto this, it can either swim up if swimming or it drowns if not water-breathing.
brooks are a 1 z-level deep water with watered ramps on the side... so creatures can walk through it.... rivers on the other hand are 2 z-levels deep... so normally not easily passable.
How does that sound?
I don't like this (also, water already can stack on water, though I think brook tiles are special and eat water that falls on them). AFAIK, 7 is supposed to be the "height" of a tile, representing that the tile is completely full of water. It doesn't make much sense that dwarves would be able to wade through something like that and yet carve tunnels in the mountain that are the same height... not that current brooks make much sense either (well, they do okay as long as you don't try to break my view of them
).
Other idea: At the source of brook, whenever the first tile on the map drops below 4/7 add a water tile, and at the end of the map only take a water away every second or third time frame if its not 3/7 or below... Except when for a longer time it has never been 4/7 ... that is the river must have been interrupted in any way, then slowly lower the edge to 2/7 then 1/7 then 0/7 to drain the remaining brook bank empty. This should in net result in some 3/7 watertiles "traviling upward" the brook....
This is a possibility, though you have to be careful about how you handle the drain. For instance, how does it know that the flow has started again and it's not just that the brook is taking a long time to drain? It might be better to have a drain that just takes away at the same rate that water is added, or however it is that it works now.
or you can further modify this by introducing a "4.5/7" water level... <snip>
I doubt that the game is set up to handle water at fractional fraction levels... if that made sense. Not to say that it couldn't be if it isn't, but if Toady's saving memory by packing different bits of data in a single byte/short/long (which is my guess; 3 bits for the amount of water in the tile, at least 5 more for other data/flags), I'd rather have that
Maybe brooks could be filled with a special tile in the "tunnel" underneath the brook tiles; call it "gravel" for this example, treat it like soil layers for mining (obviously you aren't going to get usable rock from it). Gravel could act like a wall except it allows water to flow through it. Mining out a gravel tile should remove the brook tile above as well. If there's no water in the gravel tile the brook tile turns brown/grey/whatever and stops animating (and is changed back to blue/cyan/whatever and animates if water is re-introduced to the gravel tile). The gravel tile should be scooped out if the brook tile is channeled (just like channels in regular rock work). Water should probably fall through brook tiles into the gravel tiles, if possible.
Any glaring logical problems that I'm missing? I had thought that cave-ins would cause problems, but the last line above fixed my first problem with them, and just flat out makes sense anyway. To fix the other problem I can think of with regards to cave-ins, the brook floor should be intimately linked with the gravel tile, so a falling gravel tile brings a brook tile down with it... of course, I think that's the only way to make the gravel tiles fall in the first place (they'd "hang" from the brook tiles if nothing else, so you'd have to channel out all around them... which would make the brook tiles loose and fall as well), so it shouldn't be an issue anyway.
Ok, that was a bit of a hijack... sorry about that