rnd-20030204-1-src
authorHolger Schemel <info@artsoft.org>
Tue, 4 Feb 2003 02:19:06 +0000 (03:19 +0100)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:40:14 +0000 (10:40 +0200)
src/conf_esg.c
src/conf_gfx.c
src/conf_gfx.h
src/conftime.h
src/editor.c
src/files.c
src/main.h

index cf4577d67165caa03c3cee12ee8a25f20b93b3cd..eb9aa0f05bd1ff7fbecc506940ecf590de93559a 100644 (file)
@@ -27,10 +27,46 @@ static struct
 }
 element_to_special_graphic[] =
 {
+  {
+    EL_BD_WALL,                                        GFX_SPECIAL_ARG_EDITOR,
+    IMG_BD_WALL_EDITOR
+  },
+  {
+    EL_BD_ROCK,                                        GFX_SPECIAL_ARG_EDITOR,
+    IMG_BD_ROCK_EDITOR
+  },
   {
     EL_BD_AMOEBA,                              GFX_SPECIAL_ARG_EDITOR,
     IMG_BD_AMOEBA_EDITOR
   },
+  {
+    EL_SP_INFOTRON,                            GFX_SPECIAL_ARG_EDITOR,
+    IMG_SP_INFOTRON_EDITOR
+  },
+  {
+    EL_SP_ELECTRON,                            GFX_SPECIAL_ARG_EDITOR,
+    IMG_SP_ELECTRON_EDITOR
+  },
+  {
+    EL_SP_TERMINAL,                            GFX_SPECIAL_ARG_EDITOR,
+    IMG_SP_TERMINAL_EDITOR
+  },
+  {
+    EL_SOKOBAN_OBJECT,                         GFX_SPECIAL_ARG_EDITOR,
+    IMG_SOKOBAN_OBJECT_EDITOR
+  },
+  {
+    EL_DYNAMITE,                               GFX_SPECIAL_ARG_EDITOR,
+    IMG_DYNAMITE_EDITOR
+  },
+  {
+    EL_DYNAMITE_ACTIVE,                                GFX_SPECIAL_ARG_EDITOR,
+    IMG_DYNAMITE_ACTIVE_EDITOR
+  },
+  {
+    EL_QUICKSAND_FULL,                         GFX_SPECIAL_ARG_EDITOR,
+    IMG_QUICKSAND_FULL_EDITOR
+  },
   {
     EL_AMOEBA_WET,                             GFX_SPECIAL_ARG_EDITOR,
     IMG_AMOEBA_WET_EDITOR
@@ -43,6 +79,102 @@ element_to_special_graphic[] =
     EL_AMOEBA_DEAD,                            GFX_SPECIAL_ARG_EDITOR,
     IMG_AMOEBA_DEAD_EDITOR
   },
+  {
+    EL_EM_GATE1_GRAY,                          GFX_SPECIAL_ARG_EDITOR,
+    IMG_EM_GATE1_GRAY_EDITOR
+  },
+  {
+    EL_EM_GATE2_GRAY,                          GFX_SPECIAL_ARG_EDITOR,
+    IMG_EM_GATE2_GRAY_EDITOR
+  },
+  {
+    EL_EM_GATE3_GRAY,                          GFX_SPECIAL_ARG_EDITOR,
+    IMG_EM_GATE3_GRAY_EDITOR
+  },
+  {
+    EL_EM_GATE4_GRAY,                          GFX_SPECIAL_ARG_EDITOR,
+    IMG_EM_GATE4_GRAY_EDITOR
+  },
+  {
+    EL_INVISIBLE_STEELWALL,                    GFX_SPECIAL_ARG_EDITOR,
+    IMG_INVISIBLE_STEELWALL_EDITOR
+  },
+  {
+    EL_INVISIBLE_WALL,                         GFX_SPECIAL_ARG_EDITOR,
+    IMG_INVISIBLE_WALL_EDITOR
+  },
+  {
+    EL_INVISIBLE_SAND,                         GFX_SPECIAL_ARG_EDITOR,
+    IMG_INVISIBLE_SAND_EDITOR
+  },
+  {
+    EL_KEY1,                                   GFX_SPECIAL_ARG_EDITOR,
+    IMG_KEY1_EDITOR
+  },
+  {
+    EL_KEY2,                                   GFX_SPECIAL_ARG_EDITOR,
+    IMG_KEY2_EDITOR
+  },
+  {
+    EL_KEY3,                                   GFX_SPECIAL_ARG_EDITOR,
+    IMG_KEY3_EDITOR
+  },
+  {
+    EL_KEY4,                                   GFX_SPECIAL_ARG_EDITOR,
+    IMG_KEY4_EDITOR
+  },
+  {
+    EL_GATE1_GRAY,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_GATE1_GRAY_EDITOR
+  },
+  {
+    EL_GATE2_GRAY,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_GATE2_GRAY_EDITOR
+  },
+  {
+    EL_GATE3_GRAY,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_GATE3_GRAY_EDITOR
+  },
+  {
+    EL_GATE4_GRAY,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_GATE4_GRAY_EDITOR
+  },
+  {
+    EL_LAMP,                                   GFX_SPECIAL_ARG_EDITOR,
+    IMG_LAMP_EDITOR
+  },
+  {
+    EL_WALL_GROWING_XY,                                GFX_SPECIAL_ARG_EDITOR,
+    IMG_WALL_GROWING_XY_EDITOR
+  },
+  {
+    EL_WALL_GROWING_X,                         GFX_SPECIAL_ARG_EDITOR,
+    IMG_WALL_GROWING_X_EDITOR
+  },
+  {
+    EL_WALL_GROWING_Y,                         GFX_SPECIAL_ARG_EDITOR,
+    IMG_WALL_GROWING_Y_EDITOR
+  },
+  {
+    EL_PENGUIN,                                        GFX_SPECIAL_ARG_EDITOR,
+    IMG_PENGUIN_EDITOR
+  },
+  {
+    EL_PLAYER1,                                        GFX_SPECIAL_ARG_EDITOR,
+    IMG_PLAYER1_EDITOR
+  },
+  {
+    EL_PLAYER2,                                        GFX_SPECIAL_ARG_EDITOR,
+    IMG_PLAYER2_EDITOR
+  },
+  {
+    EL_PLAYER3,                                        GFX_SPECIAL_ARG_EDITOR,
+    IMG_PLAYER3_EDITOR
+  },
+  {
+    EL_PLAYER4,                                        GFX_SPECIAL_ARG_EDITOR,
+    IMG_PLAYER4_EDITOR
+  },
   {
     EL_STEELWALL_TOPLEFT,                      GFX_SPECIAL_ARG_EDITOR,
     IMG_STEELWALL_TOPLEFT_EDITOR
index dfd2e665143593b11e88ffdfcdc6b983879ad87c..d693881c1aeb5011e4b194fc2d16de3c1b5c0925 100644 (file)
@@ -50,11 +50,17 @@ struct ConfigInfo image_config[] =
   { "bd_wall.xpos",                            "12"                    },
   { "bd_wall.ypos",                            "9"                     },
   { "bd_wall.frames",                          "1"                     },
+  { "bd_wall.EDITOR",                          "RocksDC.pcx"           },
+  { "bd_wall.EDITOR.xpos",                     "14"                    },
+  { "bd_wall.EDITOR.ypos",                     "13"                    },
 
   { "bd_rock",                                 "RocksDC.pcx"           },
   { "bd_rock.xpos",                            "12"                    },
   { "bd_rock.ypos",                            "10"                    },
   { "bd_rock.frames",                          "1"                     },
+  { "bd_rock.EDITOR",                          "RocksDC.pcx"           },
+  { "bd_rock.EDITOR.xpos",                     "14"                    },
+  { "bd_rock.EDITOR.ypos",                     "14"                    },
   { "bd_rock.falling",                         "RocksDC.pcx"           },
   { "bd_rock.falling.xpos",                    "12"                    },
   { "bd_rock.falling.ypos",                    "10"                    },
@@ -305,6 +311,9 @@ struct ConfigInfo image_config[] =
   { "sp_infotron.xpos",                                "4"                     },
   { "sp_infotron.ypos",                                "0"                     },
   { "sp_infotron.frames",                      "1"                     },
+  { "sp_infotron.EDITOR",                      "RocksSP.pcx"           },
+  { "sp_infotron.EDITOR.xpos",                 "8"                     },
+  { "sp_infotron.EDITOR.ypos",                 "11"                    },
   { "sp_infotron.falling",                     "RocksSP.pcx"           },
   { "sp_infotron.falling.xpos",                        "4"                     },
   { "sp_infotron.falling.ypos",                        "0"                     },
@@ -467,12 +476,18 @@ struct ConfigInfo image_config[] =
   { "sp_electron.ypos",                                "10"                    },
   { "sp_electron.frames",                      "8"                     },
   { "sp_electron.delay",                       "2"                     },
+  { "sp_electron.EDITOR",                      "RocksSP.pcx"           },
+  { "sp_electron.EDITOR.xpos",                 "10"                    },
+  { "sp_electron.EDITOR.ypos",                 "11"                    },
 
   { "sp_terminal",                             "RocksSP.pcx"           },
   { "sp_terminal.xpos",                                "0"                     },
   { "sp_terminal.ypos",                                "10"                    },
   { "sp_terminal.frames",                      "7"                     },
   { "sp_terminal.delay",                       "12"                    },
+  { "sp_terminal.EDITOR",                      "RocksSP.pcx"           },
+  { "sp_terminal.EDITOR.xpos",                 "9"                     },
+  { "sp_terminal.EDITOR.ypos",                 "11"                    },
   { "sp_terminal.active",                      "RocksSP.pcx"           },
   { "sp_terminal.active.xpos",                 "0"                     },
   { "sp_terminal.active.ypos",                 "11"                    },
@@ -537,6 +552,9 @@ struct ConfigInfo image_config[] =
   { "sokoban_object.xpos",                     "9"                     },
   { "sokoban_object.ypos",                     "7"                     },
   { "sokoban_object.frames",                   "1"                     },
+  { "sokoban_object.EDITOR",                   "RocksElements.pcx"     },
+  { "sokoban_object.EDITOR.xpos",              "2"                     },
+  { "sokoban_object.EDITOR.ypos",              "14"                    },
 
   { "sokoban_field_empty",                     "RocksElements.pcx"     },
   { "sokoban_field_empty.xpos",                        "10"                    },
@@ -661,12 +679,18 @@ struct ConfigInfo image_config[] =
   { "dynamite.xpos",                           "0"                     },
   { "dynamite.ypos",                           "3"                     },
   { "dynamite.frames",                         "1"                     },
+  { "dynamite.EDITOR",                         "RocksElements.pcx"     },
+  { "dynamite.EDITOR.xpos",                    "0"                     },
+  { "dynamite.EDITOR.ypos",                    "14"                    },
   { "dynamite.active",                         "RocksElements.pcx"     },
   { "dynamite.active.xpos",                    "1"                     },
   { "dynamite.active.ypos",                    "3"                     },
   { "dynamite.active.frames",                  "7"                     },
   { "dynamite.active.delay",                   "12"                    },
   { "dynamite.active.mode_linear",             "true"                  },
+  { "dynamite.active.EDITOR",                  "RocksElements.pcx"     },
+  { "dynamite.active.EDITOR.xpos",             "1"                     },
+  { "dynamite.active.EDITOR.ypos",             "14"                    },
 
   { "wall_emerald",                            "RocksElements.pcx"     },
   { "wall_emerald.xpos",                       "4"                     },
@@ -806,6 +830,9 @@ struct ConfigInfo image_config[] =
   { "quicksand_full.xpos",                     "3"                     },
   { "quicksand_full.ypos",                     "0"                     },
   { "quicksand_full.frames",                   "1"                     },
+  { "quicksand_full.EDITOR",                   "RocksElements.pcx"     },
+  { "quicksand_full.EDITOR.xpos",              "3"                     },
+  { "quicksand_full.EDITOR.ypos",              "14"                    },
   { "quicksand_emptying",                      "RocksElements.pcx"     },
   { "quicksand_emptying.xpos",                 "3"                     },
   { "quicksand_emptying.ypos",                 "0"                     },
@@ -945,18 +972,30 @@ struct ConfigInfo image_config[] =
   { "em_gate1_gray.xpos",                      "4"                     },
   { "em_gate1_gray.ypos",                      "7"                     },
   { "em_gate1_gray.frames",                    "1"                     },
+  { "em_gate1_gray.EDITOR",                    "RocksSP.pcx"           },
+  { "em_gate1_gray.EDITOR.xpos",               "12"                    },
+  { "em_gate1_gray.EDITOR.ypos",               "11"                    },
   { "em_gate2_gray",                           "RocksSP.pcx"           },
   { "em_gate2_gray.xpos",                      "5"                     },
   { "em_gate2_gray.ypos",                      "7"                     },
   { "em_gate2_gray.frames",                    "1"                     },
+  { "em_gate2_gray.EDITOR",                    "RocksSP.pcx"           },
+  { "em_gate2_gray.EDITOR.xpos",               "13"                    },
+  { "em_gate2_gray.EDITOR.ypos",               "11"                    },
   { "em_gate3_gray",                           "RocksSP.pcx"           },
   { "em_gate3_gray.xpos",                      "6"                     },
   { "em_gate3_gray.ypos",                      "7"                     },
   { "em_gate3_gray.frames",                    "1"                     },
+  { "em_gate3_gray.EDITOR",                    "RocksSP.pcx"           },
+  { "em_gate3_gray.EDITOR.xpos",               "14"                    },
+  { "em_gate3_gray.EDITOR.ypos",               "11"                    },
   { "em_gate4_gray",                           "RocksSP.pcx"           },
   { "em_gate4_gray.xpos",                      "7"                     },
   { "em_gate4_gray.ypos",                      "7"                     },
   { "em_gate4_gray.frames",                    "1"                     },
+  { "em_gate4_gray.EDITOR",                    "RocksSP.pcx"           },
+  { "em_gate4_gray.EDITOR.xpos",               "15"                    },
+  { "em_gate4_gray.EDITOR.ypos",               "11"                    },
 
   { "exit_closed",                             "RocksElements.pcx"     },
   { "exit_closed.xpos",                                "0"                     },
@@ -1075,6 +1114,9 @@ struct ConfigInfo image_config[] =
   { "invisible_steelwall.xpos",                        "3"                     },
   { "invisible_steelwall.ypos",                        "5"                     },
   { "invisible_steelwall.frames",              "1"                     },
+  { "invisible_steelwall.EDITOR",              "RocksSP.pcx"           },
+  { "invisible_steelwall.EDITOR.xpos",         "1"                     },
+  { "invisible_steelwall.EDITOR.ypos",         "5"                     },
   { "invisible_steelwall.active",              "RocksSP.pcx"           },
   { "invisible_steelwall.active.xpos",         "1"                     },
   { "invisible_steelwall.active.ypos",         "5"                     },
@@ -1084,6 +1126,9 @@ struct ConfigInfo image_config[] =
   { "invisible_wall.xpos",                     "7"                     },
   { "invisible_wall.ypos",                     "5"                     },
   { "invisible_wall.frames",                   "1"                     },
+  { "invisible_wall.EDITOR",                   "RocksSP.pcx"           },
+  { "invisible_wall.EDITOR.xpos",              "5"                     },
+  { "invisible_wall.EDITOR.ypos",              "5"                     },
   { "invisible_wall.active",                   "RocksSP.pcx"           },
   { "invisible_wall.active.xpos",              "5"                     },
   { "invisible_wall.active.ypos",              "5"                     },
@@ -1093,6 +1138,9 @@ struct ConfigInfo image_config[] =
   { "invisible_sand.xpos",                     "6"                     },
   { "invisible_sand.ypos",                     "5"                     },
   { "invisible_sand.frames",                   "1"                     },
+  { "invisible_sand.EDITOR",                   "RocksSP.pcx"           },
+  { "invisible_sand.EDITOR.xpos",              "2"                     },
+  { "invisible_sand.EDITOR.ypos",              "5"                     },
   { "invisible_sand.active",                   "RocksSP.pcx"           },
   { "invisible_sand.active.xpos",              "2"                     },
   { "invisible_sand.active.ypos",              "5"                     },
@@ -1485,18 +1533,30 @@ struct ConfigInfo image_config[] =
   { "key1.xpos",                               "4"                     },
   { "key1.ypos",                               "1"                     },
   { "key1.frames",                             "1"                     },
+  { "key1.EDITOR",                             "RocksElements.pcx"     },
+  { "key1.EDITOR.xpos",                                "4"                     },
+  { "key1.EDITOR.ypos",                                "14"                    },
   { "key2",                                    "RocksElements.pcx"     },
   { "key2.xpos",                               "5"                     },
   { "key2.ypos",                               "1"                     },
   { "key2.frames",                             "1"                     },
+  { "key2.EDITOR",                             "RocksElements.pcx"     },
+  { "key2.EDITOR.xpos",                                "5"                     },
+  { "key2.EDITOR.ypos",                                "14"                    },
   { "key3",                                    "RocksElements.pcx"     },
   { "key3.xpos",                               "6"                     },
   { "key3.ypos",                               "1"                     },
   { "key3.frames",                             "1"                     },
+  { "key3.EDITOR",                             "RocksElements.pcx"     },
+  { "key3.EDITOR.xpos",                                "6"                     },
+  { "key3.EDITOR.ypos",                                "14"                    },
   { "key4",                                    "RocksElements.pcx"     },
   { "key4.xpos",                               "7"                     },
   { "key4.ypos",                               "1"                     },
   { "key4.frames",                             "1"                     },
+  { "key4.EDITOR",                             "RocksElements.pcx"     },
+  { "key4.EDITOR.xpos",                                "7"                     },
+  { "key4.EDITOR.ypos",                                "14"                    },
 
   { "gate1",                                   "RocksElements.pcx"     },
   { "gate1.xpos",                              "4"                     },
@@ -1518,18 +1578,30 @@ struct ConfigInfo image_config[] =
   { "gate1_gray.xpos",                         "8"                     },
   { "gate1_gray.ypos",                         "2"                     },
   { "gate1_gray.frames",                       "1"                     },
+  { "gate1_gray.EDITOR",                       "RocksElements.pcx"     },
+  { "gate1_gray.EDITOR.xpos",                  "8"                     },
+  { "gate1_gray.EDITOR.ypos",                  "14"                    },
   { "gate2_gray",                              "RocksElements.pcx"     },
   { "gate2_gray.xpos",                         "9"                     },
   { "gate2_gray.ypos",                         "2"                     },
   { "gate2_gray.frames",                       "1"                     },
+  { "gate2_gray.EDITOR",                       "RocksElements.pcx"     },
+  { "gate2_gray.EDITOR.xpos",                  "9"                     },
+  { "gate2_gray.EDITOR.ypos",                  "14"                    },
   { "gate3_gray",                              "RocksElements.pcx"     },
   { "gate3_gray.xpos",                         "10"                    },
   { "gate3_gray.ypos",                         "2"                     },
   { "gate3_gray.frames",                       "1"                     },
+  { "gate3_gray.EDITOR",                       "RocksElements.pcx"     },
+  { "gate3_gray.EDITOR.xpos",                  "10"                    },
+  { "gate3_gray.EDITOR.ypos",                  "14"                    },
   { "gate4_gray",                              "RocksElements.pcx"     },
   { "gate4_gray.xpos",                         "11"                    },
   { "gate4_gray.ypos",                         "2"                     },
   { "gate4_gray.frames",                       "1"                     },
+  { "gate4_gray.EDITOR",                       "RocksElements.pcx"     },
+  { "gate4_gray.EDITOR.xpos",                  "11"                    },
+  { "gate4_gray.EDITOR.ypos",                  "14"                    },
 
   { "gameoflife",                              "RocksElements.pcx"     },
   { "gameoflife.xpos",                         "8"                     },
@@ -1574,6 +1646,9 @@ struct ConfigInfo image_config[] =
   { "lamp.xpos",                               "0"                     },
   { "lamp.ypos",                               "7"                     },
   { "lamp.frames",                             "1"                     },
+  { "lamp.EDITOR",                             "RocksElements.pcx"     },
+  { "lamp.EDITOR.xpos",                                "2"                     },
+  { "lamp.EDITOR.ypos",                                "14"                    },
   { "lamp.active",                             "RocksElements.pcx"     },
   { "lamp.active.xpos",                                "1"                     },
   { "lamp.active.ypos",                                "7"                     },
@@ -1656,14 +1731,23 @@ struct ConfigInfo image_config[] =
   { "wall_growing_xy.xpos",                    "4"                     },
   { "wall_growing_xy.ypos",                    "9"                     },
   { "wall_growing_xy.frames",                  "1"                     },
+  { "wall_growing_xy.EDITOR",                  "RocksElements.pcx"     },
+  { "wall_growing_xy.EDITOR.xpos",             "12"                    },
+  { "wall_growing_xy.EDITOR.ypos",             "13"                    },
   { "wall_growing_x",                          "RocksElements.pcx"     },
   { "wall_growing_x.xpos",                     "5"                     },
   { "wall_growing_x.ypos",                     "9"                     },
   { "wall_growing_x.frames",                   "1"                     },
+  { "wall_growing_x.EDITOR",                   "RocksElements.pcx"     },
+  { "wall_growing_x.EDITOR.xpos",              "13"                    },
+  { "wall_growing_x.EDITOR.ypos",              "13"                    },
   { "wall_growing_y",                          "RocksElements.pcx"     },
   { "wall_growing_y.xpos",                     "6"                     },
   { "wall_growing_y.ypos",                     "9"                     },
   { "wall_growing_y.frames",                   "1"                     },
+  { "wall_growing_y.EDITOR",                   "RocksElements.pcx"     },
+  { "wall_growing_y.EDITOR.xpos",              "14"                    },
+  { "wall_growing_y.EDITOR.ypos",              "13"                    },
 
   { "wall_growing.active.left",                        "RocksElements.pcx"     },
   { "wall_growing.active.left.xpos",           "8"                     },
@@ -1932,6 +2016,9 @@ struct ConfigInfo image_config[] =
   { "penguin.xpos",                            "8"                     },
   { "penguin.ypos",                            "6"                     },
   { "penguin.frames",                          "1"                     },
+  { "penguin.EDITOR",                          "RocksElements.pcx"     },
+  { "penguin.EDITOR.xpos",                     "12"                    },
+  { "penguin.EDITOR.ypos",                     "14"                    },
   { "penguin.down",                            "RocksHeroes.pcx"       },
   { "penguin.down.xpos",                       "8"                     },
   { "penguin.down.ypos",                       "6"                     },
@@ -2056,6 +2143,9 @@ struct ConfigInfo image_config[] =
   { "player1.xpos",                            "0"                     },
   { "player1.ypos",                            "0"                     },
   { "player1.frames",                          "1"                     },
+  { "player1.EDITOR",                          "RocksElements.pcx"     },
+  { "player1.EDITOR.xpos",                     "4"                     },
+  { "player1.EDITOR.ypos",                     "7"                     },
   { "player1.down",                            "RocksHeroes.pcx"       },
   { "player1.down.xpos",                       "0"                     },
   { "player1.down.ypos",                       "0"                     },
@@ -2153,6 +2243,9 @@ struct ConfigInfo image_config[] =
   { "player2.xpos",                            "0"                     },
   { "player2.ypos",                            "3"                     },
   { "player2.frames",                          "1"                     },
+  { "player2.EDITOR",                          "RocksElements.pcx"     },
+  { "player2.EDITOR.xpos",                     "5"                     },
+  { "player2.EDITOR.ypos",                     "7"                     },
   { "player2.down",                            "RocksHeroes.pcx"       },
   { "player2.down.xpos",                       "0"                     },
   { "player2.down.ypos",                       "3"                     },
@@ -2238,6 +2331,9 @@ struct ConfigInfo image_config[] =
   { "player3.xpos",                            "0"                     },
   { "player3.ypos",                            "6"                     },
   { "player3.frames",                          "1"                     },
+  { "player3.EDITOR",                          "RocksElements.pcx"     },
+  { "player3.EDITOR.xpos",                     "6"                     },
+  { "player3.EDITOR.ypos",                     "7"                     },
   { "player3.down",                            "RocksHeroes.pcx"       },
   { "player3.down.xpos",                       "0"                     },
   { "player3.down.ypos",                       "6"                     },
@@ -2323,6 +2419,9 @@ struct ConfigInfo image_config[] =
   { "player4.xpos",                            "0"                     },
   { "player4.ypos",                            "9"                     },
   { "player4.frames",                          "1"                     },
+  { "player4.EDITOR",                          "RocksElements.pcx"     },
+  { "player4.EDITOR.xpos",                     "7"                     },
+  { "player4.EDITOR.ypos",                     "7"                     },
   { "player4.down",                            "RocksHeroes.pcx"       },
   { "player4.down.xpos",                       "0"                     },
   { "player4.down.ypos",                       "9"                     },
index 8f677fa029008d1f841eed8e9ddc96283442d895..b285f73388172b3a0a6596b8269ea462aba535c1 100644 (file)
 /* values for graphics configuration (normal elements) */
 
 #define IMG_BD_WALL                                    0
-#define IMG_BD_ROCK                                    1
-#define IMG_BD_ROCK_FALLING                            2
-#define IMG_BD_ROCK_MOVING_LEFT                                3
-#define IMG_BD_ROCK_MOVING_RIGHT                       4
-#define IMG_BD_DIAMOND                                 5
-#define IMG_BD_DIAMOND_MOVING                          6
-#define IMG_BD_DIAMOND_FALLING                         7
-#define IMG_BD_MAGIC_WALL                              8
-#define IMG_BD_MAGIC_WALL_ACTIVE                       9
-#define IMG_BD_MAGIC_WALL_FILLING                      10
-#define IMG_BD_MAGIC_WALL_FULL                         11
-#define IMG_BD_MAGIC_WALL_EMPTYING                     12
-#define IMG_BD_MAGIC_WALL_DEAD                         13
-#define IMG_BD_AMOEBA                                  14
-#define IMG_BD_AMOEBA_EDITOR                           15
-#define IMG_BD_BUTTERFLY                               16
-#define IMG_BD_BUTTERFLY_RIGHT                         17
-#define IMG_BD_BUTTERFLY_UP                            18
-#define IMG_BD_BUTTERFLY_LEFT                          19
-#define IMG_BD_BUTTERFLY_DOWN                          20
-#define IMG_BD_BUTTERFLY_MOVING                                21
-#define IMG_BD_FIREFLY                                 22
-#define IMG_BD_FIREFLY_RIGHT                           23
-#define IMG_BD_FIREFLY_UP                              24
-#define IMG_BD_FIREFLY_LEFT                            25
-#define IMG_BD_FIREFLY_DOWN                            26
-#define IMG_BD_FIREFLY_MOVING                          27
-#define IMG_SP_EMPTY_SPACE                             28
-#define IMG_SP_ZONK                                    29
-#define IMG_SP_ZONK_FALLING                            30
-#define IMG_SP_ZONK_MOVING_LEFT                                31
-#define IMG_SP_ZONK_MOVING_RIGHT                       32
-#define IMG_SP_BASE                                    33
-#define IMG_SP_MURPHY                                  34
-#define IMG_SP_MURPHY_LEFT                             35
-#define IMG_SP_MURPHY_RIGHT                            36
-#define IMG_SP_MURPHY_UP                               37
-#define IMG_SP_MURPHY_DOWN                             38
-#define IMG_SP_MURPHY_MOVING_LEFT                      39
-#define IMG_SP_MURPHY_MOVING_RIGHT                     40
-#define IMG_SP_MURPHY_DIGGING_LEFT                     41
-#define IMG_SP_MURPHY_DIGGING_RIGHT                    42
-#define IMG_SP_MURPHY_PUSHING_LEFT                     43
-#define IMG_SP_MURPHY_PUSHING_RIGHT                    44
-#define IMG_SP_MURPHY_SNAPPING_LEFT                    45
-#define IMG_SP_MURPHY_SNAPPING_RIGHT                   46
-#define IMG_SP_MURPHY_SNAPPING_UP                      47
-#define IMG_SP_MURPHY_SNAPPING_DOWN                    48
-#define IMG_SP_MURPHY_CLONE                            49
-#define IMG_SP_INFOTRON                                        50
-#define IMG_SP_INFOTRON_FALLING                                51
-#define IMG_SP_CHIP_SINGLE                             52
-#define IMG_SP_CHIP_LEFT                               53
-#define IMG_SP_CHIP_RIGHT                              54
-#define IMG_SP_CHIP_UPPER                              55
-#define IMG_SP_CHIP_LOWER                              56
-#define IMG_SP_HARD_GRAY                               57
-#define IMG_SP_HARD_GREEN                              58
-#define IMG_SP_HARD_BLUE                               59
-#define IMG_SP_HARD_RED                                        60
-#define IMG_SP_HARD_YELLOW                             61
-#define IMG_SP_EXIT_CLOSED                             62
-#define IMG_SP_EXIT_OPEN                               63
-#define IMG_SP_DISK_ORANGE                             64
-#define IMG_SP_DISK_ORANGE_FALLING                     65
-#define IMG_SP_DISK_ORANGE_PUSHING                     66
-#define IMG_SP_DISK_YELLOW                             67
-#define IMG_SP_DISK_YELLOW_PUSHING                     68
-#define IMG_SP_DISK_RED                                        69
-#define IMG_SP_DISK_RED_COLLECTING                     70
-#define IMG_SP_PORT1_RIGHT                             71
-#define IMG_SP_PORT1_DOWN                              72
-#define IMG_SP_PORT1_LEFT                              73
-#define IMG_SP_PORT1_UP                                        74
-#define IMG_SP_PORT2_RIGHT                             75
-#define IMG_SP_PORT2_DOWN                              76
-#define IMG_SP_PORT2_LEFT                              77
-#define IMG_SP_PORT2_UP                                        78
-#define IMG_SP_PORT_X                                  79
-#define IMG_SP_PORT_Y                                  80
-#define IMG_SP_PORT_XY                                 81
-#define IMG_SP_SNIKSNAK                                        82
-#define IMG_SP_SNIKSNAK_LEFT                           83
-#define IMG_SP_SNIKSNAK_RIGHT                          84
-#define IMG_SP_SNIKSNAK_UP                             85
-#define IMG_SP_SNIKSNAK_DOWN                           86
-#define IMG_SP_ELECTRON                                        87
-#define IMG_SP_TERMINAL                                        88
-#define IMG_SP_TERMINAL_ACTIVE                         89
-#define IMG_SP_BUGGY_BASE                              90
-#define IMG_SP_BUGGY_BASE_ACTIVATING                   91
-#define IMG_SP_BUGGY_BASE_ACTIVE                       92
-#define IMG_SP_HARD_BASE1                              93
-#define IMG_SP_HARD_BASE2                              94
-#define IMG_SP_HARD_BASE3                              95
-#define IMG_SP_HARD_BASE4                              96
-#define IMG_SP_HARD_BASE5                              97
-#define IMG_SP_HARD_BASE6                              98
-#define IMG_SP_EXPLOSION                               99
-#define IMG_SP_EXPLOSION_INFOTRON                      100
-#define IMG_SOKOBAN_OBJECT                             101
-#define IMG_SOKOBAN_FIELD_EMPTY                                102
-#define IMG_SOKOBAN_FIELD_FULL                         103
-#define IMG_EMPTY_SPACE                                        104
-#define IMG_SAND                                       105
-#define IMG_SAND_CRUMBLED                              106
-#define IMG_WALL                                       107
-#define IMG_WALL_CRUMBLED                              108
-#define IMG_STEELWALL                                  109
-#define IMG_ROCK                                       110
-#define IMG_ROCK_FALLING                               111
-#define IMG_ROCK_MOVING_LEFT                           112
-#define IMG_ROCK_MOVING_RIGHT                          113
-#define IMG_EMERALD                                    114
-#define IMG_EMERALD_MOVING                             115
-#define IMG_EMERALD_FALLING                            116
-#define IMG_DIAMOND                                    117
-#define IMG_DIAMOND_MOVING                             118
-#define IMG_DIAMOND_FALLING                            119
-#define IMG_BOMB                                       120
-#define IMG_NUT                                                121
-#define IMG_NUT_FALLING                                        122
-#define IMG_NUT_MOVING_LEFT                            123
-#define IMG_NUT_MOVING_RIGHT                           124
-#define IMG_NUT_CRACKING                               125
-#define IMG_DYNAMITE                                   126
-#define IMG_DYNAMITE_ACTIVE                            127
-#define IMG_WALL_EMERALD                               128
-#define IMG_WALL_DIAMOND                               129
-#define IMG_BUG_RIGHT                                  130
-#define IMG_BUG_UP                                     131
-#define IMG_BUG_LEFT                                   132
-#define IMG_BUG_DOWN                                   133
-#define IMG_SPACESHIP_RIGHT                            134
-#define IMG_SPACESHIP_UP                               135
-#define IMG_SPACESHIP_LEFT                             136
-#define IMG_SPACESHIP_DOWN                             137
-#define IMG_YAMYAM                                     138
-#define IMG_YAMYAM_MOVING                              139
-#define IMG_ROBOT                                      140
-#define IMG_ROBOT_MOVING                               141
-#define IMG_ROBOT_WHEEL                                        142
-#define IMG_ROBOT_WHEEL_ACTIVE                         143
-#define IMG_MAGIC_WALL                                 144
-#define IMG_MAGIC_WALL_ACTIVE                          145
-#define IMG_MAGIC_WALL_FILLING                         146
-#define IMG_MAGIC_WALL_FULL                            147
-#define IMG_MAGIC_WALL_EMPTYING                                148
-#define IMG_MAGIC_WALL_DEAD                            149
-#define IMG_QUICKSAND_EMPTY                            150
-#define IMG_QUICKSAND_FILLING                          151
-#define IMG_QUICKSAND_FULL                             152
-#define IMG_QUICKSAND_EMPTYING                         153
-#define IMG_ACIDPOOL_TOPLEFT                           154
-#define IMG_ACIDPOOL_TOPRIGHT                          155
-#define IMG_ACIDPOOL_BOTTOMLEFT                                156
-#define IMG_ACIDPOOL_BOTTOM                            157
-#define IMG_ACIDPOOL_BOTTOMRIGHT                       158
-#define IMG_ACID                                       159
-#define IMG_ACID_SPLASH_LEFT                           160
-#define IMG_ACID_SPLASH_RIGHT                          161
-#define IMG_AMOEBA_DROP                                        162
-#define IMG_AMOEBA_CREATING                            163
-#define IMG_AMOEBA_SHRINKING                           164
-#define IMG_AMOEBA_WET                                 165
-#define IMG_AMOEBA_WET_EDITOR                          166
-#define IMG_AMOEBA_DRIPPING                            167
-#define IMG_AMOEBA_DRY                                 168
-#define IMG_AMOEBA_FULL                                        169
-#define IMG_AMOEBA_FULL_EDITOR                         170
-#define IMG_AMOEBA_DEAD                                        171
-#define IMG_AMOEBA_DEAD_EDITOR                         172
-#define IMG_EM_KEY1                                    173
-#define IMG_EM_KEY2                                    174
-#define IMG_EM_KEY3                                    175
-#define IMG_EM_KEY4                                    176
-#define IMG_EM_GATE1                                   177
-#define IMG_EM_GATE2                                   178
-#define IMG_EM_GATE3                                   179
-#define IMG_EM_GATE4                                   180
-#define IMG_EM_GATE1_GRAY                              181
-#define IMG_EM_GATE2_GRAY                              182
-#define IMG_EM_GATE3_GRAY                              183
-#define IMG_EM_GATE4_GRAY                              184
-#define IMG_EXIT_CLOSED                                        185
-#define IMG_EXIT_OPENING                               186
-#define IMG_EXIT_OPEN                                  187
-#define IMG_BALLOON                                    188
-#define IMG_BALLOON_MOVING                             189
-#define IMG_BALLOON_SEND_LEFT                          190
-#define IMG_BALLOON_SEND_RIGHT                         191
-#define IMG_BALLOON_SEND_UP                            192
-#define IMG_BALLOON_SEND_DOWN                          193
-#define IMG_BALLOON_SEND_ANY_DIRECTION                 194
-#define IMG_SPRING                                     195
-#define IMG_SPRING_MOVING                              196
-#define IMG_EMC_STEELWALL1                             197
-#define IMG_EMC_STEELWALL2                             198
-#define IMG_EMC_STEELWALL3                             199
-#define IMG_EMC_STEELWALL4                             200
-#define IMG_EMC_WALL_PILLAR_UPPER                      201
-#define IMG_EMC_WALL_PILLAR_MIDDLE                     202
-#define IMG_EMC_WALL_PILLAR_LOWER                      203
-#define IMG_EMC_WALL4                                  204
-#define IMG_EMC_WALL5                                  205
-#define IMG_EMC_WALL6                                  206
-#define IMG_EMC_WALL7                                  207
-#define IMG_EMC_WALL8                                  208
-#define IMG_INVISIBLE_STEELWALL                                209
-#define IMG_INVISIBLE_STEELWALL_ACTIVE                 210
-#define IMG_INVISIBLE_WALL                             211
-#define IMG_INVISIBLE_WALL_ACTIVE                      212
-#define IMG_INVISIBLE_SAND                             213
-#define IMG_INVISIBLE_SAND_ACTIVE                      214
-#define IMG_CONVEYOR_BELT1_MIDDLE                      215
-#define IMG_CONVEYOR_BELT1_MIDDLE_ACTIVE               216
-#define IMG_CONVEYOR_BELT1_LEFT                                217
-#define IMG_CONVEYOR_BELT1_LEFT_ACTIVE                 218
-#define IMG_CONVEYOR_BELT1_RIGHT                       219
-#define IMG_CONVEYOR_BELT1_RIGHT_ACTIVE                        220
-#define IMG_CONVEYOR_BELT1_SWITCH_LEFT                 221
-#define IMG_CONVEYOR_BELT1_SWITCH_MIDDLE               222
-#define IMG_CONVEYOR_BELT1_SWITCH_RIGHT                        223
-#define IMG_CONVEYOR_BELT2_MIDDLE                      224
-#define IMG_CONVEYOR_BELT2_MIDDLE_ACTIVE               225
-#define IMG_CONVEYOR_BELT2_LEFT                                226
-#define IMG_CONVEYOR_BELT2_LEFT_ACTIVE                 227
-#define IMG_CONVEYOR_BELT2_RIGHT                       228
-#define IMG_CONVEYOR_BELT2_RIGHT_ACTIVE                        229
-#define IMG_CONVEYOR_BELT2_SWITCH_LEFT                 230
-#define IMG_CONVEYOR_BELT2_SWITCH_MIDDLE               231
-#define IMG_CONVEYOR_BELT2_SWITCH_RIGHT                        232
-#define IMG_CONVEYOR_BELT3_MIDDLE                      233
-#define IMG_CONVEYOR_BELT3_MIDDLE_ACTIVE               234
-#define IMG_CONVEYOR_BELT3_LEFT                                235
-#define IMG_CONVEYOR_BELT3_LEFT_ACTIVE                 236
-#define IMG_CONVEYOR_BELT3_RIGHT                       237
-#define IMG_CONVEYOR_BELT3_RIGHT_ACTIVE                        238
-#define IMG_CONVEYOR_BELT3_SWITCH_LEFT                 239
-#define IMG_CONVEYOR_BELT3_SWITCH_MIDDLE               240
-#define IMG_CONVEYOR_BELT3_SWITCH_RIGHT                        241
-#define IMG_CONVEYOR_BELT4_MIDDLE                      242
-#define IMG_CONVEYOR_BELT4_MIDDLE_ACTIVE               243
-#define IMG_CONVEYOR_BELT4_LEFT                                244
-#define IMG_CONVEYOR_BELT4_LEFT_ACTIVE                 245
-#define IMG_CONVEYOR_BELT4_RIGHT                       246
-#define IMG_CONVEYOR_BELT4_RIGHT_ACTIVE                        247
-#define IMG_CONVEYOR_BELT4_SWITCH_LEFT                 248
-#define IMG_CONVEYOR_BELT4_SWITCH_MIDDLE               249
-#define IMG_CONVEYOR_BELT4_SWITCH_RIGHT                        250
-#define IMG_SWITCHGATE_SWITCH_UP                       251
-#define IMG_SWITCHGATE_SWITCH_DOWN                     252
-#define IMG_LIGHT_SWITCH                               253
-#define IMG_LIGHT_SWITCH_ACTIVE                                254
-#define IMG_TIMEGATE_SWITCH                            255
-#define IMG_TIMEGATE_SWITCH_ACTIVE                     256
-#define IMG_ENVELOPE                                   257
-#define IMG_SIGN_EXCLAMATION                           258
-#define IMG_SIGN_STOP                                  259
-#define IMG_LANDMINE                                   260
-#define IMG_STEELWALL_SLANTED                          261
-#define IMG_EXTRA_TIME                                 262
-#define IMG_SHIELD_NORMAL                              263
-#define IMG_SHIELD_NORMAL_ACTIVE                       264
-#define IMG_SHIELD_DEADLY                              265
-#define IMG_SHIELD_DEADLY_ACTIVE                       266
-#define IMG_SWITCHGATE_CLOSED                          267
-#define IMG_SWITCHGATE_OPENING                         268
-#define IMG_SWITCHGATE_OPEN                            269
-#define IMG_SWITCHGATE_CLOSING                         270
-#define IMG_TIMEGATE_CLOSED                            271
-#define IMG_TIMEGATE_OPENING                           272
-#define IMG_TIMEGATE_OPEN                              273
-#define IMG_TIMEGATE_CLOSING                           274
-#define IMG_PEARL                                      275
-#define IMG_PEARL_BREAKING                             276
-#define IMG_CRYSTAL                                    277
-#define IMG_WALL_PEARL                                 278
-#define IMG_WALL_CRYSTAL                               279
-#define IMG_TUBE_RIGHT_DOWN                            280
-#define IMG_TUBE_HORIZONTAL_DOWN                       281
-#define IMG_TUBE_LEFT_DOWN                             282
-#define IMG_TUBE_HORIZONTAL                            283
-#define IMG_TUBE_VERTICAL_RIGHT                                284
-#define IMG_TUBE_ALL                                   285
-#define IMG_TUBE_VERTICAL_LEFT                         286
-#define IMG_TUBE_VERTICAL                              287
-#define IMG_TUBE_RIGHT_UP                              288
-#define IMG_TUBE_HORIZONTAL_UP                         289
-#define IMG_TUBE_LEFT_UP                               290
-#define IMG_TRAP                                       291
-#define IMG_TRAP_ACTIVE                                        292
-#define IMG_DX_SUPABOMB                                        293
-#define IMG_KEY1                                       294
-#define IMG_KEY2                                       295
-#define IMG_KEY3                                       296
-#define IMG_KEY4                                       297
-#define IMG_GATE1                                      298
-#define IMG_GATE2                                      299
-#define IMG_GATE3                                      300
-#define IMG_GATE4                                      301
-#define IMG_GATE1_GRAY                                 302
-#define IMG_GATE2_GRAY                                 303
-#define IMG_GATE3_GRAY                                 304
-#define IMG_GATE4_GRAY                                 305
-#define IMG_GAMEOFLIFE                                 306
-#define IMG_BIOMAZE                                    307
-#define IMG_PACMAN_RIGHT                               308
-#define IMG_PACMAN_UP                                  309
-#define IMG_PACMAN_LEFT                                        310
-#define IMG_PACMAN_DOWN                                        311
-#define IMG_LAMP                                       312
-#define IMG_LAMP_ACTIVE                                        313
-#define IMG_TIME_ORB_FULL                              314
-#define IMG_TIME_ORB_EMPTY                             315
-#define IMG_EMERALD_YELLOW                             316
-#define IMG_EMERALD_YELLOW_MOVING                      317
-#define IMG_EMERALD_YELLOW_FALLING                     318
-#define IMG_EMERALD_RED                                        319
-#define IMG_EMERALD_RED_MOVING                         320
-#define IMG_EMERALD_RED_FALLING                                321
-#define IMG_EMERALD_PURPLE                             322
-#define IMG_EMERALD_PURPLE_MOVING                      323
-#define IMG_EMERALD_PURPLE_FALLING                     324
-#define IMG_WALL_EMERALD_YELLOW                                325
-#define IMG_WALL_EMERALD_RED                           326
-#define IMG_WALL_EMERALD_PURPLE                                327
-#define IMG_WALL_BD_DIAMOND                            328
-#define IMG_WALL_GROWING                               329
-#define IMG_WALL_GROWING_XY                            330
-#define IMG_WALL_GROWING_X                             331
-#define IMG_WALL_GROWING_Y                             332
-#define IMG_WALL_GROWING_ACTIVE_LEFT                   333
-#define IMG_WALL_GROWING_ACTIVE_RIGHT                  334
-#define IMG_WALL_GROWING_ACTIVE_UP                     335
-#define IMG_WALL_GROWING_ACTIVE_DOWN                   336
-#define IMG_BLACK_ORB                                  337
-#define IMG_SPEED_PILL                                 338
-#define IMG_DARK_YAMYAM                                        339
-#define IMG_DYNABOMB_ACTIVE                            340
-#define IMG_DYNABOMB_PLAYER1_ACTIVE                    341
-#define IMG_DYNABOMB_PLAYER2_ACTIVE                    342
-#define IMG_DYNABOMB_PLAYER3_ACTIVE                    343
-#define IMG_DYNABOMB_PLAYER4_ACTIVE                    344
-#define IMG_DYNABOMB_NR                                        345
-#define IMG_DYNABOMB_SZ                                        346
-#define IMG_DYNABOMB_XL                                        347
-#define IMG_PIG                                                348
-#define IMG_PIG_DOWN                                   349
-#define IMG_PIG_UP                                     350
-#define IMG_PIG_LEFT                                   351
-#define IMG_PIG_RIGHT                                  352
-#define IMG_PIG_MOVING_DOWN                            353
-#define IMG_PIG_MOVING_UP                              354
-#define IMG_PIG_MOVING_LEFT                            355
-#define IMG_PIG_MOVING_RIGHT                           356
-#define IMG_PIG_EATING_DOWN                            357
-#define IMG_PIG_EATING_UP                              358
-#define IMG_PIG_EATING_LEFT                            359
-#define IMG_PIG_EATING_RIGHT                           360
-#define IMG_DRAGON                                     361
-#define IMG_DRAGON_DOWN                                        362
-#define IMG_DRAGON_UP                                  363
-#define IMG_DRAGON_LEFT                                        364
-#define IMG_DRAGON_RIGHT                               365
-#define IMG_DRAGON_MOVING_DOWN                         366
-#define IMG_DRAGON_MOVING_UP                           367
-#define IMG_DRAGON_MOVING_LEFT                         368
-#define IMG_DRAGON_MOVING_RIGHT                                369
-#define IMG_DRAGON_ATTACKING_DOWN                      370
-#define IMG_DRAGON_ATTACKING_UP                                371
-#define IMG_DRAGON_ATTACKING_LEFT                      372
-#define IMG_DRAGON_ATTACKING_RIGHT                     373
-#define IMG_MOLE                                       374
-#define IMG_MOLE_DOWN                                  375
-#define IMG_MOLE_UP                                    376
-#define IMG_MOLE_LEFT                                  377
-#define IMG_MOLE_RIGHT                                 378
-#define IMG_MOLE_MOVING_DOWN                           379
-#define IMG_MOLE_MOVING_UP                             380
-#define IMG_MOLE_MOVING_LEFT                           381
-#define IMG_MOLE_MOVING_RIGHT                          382
-#define IMG_MOLE_DIGGING_DOWN                          383
-#define IMG_MOLE_DIGGING_UP                            384
-#define IMG_MOLE_DIGGING_LEFT                          385
-#define IMG_MOLE_DIGGING_RIGHT                         386
-#define IMG_PENGUIN                                    387
-#define IMG_PENGUIN_DOWN                               388
-#define IMG_PENGUIN_UP                                 389
-#define IMG_PENGUIN_LEFT                               390
-#define IMG_PENGUIN_RIGHT                              391
-#define IMG_PENGUIN_MOVING_DOWN                                392
-#define IMG_PENGUIN_MOVING_UP                          393
-#define IMG_PENGUIN_MOVING_LEFT                                394
-#define IMG_PENGUIN_MOVING_RIGHT                       395
-#define IMG_SATELLITE                                  396
-#define IMG_SATELLITE_MOVING                           397
-#define IMG_FLAMES1_LEFT                               398
-#define IMG_FLAMES2_LEFT                               399
-#define IMG_FLAMES3_LEFT                               400
-#define IMG_FLAMES1_RIGHT                              401
-#define IMG_FLAMES2_RIGHT                              402
-#define IMG_FLAMES3_RIGHT                              403
-#define IMG_FLAMES1_UP                                 404
-#define IMG_FLAMES2_UP                                 405
-#define IMG_FLAMES3_UP                                 406
-#define IMG_FLAMES1_DOWN                               407
-#define IMG_FLAMES2_DOWN                               408
-#define IMG_FLAMES3_DOWN                               409
-#define IMG_STONEBLOCK                                 410
-#define IMG_PLAYER1                                    411
-#define IMG_PLAYER1_DOWN                               412
-#define IMG_PLAYER1_UP                                 413
-#define IMG_PLAYER1_LEFT                               414
-#define IMG_PLAYER1_RIGHT                              415
-#define IMG_PLAYER1_MOVING_DOWN                                416
-#define IMG_PLAYER1_MOVING_UP                          417
-#define IMG_PLAYER1_MOVING_LEFT                                418
-#define IMG_PLAYER1_MOVING_RIGHT                       419
-#define IMG_PLAYER1_DIGGING_DOWN                       420
-#define IMG_PLAYER1_DIGGING_UP                         421
-#define IMG_PLAYER1_DIGGING_LEFT                       422
-#define IMG_PLAYER1_DIGGING_RIGHT                      423
-#define IMG_PLAYER1_PUSHING_DOWN                       424
-#define IMG_PLAYER1_PUSHING_UP                         425
-#define IMG_PLAYER1_PUSHING_LEFT                       426
-#define IMG_PLAYER1_PUSHING_RIGHT                      427
-#define IMG_PLAYER1_SNAPPING_DOWN                      428
-#define IMG_PLAYER1_SNAPPING_UP                                429
-#define IMG_PLAYER1_SNAPPING_LEFT                      430
-#define IMG_PLAYER1_SNAPPING_RIGHT                     431
-#define IMG_PLAYER2                                    432
-#define IMG_PLAYER2_DOWN                               433
-#define IMG_PLAYER2_UP                                 434
-#define IMG_PLAYER2_LEFT                               435
-#define IMG_PLAYER2_RIGHT                              436
-#define IMG_PLAYER2_MOVING_DOWN                                437
-#define IMG_PLAYER2_MOVING_UP                          438
-#define IMG_PLAYER2_MOVING_LEFT                                439
-#define IMG_PLAYER2_MOVING_RIGHT                       440
-#define IMG_PLAYER2_DIGGING_DOWN                       441
-#define IMG_PLAYER2_DIGGING_UP                         442
-#define IMG_PLAYER2_DIGGING_LEFT                       443
-#define IMG_PLAYER2_DIGGING_RIGHT                      444
-#define IMG_PLAYER2_PUSHING_DOWN                       445
-#define IMG_PLAYER2_PUSHING_UP                         446
-#define IMG_PLAYER2_PUSHING_LEFT                       447
-#define IMG_PLAYER2_PUSHING_RIGHT                      448
-#define IMG_PLAYER2_SNAPPING_DOWN                      449
-#define IMG_PLAYER2_SNAPPING_UP                                450
-#define IMG_PLAYER2_SNAPPING_LEFT                      451
-#define IMG_PLAYER2_SNAPPING_RIGHT                     452
-#define IMG_PLAYER3                                    453
-#define IMG_PLAYER3_DOWN                               454
-#define IMG_PLAYER3_UP                                 455
-#define IMG_PLAYER3_LEFT                               456
-#define IMG_PLAYER3_RIGHT                              457
-#define IMG_PLAYER3_MOVING_DOWN                                458
-#define IMG_PLAYER3_MOVING_UP                          459
-#define IMG_PLAYER3_MOVING_LEFT                                460
-#define IMG_PLAYER3_MOVING_RIGHT                       461
-#define IMG_PLAYER3_DIGGING_DOWN                       462
-#define IMG_PLAYER3_DIGGING_UP                         463
-#define IMG_PLAYER3_DIGGING_LEFT                       464
-#define IMG_PLAYER3_DIGGING_RIGHT                      465
-#define IMG_PLAYER3_PUSHING_DOWN                       466
-#define IMG_PLAYER3_PUSHING_UP                         467
-#define IMG_PLAYER3_PUSHING_LEFT                       468
-#define IMG_PLAYER3_PUSHING_RIGHT                      469
-#define IMG_PLAYER3_SNAPPING_DOWN                      470
-#define IMG_PLAYER3_SNAPPING_UP                                471
-#define IMG_PLAYER3_SNAPPING_LEFT                      472
-#define IMG_PLAYER3_SNAPPING_RIGHT                     473
-#define IMG_PLAYER4                                    474
-#define IMG_PLAYER4_DOWN                               475
-#define IMG_PLAYER4_UP                                 476
-#define IMG_PLAYER4_LEFT                               477
-#define IMG_PLAYER4_RIGHT                              478
-#define IMG_PLAYER4_MOVING_DOWN                                479
-#define IMG_PLAYER4_MOVING_UP                          480
-#define IMG_PLAYER4_MOVING_LEFT                                481
-#define IMG_PLAYER4_MOVING_RIGHT                       482
-#define IMG_PLAYER4_DIGGING_DOWN                       483
-#define IMG_PLAYER4_DIGGING_UP                         484
-#define IMG_PLAYER4_DIGGING_LEFT                       485
-#define IMG_PLAYER4_DIGGING_RIGHT                      486
-#define IMG_PLAYER4_PUSHING_DOWN                       487
-#define IMG_PLAYER4_PUSHING_UP                         488
-#define IMG_PLAYER4_PUSHING_LEFT                       489
-#define IMG_PLAYER4_PUSHING_RIGHT                      490
-#define IMG_PLAYER4_SNAPPING_DOWN                      491
-#define IMG_PLAYER4_SNAPPING_UP                                492
-#define IMG_PLAYER4_SNAPPING_LEFT                      493
-#define IMG_PLAYER4_SNAPPING_RIGHT                     494
-#define IMG_EXPLOSION                                  495
-#define IMG_TWINKLE_BLUE                               496
-#define IMG_TWINKLE_WHITE                              497
-#define IMG_STEELWALL_TOPLEFT                          498
-#define IMG_STEELWALL_TOPRIGHT                         499
-#define IMG_STEELWALL_BOTTOMLEFT                       500
-#define IMG_STEELWALL_BOTTOMRIGHT                      501
-#define IMG_STEELWALL_HORIZONTAL                       502
-#define IMG_STEELWALL_VERTICAL                         503
-#define IMG_STEELWALL_TOPLEFT_EDITOR                   504
-#define IMG_STEELWALL_TOPRIGHT_EDITOR                  505
-#define IMG_STEELWALL_BOTTOMLEFT_EDITOR                        506
-#define IMG_STEELWALL_BOTTOMRIGHT_EDITOR               507
-#define IMG_STEELWALL_HORIZONTAL_EDITOR                        508
-#define IMG_STEELWALL_VERTICAL_EDITOR                  509
-#define IMG_INVISIBLE_STEELWALL_TOPLEFT                        510
-#define IMG_INVISIBLE_STEELWALL_TOPRIGHT               511
-#define IMG_INVISIBLE_STEELWALL_BOTTOMLEFT             512
-#define IMG_INVISIBLE_STEELWALL_BOTTOMRIGHT            513
-#define IMG_INVISIBLE_STEELWALL_HORIZONTAL             514
-#define IMG_INVISIBLE_STEELWALL_VERTICAL               515
-#define IMG_INVISIBLE_STEELWALL_TOPLEFT_EDITOR         516
-#define IMG_INVISIBLE_STEELWALL_TOPRIGHT_EDITOR                517
-#define IMG_INVISIBLE_STEELWALL_BOTTOMLEFT_EDITOR      518
-#define IMG_INVISIBLE_STEELWALL_BOTTOMRIGHT_EDITOR     519
-#define IMG_INVISIBLE_STEELWALL_HORIZONTAL_EDITOR      520
-#define IMG_INVISIBLE_STEELWALL_VERTICAL_EDITOR                521
-#define IMG_ARROW_BLUE_LEFT                            522
-#define IMG_ARROW_BLUE_RIGHT                           523
-#define IMG_ARROW_BLUE_UP                              524
-#define IMG_ARROW_BLUE_DOWN                            525
-#define IMG_ARROW_RED_LEFT                             526
-#define IMG_ARROW_RED_RIGHT                            527
-#define IMG_ARROW_RED_UP                               528
-#define IMG_ARROW_RED_DOWN                             529
-#define IMG_BALL_RED                                   530
-#define IMG_BALL_BLUE                                  531
-#define IMG_BALL_YELLOW                                        532
-#define IMG_BALL_GRAY                                  533
-#define IMG_SCROLLBAR_BLUE                             534
-#define IMG_SCROLLBAR_RED                              535
-#define IMG_SCROLLBAR_GREEN                            536
-#define IMG_SCROLLBAR_YELLOW                           537
-#define IMG_CHAR_SPACE                                 538
-#define IMG_CHAR_EXCLAM                                        539
-#define IMG_CHAR_QUOTEDBL                              540
-#define IMG_CHAR_NUMBERSIGN                            541
-#define IMG_CHAR_DOLLAR                                        542
-#define IMG_CHAR_PROCENT                               543
-#define IMG_CHAR_AMPERSAND                             544
-#define IMG_CHAR_APOSTROPHE                            545
-#define IMG_CHAR_PARENLEFT                             546
-#define IMG_CHAR_PARENRIGHT                            547
-#define IMG_CHAR_ASTERISK                              548
-#define IMG_CHAR_PLUS                                  549
-#define IMG_CHAR_COMMA                                 550
-#define IMG_CHAR_MINUS                                 551
-#define IMG_CHAR_PERIOD                                        552
-#define IMG_CHAR_SLASH                                 553
-#define IMG_CHAR_0                                     554
-#define IMG_CHAR_1                                     555
-#define IMG_CHAR_2                                     556
-#define IMG_CHAR_3                                     557
-#define IMG_CHAR_4                                     558
-#define IMG_CHAR_5                                     559
-#define IMG_CHAR_6                                     560
-#define IMG_CHAR_7                                     561
-#define IMG_CHAR_8                                     562
-#define IMG_CHAR_9                                     563
-#define IMG_CHAR_COLON                                 564
-#define IMG_CHAR_SEMICOLON                             565
-#define IMG_CHAR_LESS                                  566
-#define IMG_CHAR_EQUAL                                 567
-#define IMG_CHAR_GREATER                               568
-#define IMG_CHAR_QUESTION                              569
-#define IMG_CHAR_AT                                    570
-#define IMG_CHAR_A                                     571
-#define IMG_CHAR_B                                     572
-#define IMG_CHAR_C                                     573
-#define IMG_CHAR_D                                     574
-#define IMG_CHAR_E                                     575
-#define IMG_CHAR_F                                     576
-#define IMG_CHAR_G                                     577
-#define IMG_CHAR_H                                     578
-#define IMG_CHAR_I                                     579
-#define IMG_CHAR_J                                     580
-#define IMG_CHAR_K                                     581
-#define IMG_CHAR_L                                     582
-#define IMG_CHAR_M                                     583
-#define IMG_CHAR_N                                     584
-#define IMG_CHAR_O                                     585
-#define IMG_CHAR_P                                     586
-#define IMG_CHAR_Q                                     587
-#define IMG_CHAR_R                                     588
-#define IMG_CHAR_S                                     589
-#define IMG_CHAR_T                                     590
-#define IMG_CHAR_U                                     591
-#define IMG_CHAR_V                                     592
-#define IMG_CHAR_W                                     593
-#define IMG_CHAR_X                                     594
-#define IMG_CHAR_Y                                     595
-#define IMG_CHAR_Z                                     596
-#define IMG_CHAR_AE                                    597
-#define IMG_CHAR_OE                                    598
-#define IMG_CHAR_UE                                    599
-#define IMG_CHAR_COPYRIGHT                             600
-#define IMG_CHAR_UNDERSCORE                            601
-#define IMG_CHAR_EMPTY                                 602
-#define IMG_CHAR_DEGREE                                        603
-#define IMG_CHAR_TM                                    604
-#define IMG_CHAR_CURSOR                                        605
-#define IMG_CUSTOM_1                                   606
-#define IMG_CUSTOM_2                                   607
-#define IMG_CUSTOM_3                                   608
-#define IMG_CUSTOM_4                                   609
-#define IMG_CUSTOM_5                                   610
-#define IMG_CUSTOM_6                                   611
-#define IMG_CUSTOM_7                                   612
-#define IMG_CUSTOM_8                                   613
-#define IMG_CUSTOM_9                                   614
-#define IMG_CUSTOM_10                                  615
-#define IMG_CUSTOM_11                                  616
-#define IMG_CUSTOM_12                                  617
-#define IMG_CUSTOM_13                                  618
-#define IMG_CUSTOM_14                                  619
-#define IMG_CUSTOM_15                                  620
-#define IMG_CUSTOM_16                                  621
-#define IMG_CUSTOM_17                                  622
-#define IMG_CUSTOM_18                                  623
-#define IMG_CUSTOM_19                                  624
-#define IMG_CUSTOM_20                                  625
-#define IMG_CUSTOM_21                                  626
-#define IMG_CUSTOM_22                                  627
-#define IMG_CUSTOM_23                                  628
-#define IMG_CUSTOM_24                                  629
-#define IMG_CUSTOM_25                                  630
-#define IMG_CUSTOM_26                                  631
-#define IMG_CUSTOM_27                                  632
-#define IMG_CUSTOM_28                                  633
-#define IMG_CUSTOM_29                                  634
-#define IMG_CUSTOM_30                                  635
-#define IMG_CUSTOM_31                                  636
-#define IMG_CUSTOM_32                                  637
-#define IMG_CUSTOM_33                                  638
-#define IMG_CUSTOM_34                                  639
-#define IMG_CUSTOM_35                                  640
-#define IMG_CUSTOM_36                                  641
-#define IMG_CUSTOM_37                                  642
-#define IMG_CUSTOM_38                                  643
-#define IMG_CUSTOM_39                                  644
-#define IMG_CUSTOM_40                                  645
-#define IMG_CUSTOM_41                                  646
-#define IMG_CUSTOM_42                                  647
-#define IMG_CUSTOM_43                                  648
-#define IMG_CUSTOM_44                                  649
-#define IMG_CUSTOM_45                                  650
-#define IMG_CUSTOM_46                                  651
-#define IMG_CUSTOM_47                                  652
-#define IMG_CUSTOM_48                                  653
-#define IMG_CUSTOM_49                                  654
-#define IMG_CUSTOM_50                                  655
-#define IMG_CUSTOM_51                                  656
-#define IMG_CUSTOM_52                                  657
-#define IMG_CUSTOM_53                                  658
-#define IMG_CUSTOM_54                                  659
-#define IMG_CUSTOM_55                                  660
-#define IMG_CUSTOM_56                                  661
-#define IMG_CUSTOM_57                                  662
-#define IMG_CUSTOM_58                                  663
-#define IMG_CUSTOM_59                                  664
-#define IMG_CUSTOM_60                                  665
-#define IMG_CUSTOM_61                                  666
-#define IMG_CUSTOM_62                                  667
-#define IMG_CUSTOM_63                                  668
-#define IMG_CUSTOM_64                                  669
-#define IMG_CUSTOM_65                                  670
-#define IMG_CUSTOM_66                                  671
-#define IMG_CUSTOM_67                                  672
-#define IMG_CUSTOM_68                                  673
-#define IMG_CUSTOM_69                                  674
-#define IMG_CUSTOM_70                                  675
-#define IMG_CUSTOM_71                                  676
-#define IMG_CUSTOM_72                                  677
-#define IMG_CUSTOM_73                                  678
-#define IMG_CUSTOM_74                                  679
-#define IMG_CUSTOM_75                                  680
-#define IMG_CUSTOM_76                                  681
-#define IMG_CUSTOM_77                                  682
-#define IMG_CUSTOM_78                                  683
-#define IMG_CUSTOM_79                                  684
-#define IMG_CUSTOM_80                                  685
-#define IMG_CUSTOM_81                                  686
-#define IMG_CUSTOM_82                                  687
-#define IMG_CUSTOM_83                                  688
-#define IMG_CUSTOM_84                                  689
-#define IMG_CUSTOM_85                                  690
-#define IMG_CUSTOM_86                                  691
-#define IMG_CUSTOM_87                                  692
-#define IMG_CUSTOM_88                                  693
-#define IMG_CUSTOM_89                                  694
-#define IMG_CUSTOM_90                                  695
-#define IMG_CUSTOM_91                                  696
-#define IMG_CUSTOM_92                                  697
-#define IMG_CUSTOM_93                                  698
-#define IMG_CUSTOM_94                                  699
-#define IMG_CUSTOM_95                                  700
-#define IMG_CUSTOM_96                                  701
-#define IMG_CUSTOM_97                                  702
-#define IMG_CUSTOM_98                                  703
-#define IMG_CUSTOM_99                                  704
-#define IMG_CUSTOM_100                                 705
-#define IMG_CUSTOM_101                                 706
-#define IMG_CUSTOM_102                                 707
-#define IMG_CUSTOM_103                                 708
-#define IMG_CUSTOM_104                                 709
-#define IMG_CUSTOM_105                                 710
-#define IMG_CUSTOM_106                                 711
-#define IMG_CUSTOM_107                                 712
-#define IMG_CUSTOM_108                                 713
-#define IMG_CUSTOM_109                                 714
-#define IMG_CUSTOM_110                                 715
-#define IMG_CUSTOM_111                                 716
-#define IMG_CUSTOM_112                                 717
-#define IMG_CUSTOM_113                                 718
-#define IMG_CUSTOM_114                                 719
-#define IMG_CUSTOM_115                                 720
-#define IMG_CUSTOM_116                                 721
-#define IMG_CUSTOM_117                                 722
-#define IMG_CUSTOM_118                                 723
-#define IMG_CUSTOM_119                                 724
-#define IMG_CUSTOM_120                                 725
-#define IMG_CUSTOM_121                                 726
-#define IMG_CUSTOM_122                                 727
-#define IMG_CUSTOM_123                                 728
-#define IMG_CUSTOM_124                                 729
-#define IMG_CUSTOM_125                                 730
-#define IMG_CUSTOM_126                                 731
-#define IMG_CUSTOM_127                                 732
-#define IMG_CUSTOM_128                                 733
-#define IMG_GLOBAL_BORDER                              734
-#define IMG_GLOBAL_DOOR                                        735
-#define IMG_GLOBAL_TOONS                               736
-#define IMG_FONT_BIG                                   737
-#define IMG_FONT_MEDIUM                                        738
-#define IMG_FONT_SMALL                                 739
-#define IMG_FONT_EM                                    740
-#define IMG_BACKGROUND_DEFAULT                         741
-#define IMG_BACKGROUND_DOOR                            742
-#define IMG_BACKGROUND_MAIN                            743
-#define IMG_BACKGROUND_LEVEL_SERIES                    744
-#define IMG_BACKGROUND_HALL_OF_FAME                    745
-#define IMG_BACKGROUND_EDITOR_SETTINGS_LEVEL           746
-#define IMG_BACKGROUND_EDITOR_SETTINGS_ELEMENT         747
-#define IMG_BACKGROUND_INFO                            748
-#define IMG_BACKGROUND_SETUP                           749
-#define IMG_INFO_FONT_EM_1                             750
-#define IMG_INFO_FONT_EM_2                             751
-#define IMG_INFO_FONT_EM_3                             752
-#define IMG_INFO_FONT_EM_4                             753
-#define IMG_INFO_FONT_EM_5                             754
+#define IMG_BD_WALL_EDITOR                             1
+#define IMG_BD_ROCK                                    2
+#define IMG_BD_ROCK_EDITOR                             3
+#define IMG_BD_ROCK_FALLING                            4
+#define IMG_BD_ROCK_MOVING_LEFT                                5
+#define IMG_BD_ROCK_MOVING_RIGHT                       6
+#define IMG_BD_DIAMOND                                 7
+#define IMG_BD_DIAMOND_MOVING                          8
+#define IMG_BD_DIAMOND_FALLING                         9
+#define IMG_BD_MAGIC_WALL                              10
+#define IMG_BD_MAGIC_WALL_ACTIVE                       11
+#define IMG_BD_MAGIC_WALL_FILLING                      12
+#define IMG_BD_MAGIC_WALL_FULL                         13
+#define IMG_BD_MAGIC_WALL_EMPTYING                     14
+#define IMG_BD_MAGIC_WALL_DEAD                         15
+#define IMG_BD_AMOEBA                                  16
+#define IMG_BD_AMOEBA_EDITOR                           17
+#define IMG_BD_BUTTERFLY                               18
+#define IMG_BD_BUTTERFLY_RIGHT                         19
+#define IMG_BD_BUTTERFLY_UP                            20
+#define IMG_BD_BUTTERFLY_LEFT                          21
+#define IMG_BD_BUTTERFLY_DOWN                          22
+#define IMG_BD_BUTTERFLY_MOVING                                23
+#define IMG_BD_FIREFLY                                 24
+#define IMG_BD_FIREFLY_RIGHT                           25
+#define IMG_BD_FIREFLY_UP                              26
+#define IMG_BD_FIREFLY_LEFT                            27
+#define IMG_BD_FIREFLY_DOWN                            28
+#define IMG_BD_FIREFLY_MOVING                          29
+#define IMG_SP_EMPTY_SPACE                             30
+#define IMG_SP_ZONK                                    31
+#define IMG_SP_ZONK_FALLING                            32
+#define IMG_SP_ZONK_MOVING_LEFT                                33
+#define IMG_SP_ZONK_MOVING_RIGHT                       34
+#define IMG_SP_BASE                                    35
+#define IMG_SP_MURPHY                                  36
+#define IMG_SP_MURPHY_LEFT                             37
+#define IMG_SP_MURPHY_RIGHT                            38
+#define IMG_SP_MURPHY_UP                               39
+#define IMG_SP_MURPHY_DOWN                             40
+#define IMG_SP_MURPHY_MOVING_LEFT                      41
+#define IMG_SP_MURPHY_MOVING_RIGHT                     42
+#define IMG_SP_MURPHY_DIGGING_LEFT                     43
+#define IMG_SP_MURPHY_DIGGING_RIGHT                    44
+#define IMG_SP_MURPHY_PUSHING_LEFT                     45
+#define IMG_SP_MURPHY_PUSHING_RIGHT                    46
+#define IMG_SP_MURPHY_SNAPPING_LEFT                    47
+#define IMG_SP_MURPHY_SNAPPING_RIGHT                   48
+#define IMG_SP_MURPHY_SNAPPING_UP                      49
+#define IMG_SP_MURPHY_SNAPPING_DOWN                    50
+#define IMG_SP_MURPHY_CLONE                            51
+#define IMG_SP_INFOTRON                                        52
+#define IMG_SP_INFOTRON_EDITOR                         53
+#define IMG_SP_INFOTRON_FALLING                                54
+#define IMG_SP_CHIP_SINGLE                             55
+#define IMG_SP_CHIP_LEFT                               56
+#define IMG_SP_CHIP_RIGHT                              57
+#define IMG_SP_CHIP_UPPER                              58
+#define IMG_SP_CHIP_LOWER                              59
+#define IMG_SP_HARD_GRAY                               60
+#define IMG_SP_HARD_GREEN                              61
+#define IMG_SP_HARD_BLUE                               62
+#define IMG_SP_HARD_RED                                        63
+#define IMG_SP_HARD_YELLOW                             64
+#define IMG_SP_EXIT_CLOSED                             65
+#define IMG_SP_EXIT_OPEN                               66
+#define IMG_SP_DISK_ORANGE                             67
+#define IMG_SP_DISK_ORANGE_FALLING                     68
+#define IMG_SP_DISK_ORANGE_PUSHING                     69
+#define IMG_SP_DISK_YELLOW                             70
+#define IMG_SP_DISK_YELLOW_PUSHING                     71
+#define IMG_SP_DISK_RED                                        72
+#define IMG_SP_DISK_RED_COLLECTING                     73
+#define IMG_SP_PORT1_RIGHT                             74
+#define IMG_SP_PORT1_DOWN                              75
+#define IMG_SP_PORT1_LEFT                              76
+#define IMG_SP_PORT1_UP                                        77
+#define IMG_SP_PORT2_RIGHT                             78
+#define IMG_SP_PORT2_DOWN                              79
+#define IMG_SP_PORT2_LEFT                              80
+#define IMG_SP_PORT2_UP                                        81
+#define IMG_SP_PORT_X                                  82
+#define IMG_SP_PORT_Y                                  83
+#define IMG_SP_PORT_XY                                 84
+#define IMG_SP_SNIKSNAK                                        85
+#define IMG_SP_SNIKSNAK_LEFT                           86
+#define IMG_SP_SNIKSNAK_RIGHT                          87
+#define IMG_SP_SNIKSNAK_UP                             88
+#define IMG_SP_SNIKSNAK_DOWN                           89
+#define IMG_SP_ELECTRON                                        90
+#define IMG_SP_ELECTRON_EDITOR                         91
+#define IMG_SP_TERMINAL                                        92
+#define IMG_SP_TERMINAL_EDITOR                         93
+#define IMG_SP_TERMINAL_ACTIVE                         94
+#define IMG_SP_BUGGY_BASE                              95
+#define IMG_SP_BUGGY_BASE_ACTIVATING                   96
+#define IMG_SP_BUGGY_BASE_ACTIVE                       97
+#define IMG_SP_HARD_BASE1                              98
+#define IMG_SP_HARD_BASE2                              99
+#define IMG_SP_HARD_BASE3                              100
+#define IMG_SP_HARD_BASE4                              101
+#define IMG_SP_HARD_BASE5                              102
+#define IMG_SP_HARD_BASE6                              103
+#define IMG_SP_EXPLOSION                               104
+#define IMG_SP_EXPLOSION_INFOTRON                      105
+#define IMG_SOKOBAN_OBJECT                             106
+#define IMG_SOKOBAN_OBJECT_EDITOR                      107
+#define IMG_SOKOBAN_FIELD_EMPTY                                108
+#define IMG_SOKOBAN_FIELD_FULL                         109
+#define IMG_EMPTY_SPACE                                        110
+#define IMG_SAND                                       111
+#define IMG_SAND_CRUMBLED                              112
+#define IMG_WALL                                       113
+#define IMG_WALL_CRUMBLED                              114
+#define IMG_STEELWALL                                  115
+#define IMG_ROCK                                       116
+#define IMG_ROCK_FALLING                               117
+#define IMG_ROCK_MOVING_LEFT                           118
+#define IMG_ROCK_MOVING_RIGHT                          119
+#define IMG_EMERALD                                    120
+#define IMG_EMERALD_MOVING                             121
+#define IMG_EMERALD_FALLING                            122
+#define IMG_DIAMOND                                    123
+#define IMG_DIAMOND_MOVING                             124
+#define IMG_DIAMOND_FALLING                            125
+#define IMG_BOMB                                       126
+#define IMG_NUT                                                127
+#define IMG_NUT_FALLING                                        128
+#define IMG_NUT_MOVING_LEFT                            129
+#define IMG_NUT_MOVING_RIGHT                           130
+#define IMG_NUT_CRACKING                               131
+#define IMG_DYNAMITE                                   132
+#define IMG_DYNAMITE_EDITOR                            133
+#define IMG_DYNAMITE_ACTIVE                            134
+#define IMG_DYNAMITE_ACTIVE_EDITOR                     135
+#define IMG_WALL_EMERALD                               136
+#define IMG_WALL_DIAMOND                               137
+#define IMG_BUG_RIGHT                                  138
+#define IMG_BUG_UP                                     139
+#define IMG_BUG_LEFT                                   140
+#define IMG_BUG_DOWN                                   141
+#define IMG_SPACESHIP_RIGHT                            142
+#define IMG_SPACESHIP_UP                               143
+#define IMG_SPACESHIP_LEFT                             144
+#define IMG_SPACESHIP_DOWN                             145
+#define IMG_YAMYAM                                     146
+#define IMG_YAMYAM_MOVING                              147
+#define IMG_ROBOT                                      148
+#define IMG_ROBOT_MOVING                               149
+#define IMG_ROBOT_WHEEL                                        150
+#define IMG_ROBOT_WHEEL_ACTIVE                         151
+#define IMG_MAGIC_WALL                                 152
+#define IMG_MAGIC_WALL_ACTIVE                          153
+#define IMG_MAGIC_WALL_FILLING                         154
+#define IMG_MAGIC_WALL_FULL                            155
+#define IMG_MAGIC_WALL_EMPTYING                                156
+#define IMG_MAGIC_WALL_DEAD                            157
+#define IMG_QUICKSAND_EMPTY                            158
+#define IMG_QUICKSAND_FILLING                          159
+#define IMG_QUICKSAND_FULL                             160
+#define IMG_QUICKSAND_FULL_EDITOR                      161
+#define IMG_QUICKSAND_EMPTYING                         162
+#define IMG_ACIDPOOL_TOPLEFT                           163
+#define IMG_ACIDPOOL_TOPRIGHT                          164
+#define IMG_ACIDPOOL_BOTTOMLEFT                                165
+#define IMG_ACIDPOOL_BOTTOM                            166
+#define IMG_ACIDPOOL_BOTTOMRIGHT                       167
+#define IMG_ACID                                       168
+#define IMG_ACID_SPLASH_LEFT                           169
+#define IMG_ACID_SPLASH_RIGHT                          170
+#define IMG_AMOEBA_DROP                                        171
+#define IMG_AMOEBA_CREATING                            172
+#define IMG_AMOEBA_SHRINKING                           173
+#define IMG_AMOEBA_WET                                 174
+#define IMG_AMOEBA_WET_EDITOR                          175
+#define IMG_AMOEBA_DRIPPING                            176
+#define IMG_AMOEBA_DRY                                 177
+#define IMG_AMOEBA_FULL                                        178
+#define IMG_AMOEBA_FULL_EDITOR                         179
+#define IMG_AMOEBA_DEAD                                        180
+#define IMG_AMOEBA_DEAD_EDITOR                         181
+#define IMG_EM_KEY1                                    182
+#define IMG_EM_KEY2                                    183
+#define IMG_EM_KEY3                                    184
+#define IMG_EM_KEY4                                    185
+#define IMG_EM_GATE1                                   186
+#define IMG_EM_GATE2                                   187
+#define IMG_EM_GATE3                                   188
+#define IMG_EM_GATE4                                   189
+#define IMG_EM_GATE1_GRAY                              190
+#define IMG_EM_GATE1_GRAY_EDITOR                       191
+#define IMG_EM_GATE2_GRAY                              192
+#define IMG_EM_GATE2_GRAY_EDITOR                       193
+#define IMG_EM_GATE3_GRAY                              194
+#define IMG_EM_GATE3_GRAY_EDITOR                       195
+#define IMG_EM_GATE4_GRAY                              196
+#define IMG_EM_GATE4_GRAY_EDITOR                       197
+#define IMG_EXIT_CLOSED                                        198
+#define IMG_EXIT_OPENING                               199
+#define IMG_EXIT_OPEN                                  200
+#define IMG_BALLOON                                    201
+#define IMG_BALLOON_MOVING                             202
+#define IMG_BALLOON_SEND_LEFT                          203
+#define IMG_BALLOON_SEND_RIGHT                         204
+#define IMG_BALLOON_SEND_UP                            205
+#define IMG_BALLOON_SEND_DOWN                          206
+#define IMG_BALLOON_SEND_ANY_DIRECTION                 207
+#define IMG_SPRING                                     208
+#define IMG_SPRING_MOVING                              209
+#define IMG_EMC_STEELWALL1                             210
+#define IMG_EMC_STEELWALL2                             211
+#define IMG_EMC_STEELWALL3                             212
+#define IMG_EMC_STEELWALL4                             213
+#define IMG_EMC_WALL_PILLAR_UPPER                      214
+#define IMG_EMC_WALL_PILLAR_MIDDLE                     215
+#define IMG_EMC_WALL_PILLAR_LOWER                      216
+#define IMG_EMC_WALL4                                  217
+#define IMG_EMC_WALL5                                  218
+#define IMG_EMC_WALL6                                  219
+#define IMG_EMC_WALL7                                  220
+#define IMG_EMC_WALL8                                  221
+#define IMG_INVISIBLE_STEELWALL                                222
+#define IMG_INVISIBLE_STEELWALL_EDITOR                 223
+#define IMG_INVISIBLE_STEELWALL_ACTIVE                 224
+#define IMG_INVISIBLE_WALL                             225
+#define IMG_INVISIBLE_WALL_EDITOR                      226
+#define IMG_INVISIBLE_WALL_ACTIVE                      227
+#define IMG_INVISIBLE_SAND                             228
+#define IMG_INVISIBLE_SAND_EDITOR                      229
+#define IMG_INVISIBLE_SAND_ACTIVE                      230
+#define IMG_CONVEYOR_BELT1_MIDDLE                      231
+#define IMG_CONVEYOR_BELT1_MIDDLE_ACTIVE               232
+#define IMG_CONVEYOR_BELT1_LEFT                                233
+#define IMG_CONVEYOR_BELT1_LEFT_ACTIVE                 234
+#define IMG_CONVEYOR_BELT1_RIGHT                       235
+#define IMG_CONVEYOR_BELT1_RIGHT_ACTIVE                        236
+#define IMG_CONVEYOR_BELT1_SWITCH_LEFT                 237
+#define IMG_CONVEYOR_BELT1_SWITCH_MIDDLE               238
+#define IMG_CONVEYOR_BELT1_SWITCH_RIGHT                        239
+#define IMG_CONVEYOR_BELT2_MIDDLE                      240
+#define IMG_CONVEYOR_BELT2_MIDDLE_ACTIVE               241
+#define IMG_CONVEYOR_BELT2_LEFT                                242
+#define IMG_CONVEYOR_BELT2_LEFT_ACTIVE                 243
+#define IMG_CONVEYOR_BELT2_RIGHT                       244
+#define IMG_CONVEYOR_BELT2_RIGHT_ACTIVE                        245
+#define IMG_CONVEYOR_BELT2_SWITCH_LEFT                 246
+#define IMG_CONVEYOR_BELT2_SWITCH_MIDDLE               247
+#define IMG_CONVEYOR_BELT2_SWITCH_RIGHT                        248
+#define IMG_CONVEYOR_BELT3_MIDDLE                      249
+#define IMG_CONVEYOR_BELT3_MIDDLE_ACTIVE               250
+#define IMG_CONVEYOR_BELT3_LEFT                                251
+#define IMG_CONVEYOR_BELT3_LEFT_ACTIVE                 252
+#define IMG_CONVEYOR_BELT3_RIGHT                       253
+#define IMG_CONVEYOR_BELT3_RIGHT_ACTIVE                        254
+#define IMG_CONVEYOR_BELT3_SWITCH_LEFT                 255
+#define IMG_CONVEYOR_BELT3_SWITCH_MIDDLE               256
+#define IMG_CONVEYOR_BELT3_SWITCH_RIGHT                        257
+#define IMG_CONVEYOR_BELT4_MIDDLE                      258
+#define IMG_CONVEYOR_BELT4_MIDDLE_ACTIVE               259
+#define IMG_CONVEYOR_BELT4_LEFT                                260
+#define IMG_CONVEYOR_BELT4_LEFT_ACTIVE                 261
+#define IMG_CONVEYOR_BELT4_RIGHT                       262
+#define IMG_CONVEYOR_BELT4_RIGHT_ACTIVE                        263
+#define IMG_CONVEYOR_BELT4_SWITCH_LEFT                 264
+#define IMG_CONVEYOR_BELT4_SWITCH_MIDDLE               265
+#define IMG_CONVEYOR_BELT4_SWITCH_RIGHT                        266
+#define IMG_SWITCHGATE_SWITCH_UP                       267
+#define IMG_SWITCHGATE_SWITCH_DOWN                     268
+#define IMG_LIGHT_SWITCH                               269
+#define IMG_LIGHT_SWITCH_ACTIVE                                270
+#define IMG_TIMEGATE_SWITCH                            271
+#define IMG_TIMEGATE_SWITCH_ACTIVE                     272
+#define IMG_ENVELOPE                                   273
+#define IMG_SIGN_EXCLAMATION                           274
+#define IMG_SIGN_STOP                                  275
+#define IMG_LANDMINE                                   276
+#define IMG_STEELWALL_SLANTED                          277
+#define IMG_EXTRA_TIME                                 278
+#define IMG_SHIELD_NORMAL                              279
+#define IMG_SHIELD_NORMAL_ACTIVE                       280
+#define IMG_SHIELD_DEADLY                              281
+#define IMG_SHIELD_DEADLY_ACTIVE                       282
+#define IMG_SWITCHGATE_CLOSED                          283
+#define IMG_SWITCHGATE_OPENING                         284
+#define IMG_SWITCHGATE_OPEN                            285
+#define IMG_SWITCHGATE_CLOSING                         286
+#define IMG_TIMEGATE_CLOSED                            287
+#define IMG_TIMEGATE_OPENING                           288
+#define IMG_TIMEGATE_OPEN                              289
+#define IMG_TIMEGATE_CLOSING                           290
+#define IMG_PEARL                                      291
+#define IMG_PEARL_BREAKING                             292
+#define IMG_CRYSTAL                                    293
+#define IMG_WALL_PEARL                                 294
+#define IMG_WALL_CRYSTAL                               295
+#define IMG_TUBE_RIGHT_DOWN                            296
+#define IMG_TUBE_HORIZONTAL_DOWN                       297
+#define IMG_TUBE_LEFT_DOWN                             298
+#define IMG_TUBE_HORIZONTAL                            299
+#define IMG_TUBE_VERTICAL_RIGHT                                300
+#define IMG_TUBE_ALL                                   301
+#define IMG_TUBE_VERTICAL_LEFT                         302
+#define IMG_TUBE_VERTICAL                              303
+#define IMG_TUBE_RIGHT_UP                              304
+#define IMG_TUBE_HORIZONTAL_UP                         305
+#define IMG_TUBE_LEFT_UP                               306
+#define IMG_TRAP                                       307
+#define IMG_TRAP_ACTIVE                                        308
+#define IMG_DX_SUPABOMB                                        309
+#define IMG_KEY1                                       310
+#define IMG_KEY1_EDITOR                                        311
+#define IMG_KEY2                                       312
+#define IMG_KEY2_EDITOR                                        313
+#define IMG_KEY3                                       314
+#define IMG_KEY3_EDITOR                                        315
+#define IMG_KEY4                                       316
+#define IMG_KEY4_EDITOR                                        317
+#define IMG_GATE1                                      318
+#define IMG_GATE2                                      319
+#define IMG_GATE3                                      320
+#define IMG_GATE4                                      321
+#define IMG_GATE1_GRAY                                 322
+#define IMG_GATE1_GRAY_EDITOR                          323
+#define IMG_GATE2_GRAY                                 324
+#define IMG_GATE2_GRAY_EDITOR                          325
+#define IMG_GATE3_GRAY                                 326
+#define IMG_GATE3_GRAY_EDITOR                          327
+#define IMG_GATE4_GRAY                                 328
+#define IMG_GATE4_GRAY_EDITOR                          329
+#define IMG_GAMEOFLIFE                                 330
+#define IMG_BIOMAZE                                    331
+#define IMG_PACMAN_RIGHT                               332
+#define IMG_PACMAN_UP                                  333
+#define IMG_PACMAN_LEFT                                        334
+#define IMG_PACMAN_DOWN                                        335
+#define IMG_LAMP                                       336
+#define IMG_LAMP_EDITOR                                        337
+#define IMG_LAMP_ACTIVE                                        338
+#define IMG_TIME_ORB_FULL                              339
+#define IMG_TIME_ORB_EMPTY                             340
+#define IMG_EMERALD_YELLOW                             341
+#define IMG_EMERALD_YELLOW_MOVING                      342
+#define IMG_EMERALD_YELLOW_FALLING                     343
+#define IMG_EMERALD_RED                                        344
+#define IMG_EMERALD_RED_MOVING                         345
+#define IMG_EMERALD_RED_FALLING                                346
+#define IMG_EMERALD_PURPLE                             347
+#define IMG_EMERALD_PURPLE_MOVING                      348
+#define IMG_EMERALD_PURPLE_FALLING                     349
+#define IMG_WALL_EMERALD_YELLOW                                350
+#define IMG_WALL_EMERALD_RED                           351
+#define IMG_WALL_EMERALD_PURPLE                                352
+#define IMG_WALL_BD_DIAMOND                            353
+#define IMG_WALL_GROWING                               354
+#define IMG_WALL_GROWING_XY                            355
+#define IMG_WALL_GROWING_XY_EDITOR                     356
+#define IMG_WALL_GROWING_X                             357
+#define IMG_WALL_GROWING_X_EDITOR                      358
+#define IMG_WALL_GROWING_Y                             359
+#define IMG_WALL_GROWING_Y_EDITOR                      360
+#define IMG_WALL_GROWING_ACTIVE_LEFT                   361
+#define IMG_WALL_GROWING_ACTIVE_RIGHT                  362
+#define IMG_WALL_GROWING_ACTIVE_UP                     363
+#define IMG_WALL_GROWING_ACTIVE_DOWN                   364
+#define IMG_BLACK_ORB                                  365
+#define IMG_SPEED_PILL                                 366
+#define IMG_DARK_YAMYAM                                        367
+#define IMG_DYNABOMB_ACTIVE                            368
+#define IMG_DYNABOMB_PLAYER1_ACTIVE                    369
+#define IMG_DYNABOMB_PLAYER2_ACTIVE                    370
+#define IMG_DYNABOMB_PLAYER3_ACTIVE                    371
+#define IMG_DYNABOMB_PLAYER4_ACTIVE                    372
+#define IMG_DYNABOMB_NR                                        373
+#define IMG_DYNABOMB_SZ                                        374
+#define IMG_DYNABOMB_XL                                        375
+#define IMG_PIG                                                376
+#define IMG_PIG_DOWN                                   377
+#define IMG_PIG_UP                                     378
+#define IMG_PIG_LEFT                                   379
+#define IMG_PIG_RIGHT                                  380
+#define IMG_PIG_MOVING_DOWN                            381
+#define IMG_PIG_MOVING_UP                              382
+#define IMG_PIG_MOVING_LEFT                            383
+#define IMG_PIG_MOVING_RIGHT                           384
+#define IMG_PIG_EATING_DOWN                            385
+#define IMG_PIG_EATING_UP                              386
+#define IMG_PIG_EATING_LEFT                            387
+#define IMG_PIG_EATING_RIGHT                           388
+#define IMG_DRAGON                                     389
+#define IMG_DRAGON_DOWN                                        390
+#define IMG_DRAGON_UP                                  391
+#define IMG_DRAGON_LEFT                                        392
+#define IMG_DRAGON_RIGHT                               393
+#define IMG_DRAGON_MOVING_DOWN                         394
+#define IMG_DRAGON_MOVING_UP                           395
+#define IMG_DRAGON_MOVING_LEFT                         396
+#define IMG_DRAGON_MOVING_RIGHT                                397
+#define IMG_DRAGON_ATTACKING_DOWN                      398
+#define IMG_DRAGON_ATTACKING_UP                                399
+#define IMG_DRAGON_ATTACKING_LEFT                      400
+#define IMG_DRAGON_ATTACKING_RIGHT                     401
+#define IMG_MOLE                                       402
+#define IMG_MOLE_DOWN                                  403
+#define IMG_MOLE_UP                                    404
+#define IMG_MOLE_LEFT                                  405
+#define IMG_MOLE_RIGHT                                 406
+#define IMG_MOLE_MOVING_DOWN                           407
+#define IMG_MOLE_MOVING_UP                             408
+#define IMG_MOLE_MOVING_LEFT                           409
+#define IMG_MOLE_MOVING_RIGHT                          410
+#define IMG_MOLE_DIGGING_DOWN                          411
+#define IMG_MOLE_DIGGING_UP                            412
+#define IMG_MOLE_DIGGING_LEFT                          413
+#define IMG_MOLE_DIGGING_RIGHT                         414
+#define IMG_PENGUIN                                    415
+#define IMG_PENGUIN_EDITOR                             416
+#define IMG_PENGUIN_DOWN                               417
+#define IMG_PENGUIN_UP                                 418
+#define IMG_PENGUIN_LEFT                               419
+#define IMG_PENGUIN_RIGHT                              420
+#define IMG_PENGUIN_MOVING_DOWN                                421
+#define IMG_PENGUIN_MOVING_UP                          422
+#define IMG_PENGUIN_MOVING_LEFT                                423
+#define IMG_PENGUIN_MOVING_RIGHT                       424
+#define IMG_SATELLITE                                  425
+#define IMG_SATELLITE_MOVING                           426
+#define IMG_FLAMES1_LEFT                               427
+#define IMG_FLAMES2_LEFT                               428
+#define IMG_FLAMES3_LEFT                               429
+#define IMG_FLAMES1_RIGHT                              430
+#define IMG_FLAMES2_RIGHT                              431
+#define IMG_FLAMES3_RIGHT                              432
+#define IMG_FLAMES1_UP                                 433
+#define IMG_FLAMES2_UP                                 434
+#define IMG_FLAMES3_UP                                 435
+#define IMG_FLAMES1_DOWN                               436
+#define IMG_FLAMES2_DOWN                               437
+#define IMG_FLAMES3_DOWN                               438
+#define IMG_STONEBLOCK                                 439
+#define IMG_PLAYER1                                    440
+#define IMG_PLAYER1_EDITOR                             441
+#define IMG_PLAYER1_DOWN                               442
+#define IMG_PLAYER1_UP                                 443
+#define IMG_PLAYER1_LEFT                               444
+#define IMG_PLAYER1_RIGHT                              445
+#define IMG_PLAYER1_MOVING_DOWN                                446
+#define IMG_PLAYER1_MOVING_UP                          447
+#define IMG_PLAYER1_MOVING_LEFT                                448
+#define IMG_PLAYER1_MOVING_RIGHT                       449
+#define IMG_PLAYER1_DIGGING_DOWN                       450
+#define IMG_PLAYER1_DIGGING_UP                         451
+#define IMG_PLAYER1_DIGGING_LEFT                       452
+#define IMG_PLAYER1_DIGGING_RIGHT                      453
+#define IMG_PLAYER1_PUSHING_DOWN                       454
+#define IMG_PLAYER1_PUSHING_UP                         455
+#define IMG_PLAYER1_PUSHING_LEFT                       456
+#define IMG_PLAYER1_PUSHING_RIGHT                      457
+#define IMG_PLAYER1_SNAPPING_DOWN                      458
+#define IMG_PLAYER1_SNAPPING_UP                                459
+#define IMG_PLAYER1_SNAPPING_LEFT                      460
+#define IMG_PLAYER1_SNAPPING_RIGHT                     461
+#define IMG_PLAYER2                                    462
+#define IMG_PLAYER2_EDITOR                             463
+#define IMG_PLAYER2_DOWN                               464
+#define IMG_PLAYER2_UP                                 465
+#define IMG_PLAYER2_LEFT                               466
+#define IMG_PLAYER2_RIGHT                              467
+#define IMG_PLAYER2_MOVING_DOWN                                468
+#define IMG_PLAYER2_MOVING_UP                          469
+#define IMG_PLAYER2_MOVING_LEFT                                470
+#define IMG_PLAYER2_MOVING_RIGHT                       471
+#define IMG_PLAYER2_DIGGING_DOWN                       472
+#define IMG_PLAYER2_DIGGING_UP                         473
+#define IMG_PLAYER2_DIGGING_LEFT                       474
+#define IMG_PLAYER2_DIGGING_RIGHT                      475
+#define IMG_PLAYER2_PUSHING_DOWN                       476
+#define IMG_PLAYER2_PUSHING_UP                         477
+#define IMG_PLAYER2_PUSHING_LEFT                       478
+#define IMG_PLAYER2_PUSHING_RIGHT                      479
+#define IMG_PLAYER2_SNAPPING_DOWN                      480
+#define IMG_PLAYER2_SNAPPING_UP                                481
+#define IMG_PLAYER2_SNAPPING_LEFT                      482
+#define IMG_PLAYER2_SNAPPING_RIGHT                     483
+#define IMG_PLAYER3                                    484
+#define IMG_PLAYER3_EDITOR                             485
+#define IMG_PLAYER3_DOWN                               486
+#define IMG_PLAYER3_UP                                 487
+#define IMG_PLAYER3_LEFT                               488
+#define IMG_PLAYER3_RIGHT                              489
+#define IMG_PLAYER3_MOVING_DOWN                                490
+#define IMG_PLAYER3_MOVING_UP                          491
+#define IMG_PLAYER3_MOVING_LEFT                                492
+#define IMG_PLAYER3_MOVING_RIGHT                       493
+#define IMG_PLAYER3_DIGGING_DOWN                       494
+#define IMG_PLAYER3_DIGGING_UP                         495
+#define IMG_PLAYER3_DIGGING_LEFT                       496
+#define IMG_PLAYER3_DIGGING_RIGHT                      497
+#define IMG_PLAYER3_PUSHING_DOWN                       498
+#define IMG_PLAYER3_PUSHING_UP                         499
+#define IMG_PLAYER3_PUSHING_LEFT                       500
+#define IMG_PLAYER3_PUSHING_RIGHT                      501
+#define IMG_PLAYER3_SNAPPING_DOWN                      502
+#define IMG_PLAYER3_SNAPPING_UP                                503
+#define IMG_PLAYER3_SNAPPING_LEFT                      504
+#define IMG_PLAYER3_SNAPPING_RIGHT                     505
+#define IMG_PLAYER4                                    506
+#define IMG_PLAYER4_EDITOR                             507
+#define IMG_PLAYER4_DOWN                               508
+#define IMG_PLAYER4_UP                                 509
+#define IMG_PLAYER4_LEFT                               510
+#define IMG_PLAYER4_RIGHT                              511
+#define IMG_PLAYER4_MOVING_DOWN                                512
+#define IMG_PLAYER4_MOVING_UP                          513
+#define IMG_PLAYER4_MOVING_LEFT                                514
+#define IMG_PLAYER4_MOVING_RIGHT                       515
+#define IMG_PLAYER4_DIGGING_DOWN                       516
+#define IMG_PLAYER4_DIGGING_UP                         517
+#define IMG_PLAYER4_DIGGING_LEFT                       518
+#define IMG_PLAYER4_DIGGING_RIGHT                      519
+#define IMG_PLAYER4_PUSHING_DOWN                       520
+#define IMG_PLAYER4_PUSHING_UP                         521
+#define IMG_PLAYER4_PUSHING_LEFT                       522
+#define IMG_PLAYER4_PUSHING_RIGHT                      523
+#define IMG_PLAYER4_SNAPPING_DOWN                      524
+#define IMG_PLAYER4_SNAPPING_UP                                525
+#define IMG_PLAYER4_SNAPPING_LEFT                      526
+#define IMG_PLAYER4_SNAPPING_RIGHT                     527
+#define IMG_EXPLOSION                                  528
+#define IMG_TWINKLE_BLUE                               529
+#define IMG_TWINKLE_WHITE                              530
+#define IMG_STEELWALL_TOPLEFT                          531
+#define IMG_STEELWALL_TOPRIGHT                         532
+#define IMG_STEELWALL_BOTTOMLEFT                       533
+#define IMG_STEELWALL_BOTTOMRIGHT                      534
+#define IMG_STEELWALL_HORIZONTAL                       535
+#define IMG_STEELWALL_VERTICAL                         536
+#define IMG_STEELWALL_TOPLEFT_EDITOR                   537
+#define IMG_STEELWALL_TOPRIGHT_EDITOR                  538
+#define IMG_STEELWALL_BOTTOMLEFT_EDITOR                        539
+#define IMG_STEELWALL_BOTTOMRIGHT_EDITOR               540
+#define IMG_STEELWALL_HORIZONTAL_EDITOR                        541
+#define IMG_STEELWALL_VERTICAL_EDITOR                  542
+#define IMG_INVISIBLE_STEELWALL_TOPLEFT                        543
+#define IMG_INVISIBLE_STEELWALL_TOPRIGHT               544
+#define IMG_INVISIBLE_STEELWALL_BOTTOMLEFT             545
+#define IMG_INVISIBLE_STEELWALL_BOTTOMRIGHT            546
+#define IMG_INVISIBLE_STEELWALL_HORIZONTAL             547
+#define IMG_INVISIBLE_STEELWALL_VERTICAL               548
+#define IMG_INVISIBLE_STEELWALL_TOPLEFT_EDITOR         549
+#define IMG_INVISIBLE_STEELWALL_TOPRIGHT_EDITOR                550
+#define IMG_INVISIBLE_STEELWALL_BOTTOMLEFT_EDITOR      551
+#define IMG_INVISIBLE_STEELWALL_BOTTOMRIGHT_EDITOR     552
+#define IMG_INVISIBLE_STEELWALL_HORIZONTAL_EDITOR      553
+#define IMG_INVISIBLE_STEELWALL_VERTICAL_EDITOR                554
+#define IMG_ARROW_BLUE_LEFT                            555
+#define IMG_ARROW_BLUE_RIGHT                           556
+#define IMG_ARROW_BLUE_UP                              557
+#define IMG_ARROW_BLUE_DOWN                            558
+#define IMG_ARROW_RED_LEFT                             559
+#define IMG_ARROW_RED_RIGHT                            560
+#define IMG_ARROW_RED_UP                               561
+#define IMG_ARROW_RED_DOWN                             562
+#define IMG_BALL_RED                                   563
+#define IMG_BALL_BLUE                                  564
+#define IMG_BALL_YELLOW                                        565
+#define IMG_BALL_GRAY                                  566
+#define IMG_SCROLLBAR_BLUE                             567
+#define IMG_SCROLLBAR_RED                              568
+#define IMG_SCROLLBAR_GREEN                            569
+#define IMG_SCROLLBAR_YELLOW                           570
+#define IMG_CHAR_SPACE                                 571
+#define IMG_CHAR_EXCLAM                                        572
+#define IMG_CHAR_QUOTEDBL                              573
+#define IMG_CHAR_NUMBERSIGN                            574
+#define IMG_CHAR_DOLLAR                                        575
+#define IMG_CHAR_PROCENT                               576
+#define IMG_CHAR_AMPERSAND                             577
+#define IMG_CHAR_APOSTROPHE                            578
+#define IMG_CHAR_PARENLEFT                             579
+#define IMG_CHAR_PARENRIGHT                            580
+#define IMG_CHAR_ASTERISK                              581
+#define IMG_CHAR_PLUS                                  582
+#define IMG_CHAR_COMMA                                 583
+#define IMG_CHAR_MINUS                                 584
+#define IMG_CHAR_PERIOD                                        585
+#define IMG_CHAR_SLASH                                 586
+#define IMG_CHAR_0                                     587
+#define IMG_CHAR_1                                     588
+#define IMG_CHAR_2                                     589
+#define IMG_CHAR_3                                     590
+#define IMG_CHAR_4                                     591
+#define IMG_CHAR_5                                     592
+#define IMG_CHAR_6                                     593
+#define IMG_CHAR_7                                     594
+#define IMG_CHAR_8                                     595
+#define IMG_CHAR_9                                     596
+#define IMG_CHAR_COLON                                 597
+#define IMG_CHAR_SEMICOLON                             598
+#define IMG_CHAR_LESS                                  599
+#define IMG_CHAR_EQUAL                                 600
+#define IMG_CHAR_GREATER                               601
+#define IMG_CHAR_QUESTION                              602
+#define IMG_CHAR_AT                                    603
+#define IMG_CHAR_A                                     604
+#define IMG_CHAR_B                                     605
+#define IMG_CHAR_C                                     606
+#define IMG_CHAR_D                                     607
+#define IMG_CHAR_E                                     608
+#define IMG_CHAR_F                                     609
+#define IMG_CHAR_G                                     610
+#define IMG_CHAR_H                                     611
+#define IMG_CHAR_I                                     612
+#define IMG_CHAR_J                                     613
+#define IMG_CHAR_K                                     614
+#define IMG_CHAR_L                                     615
+#define IMG_CHAR_M                                     616
+#define IMG_CHAR_N                                     617
+#define IMG_CHAR_O                                     618
+#define IMG_CHAR_P                                     619
+#define IMG_CHAR_Q                                     620
+#define IMG_CHAR_R                                     621
+#define IMG_CHAR_S                                     622
+#define IMG_CHAR_T                                     623
+#define IMG_CHAR_U                                     624
+#define IMG_CHAR_V                                     625
+#define IMG_CHAR_W                                     626
+#define IMG_CHAR_X                                     627
+#define IMG_CHAR_Y                                     628
+#define IMG_CHAR_Z                                     629
+#define IMG_CHAR_AE                                    630
+#define IMG_CHAR_OE                                    631
+#define IMG_CHAR_UE                                    632
+#define IMG_CHAR_COPYRIGHT                             633
+#define IMG_CHAR_UNDERSCORE                            634
+#define IMG_CHAR_EMPTY                                 635
+#define IMG_CHAR_DEGREE                                        636
+#define IMG_CHAR_TM                                    637
+#define IMG_CHAR_CURSOR                                        638
+#define IMG_CUSTOM_1                                   639
+#define IMG_CUSTOM_2                                   640
+#define IMG_CUSTOM_3                                   641
+#define IMG_CUSTOM_4                                   642
+#define IMG_CUSTOM_5                                   643
+#define IMG_CUSTOM_6                                   644
+#define IMG_CUSTOM_7                                   645
+#define IMG_CUSTOM_8                                   646
+#define IMG_CUSTOM_9                                   647
+#define IMG_CUSTOM_10                                  648
+#define IMG_CUSTOM_11                                  649
+#define IMG_CUSTOM_12                                  650
+#define IMG_CUSTOM_13                                  651
+#define IMG_CUSTOM_14                                  652
+#define IMG_CUSTOM_15                                  653
+#define IMG_CUSTOM_16                                  654
+#define IMG_CUSTOM_17                                  655
+#define IMG_CUSTOM_18                                  656
+#define IMG_CUSTOM_19                                  657
+#define IMG_CUSTOM_20                                  658
+#define IMG_CUSTOM_21                                  659
+#define IMG_CUSTOM_22                                  660
+#define IMG_CUSTOM_23                                  661
+#define IMG_CUSTOM_24                                  662
+#define IMG_CUSTOM_25                                  663
+#define IMG_CUSTOM_26                                  664
+#define IMG_CUSTOM_27                                  665
+#define IMG_CUSTOM_28                                  666
+#define IMG_CUSTOM_29                                  667
+#define IMG_CUSTOM_30                                  668
+#define IMG_CUSTOM_31                                  669
+#define IMG_CUSTOM_32                                  670
+#define IMG_CUSTOM_33                                  671
+#define IMG_CUSTOM_34                                  672
+#define IMG_CUSTOM_35                                  673
+#define IMG_CUSTOM_36                                  674
+#define IMG_CUSTOM_37                                  675
+#define IMG_CUSTOM_38                                  676
+#define IMG_CUSTOM_39                                  677
+#define IMG_CUSTOM_40                                  678
+#define IMG_CUSTOM_41                                  679
+#define IMG_CUSTOM_42                                  680
+#define IMG_CUSTOM_43                                  681
+#define IMG_CUSTOM_44                                  682
+#define IMG_CUSTOM_45                                  683
+#define IMG_CUSTOM_46                                  684
+#define IMG_CUSTOM_47                                  685
+#define IMG_CUSTOM_48                                  686
+#define IMG_CUSTOM_49                                  687
+#define IMG_CUSTOM_50                                  688
+#define IMG_CUSTOM_51                                  689
+#define IMG_CUSTOM_52                                  690
+#define IMG_CUSTOM_53                                  691
+#define IMG_CUSTOM_54                                  692
+#define IMG_CUSTOM_55                                  693
+#define IMG_CUSTOM_56                                  694
+#define IMG_CUSTOM_57                                  695
+#define IMG_CUSTOM_58                                  696
+#define IMG_CUSTOM_59                                  697
+#define IMG_CUSTOM_60                                  698
+#define IMG_CUSTOM_61                                  699
+#define IMG_CUSTOM_62                                  700
+#define IMG_CUSTOM_63                                  701
+#define IMG_CUSTOM_64                                  702
+#define IMG_CUSTOM_65                                  703
+#define IMG_CUSTOM_66                                  704
+#define IMG_CUSTOM_67                                  705
+#define IMG_CUSTOM_68                                  706
+#define IMG_CUSTOM_69                                  707
+#define IMG_CUSTOM_70                                  708
+#define IMG_CUSTOM_71                                  709
+#define IMG_CUSTOM_72                                  710
+#define IMG_CUSTOM_73                                  711
+#define IMG_CUSTOM_74                                  712
+#define IMG_CUSTOM_75                                  713
+#define IMG_CUSTOM_76                                  714
+#define IMG_CUSTOM_77                                  715
+#define IMG_CUSTOM_78                                  716
+#define IMG_CUSTOM_79                                  717
+#define IMG_CUSTOM_80                                  718
+#define IMG_CUSTOM_81                                  719
+#define IMG_CUSTOM_82                                  720
+#define IMG_CUSTOM_83                                  721
+#define IMG_CUSTOM_84                                  722
+#define IMG_CUSTOM_85                                  723
+#define IMG_CUSTOM_86                                  724
+#define IMG_CUSTOM_87                                  725
+#define IMG_CUSTOM_88                                  726
+#define IMG_CUSTOM_89                                  727
+#define IMG_CUSTOM_90                                  728
+#define IMG_CUSTOM_91                                  729
+#define IMG_CUSTOM_92                                  730
+#define IMG_CUSTOM_93                                  731
+#define IMG_CUSTOM_94                                  732
+#define IMG_CUSTOM_95                                  733
+#define IMG_CUSTOM_96                                  734
+#define IMG_CUSTOM_97                                  735
+#define IMG_CUSTOM_98                                  736
+#define IMG_CUSTOM_99                                  737
+#define IMG_CUSTOM_100                                 738
+#define IMG_CUSTOM_101                                 739
+#define IMG_CUSTOM_102                                 740
+#define IMG_CUSTOM_103                                 741
+#define IMG_CUSTOM_104                                 742
+#define IMG_CUSTOM_105                                 743
+#define IMG_CUSTOM_106                                 744
+#define IMG_CUSTOM_107                                 745
+#define IMG_CUSTOM_108                                 746
+#define IMG_CUSTOM_109                                 747
+#define IMG_CUSTOM_110                                 748
+#define IMG_CUSTOM_111                                 749
+#define IMG_CUSTOM_112                                 750
+#define IMG_CUSTOM_113                                 751
+#define IMG_CUSTOM_114                                 752
+#define IMG_CUSTOM_115                                 753
+#define IMG_CUSTOM_116                                 754
+#define IMG_CUSTOM_117                                 755
+#define IMG_CUSTOM_118                                 756
+#define IMG_CUSTOM_119                                 757
+#define IMG_CUSTOM_120                                 758
+#define IMG_CUSTOM_121                                 759
+#define IMG_CUSTOM_122                                 760
+#define IMG_CUSTOM_123                                 761
+#define IMG_CUSTOM_124                                 762
+#define IMG_CUSTOM_125                                 763
+#define IMG_CUSTOM_126                                 764
+#define IMG_CUSTOM_127                                 765
+#define IMG_CUSTOM_128                                 766
+#define IMG_GLOBAL_BORDER                              767
+#define IMG_GLOBAL_DOOR                                        768
+#define IMG_GLOBAL_TOONS                               769
+#define IMG_FONT_BIG                                   770
+#define IMG_FONT_MEDIUM                                        771
+#define IMG_FONT_SMALL                                 772
+#define IMG_FONT_EM                                    773
+#define IMG_BACKGROUND_DEFAULT                         774
+#define IMG_BACKGROUND_DOOR                            775
+#define IMG_BACKGROUND_MAIN                            776
+#define IMG_BACKGROUND_LEVEL_SERIES                    777
+#define IMG_BACKGROUND_HALL_OF_FAME                    778
+#define IMG_BACKGROUND_EDITOR_SETTINGS_LEVEL           779
+#define IMG_BACKGROUND_EDITOR_SETTINGS_ELEMENT         780
+#define IMG_BACKGROUND_INFO                            781
+#define IMG_BACKGROUND_SETUP                           782
+#define IMG_INFO_FONT_EM_1                             783
+#define IMG_INFO_FONT_EM_2                             784
+#define IMG_INFO_FONT_EM_3                             785
+#define IMG_INFO_FONT_EM_4                             786
+#define IMG_INFO_FONT_EM_5                             787
 
-#define NUM_IMAGE_FILES                                        755
+#define NUM_IMAGE_FILES                                        788
 
 #endif /* CONF_GFX_H */
index cc4ff8b4ce24ea4310c46fca563c27e9b3931aa1..4b36fc245ea1252a2e4490c0a111ccc8679220c9 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "[2003-02-03 04:25]"
+#define COMPILE_DATE_STRING "[2003-02-04 03:17]"
index 15a3b692ddc8b9464bdf84bf3417a1f9ec8b0385..ed78feab149af7f69bbd7efbb7416d79d9ff8514 100644 (file)
 #define ED_CHECKBUTTON_ID_LEVEL_FIRST  ED_CHECKBUTTON_ID_DOUBLE_SPEED
 #define ED_CHECKBUTTON_ID_LEVEL_LAST   ED_CHECKBUTTON_ID_RANDOM_RESTRICTED
 
+#define ED_CHECKBUTTON_ID_CUSTOM_FIRST ED_CHECKBUTTON_ID_CUSTOM_INDESTRUCTIBLE
+#define ED_CHECKBUTTON_ID_CUSTOM_LAST  ED_CHECKBUTTON_ID_CUSTOM_SLIPPERY
+
 /* values for radiobutton gadgets */
 #define ED_RADIOBUTTON_ID_PERCENTAGE   0
 #define ED_RADIOBUTTON_ID_QUANTITY     1
@@ -2449,6 +2452,63 @@ static boolean LevelContainsPlayer()
   return player_found;
 }
 
+static void CopyPlayfield(short src[MAX_LEV_FIELDX][MAX_LEV_FIELDY],
+                         short dst[MAX_LEV_FIELDX][MAX_LEV_FIELDY])
+{
+  int x, y;
+
+  for(x=0; x<lev_fieldx; x++)
+    for(y=0; y<lev_fieldy; y++) 
+      dst[x][y] = src[x][y];
+}
+
+static void CopyCustomElementPropertiesToEditor()
+{
+  int i;
+
+  for (i=0; i < NUM_CUSTOM_ELEMENTS; i++)
+  {
+    int element = EL_CUSTOM_START + i;
+    int properties = Properties1[element];
+
+    custom_element_properties[i].indestructible =
+      ((properties & EP_BIT_MASSIVE) != 0 ? TRUE : FALSE);
+
+    custom_element_properties[i].can_fall =
+      ((properties & EP_BIT_CAN_FALL) != 0 ? TRUE : FALSE);
+
+    custom_element_properties[i].slippery =
+      ((properties & EP_BIT_SLIPPERY) != 0 ? TRUE : FALSE);
+  }
+}
+
+static void CopyCustomElementPropertiesToGame()
+{
+  int i;
+
+  for (i=0; i < NUM_CUSTOM_ELEMENTS; i++)
+  {
+    int element = EL_CUSTOM_START + i;
+
+    Properties1[element] = EP_BITMASK_DEFAULT;
+
+    if (custom_element_properties[i].indestructible)
+      Properties1[element] |= EP_BIT_MASSIVE;
+    else
+      Properties1[element] &= ~EP_BIT_MASSIVE;
+
+    if (custom_element_properties[i].can_fall)
+      Properties1[element] |= EP_BIT_CAN_FALL;
+    else
+      Properties1[element] &= ~EP_BIT_CAN_FALL;
+
+    if (custom_element_properties[i].slippery)
+      Properties1[element] |= EP_BIT_SLIPPERY;
+    else
+      Properties1[element] &= ~EP_BIT_SLIPPERY;
+  }
+}
+
 void DrawLevelEd()
 {
   CloseDoor(DOOR_CLOSE_ALL);
@@ -2456,15 +2516,8 @@ void DrawLevelEd()
 
   if (level_editor_test_game)
   {
-    int x, y;
-
-    for(x=0; x<lev_fieldx; x++)
-      for(y=0; y<lev_fieldy; y++)
-       Feld[x][y] = Ur[x][y];
-
-    for(x=0; x<lev_fieldx; x++)
-      for(y=0; y<lev_fieldy; y++)
-       Ur[x][y] = FieldBackup[x][y];
+    CopyPlayfield(Ur, Feld);
+    CopyPlayfield(FieldBackup, Ur);
 
     level_editor_test_game = FALSE;
   }
@@ -2963,7 +3016,7 @@ static void DrawPropertiesWindow()
     { EL_PACMAN_LEFT,  &level.score[SC_PACMAN],        TEXT_SMASHING },
     { EL_PACMAN_DOWN,  &level.score[SC_PACMAN],        TEXT_SMASHING },
     { EL_NUT,          &level.score[SC_KOKOSNUSS],     TEXT_CRACKING },
-    { EL_DYNAMITE      ,&level.score[SC_DYNAMIT],      TEXT_COLLECTING },
+    { EL_DYNAMITE,     &level.score[SC_DYNAMIT],       TEXT_COLLECTING },
     { EL_KEY1,         &level.score[SC_SCHLUESSEL],    TEXT_COLLECTING },
     { EL_KEY2,         &level.score[SC_SCHLUESSEL],    TEXT_COLLECTING },
     { EL_KEY3,         &level.score[SC_SCHLUESSEL],    TEXT_COLLECTING },
@@ -3064,6 +3117,8 @@ static void DrawPropertiesWindow()
   {
     int nr = properties_element - EL_CUSTOM_START;
 
+    CopyCustomElementPropertiesToEditor();
+
     /* draw checkbutton gadget */
     i = ED_CHECKBUTTON_ID_CUSTOM_INDESTRUCTIBLE;
     x = checkbutton_info[i].x + xoffset_right2;
@@ -4011,7 +4066,13 @@ static void HandleRadiobuttons(struct GadgetInfo *gi)
 
 static void HandleCheckbuttons(struct GadgetInfo *gi)
 {
-  *checkbutton_info[gi->custom_type_id].value ^= TRUE;
+  int type_id = gi->custom_type_id;
+
+  *checkbutton_info[type_id].value ^= TRUE;
+
+  if (type_id >= ED_CHECKBUTTON_ID_CUSTOM_FIRST &&
+      type_id <= ED_CHECKBUTTON_ID_CUSTOM_LAST)
+    CopyCustomElementPropertiesToGame();
 }
 
 static void HandleControlButtons(struct GadgetInfo *gi)
@@ -4255,9 +4316,8 @@ static void HandleControlButtons(struct GadgetInfo *gi)
       {
        if (Request("Save this level and kill the old ?", REQ_ASK))
        {
-         for(x=0; x<lev_fieldx; x++)
-           for(y=0; y<lev_fieldy; y++) 
-             Ur[x][y] = Feld[x][y];
+         CopyPlayfield(Feld, Ur);
+
          SaveLevel(level_nr);
        }
       }
@@ -4271,37 +4331,8 @@ static void HandleControlButtons(struct GadgetInfo *gi)
        if (LevelChanged())
          level.game_version = GAME_VERSION_ACTUAL;
 
-       for(x=0; x<lev_fieldx; x++)
-         for(y=0; y<lev_fieldy; y++)
-           FieldBackup[x][y] = Ur[x][y];
-
-       for(x=0; x<lev_fieldx; x++)
-         for(y=0; y<lev_fieldy; y++)
-           Ur[x][y] = Feld[x][y];
-
-       /* !!! ---------- ---------- ---------- ---------- ---------- */
-
-       for (i=0; i < NUM_CUSTOM_ELEMENTS; i++)
-       {
-         int element = EL_CUSTOM_START + i;
-
-         if (custom_element_properties[i].indestructible)
-           Properties1[element] |= EP_BIT_MASSIVE;
-         else
-           Properties1[element] &= ~EP_BIT_MASSIVE;
-
-         if (custom_element_properties[i].can_fall)
-           Properties1[element] |= EP_BIT_CAN_FALL;
-         else
-           Properties1[element] &= ~EP_BIT_CAN_FALL;
-
-         if (custom_element_properties[i].slippery)
-           Properties1[element] |= EP_BIT_SLIPPERY;
-         else
-           Properties1[element] &= ~EP_BIT_SLIPPERY;
-       }
-
-       /* !!! ---------- ---------- ---------- ---------- ---------- */
+       CopyPlayfield(Ur, FieldBackup);
+       CopyPlayfield(Feld, Ur);
 
        UnmapLevelEditorGadgets();
        UndrawSpecialEditorDoor();
index bcb579aee47d7676458a263a7035a6f970777afc..a453554b856f9cde652bf1a25e1c9837f17f7be3 100644 (file)
@@ -94,6 +94,9 @@ static void setLevelInfoToDefaults()
   Feld[STD_LEV_FIELDX-1][STD_LEV_FIELDY-1] =
     Ur[STD_LEV_FIELDX-1][STD_LEV_FIELDY-1] = EL_EXIT_CLOSED;
 
+  for (i=0; i < NUM_CUSTOM_ELEMENTS; i++)
+    Properties1[EL_CUSTOM_START + i] = EP_BITMASK_DEFAULT;
+
   BorderElement = EL_STEELWALL;
 
   level.no_level_file = FALSE;
@@ -203,6 +206,33 @@ static int LoadLevel_AUTH(FILE *file, int chunk_size, struct LevelInfo *level)
   return chunk_size;
 }
 
+static int LoadLevel_BODY(FILE *file, int chunk_size, struct LevelInfo *level)
+{
+  int x, y;
+  int chunk_size_expected = level->fieldx * level->fieldy;
+
+  /* Note: "chunk_size" was wrong before version 2.0 when elements are
+     stored with 16-bit encoding (and should be twice as big then).
+     Even worse, playfield data was stored 16-bit when only yamyam content
+     contained 16-bit elements and vice versa. */
+
+  if (level->encoding_16bit_field && level->file_version >= FILE_VERSION_2_0)
+    chunk_size_expected *= 2;
+
+  if (chunk_size_expected != chunk_size)
+  {
+    ReadUnusedBytesFromFile(file, chunk_size);
+    return chunk_size_expected;
+  }
+
+  for(y=0; y<level->fieldy; y++)
+    for(x=0; x<level->fieldx; x++)
+      Feld[x][y] = Ur[x][y] =
+       checkLevelElement(level->encoding_16bit_field ?
+                         getFile16BitBE(file) : fgetc(file));
+  return chunk_size;
+}
+
 static int LoadLevel_CONT(FILE *file, int chunk_size, struct LevelInfo *level)
 {
   int i, x, y;
@@ -243,33 +273,6 @@ static int LoadLevel_CONT(FILE *file, int chunk_size, struct LevelInfo *level)
   return chunk_size;
 }
 
-static int LoadLevel_BODY(FILE *file, int chunk_size, struct LevelInfo *level)
-{
-  int x, y;
-  int chunk_size_expected = level->fieldx * level->fieldy;
-
-  /* Note: "chunk_size" was wrong before version 2.0 when elements are
-     stored with 16-bit encoding (and should be twice as big then).
-     Even worse, playfield data was stored 16-bit when only yamyam content
-     contained 16-bit elements and vice versa. */
-
-  if (level->encoding_16bit_field && level->file_version >= FILE_VERSION_2_0)
-    chunk_size_expected *= 2;
-
-  if (chunk_size_expected != chunk_size)
-  {
-    ReadUnusedBytesFromFile(file, chunk_size);
-    return chunk_size_expected;
-  }
-
-  for(y=0; y<level->fieldy; y++)
-    for(x=0; x<level->fieldx; x++)
-      Feld[x][y] = Ur[x][y] =
-       checkLevelElement(level->encoding_16bit_field ?
-                         getFile16BitBE(file) : fgetc(file));
-  return chunk_size;
-}
-
 static int LoadLevel_CNT2(FILE *file, int chunk_size, struct LevelInfo *level)
 {
   int i, x, y;
@@ -313,6 +316,32 @@ static int LoadLevel_CNT2(FILE *file, int chunk_size, struct LevelInfo *level)
   return chunk_size;
 }
 
+static int LoadLevel_CUS1(FILE *file, int chunk_size, struct LevelInfo *level)
+{
+  int num_changed_custom_elements = getFile16BitBE(file);
+  int chunk_size_expected = 2 + num_changed_custom_elements * 6;
+  int i;
+
+  if (chunk_size_expected != chunk_size)
+  {
+    ReadUnusedBytesFromFile(file, chunk_size - 2);
+    return chunk_size_expected;
+  }
+
+  for (i=0; i < num_changed_custom_elements; i++)
+  {
+    int element = getFile16BitBE(file);
+    int properties = getFile32BitBE(file);
+
+    if (IS_CUSTOM_ELEMENT(element))
+      Properties1[element] = properties;
+    else
+      Error(ERR_WARN, "invalid custom element number %d", element);
+  }
+
+  return chunk_size;
+}
+
 void LoadLevelFromFilename(char *filename)
 {
   char cookie[MAX_LINE_LEN];
@@ -388,9 +417,10 @@ void LoadLevelFromFilename(char *filename)
       { "VERS", FILE_VERS_CHUNK_SIZE,  LoadLevel_VERS },
       { "HEAD", LEVEL_HEADER_SIZE,     LoadLevel_HEAD },
       { "AUTH", MAX_LEVEL_AUTHOR_LEN,  LoadLevel_AUTH },
-      { "CONT", -1,                    LoadLevel_CONT },
       { "BODY", -1,                    LoadLevel_BODY },
+      { "CONT", -1,                    LoadLevel_CONT },
       { "CNT2", LEVEL_CHUNK_CNT2_SIZE, LoadLevel_CNT2 },
+      { "CUS1", -1,                    LoadLevel_CUS1 },
       {  NULL,  0,                     NULL }
     };
 
@@ -545,6 +575,18 @@ static void SaveLevel_AUTH(FILE *file, struct LevelInfo *level)
     fputc(level->author[i], file);
 }
 
+static void SaveLevel_BODY(FILE *file, struct LevelInfo *level)
+{
+  int x, y;
+
+  for(y=0; y<level->fieldy; y++) 
+    for(x=0; x<level->fieldx; x++) 
+      if (level->encoding_16bit_field)
+       putFile16BitBE(file, Ur[x][y]);
+      else
+       fputc(Ur[x][y], file);
+}
+
 #if 0
 static void SaveLevel_CONT(FILE *file, struct LevelInfo *level)
 {
@@ -565,18 +607,6 @@ static void SaveLevel_CONT(FILE *file, struct LevelInfo *level)
 }
 #endif
 
-static void SaveLevel_BODY(FILE *file, struct LevelInfo *level)
-{
-  int x, y;
-
-  for(y=0; y<level->fieldy; y++) 
-    for(x=0; x<level->fieldx; x++) 
-      if (level->encoding_16bit_field)
-       putFile16BitBE(file, Ur[x][y]);
-      else
-       fputc(Ur[x][y], file);
-}
-
 static void SaveLevel_CNT2(FILE *file, struct LevelInfo *level, int element)
 {
   int i, x, y;
@@ -628,11 +658,38 @@ static void SaveLevel_CNT2(FILE *file, struct LevelInfo *level, int element)
        putFile16BitBE(file, content_array[i][x][y]);
 }
 
+static void SaveLevel_CUS1(FILE *file, int num_changed_custom_elements)
+{
+  int i, check = 0;
+
+  putFile16BitBE(file, num_changed_custom_elements);
+
+  for (i=0; i < NUM_CUSTOM_ELEMENTS; i++)
+  {
+    int element = EL_CUSTOM_START + i;
+
+    if (Properties1[element] != EP_BITMASK_DEFAULT)
+    {
+      if (check < num_changed_custom_elements)
+      {
+       putFile16BitBE(file, element);
+       putFile32BitBE(file, Properties1[element]);
+      }
+
+      check++;
+    }
+  }
+
+  if (check != num_changed_custom_elements)    /* should not happen */
+    Error(ERR_WARN, "inconsistent number of custom element properties");
+}
+
 void SaveLevel(int level_nr)
 {
-  int i, x, y;
   char *filename = getLevelFilename(level_nr);
   int body_chunk_size;
+  int num_changed_custom_elements = 0;
+  int i, x, y;
   FILE *file;
 
   if (!(file = fopen(filename, MODE_WRITE)))
@@ -664,9 +721,15 @@ void SaveLevel(int level_nr)
   if (level.amoeba_content > 255)
     level.encoding_16bit_amoeba = TRUE;
 
+  /* calculate size of "BODY" chunk */
   body_chunk_size =
     level.fieldx * level.fieldy * (level.encoding_16bit_field ? 2 : 1);
 
+  /* check for non-standard custom elements and calculate "CUS1" chunk size */
+  for (i=0; i < NUM_CUSTOM_ELEMENTS; i++)
+    if (Properties1[EL_CUSTOM_START + i] != EP_BITMASK_DEFAULT)
+      num_changed_custom_elements++;
+
   putFileChunkBE(file, "RND1", CHUNK_SIZE_UNDEFINED);
   putFileChunkBE(file, "CAVE", CHUNK_SIZE_NONE);
 
@@ -695,6 +758,12 @@ void SaveLevel(int level_nr)
     SaveLevel_CNT2(file, &level, EL_BD_AMOEBA);
   }
 
+  if (num_changed_custom_elements > 0)
+  {
+    putFileChunkBE(file, "CUS1", 2 + num_changed_custom_elements * 6);
+    SaveLevel_CUS1(file, num_changed_custom_elements);
+  }
+
   fclose(file);
 
   SetFilePermissions(filename, PERMS_PRIVATE);
index 3e86c7f9ab85d04b2aacca56e7f2cf91eacc7afb..6c56974a538cf0e6d86795cbebc4fd8c42edf310 100644 (file)
 #define EP_BIT_TUBE            (1 << 3)
 #define EP_BIT_EM_SLIPPERY_WALL        (1 << 4)
 
+#define EP_BITMASK_DEFAULT     0
+
 #define IS_AMOEBALIVE(e)       (Properties1[e] & EP_BIT_AMOEBALIVE)
 #define IS_AMOEBOID(e)         (Properties1[e] & EP_BIT_AMOEBOID)
 #define IS_SCHLUESSEL(e)       (Properties1[e] & EP_BIT_SCHLUESSEL)