X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fmisc.c;h=b1f4b66c755555bca3a567e915171333a1fa3950;hb=refs%2Fheads%2Fmaster-next-patch-release;hp=7c3e04fca21eaa297b0a5398bfb98b1c604c2618;hpb=e89a21e95b3cb84d1515c0fb3378ce902a48c1c8;p=rocksndiamonds.git diff --git a/src/libgame/misc.c b/src/libgame/misc.c index 7c3e04fc..b1f4b66c 100644 --- a/src/libgame/misc.c +++ b/src/libgame/misc.c @@ -1350,6 +1350,8 @@ void GetOptions(int argc, char *argv[], options.identifier = NULL; options.level_nr = NULL; + options.display_nr = 0; + options.mytapes = FALSE; options.serveronly = FALSE; options.network = FALSE; @@ -1549,6 +1551,28 @@ void GetOptions(int argc, char *argv[], if (option_arg == next_option) options_left++; } + else if (strncmp(option, "-display", option_len) == 0) + { + if (option_arg == NULL) + FailWithHelp("option '%s' requires an argument", option_str); + + if (option_arg == next_option) + options_left++; + + int display_nr = atoi(option_arg); + +#if 1 + // dirty hack: SDL_GetNumVideoDisplays() seems broken on some systems + options.display_nr = display_nr; +#else + options.display_nr = + MAX(0, MIN(display_nr, SDL_GetNumVideoDisplays() - 1)); + + if (display_nr != options.display_nr) + Warn("invalid display %d -- using display %d", + display_nr, options.display_nr); +#endif + } #if defined(PLATFORM_MAC) else if (strPrefix(option, "-psn")) {