Merge branch 'icyworld' new worldmap graphics for Icy Island
[supertux.git] / src / supertux / levelintro.cpp
index 8216995..98d8544 100644 (file)
 #include "sprite/sprite_manager.hpp"
 #include "supertux/fadeout.hpp"
 #include "supertux/globals.hpp"
-#include "supertux/mainloop.hpp"
+#include "supertux/screen_manager.hpp"
 #include "supertux/resources.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), 
@@ -35,7 +38,7 @@ LevelIntro::LevelIntro(const Level* level, const Statistics* best_level_statisti
 {
   player_sprite = sprite_manager->create("images/creatures/tux/tux.sprite");
   player_sprite->set_action("small-walk-right");
-  player_sprite_jump_timer.start(systemRandom.randf(5,10));
+  player_sprite_jump_timer.start(graphicsRandom.randf(5,10));
 }
 
 LevelIntro::~LevelIntro()
@@ -50,13 +53,14 @@ LevelIntro::setup()
 void
 LevelIntro::update(float elapsed_time)
 {
+  Controller *controller = g_jk_controller->get_main_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_main_loop->exit_screen(new FadeOut(0.1));
+  if(controller->pressed(Controller::JUMP)
+     || controller->pressed(Controller::ACTION)
+     || controller->pressed(Controller::MENU_SELECT)
+     || controller->pressed(Controller::PAUSE_MENU)) {
+    g_screen_manager->exit_screen(new FadeOut(0.1));
   }
 
   player_sprite_py += player_sprite_vy * elapsed_time;
@@ -67,7 +71,7 @@ LevelIntro::update(float elapsed_time)
   }
   if (player_sprite_jump_timer.check()) {
     player_sprite_vy = -300;
-    player_sprite_jump_timer.start(systemRandom.randf(2,3));
+    player_sprite_jump_timer.start(graphicsRandom.randf(2,3));
   }
   
 }
@@ -87,7 +91,7 @@ LevelIntro::draw(DrawingContext& context)
 
   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());
   }
@@ -112,6 +116,13 @@ LevelIntro::draw(DrawingContext& context)
     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;