Add current level to another debug message
[supertux.git] / src / supertux / textscroller.cpp
index e3a3d45..9820891 100644 (file)
@@ -17,7 +17,7 @@
 #include "supertux/textscroller.hpp"
 
 #include "audio/sound_manager.hpp"
-#include "control/joystickkeyboardcontroller.hpp"
+#include "control/input_manager.hpp"
 #include "lisp/parser.hpp"
 #include "supertux/fadeout.hpp"
 #include "supertux/info_box_line.hpp"
@@ -27,6 +27,9 @@
 #include "util/reader.hpp"
 #include "video/drawing_context.hpp"
 
+#include <sstream>
+#include <stdexcept>
+
 static const float DEFAULT_SPEED = 20;
 static const float LEFT_BORDER = 50;
 static const float SCROLL = 60;
@@ -78,31 +81,34 @@ TextScroller::TextScroller(const std::string& filename) :
 
 TextScroller::~TextScroller()
 {
-  for(std::vector<InfoBoxLine*>::iterator i = lines.begin(); i != lines.end(); i++) delete *i;
+  for(std::vector<InfoBoxLine*>::iterator i = lines.begin(); i != lines.end(); ++i) delete *i;
 }
 
 void
 TextScroller::setup()
 {
-  sound_manager->play_music(music);
+  SoundManager::current()->play_music(music);
 }
 
 void
 TextScroller::update(float elapsed_time)
 {
-  if(g_main_controller->hold(Controller::UP)) {
+  Controller* controller = InputManager::current()->get_controller();
+  if(controller->hold(Controller::UP)) {
     speed = -defaultspeed*5;
-  } else if(g_main_controller->hold(Controller::DOWN)) {
+  } else if(controller->hold(Controller::DOWN)) {
     speed = defaultspeed*5;
   } else {
     speed = defaultspeed;
   }
-  if(g_main_controller->pressed(Controller::JUMP)
-     || g_main_controller->pressed(Controller::ACTION)
-     || g_main_controller->pressed(Controller::MENU_SELECT))
+  if((controller->pressed(Controller::JUMP)
+     || controller->pressed(Controller::ACTION)
+     || controller->pressed(Controller::MENU_SELECT)
+     )&& !(controller->pressed(Controller::UP))) // prevent skipping if jump with up is enabled
     scroll += SCROLL;
-  if(g_main_controller->pressed(Controller::PAUSE_MENU)) {
-    g_screen_manager->exit_screen(new FadeOut(0.5));
+  if(controller->pressed(Controller::START) ||
+     controller->pressed(Controller::ESCAPE)) {
+    ScreenManager::current()->pop_screen(std::unique_ptr<ScreenFade>(new FadeOut(0.5)));
   }
 
   scroll += speed * elapsed_time;
@@ -116,7 +122,9 @@ TextScroller::draw(DrawingContext& context)
 {
   context.draw_filled_rect(Vector(0, 0), Vector(SCREEN_WIDTH, SCREEN_HEIGHT),
                            Color(0.6f, 0.7f, 0.8f, 0.5f), 0);
-  context.draw_surface(background.get(), Vector(SCREEN_WIDTH/2 - background->get_width()/2 , SCREEN_HEIGHT/2 - background->get_height()/2), 0);
+  context.draw_surface_part(background, Rectf(0, 0, background->get_width(), background->get_height()),
+                            Rectf(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT), 0);
+
 
   float y = SCREEN_HEIGHT - scroll;
   for(size_t i = 0; i < lines.size(); i++) {
@@ -129,7 +137,7 @@ TextScroller::draw(DrawingContext& context)
 
   if(y < 0 && !fading ) {
     fading = true;
-    g_screen_manager->exit_screen(new FadeOut(0.5));
+    ScreenManager::current()->pop_screen(std::unique_ptr<ScreenFade>(new FadeOut(0.5)));
   }
 }