Here, you say that avance will take zero arguments:
void avance()
and then you call avance with one argument, for example:
avance(AFOND);
(This is just one example that occurs many times.)
You must fix your definition of avance to take one argument.