1. ^mud behavior 2. ^evaluate_grid() function 3. + evaluate_affectMaterial() function
1. Mud now takes in water and spreads it to nearby mud.
2. Made a evaluate_affectMaterial() for a task that was done the same way twice. (well, it was done in slightly different ways in two seperate locations, but it is way WAY better to have it done exactly the same way in one location.) improved the code in other minor ways as well.
3. I added evaluate_affectMaterial() to evaluate the affectMaterial structures at coordinates [i][j]. It was great to put this in a function. it cleans up the evaluate_grid() function very nicely.
the initial conditions are now randomized. have fun.
^ evaluate_grid(). working on it more. It is my never ending project. Each time it gets a little more refined and I understand it a little bit better.
+ struct cellData grid[][]. This is a MUCH more organized way to approach storing the grid Data.

Now, the material at [i][j] in our grid is collected in one package:

material:		grid[][].mat
saturation:	grid[][].sat
sat Level		grid[][].satLevel

there are corresponding "Change" elements for each of these three elements

grid[][].matChange
grid[][].satChange
grid[][].satLevelChange
+ picture of water generation. water gets absorbed by dirt once again.
severe preformance increase. I have still not started working on sat levels xD

I made it so that M_air is not checked for decay/affectMaterials.

Also, evaluate_effectMaterial() will reject anything that has M_air as it's matBefore and matAfter.
added another preformance increase feature to the features-
ideas.txt
added picture and an idea
+ saturation levels. Big step. removed the affectMaterials structures in the SaturationEffect structures. it was unnecessary.

There are most likely some bugs with this (I am writing this at 2am in the morning)
but the system seems to be up and working!
you now require a certain level of saturation to achieve your affectMat.

also, now there are no AffectMats in the satEffect structure. you simply have to describe what material triggers your affectMaterial in the element of the affectMaterial structure called "satNeeded". it is all there in the comments.
+ saturation level dependent decay.

there are two new structure elements that I made

+ satEffect[].decaySatGTE
+ satEffect[].decaySatLTE

the saturation level has to be greater than or equal to decaySatGTE in order for the material to decay.
the saturation level also has to be less than or equal to decaySatLTE in order for the material to decay.
changed picture
removed pointless picture.
Merge branch 'gui2' into gui_satlevels