#ifndef HEADER_SUPERTUX_SUPERTUX_MAIN_HPP
#define HEADER_SUPERTUX_SUPERTUX_MAIN_HPP
-void init_video();
-void wait_for_event(float min_delay, float max_delay);
-
-/** The width of the display (this is a logical value, not the
- physical value, since aspect_ration and projection_area might
- shrink or scale things) */
-extern int SCREEN_WIDTH;
-
-/** The width of the display (this is a logical value, not the
- physical value, since aspect_ration and projection_area might
- shrink or scale things) */
-extern int SCREEN_HEIGHT;
-
-// global variables
-class JoystickKeyboardController;
-extern JoystickKeyboardController* g_main_controller;
-
-int supertux_main(int argc, char** argv);
+class Main
+{
+private:
+ bool parse_commandline(int argc, char** argv);
+ bool pre_parse_commandline(int argc, char** argv);
+ void init_audio();
+ void init_config();
+ void init_physfs(const char* argv0);
+ void init_rand();
+ void init_sdl();
+ void init_tinygettext();
+ void init_video();
+ void print_usage(const char* argv0);
+ void quit_audio();
+ void wait_for_event(float min_delay, float max_delay);
+
+public:
+ /** We call it run() instead of main() as main collides with
+ #define main SDL_main from SDL.h */
+ int run(int argc, char** argv);
+};
#endif