Sure, no problem!
Here you go. (That link is hosted on a random quick-file-upload site I found after spending less than a minute in Google, so I can't say how long it'll be there. Probably not long enough to be used as a safe back-up or permanent host though.)
I can understand that. The bar thing I think I may have already done for you... if I can find it, I have a function somewhere that you can pass a number and a maximum number and it'll generate a string containing exactly 10 characters that looks like a health bar... I used it in my Dwarf Caretaker game (in my sig), so it shouldn't take me too long to dig up and explain a little better though. And maybe re-write it to be a bit more portable too.
The water thing sounds great though, looking forward to that!
[EDIT]: Found it, and rewrote it to be a little more portable.
string GetBar(int current, int max, int barsize, char symbol)
{
float bars = (barsize*current)/max;
bars = int(bars); //Round off the result...
if (bars>barsize) {bars=barsize;} //If it somehow got a number bigger than barsize, fix it. This should never happen though.
string bar = ""; //A blank string to write to...
for(int i=0; i<bars; i++) //Repeat for the number of bars...
{
bar+=symbol; //add a bar.
}
for(int i=0; i<barsize-bars; i++) //Repeat for the remaining space...
{
bar+=" "; //and add the extra white-space
}
return bar; //Return the 'bar' string.
}
You could probably re-write it to use a character array instead of a string without too much trouble. Anyways, an example call...
GetBar(75, 100, 50, '-');
Would return a string containing a 75/100 full bar of '-'s, with a maximum length of 50. The first number is the current value and the second is the maximum value. The third is the actual length of the bar (in characters) that will be returned, and the last one is the symbol that will be used in the bar. It will automatically add spaces to make sure the length of the returned string is al least the length of the bar (50, in the above example), so that if you wanted to put something around the bar it would still look decent.
I.E.
cout << "[" << GetBar(50,100,10,'-') << "]"
Would output "[----- ]"
Not sure if this will be of any use to you, and it's probably not particularly efficient, but there's no point in reinventing the wheel if you do want to do something like this.