- fixed problem with last_menu not being able to handle menues deeper than two submenues
[supertux.git] / src / supertux.cpp
index 26da3cf..0e9c7ce 100644 (file)
   April 11, 2000 - March 15, 2004
 */
 
-#include "supertux.h"
 
+#include <sys/types.h>
+#include <ctype.h>
 
-/* --- MAIN --- */
+#include "defines.h"
+#include "globals.h"
+#include "setup.h"
+#include "intro.h"
+#include "title.h"
+#include "gameloop.h"
+#include "leveleditor.h"
+#include "screen.h"
+#include "worldmap.h"
+#include "resources.h"
 
 int main(int argc, char * argv[])
 {
-  int done;
-  
   st_directory_setup();
   parseargs(argc, argv);
   
@@ -27,31 +35,28 @@ int main(int argc, char * argv[])
   st_joystick_setup();
   st_general_setup();
   st_menu();
+  loadshared();
 
   if (launch_worldmap_mode)
     {
-      worldmap_run();
+      WorldMapNS::WorldMap worldmap;
+      worldmap.display();
     }
   else if (level_startup_file)
     {
-      gameloop(level_startup_file, 1, ST_GL_LOAD_LEVEL_FILE);
+      GameSession session(level_startup_file, 1, ST_GL_LOAD_LEVEL_FILE);
+      session.run();
     }
   else
     {  
-      done = intro();
-  
-      done = 0;
-  
-      while (!done)
-        {
-          done = title();
-        }
+      title();
     }
   
   clearscreen(0, 0, 0);
   updatescreen();
 
+  unloadshared();
   st_shutdown();
   
-  return(0);
+  return 0;
 }