Fixed time/badguy errors in statistics, still needs some testing
[supertux.git] / src / main.cpp
index 71aa862..1ab47a7 100644 (file)
@@ -44,7 +44,7 @@
 #include "video/surface.hpp"
 #include "video/texture_manager.hpp"
 #include "control/joystickkeyboardcontroller.hpp"
-#include "misc.hpp"
+#include "options_menu.hpp"
 #include "mainloop.hpp"
 #include "title.hpp"
 #include "game_session.hpp"
@@ -311,9 +311,11 @@ static void check_gl_error()
       case GL_OUT_OF_MEMORY:
         errormsg = "out of memory";
         break;
+#ifdef GL_TABLE_TOO_LARGE
       case GL_TABLE_TOO_LARGE:
         errormsg = "table too large";
         break;
+#endif
       default:
         errormsg = "unknown error number";
         break;
@@ -501,8 +503,6 @@ int main(int argc, char** argv)
     timelog("scripting");
     init_scripting();
 
-    timelog("menu");
-    setup_menu();
     timelog("resources");
     load_shared(); 
     timelog(0);
@@ -513,14 +513,13 @@ int main(int argc, char** argv)
       // So we simply mount that path here...
       std::string dir = FileSystem::dirname(config->start_level);
       PHYSFS_addToSearchPath(dir.c_str(), true);
-      GameSession* session
-        = new GameSession(
-          FileSystem::basename(config->start_level), ST_GL_LOAD_LEVEL_FILE);
+      std::auto_ptr<GameSession> session
+        (new GameSession(FileSystem::basename(config->start_level)));
       if(config->start_demo != "")
         session->play_demo(config->start_demo);
       if(config->record_demo != "")
         session->record_demo(config->record_demo);
-      main_loop->push_screen(session);
+      main_loop->push_screen(session.release());
     } else {
       main_loop->push_screen(new TitleScreen());
     }
@@ -537,9 +536,7 @@ int main(int argc, char** argv)
   delete main_loop;
   main_loop = NULL;
 
-  free_menu();
-  delete ScriptManager::instance;
-  ScriptManager::instance = NULL;
+  free_options_menu();
   unload_shared();
   quit_audio();
 
@@ -551,6 +548,8 @@ int main(int argc, char** argv)
   main_controller = NULL;
   delete Console::instance;
   Console::instance = NULL;
+  delete ScriptManager::instance;
+  ScriptManager::instance = NULL; 
   delete texture_manager;
   texture_manager = NULL;
   SDL_Quit();