#include "supertux/levelintro.hpp"
-#include "control/joystickkeyboardcontroller.hpp"
+#include "control/input_manager.hpp"
#include "math/random_generator.hpp"
#include "sprite/sprite_manager.hpp"
#include "supertux/fadeout.hpp"
#include "util/gettext.hpp"
#include <sstream>
+#include <boost/format.hpp>
-LevelIntro::LevelIntro(const Level* level, const Statistics* best_level_statistics) :
- level(level),
- best_level_statistics(best_level_statistics),
- player_sprite(),
- player_sprite_py(0),
+LevelIntro::LevelIntro(const Level* level_, const Statistics* best_level_statistics_) :
+ level(level_),
+ best_level_statistics(best_level_statistics_),
+ player_sprite(SpriteManager::current()->create("images/creatures/tux/tux.sprite")),
+ player_sprite_py(0),
player_sprite_vy(0),
player_sprite_jump_timer()
{
- player_sprite = sprite_manager->create("images/creatures/tux/tux.sprite");
player_sprite->set_action("small-walk-right");
player_sprite_jump_timer.start(graphicsRandom.randf(5,10));
}
void
LevelIntro::update(float elapsed_time)
{
+ Controller *controller = InputManager::current()->get_controller();
// Check if it's time to exit the screen
- if(g_main_controller->pressed(Controller::JUMP)
- || g_main_controller->pressed(Controller::ACTION)
- || g_main_controller->pressed(Controller::MENU_SELECT)
- || g_main_controller->pressed(Controller::PAUSE_MENU)) {
- g_screen_manager->exit_screen(new FadeOut(0.1));
+ if(controller->pressed(Controller::JUMP)
+ || controller->pressed(Controller::ACTION)
+ || controller->pressed(Controller::MENU_SELECT)
+ || controller->pressed(Controller::START)
+ || controller->pressed(Controller::ESCAPE)) {
+ ScreenManager::current()->pop_screen(std::unique_ptr<ScreenFade>(new FadeOut(0.1)));
}
player_sprite_py += player_sprite_vy * elapsed_time;
player_sprite_vy = -300;
player_sprite_jump_timer.start(graphicsRandom.randf(2,3));
}
-
+
}
void
std::string author = level->get_author();
if ((author != "") && (author != "SuperTux Team")) {
- std::string author_text = std::string(_("contributed by ")) + author;
+ std::string author_text = str(boost::format(_("contributed by %s")) % author);
context.draw_center_text(Resources::small_font, author_text, Vector(0, py), LAYER_FOREGROUND1, LevelIntro::author_color);
py += static_cast<int>(Resources::small_font->get_height());
}
context.draw_center_text(Resources::normal_font, ss.str(), Vector(0, py), LAYER_FOREGROUND1, LevelIntro::stat_color);
py += static_cast<int>(Resources::normal_font->get_height());
}
-
+
+ {
+ std::stringstream ss;
+ ss << _("Badguys killed") << ": " << Statistics::frags_to_string((best_level_statistics && (best_level_statistics->coins >= 0)) ? best_level_statistics->badguys : 0, stats.total_badguys);
+ context.draw_center_text(Resources::normal_font, ss.str(), Vector(0, py), LAYER_FOREGROUND1,LevelIntro::stat_color);
+ py += static_cast<int>(Resources::normal_font->get_height());
+ }
+
{
std::stringstream ss;
ss << _("Secrets") << ": " << Statistics::secrets_to_string((best_level_statistics && (best_level_statistics->coins >= 0)) ? best_level_statistics->secrets : 0, stats.total_secrets);
{
std::stringstream ss;
- ss << _("Time") << ": " << Statistics::time_to_string((best_level_statistics && (best_level_statistics->coins >= 0)) ? best_level_statistics->time : 0);
+ ss << _("Best time") << ": " << Statistics::time_to_string((best_level_statistics && (best_level_statistics->coins >= 0)) ? best_level_statistics->time : 0);
+ context.draw_center_text(Resources::normal_font, ss.str(), Vector(0, py), LAYER_FOREGROUND1,LevelIntro::stat_color);
+ py += static_cast<int>(Resources::normal_font->get_height());
+ }
+
+ if(level->target_time){
+ std::stringstream ss;
+ ss << _("Level target time") << ": " << Statistics::time_to_string(level->target_time);
context.draw_center_text(Resources::normal_font, ss.str(), Vector(0, py), LAYER_FOREGROUND1,LevelIntro::stat_color);
py += static_cast<int>(Resources::normal_font->get_height());
}