Spiky, Snowball and Poison Ivy can move again
[supertux.git] / src / game_session.cpp
index 6b9a797..1532e39 100644 (file)
@@ -34,7 +34,7 @@
 
 #include "game_session.hpp"
 #include "log.hpp"
-#include "worldmap.hpp"
+#include "worldmap/worldmap.hpp"
 #include "mainloop.hpp"
 #include "video/screen.hpp"
 #include "audio/sound_manager.hpp"
 // binary fraction...
 static const float LOGICAL_FPS = 64.0;
 
-namespace {
-  const char* consoleCommands[] = {
-         "foo",
-         "whereami",
-         "camera",
-         "grease",
-         "invincible",
-         "mortal",
-         "shrink", 
-         "kill",
-         "gotoend",
-         "flip",
-         "finish",
-          "restart",
-          "quit"
-  };
-}
-
-using namespace WorldMapNS;
-
-GameSession* GameSession::current_ = 0;
+GameSession* GameSession::current_ = NULL;
 
 GameSession::GameSession(const std::string& levelfile_, GameSessionMode mode,
     Statistics* statistics)
@@ -102,15 +82,11 @@ GameSession::GameSession(const std::string& levelfile_, GameSessionMode mode,
     capture_demo_stream(0), playback_demo_stream(0), demo_controller(0)
 {
   current_ = this;
-  currentsector = 0;
+  currentsector = NULL;
   
   game_pause = false;
   fps_fps = 0;
 
-  for (uint16_t i=0; i < sizeof(::consoleCommands)/sizeof(typeof(consoleCommands[0])); i++) {
-    Console::instance->registerCommand(consoleCommands[i], this);
-  }
-
   statistics_backdrop.reset(new Surface("images/engine/menu/score-backdrop.png"));
 
   restart_level(true);
@@ -274,6 +250,7 @@ GameSession::on_escape_press()
     game_menu->set_active_item(MNID_CONTINUE);
     game_pause = true;
   } else {
+    Menu::set_current(NULL);
     game_pause = false;
   }
 }
@@ -335,79 +312,6 @@ GameSession::process_events()
   }
 }
 
-bool
-GameSession::consoleCommand(std::string command, std::vector<std::string>)
-{
-  if (command == "foo") {
-    log_info << "bar" << std::endl;
-    return true;
-  }
-
-  if (currentsector == 0) return false;
-  Player& tux = *currentsector->player;
-  
-  // Cheating words (the goal of this is really for debugging,
-  // but could be used for some cheating, nothing wrong with that)
-  if (command == "grease") {
-    tux.physic.set_velocity_x(tux.physic.get_velocity_x()*3);
-    return true;
-  }
-  if (command == "invincible") {
-    // be invincle for the rest of the level
-    tux.invincible_timer.start(10000);
-    return true;
-  }
-  if (command == "mortal") {
-    // give up invincibility
-    tux.invincible_timer.stop();
-    return true;
-  }
-  if (command == "shrink") {
-    // remove powerups
-    tux.kill(tux.SHRINK);
-    return true;
-  }
-  if (command == "kill") {
-    tux.kill(tux.KILL);
-    return true;
-  }
-  if (command == "restart") {
-    restart_level(true);
-    return true;
-  }
-  if (command == "whereami") {
-    log_info << "You are at x " << tux.get_pos().x << ", y " << tux.get_pos().y << std::endl;
-    return true;
-  }
-  if (command == "gotoend") {
-    // goes to the end of the level
-    tux.move(Vector(
-          (currentsector->solids->get_width()*32) - (SCREEN_WIDTH*2), 0));
-    currentsector->camera->reset(
-        Vector(tux.get_pos().x, tux.get_pos().y));
-    return true;
-  }
-  if (command == "flip") {
-    FlipLevelTransformer flip_transformer;
-    flip_transformer.transform(GameSession::current()->get_current_level());
-    return true;
-  }
-  if (command == "finish") {
-    finish(true);
-    return true;
-  }
-  if (command == "camera") {
-    log_info << "Camera is at " << Sector::current()->camera->get_translation().x << "," << Sector::current()->camera->get_translation().y << std::endl;
-    return true;
-  }
-  if (command == "quit") {
-    main_loop->quit();
-    return true;
-  }
-
-  return false;
-}
-
 void
 GameSession::check_end_conditions()
 {
@@ -655,6 +559,8 @@ GameSession::run()
 void
 GameSession::finish(bool win)
 {
+  using namespace WorldMapNS;
+
   if(win) {
     if(WorldMap::current())
       WorldMap::current()->finished_level(levelfile);