" -d, --default Reset video settings to default values\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"
+ " -h, --help Show this help message\n"
+ " -v, --version Show SuperTux version and quit\n"
" --console Enable ingame scripting console\n"
" --noconsole Disable ingame scripting console\n"
" --show-fps Display framerate in levels\n"
" --no-show-fps Do not display framerate in levels\n"
" --record-demo FILE LEVEL Record a demo to FILE\n"
" --play-demo FILE LEVEL Play a recorded demo\n"
+ " -s, --debug-scripts Enable script debugger.\n"
"\n"));
}
for(int i = 1; i < argc; ++i) {
std::string arg = argv[i];
- if(arg == "--version") {
+ if(arg == "--version" || arg == "-v") {
std::cout << PACKAGE_NAME << " " << PACKAGE_VERSION << std::endl;
return true;
}
for(int i = 1; i < argc; ++i) {
std::string arg = argv[i];
- if(arg == "--help") {
+ if(arg == "--help" || arg == "-h") {
print_usage(argv[0]);
return true;
} else if(arg == "--fullscreen" || arg == "-f") {
config->fullscreen_width = 800;
config->fullscreen_height = 600;
- config->aspect_width = 4;
- config->aspect_height = 3;
+ config->aspect_width = 0; // auto detect
+ config->aspect_height = 0;
} else if(arg == "--window" || arg == "-w") {
config->use_fullscreen = false;
throw std::runtime_error("Need to specify a demo filename");
}
config->record_demo = argv[++i];
- } else if(arg == "-d") {
+ } else if(arg == "--debug-scripts" || arg == "-s") {
config->enable_script_debugger = true;
} else if(arg[0] != '-') {
config->start_level = arg;
#else
const char* icon_fname = "images/engine/icons/supertux.xpm";
#endif
- SDL_Surface* icon = IMG_Load_RW(get_physfs_SDLRWops(icon_fname), true);
+ SDL_Surface* icon;
+ try {
+ icon = IMG_Load_RW(get_physfs_SDLRWops(icon_fname), true);
+ } catch (const std::runtime_error& err) {
+ icon = 0;
+ log_warning << "Couldn't load icon '" << icon_fname << "': " << err.what() << std::endl;
+ }
if(icon != 0) {
SDL_WM_SetIcon(icon, 0);
SDL_FreeSurface(icon);
}
#ifdef DEBUG
else {
- log_warning << "Couldn't find icon '" << icon_fname << "'" << std::endl;
+ log_warning << "Couldn't load icon '" << icon_fname << "'" << std::endl;
}
#endif
{
int result = 0;
-#ifndef NO_CATCH
+#ifndef DEBUG
try {
#endif
//init_rand(); PAK: this call might subsume the above 3, but I'm chicken!
main_loop->run(context);
-#ifndef NO_CATCH
+#ifndef DEBUG
} catch(std::exception& e) {
log_fatal << "Unexpected exception: " << e.what() << std::endl;
result = 1;