void TitleScreen::make_tux_jump() { static bool jumpWasReleased = true; Sector* sector = titlesession->get_current_sector(); Player* tux = sector->player; controller->update(); controller->press(Controller::RIGHT); // Check if we should press the jump button Rectf lookahead = tux->get_bbox(); lookahead.p2.x += 96; bool pathBlocked = !sector->is_free_of_statics(lookahead); if ((pathBlocked && jumpWasReleased) || !tux->on_ground()) { controller->press(Controller::JUMP); jumpWasReleased = false; } else { jumpWasReleased = true; } // Wrap around at the end of the level back to the beginning if(sector->get_width() - 320 < tux->get_pos().x) { sector->activate("main"); sector->camera->reset(tux->get_pos()); } }