- /* Check for menu-events, if the menu is shown */
- current_menu->event(event);
+ /* Tell Tux that the keys are all down, otherwise
+ it could have nasty bugs, like going allways to the right
+ or whatever that key does */
+ Player& tux = *world->get_tux();
+ tux.key_event((SDLKey)keymap.jump, UP);
+ tux.key_event((SDLKey)keymap.duck, UP);
+ tux.key_event((SDLKey)keymap.left, UP);
+ tux.key_event((SDLKey)keymap.right, UP);
+ tux.key_event((SDLKey)keymap.fire, UP);
+
+ Menu::set_current(game_menu);
+ st_pause_ticks_start();
+ }
+}
+
+void
+GameSession::process_events()
+{
+ if (end_sequence != NO_ENDSEQUENCE)
+ {
+ Player& tux = *world->get_tux();
+
+ tux.input.fire = UP;
+ tux.input.left = UP;
+ tux.input.right = DOWN;
+ tux.input.down = UP;
+
+ if (int(last_x_pos) == int(tux.base.x))
+ tux.input.up = DOWN;
+ else
+ tux.input.up = UP;
+
+ last_x_pos = tux.base.x;