+ // temporary to help player's choosing a flapping
+ if(flapping_mode == RICARDO_FLAP)
+ {
+ // Flapping, Ricardo's version
+ // similar to SM3 Fox
+ if(input.jump == DOWN && input.old_jump == UP && can_flap &&
+ flaps_nb < 3)
+ {
+ physic.set_velocity_y(350);
+ physic.set_velocity_x(physic.get_velocity_x() * 35);
+ flaps_nb++;
+ }
+ }
+ else if(flapping_mode == MAREK_FLAP)
+ {
+ // Flapping, Marek's version
+ if (input.jump == DOWN && can_flap)
+ {
+ if (!flapping_timer.started())
+ {
+ flapping_timer.start(TUX_FLAPPING_TIME);
+ flapping_velocity = physic.get_velocity_x();
+ }
+ if (flapping_timer.check())
+ {
+ can_flap = false;
+ falling_from_flap = true;
+ }
+ jumping = true;
+ flapping = true;
+ if (!flapping_timer.check()) {
+ float cv = flapping_velocity * sqrt(
+ TUX_FLAPPING_TIME - flapping_timer.get_timegone()
+ / TUX_FLAPPING_TIME);
+
+ //Handle change of direction while flapping
+ if (((dir == LEFT) && (cv > 0)) || (dir == RIGHT) && (cv < 0)) {
+ cv *= (-1);
+ }
+ physic.set_velocity_x(cv);
+ physic.set_velocity_y(
+ flapping_timer.get_timegone()/.850);
+ }
+ }
+ }
+ else if(flapping_mode == RYAN_FLAP)
+ {
+ // Flapping, Ryan's version
+ if (input.jump == DOWN && can_flap)