X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fmain.cpp;h=3925f75a086c914095ea3123663b8afe3cd21fde;hb=6dd8ff98068af6c053733df6bb01ba47c8eb379e;hp=f89805ddc00ae42ff5a11b067d377a7d89905ad5;hpb=ba9907babbb17fadee52f1653f7ad6adf362c6fd;p=supertux.git diff --git a/src/main.cpp b/src/main.cpp index f89805ddc..3925f75a0 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -62,9 +62,8 @@ static void init_config() try { config->load(); } catch(std::exception& e) { -#ifdef DEBUG std::cerr << "Couldn't load config file: " << e.what() << "\n"; -#endif + std::cerr << "Using default settings.\n"; } } @@ -181,12 +180,14 @@ static void init_physfs(const char* argv0) static void print_usage(const char* argv0) { - fprintf(stderr, _("Usage: %s [OPTIONS] LEVELFILE\n\n"), argv0); + fprintf(stderr, _("Usage: %s [OPTIONS] [LEVELFILE]\n\n"), argv0); fprintf(stderr, _("Options:\n" " -f, --fullscreen Run in fullscreen mode\n" " -w, --window Run in window mode\n" " -g, --geometry WIDTHxHEIGHT Run SuperTux in given resolution\n" + " --disable-sfx Disable sound effects\n" + " --disable-music Disable music\n" " --help Show this help message\n" " --version Display SuperTux version and quit\n" " --show-fps Display framerate in levels\n" @@ -216,6 +217,10 @@ static void parse_commandline(int argc, char** argv) } } else if(arg == "--show-fps") { config->show_fps = true; + } else if(arg == "--disable-sfx") { + config->sound_enabled = false; + } else if(arg == "--disable-music") { + config->music_enabled = false; } else if(arg == "--play-demo") { if(i+1 >= argc) { print_usage(argv[0]); @@ -420,21 +425,52 @@ void wait_for_event(float min_delay, float max_delay) } } +#ifdef DEBUG +static Uint32 last_timelog_ticks = 0; +static const char* last_timelog_component = 0; + +static inline void timelog(const char* component) +{ + Uint32 current_ticks = SDL_GetTicks(); + + if(last_timelog_component != 0) { + printf("Component '%s' finished after %f seconds\n", + last_timelog_component, (current_ticks - last_timelog_ticks) / 1000.0); + } + + last_timelog_ticks = current_ticks; + last_timelog_component = component; +} +#else +static inline void timelog(const char* ) +{ +} +#endif + int main(int argc, char** argv) { try { srand(time(0)); init_physfs(argv[0]); init_sdl(); + timelog("controller"); main_controller = new JoystickKeyboardController(); + timelog("config"); init_config(); + timelog("tinygettext"); init_tinygettext(); + timelog("commandline"); parse_commandline(argc, argv); + timelog("audio"); init_audio(); + timelog("video"); init_video(); + timelog("menu"); setup_menu(); + timelog("resources"); load_shared(); + timelog(0); if(config->start_level != "") { // we have a normal path specified at commandline not physfs paths. // So we simply mount that path here...