what's wrong in this function ? (keyboard)

float c = 0.0 ;

void keyboard (unsigned char key, int x, int y)
{

switch (key) 
{
case 'd' : //fait tourner selon l'axe des Y
case 'D' :

	 nbr_degre += 2.0; 
	 j =  0.0 ;
	 k =  1.0 ;
	 l =  0.0 ;
	glutPostRedisplay () ;
	break ;

case 's' :
case 'S' :

	 nbr_degre += 2.0; //fait tourner selon l'axe des Y
	 j =  0.0 ;
	 k = -1.0 ;
	 l =  0.0 ;
	 glutPostRedisplay () ;
	 break ;

case 'e' :  //fait tourner selon l'axe des X
case 'E' :

	 nbr_degre += 2.0;
	 j =  -1.0 ;
	 k =   0.0 ;
	 l =   0.0 ;
	 glutPostRedisplay () ;
	 break ;

case 'x' :   //fait tourner selon l'axe des X
case 'X' :

	 nbr_degre += 2.0;
	 j =  1.0 ;
	 k =  0.0 ;
	 l =  0.0 ;
	 glutPostRedisplay () ;
	 break ;

case 'i':
case 'I':
	 
	c += 0.5 ;
	[b]switch (c) 
	{
		case 10.0 :
			profondeur = 1 ;
			glutPostRedisplay () ;
			break ;

		case 20.0 :
			profondeur = 2 ;
			glutPostRedisplay () ;
			break ;

		case 30.0 :
			profondeur = 3 ;
			glutPostRedisplay () ;
			break ;

		case 40.0 :
			profondeur = 4 ;
			glutPostRedisplay () ;
			break ;
	}[/b]
		
	

case 'o':
case 'O':

	c -= 0.5 ;
	glutPostRedisplay () ;
	break ;


}

}

[This message has been edited by airseb (edited 08-03-2002).]

Your problem is that you don´t get it compiled, do you?

You cannot use floats in a switch-statement. The switch-statement only allows integertypes (int, short, enum, byte, char).

You could do it this way:

c += 0.5 ;

int c2 = (int) ©;

switch (c2)
{
case 10:
profondeur = 1 ;
glutPostRedisplay () ;
break ;

case 20:
profondeur = 2 ;
glutPostRedisplay () ;
break ;

case 30:
profondeur = 3 ;
glutPostRedisplay () ;
break ;

case 40:
profondeur = 4 ;
glutPostRedisplay () ;
break ;
}

Jan.

thanks for your answer