added basic support for additional empty space elements in game engine
[rocksndiamonds.git] / src / main.c
index a87d202947a98ffedac800315c61c1f8f23442a0..47bd787f03a2ac097018b929f61dfa877730c5db 100644 (file)
@@ -30,15 +30,13 @@ 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                        network_playing = FALSE;
-boolean                        network_server = FALSE;
-SDL_Thread            *server_thread;
 
 int                    key_joystick_mapping = 0;
 
-short                  Feld[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+short                  Tile[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short                  Last[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short                  MovPos[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short                  MovDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
@@ -69,7 +67,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 +130,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;
@@ -6279,6 +6279,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 +7295,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",
@@ -7418,6 +7508,7 @@ 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,                 },
@@ -7431,7 +7522,9 @@ 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,              },
   { ".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,                  },
@@ -7621,7 +7714,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"
@@ -7633,14 +7726,15 @@ static void print_usage(void)
        "  \"print helptext.conf\"            print default helptext config\n"
        "  \"dump level FILE\"                dump level data from FILE\n"
        "  \"dump tape FILE\"                 dump tape data from FILE\n"
-       "  \"autotest LEVELDIR [NR ...]\"     test level tapes for LEVELDIR\n"
        "  \"autoplay LEVELDIR [NR ...]\"     play level tapes for LEVELDIR\n"
        "  \"autoffwd LEVELDIR [NR ...]\"     ffwd level tapes for LEVELDIR\n"
        "  \"autowarp LEVELDIR [NR ...]\"     warp level tapes for LEVELDIR\n"
+       "  \"autotest LEVELDIR [NR ...]\"     test level tapes for LEVELDIR\n"
+       "  \"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);
 }