fixed program usage text
[rocksndiamonds.git] / src / main.c
index ca4be86d05615216959671464a53987732226652..b72a521ca7588a236d1c112e457048071ef1b421 100644 (file)
@@ -30,11 +30,10 @@ DrawBuffer         *fieldbuffer;
 DrawBuffer            *drawto_field;
 
 int                    game_status = -1;
-boolean                        game_status_last_screen = -1;
+int                    game_status_last_screen = -1;
 boolean                        level_editor_test_game = FALSE;
+boolean                        score_info_tape_play = FALSE;
 boolean                        network_playing = FALSE;
-boolean                        network_server = FALSE;
-SDL_Thread            *server_thread;
 
 int                    key_joystick_mapping = 0;
 
@@ -69,7 +68,9 @@ int                   PlayerVisit[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 
 int                    GfxFrame[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 int                    GfxRandom[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+int                    GfxRandomStatic[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 int                    GfxElement[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+int                    GfxElementEmpty[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 int                    GfxAction[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 int                    GfxDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 int                    GfxRedraw[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
@@ -130,7 +131,7 @@ boolean                     network_player_action_received = FALSE;
 
 struct LevelInfo       level, level_template;
 struct PlayerInfo      stored_player[MAX_PLAYERS], *local_player = NULL;
-struct HiScore         highscore[MAX_SCORE_ENTRIES];
+struct ScoreInfo       scores, server_scores;
 struct TapeInfo                tape;
 struct GameInfo                game;
 struct GlobalInfo      global;
@@ -177,6 +178,7 @@ SetupFileHash              *element_token_hash = NULL;
 SetupFileHash         *graphic_token_hash = NULL;
 SetupFileHash         *font_token_hash = NULL;
 SetupFileHash         *hide_setup_hash = NULL;
+SetupFileHash         *anim_url_hash = NULL;
 
 
 // ----------------------------------------------------------------------------
@@ -6279,6 +6281,86 @@ struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] =
     "spring",
     "spring (starts moving right)"
   },
+  {
+    "empty_space_1",
+    "empty_space",
+    "empty space 1"
+  },
+  {
+    "empty_space_2",
+    "empty_space",
+    "empty space 2"
+  },
+  {
+    "empty_space_3",
+    "empty_space",
+    "empty space 3"
+  },
+  {
+    "empty_space_4",
+    "empty_space",
+    "empty space 4"
+  },
+  {
+    "empty_space_5",
+    "empty_space",
+    "empty space 5"
+  },
+  {
+    "empty_space_6",
+    "empty_space",
+    "empty space 6"
+  },
+  {
+    "empty_space_7",
+    "empty_space",
+    "empty space 7"
+  },
+  {
+    "empty_space_8",
+    "empty_space",
+    "empty space 8"
+  },
+  {
+    "empty_space_9",
+    "empty_space",
+    "empty space 9"
+  },
+  {
+    "empty_space_10",
+    "empty_space",
+    "empty space 10"
+  },
+  {
+    "empty_space_11",
+    "empty_space",
+    "empty space 11"
+  },
+  {
+    "empty_space_12",
+    "empty_space",
+    "empty space 12"
+  },
+  {
+    "empty_space_13",
+    "empty_space",
+    "empty space 13"
+  },
+  {
+    "empty_space_14",
+    "empty_space",
+    "empty space 14"
+  },
+  {
+    "empty_space_15",
+    "empty_space",
+    "empty space 15"
+  },
+  {
+    "empty_space_16",
+    "empty_space",
+    "empty space 16"
+  },
 
   // --------------------------------------------------------------------------
   // "real" (and therefore drawable) runtime elements
@@ -7215,6 +7297,16 @@ struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] =
     "internal",
     "hide group elements"
   },
+  {
+    "internal_cascade_es",
+    "internal",
+    "show empty space elements"
+  },
+  {
+    "internal_cascade_es.active",
+    "internal",
+    "hide empty space elements"
+  },
   {
     "internal_cascade_ref",
     "internal",
@@ -7404,6 +7496,7 @@ struct ElementDirectionInfo element_direction_info[NUM_DIRECTIONS_FULL + 1] =
 struct SpecialSuffixInfo special_suffix_info[NUM_SPECIAL_GFX_ARGS + 1 + 1] =
 {
   { ".[DEFAULT]",              GFX_SPECIAL_ARG_DEFAULT,                },
+  { ".LOADING_INITIAL",                GFX_SPECIAL_ARG_LOADING_INITIAL,        },
   { ".LOADING",                        GFX_SPECIAL_ARG_LOADING,                },
   { ".TITLE_INITIAL",          GFX_SPECIAL_ARG_TITLE_INITIAL,          },
   { ".TITLE_INITIAL_1",                GFX_SPECIAL_ARG_TITLE_INITIAL_1,        },
@@ -7418,9 +7511,11 @@ struct SpecialSuffixInfo special_suffix_info[NUM_SPECIAL_GFX_ARGS + 1 + 1] =
   { ".TITLE_4",                        GFX_SPECIAL_ARG_TITLE_4,                },
   { ".TITLE_5",                        GFX_SPECIAL_ARG_TITLE_5,                },
   { ".MAIN",                   GFX_SPECIAL_ARG_MAIN,                   },
+  { ".NAMES",                  GFX_SPECIAL_ARG_NAMES,                  },
   { ".LEVELS",                 GFX_SPECIAL_ARG_LEVELS                  },
   { ".LEVELNR",                        GFX_SPECIAL_ARG_LEVELNR                 },
   { ".SCORES",                 GFX_SPECIAL_ARG_SCORES,                 },
+  { ".SCOREINFO",              GFX_SPECIAL_ARG_SCOREINFO,              },
   { ".EDITOR",                 GFX_SPECIAL_ARG_EDITOR,                 },
   { ".INFO",                   GFX_SPECIAL_ARG_INFO,                   },
   { ".SETUP",                  GFX_SPECIAL_ARG_SETUP,                  },
@@ -7431,7 +7526,10 @@ struct SpecialSuffixInfo special_suffix_info[NUM_SPECIAL_GFX_ARGS + 1 + 1] =
   { ".PREVIEW",                        GFX_SPECIAL_ARG_PREVIEW,                },
   { ".CRUMBLED",               GFX_SPECIAL_ARG_CRUMBLED,               },
   { ".MAINONLY",               GFX_SPECIAL_ARG_MAINONLY,               },
+  { ".NAMESONLY",              GFX_SPECIAL_ARG_NAMESONLY,              },
+  { ".SCORESONLY",             GFX_SPECIAL_ARG_SCORESONLY,             },
   { ".TYPENAME",               GFX_SPECIAL_ARG_TYPENAME,               },
+  { ".TYPENAMES",              GFX_SPECIAL_ARG_TYPENAMES,              },
   { ".SUBMENU",                        GFX_SPECIAL_ARG_SUBMENU,                },
   { ".MENU",                   GFX_SPECIAL_ARG_MENU,                   },
   { ".TOONS",                  GFX_SPECIAL_ARG_TOONS,                  },
@@ -7612,7 +7710,7 @@ static void print_usage(void)
        "\n"
        "Options:\n"
        "  -b, --basepath DIRECTORY         alternative base DIRECTORY\n"
-       "  -l, --level DIRECTORY            alternative level DIRECTORY\n"
+       "  -l, --levels DIRECTORY           alternative levels DIRECTORY\n"
        "  -g, --graphics DIRECTORY         alternative graphics DIRECTORY\n"
        "  -s, --sounds DIRECTORY           alternative sounds DIRECTORY\n"
        "  -m, --music DIRECTORY            alternative music DIRECTORY\n"
@@ -7621,7 +7719,7 @@ static void print_usage(void)
        "      --serveronly                 only start network server\n"
        "  -v, --verbose                    verbose mode\n"
        "  -V, --version                    show program version\n"
-       "      --debug                      display debugging information\n"
+       "      --debug[=MODE]               show (and limit) debug output\n"
        "  -e, --execute COMMAND            execute batch COMMAND\n"
        "\n"
        "Valid commands for '--execute' option:\n"
@@ -7640,8 +7738,8 @@ static void print_usage(void)
        "  \"autofix LEVELDIR [NR ...]\"      test and fix tapes for LEVELDIR\n"
        "  \"patch tapes MODE LEVELDIR [NR]\" patch level tapes for LEVELDIR\n"
        "  \"convert LEVELDIR [NR]\"          convert levels in LEVELDIR\n"
-       "  \"create images DIRECTORY\"        write BMP images to DIRECTORY\n"
-       "  \"create CE image DIRECTORY\"      write BMP image to DIRECTORY\n"
+       "  \"create sketch images DIRECTORY\" write BMP images to DIRECTORY\n"
+       "  \"create collect image DIRECTORY\" write BMP image to DIRECTORY\n"
        "\n",
        program.command_basename);
 }
@@ -7701,9 +7799,6 @@ static void InitProgramConfig(char *command_filename)
   char *config_filename = getProgramConfigFilename(command_filename);
   char *userdata_basename = getBaseNameNoSuffix(command_filename);
   char *userdata_subdir;
-#if defined(PLATFORM_UNIX)
-  char *userdata_subdir_unix;
-#endif
 
   // read default program config, if existing
   if (fileExists(config_filename))
@@ -7721,11 +7816,6 @@ static void InitProgramConfig(char *command_filename)
     LoadSetupFromFilename(config_filename);
   }
 
-#if defined(PLATFORM_UNIX)
-  // set user data directory for Linux/Unix (but not Mac OS X)
-  userdata_subdir_unix = getStringCat2(".", userdata_basename);
-#endif
-
   // set program title from potentially redefined program title
   if (setup.internal.program_title != NULL &&
       strlen(setup.internal.program_title) > 0)
@@ -7741,10 +7831,10 @@ static void InitProgramConfig(char *command_filename)
       strlen(setup.internal.program_icon_file) > 0)
     program_icon_file = getStringCopy(setup.internal.program_icon_file);
 
-#if defined(PLATFORM_WIN32) || defined(PLATFORM_MACOSX)
+#if defined(PLATFORM_WINDOWS) || defined(PLATFORM_MAC) || defined(PLATFORM_EMSCRIPTEN)
   userdata_subdir = program_title;
 #elif defined(PLATFORM_UNIX)
-  userdata_subdir = userdata_subdir_unix;
+  userdata_subdir = getStringCat2(".", userdata_basename);
 #else
   userdata_subdir = USERDATA_DIRECTORY_OTHER;
 #endif