-
- /* Process the command line arguments */
- for (i = 1; args && (i < argc); i++)
- {
- /* Require proper options */
- if (argv[i][0] != '-') goto usage;
-
- /* Analyze option */
- switch (argv[i][1])
- {
- case 'N':
- case 'n':
- {
- new_game = TRUE;
- break;
- }
-
- case 'F':
- case 'f':
- {
- arg_fiddle = TRUE;
- break;
- }
-
- case 'W':
- case 'w':
- {
- arg_wizard = TRUE;
- break;
- }
-
- case 'B':
- case 'b':
- {
- arg_music = TRUE;
- break;
- }
-
- case 'V':
- case 'v':
- {
- arg_sound = TRUE;
- break;
- }
-
- case 'G':
- case 'g':
- {
- /* HACK - Graphics mode switches on the original tiles */
- arg_graphics = GRAPHICS_ORIGINAL;
- break;
- }
-
- case 'R':
- case 'r':
- {
- arg_force_roguelike = TRUE;
- break;
- }
-
- case 'O':
- case 'o':
- {
- arg_force_original = TRUE;
- break;
- }
-
- case 'S':
- case 's':
- {
- show_score = atoi(&argv[i][2]);
- if (show_score <= 0) show_score = 10;
- break;
- }
-
- case 'u':
- case 'U':
- {
- if (!argv[i][2]) goto usage;
-#ifdef ANGBAND_2_8_1
- strcpy(p_ptr->name, &argv[i][2]);
-#else /* ANGBAND_2_8_1 */
-
- /* Get the savefile name */
- strncpy(op_ptr->full_name, &argv[i][2], 32);
-
- /* Make sure it's terminated */
- op_ptr->full_name[31] = '\0';
-
-#endif /* ANGBAND_2_8_1 */
- break;
- }
-
- case 'm':
- {
- if (!argv[i][2]) goto usage;
- mstr = &argv[i][2];
- break;
- }
-
- case 'M':
- {
- arg_monochrome = TRUE;
- break;
- }
-
- case 'd':
- case 'D':
- {
- change_path(&argv[i][2]);
- break;
- }
-
-#ifdef CHUUKEI
- case 'p':
- case 'P':
- {
- if (!argv[i][2]) goto usage;
- chuukei_server = TRUE;
- if (connect_chuukei_server(&argv[i][2]) < 0) chuukei_server = FALSE;
- break;
- }
-
- case 'c':
- case 'C':
- {
- if (!argv[i][2]) goto usage;
- chuukei_client = TRUE;
- connect_chuukei_server(&argv[i][2]);
- break;
- }
-#endif
-
- case 'x':
- {
- if (!argv[i][2]) goto usage;
- prepare_browse_movie(&argv[i][2]);
- break;
- }
-
- case '-':
- {
- argv[i] = argv[0];
- argc = argc - i;
- argv = argv + i;
- args = FALSE;
- break;
- }
-
- default:
- usage:
- {
- /* Dump usage information */
- puts("Usage: angband [options] [-- subopts]");
- puts(" -n Start a new character");
- puts(" -f Request fiddle mode");
- puts(" -w Request wizard mode");
- puts(" -b Request BGM mode");
- puts(" -v Request sound mode");
- puts(" -g Request graphics mode");
- puts(" -o Request original keyset");
- puts(" -r Request rogue-like keyset");
- puts(" -M Request monochrome mode");
- puts(" -s<num> Show <num> high scores");
- puts(" -u<who> Use your <who> savefile");
- puts(" -m<sys> Force 'main-<sys>.c' usage");
- puts(" -d<def> Define a 'lib' dir sub-path");
- puts("");
-
-#ifdef USE_X11
- puts(" -mx11 To use X11");
- puts(" -- Sub options");
- puts(" -- -d Set display name");
- puts(" -- -o Request old 8x8 tile graphics");
- puts(" -- -a Request Adam Bolt 16x16 tile graphics");
- puts(" -- -b Request Bigtile graphics mode");
- puts(" -- -s Turn off smoothscaling graphics");
- puts(" -- -n# Number of terms to use");
- puts("");
-#endif /* USE_X11 */
-
-#ifdef USE_GCU
- puts(" -mgcu To use GCU (GNU Curses)");
-#endif /* USE_GCU */
-
-#ifdef USE_CAP
- puts(" -mcap To use CAP (\"Termcap\" calls)");
-#endif /* USE_CAP */
-
-#ifdef USE_DOS
- puts(" -mdos To use DOS (Graphics)");
-#endif /* USE_DOS */
-
-#ifdef USE_IBM
- puts(" -mibm To use IBM (BIOS text mode)");
-#endif /* USE_IBM */
-
- /* Actually abort the process */
- quit(NULL);
- }
- }
- }
-
- /* Hack -- Forget standard args */
- if (args)
- {
- argc = 1;
- argv[1] = NULL;
- }
-
-
- /* Process the player name */
- process_player_name(TRUE);
-
-
-
- /* Install "quit" hook */
- quit_aux = quit_hook;
-
-
+ /* Process the command line arguments */
+ bool browsing_movie = FALSE;
+ for (i = 1; args && (i < argc); i++) {
+ /* Require proper options */
+ if (argv[i][0] != '-') {
+ display_usage();
+ continue;
+ }
+
+ /* Analyze option */
+ bool is_usage_needed = FALSE;
+ switch (argv[i][1]) {
+ case 'N':
+ case 'n': {
+ new_game = TRUE;
+ break;
+ }
+ case 'F':
+ case 'f': {
+ arg_fiddle = TRUE;
+ break;
+ }
+ case 'W':
+ case 'w': {
+ arg_wizard = TRUE;
+ break;
+ }
+ case 'B':
+ case 'b': {
+ arg_music = TRUE;
+ break;
+ }
+ case 'V':
+ case 'v': {
+ arg_sound = TRUE;
+ break;
+ }
+ case 'G':
+ case 'g': {
+ /* HACK - Graphics mode switches on the original tiles */
+ arg_graphics = GRAPHICS_ORIGINAL;
+ break;
+ }
+ case 'R':
+ case 'r': {
+ arg_force_roguelike = TRUE;
+ break;
+ }
+ case 'O':
+ case 'o': {
+ arg_force_original = TRUE;
+ break;
+ }
+ case 'S':
+ case 's': {
+ show_score = atoi(&argv[i][2]);
+ if (show_score <= 0)
+ show_score = 10;
+ break;
+ }
+ case 'u':
+ case 'U': {
+ if (!argv[i][2]) {
+ is_usage_needed = TRUE;
+ break;
+ }
+
+ strcpy(p_ptr->name, &argv[i][2]);
+ break;
+ }
+ case 'm': {
+ if (!argv[i][2]) {
+ is_usage_needed = TRUE;
+ break;
+ }
+
+ mstr = &argv[i][2];
+ break;
+ }
+ case 'M': {
+ arg_monochrome = TRUE;
+ break;
+ }
+ case 'd':
+ case 'D': {
+ change_path(&argv[i][2]);
+ break;
+ }
+ case 'x': {
+ if (!argv[i][2]) {
+ is_usage_needed = TRUE;
+ break;
+ }
+
+ prepare_browse_movie_with_path_build(&argv[i][2]);
+ browsing_movie = TRUE;
+ break;
+ }
+ case '-': {
+ argv[i] = argv[0];
+ argc = argc - i;
+ argv = argv + i;
+ args = FALSE;
+ break;
+ }
+ default: {
+ is_usage_needed = TRUE;
+ break;
+ }
+ }
+
+ if (!is_usage_needed)
+ continue;
+
+ display_usage();
+ }
+
+ /* Hack -- Forget standard args */
+ if (args) {
+ argc = 1;
+ argv[1] = NULL;
+ }
+
+ /* Process the player name */
+ process_player_name(p_ptr, TRUE);
+
+ /* Install "quit" hook */
+ quit_aux = quit_hook;