Merge branch 'master' into releases 3.0.1
authorHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:43:20 +0000 (10:43 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:43:20 +0000 (10:43 +0200)
25 files changed:
CHANGES
Makefile
src/conf_cus.c
src/conf_cus.h
src/conf_e2g.c
src/conf_esg.c
src/conf_gfx.c
src/conf_gfx.h
src/conftime.h
src/editor.c
src/events.c
src/files.c
src/game.c
src/game.h
src/init.c
src/libgame/misc.c
src/libgame/setup.c
src/libgame/setup.h
src/libgame/system.h
src/libgame/text.c
src/libgame/text.h
src/main.c
src/main.h
src/screens.c
src/tools.c

diff --git a/CHANGES b/CHANGES
index 10ebc7f0a29e6ba5ef344faba569706f3d456a40..59296c15f3146f9f1e157e689f59fd4df6226c0d 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,14 @@
+Release Version 3.0.1 [18 AUG 2003]
+-----------------------------------
+       - fixed bug that caused a crash at startup under Solaris
+       - fixed bug that caused the DOS version not finding its files
+       - fixed bug with missing graphic for active red disk bomb
+       - added custom element property for dropping collected elements
+       - added another 128 custom elements for those who can't get enough
+       - fixed PCX files in the DOS version ("classic" graphics only)
+
 Release Version 3.0.0 [05 AUG 2003]
-------------------------------------------
+-----------------------------------
        - final version bumped to 3.0.0 due to the massive changes
        - graphics and sounds now completely and dynamically customizable
        - custom elements now have lots of configurable properties
index 0c22aefb3fa9bcb1696e9a9c507b3dde989eaf00..bdd285b5e775938c501bd4dd53fd57723470f574 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -49,8 +49,8 @@ CROSS_PATH_WIN32=/usr/local/cross-tools/i386-mingw32msvc
 SRC_DIR = src
 MAKE_CMD = $(MAKE) -C $(SRC_DIR)
 
-DEFAULT_TARGET = x11
-DEFAULT_TARGET = sdl
+DEFAULT_TARGET = x11
+DEFAULT_TARGET = sdl
 
 all:
        @$(MAKE_CMD) TARGET=$(DEFAULT_TARGET)
index 82144cd288f1572ca3af5e576c999b3d68898464..dd54ef34fe0767ea4cf4d9d2c7ca8d0c1d7463ff 100644 (file)
   { "custom_128.EDITOR.xpos",                  "15"                    },
   { "custom_128.EDITOR.ypos",                  "13"                    },
 
+  { "custom_129",                              "RocksElements.pcx"     },
+  { "custom_129.xpos",                         "7"                     },
+  { "custom_129.ypos",                         "9"                     },
+  { "custom_129.frames",                       "1"                     },
+  { "custom_129.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_129.EDITOR.xpos",                  "15"                    },
+  { "custom_129.EDITOR.ypos",                  "13"                    },
+
+  { "custom_130",                              "RocksElements.pcx"     },
+  { "custom_130.xpos",                         "7"                     },
+  { "custom_130.ypos",                         "9"                     },
+  { "custom_130.frames",                       "1"                     },
+  { "custom_130.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_130.EDITOR.xpos",                  "15"                    },
+  { "custom_130.EDITOR.ypos",                  "13"                    },
+
+  { "custom_131",                              "RocksElements.pcx"     },
+  { "custom_131.xpos",                         "7"                     },
+  { "custom_131.ypos",                         "9"                     },
+  { "custom_131.frames",                       "1"                     },
+  { "custom_131.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_131.EDITOR.xpos",                  "15"                    },
+  { "custom_131.EDITOR.ypos",                  "13"                    },
+
+  { "custom_132",                              "RocksElements.pcx"     },
+  { "custom_132.xpos",                         "7"                     },
+  { "custom_132.ypos",                         "9"                     },
+  { "custom_132.frames",                       "1"                     },
+  { "custom_132.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_132.EDITOR.xpos",                  "15"                    },
+  { "custom_132.EDITOR.ypos",                  "13"                    },
+
+  { "custom_133",                              "RocksElements.pcx"     },
+  { "custom_133.xpos",                         "7"                     },
+  { "custom_133.ypos",                         "9"                     },
+  { "custom_133.frames",                       "1"                     },
+  { "custom_133.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_133.EDITOR.xpos",                  "15"                    },
+  { "custom_133.EDITOR.ypos",                  "13"                    },
+
+  { "custom_134",                              "RocksElements.pcx"     },
+  { "custom_134.xpos",                         "7"                     },
+  { "custom_134.ypos",                         "9"                     },
+  { "custom_134.frames",                       "1"                     },
+  { "custom_134.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_134.EDITOR.xpos",                  "15"                    },
+  { "custom_134.EDITOR.ypos",                  "13"                    },
+
+  { "custom_135",                              "RocksElements.pcx"     },
+  { "custom_135.xpos",                         "7"                     },
+  { "custom_135.ypos",                         "9"                     },
+  { "custom_135.frames",                       "1"                     },
+  { "custom_135.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_135.EDITOR.xpos",                  "15"                    },
+  { "custom_135.EDITOR.ypos",                  "13"                    },
+
+  { "custom_136",                              "RocksElements.pcx"     },
+  { "custom_136.xpos",                         "7"                     },
+  { "custom_136.ypos",                         "9"                     },
+  { "custom_136.frames",                       "1"                     },
+  { "custom_136.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_136.EDITOR.xpos",                  "15"                    },
+  { "custom_136.EDITOR.ypos",                  "13"                    },
+
+  { "custom_137",                              "RocksElements.pcx"     },
+  { "custom_137.xpos",                         "7"                     },
+  { "custom_137.ypos",                         "9"                     },
+  { "custom_137.frames",                       "1"                     },
+  { "custom_137.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_137.EDITOR.xpos",                  "15"                    },
+  { "custom_137.EDITOR.ypos",                  "13"                    },
+
+  { "custom_138",                              "RocksElements.pcx"     },
+  { "custom_138.xpos",                         "7"                     },
+  { "custom_138.ypos",                         "9"                     },
+  { "custom_138.frames",                       "1"                     },
+  { "custom_138.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_138.EDITOR.xpos",                  "15"                    },
+  { "custom_138.EDITOR.ypos",                  "13"                    },
+
+  { "custom_139",                              "RocksElements.pcx"     },
+  { "custom_139.xpos",                         "7"                     },
+  { "custom_139.ypos",                         "9"                     },
+  { "custom_139.frames",                       "1"                     },
+  { "custom_139.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_139.EDITOR.xpos",                  "15"                    },
+  { "custom_139.EDITOR.ypos",                  "13"                    },
+
+  { "custom_140",                              "RocksElements.pcx"     },
+  { "custom_140.xpos",                         "7"                     },
+  { "custom_140.ypos",                         "9"                     },
+  { "custom_140.frames",                       "1"                     },
+  { "custom_140.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_140.EDITOR.xpos",                  "15"                    },
+  { "custom_140.EDITOR.ypos",                  "13"                    },
+
+  { "custom_141",                              "RocksElements.pcx"     },
+  { "custom_141.xpos",                         "7"                     },
+  { "custom_141.ypos",                         "9"                     },
+  { "custom_141.frames",                       "1"                     },
+  { "custom_141.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_141.EDITOR.xpos",                  "15"                    },
+  { "custom_141.EDITOR.ypos",                  "13"                    },
+
+  { "custom_142",                              "RocksElements.pcx"     },
+  { "custom_142.xpos",                         "7"                     },
+  { "custom_142.ypos",                         "9"                     },
+  { "custom_142.frames",                       "1"                     },
+  { "custom_142.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_142.EDITOR.xpos",                  "15"                    },
+  { "custom_142.EDITOR.ypos",                  "13"                    },
+
+  { "custom_143",                              "RocksElements.pcx"     },
+  { "custom_143.xpos",                         "7"                     },
+  { "custom_143.ypos",                         "9"                     },
+  { "custom_143.frames",                       "1"                     },
+  { "custom_143.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_143.EDITOR.xpos",                  "15"                    },
+  { "custom_143.EDITOR.ypos",                  "13"                    },
+
+  { "custom_144",                              "RocksElements.pcx"     },
+  { "custom_144.xpos",                         "7"                     },
+  { "custom_144.ypos",                         "9"                     },
+  { "custom_144.frames",                       "1"                     },
+  { "custom_144.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_144.EDITOR.xpos",                  "15"                    },
+  { "custom_144.EDITOR.ypos",                  "13"                    },
+
+  { "custom_145",                              "RocksElements.pcx"     },
+  { "custom_145.xpos",                         "7"                     },
+  { "custom_145.ypos",                         "9"                     },
+  { "custom_145.frames",                       "1"                     },
+  { "custom_145.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_145.EDITOR.xpos",                  "15"                    },
+  { "custom_145.EDITOR.ypos",                  "13"                    },
+
+  { "custom_146",                              "RocksElements.pcx"     },
+  { "custom_146.xpos",                         "7"                     },
+  { "custom_146.ypos",                         "9"                     },
+  { "custom_146.frames",                       "1"                     },
+  { "custom_146.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_146.EDITOR.xpos",                  "15"                    },
+  { "custom_146.EDITOR.ypos",                  "13"                    },
+
+  { "custom_147",                              "RocksElements.pcx"     },
+  { "custom_147.xpos",                         "7"                     },
+  { "custom_147.ypos",                         "9"                     },
+  { "custom_147.frames",                       "1"                     },
+  { "custom_147.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_147.EDITOR.xpos",                  "15"                    },
+  { "custom_147.EDITOR.ypos",                  "13"                    },
+
+  { "custom_148",                              "RocksElements.pcx"     },
+  { "custom_148.xpos",                         "7"                     },
+  { "custom_148.ypos",                         "9"                     },
+  { "custom_148.frames",                       "1"                     },
+  { "custom_148.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_148.EDITOR.xpos",                  "15"                    },
+  { "custom_148.EDITOR.ypos",                  "13"                    },
+
+  { "custom_149",                              "RocksElements.pcx"     },
+  { "custom_149.xpos",                         "7"                     },
+  { "custom_149.ypos",                         "9"                     },
+  { "custom_149.frames",                       "1"                     },
+  { "custom_149.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_149.EDITOR.xpos",                  "15"                    },
+  { "custom_149.EDITOR.ypos",                  "13"                    },
+
+  { "custom_150",                              "RocksElements.pcx"     },
+  { "custom_150.xpos",                         "7"                     },
+  { "custom_150.ypos",                         "9"                     },
+  { "custom_150.frames",                       "1"                     },
+  { "custom_150.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_150.EDITOR.xpos",                  "15"                    },
+  { "custom_150.EDITOR.ypos",                  "13"                    },
+
+  { "custom_151",                              "RocksElements.pcx"     },
+  { "custom_151.xpos",                         "7"                     },
+  { "custom_151.ypos",                         "9"                     },
+  { "custom_151.frames",                       "1"                     },
+  { "custom_151.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_151.EDITOR.xpos",                  "15"                    },
+  { "custom_151.EDITOR.ypos",                  "13"                    },
+
+  { "custom_152",                              "RocksElements.pcx"     },
+  { "custom_152.xpos",                         "7"                     },
+  { "custom_152.ypos",                         "9"                     },
+  { "custom_152.frames",                       "1"                     },
+  { "custom_152.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_152.EDITOR.xpos",                  "15"                    },
+  { "custom_152.EDITOR.ypos",                  "13"                    },
+
+  { "custom_153",                              "RocksElements.pcx"     },
+  { "custom_153.xpos",                         "7"                     },
+  { "custom_153.ypos",                         "9"                     },
+  { "custom_153.frames",                       "1"                     },
+  { "custom_153.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_153.EDITOR.xpos",                  "15"                    },
+  { "custom_153.EDITOR.ypos",                  "13"                    },
+
+  { "custom_154",                              "RocksElements.pcx"     },
+  { "custom_154.xpos",                         "7"                     },
+  { "custom_154.ypos",                         "9"                     },
+  { "custom_154.frames",                       "1"                     },
+  { "custom_154.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_154.EDITOR.xpos",                  "15"                    },
+  { "custom_154.EDITOR.ypos",                  "13"                    },
+
+  { "custom_155",                              "RocksElements.pcx"     },
+  { "custom_155.xpos",                         "7"                     },
+  { "custom_155.ypos",                         "9"                     },
+  { "custom_155.frames",                       "1"                     },
+  { "custom_155.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_155.EDITOR.xpos",                  "15"                    },
+  { "custom_155.EDITOR.ypos",                  "13"                    },
+
+  { "custom_156",                              "RocksElements.pcx"     },
+  { "custom_156.xpos",                         "7"                     },
+  { "custom_156.ypos",                         "9"                     },
+  { "custom_156.frames",                       "1"                     },
+  { "custom_156.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_156.EDITOR.xpos",                  "15"                    },
+  { "custom_156.EDITOR.ypos",                  "13"                    },
+
+  { "custom_157",                              "RocksElements.pcx"     },
+  { "custom_157.xpos",                         "7"                     },
+  { "custom_157.ypos",                         "9"                     },
+  { "custom_157.frames",                       "1"                     },
+  { "custom_157.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_157.EDITOR.xpos",                  "15"                    },
+  { "custom_157.EDITOR.ypos",                  "13"                    },
+
+  { "custom_158",                              "RocksElements.pcx"     },
+  { "custom_158.xpos",                         "7"                     },
+  { "custom_158.ypos",                         "9"                     },
+  { "custom_158.frames",                       "1"                     },
+  { "custom_158.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_158.EDITOR.xpos",                  "15"                    },
+  { "custom_158.EDITOR.ypos",                  "13"                    },
+
+  { "custom_159",                              "RocksElements.pcx"     },
+  { "custom_159.xpos",                         "7"                     },
+  { "custom_159.ypos",                         "9"                     },
+  { "custom_159.frames",                       "1"                     },
+  { "custom_159.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_159.EDITOR.xpos",                  "15"                    },
+  { "custom_159.EDITOR.ypos",                  "13"                    },
+
+  { "custom_160",                              "RocksElements.pcx"     },
+  { "custom_160.xpos",                         "7"                     },
+  { "custom_160.ypos",                         "9"                     },
+  { "custom_160.frames",                       "1"                     },
+  { "custom_160.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_160.EDITOR.xpos",                  "15"                    },
+  { "custom_160.EDITOR.ypos",                  "13"                    },
+
+  { "custom_161",                              "RocksElements.pcx"     },
+  { "custom_161.xpos",                         "7"                     },
+  { "custom_161.ypos",                         "9"                     },
+  { "custom_161.frames",                       "1"                     },
+  { "custom_161.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_161.EDITOR.xpos",                  "15"                    },
+  { "custom_161.EDITOR.ypos",                  "13"                    },
+
+  { "custom_162",                              "RocksElements.pcx"     },
+  { "custom_162.xpos",                         "7"                     },
+  { "custom_162.ypos",                         "9"                     },
+  { "custom_162.frames",                       "1"                     },
+  { "custom_162.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_162.EDITOR.xpos",                  "15"                    },
+  { "custom_162.EDITOR.ypos",                  "13"                    },
+
+  { "custom_163",                              "RocksElements.pcx"     },
+  { "custom_163.xpos",                         "7"                     },
+  { "custom_163.ypos",                         "9"                     },
+  { "custom_163.frames",                       "1"                     },
+  { "custom_163.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_163.EDITOR.xpos",                  "15"                    },
+  { "custom_163.EDITOR.ypos",                  "13"                    },
+
+  { "custom_164",                              "RocksElements.pcx"     },
+  { "custom_164.xpos",                         "7"                     },
+  { "custom_164.ypos",                         "9"                     },
+  { "custom_164.frames",                       "1"                     },
+  { "custom_164.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_164.EDITOR.xpos",                  "15"                    },
+  { "custom_164.EDITOR.ypos",                  "13"                    },
+
+  { "custom_165",                              "RocksElements.pcx"     },
+  { "custom_165.xpos",                         "7"                     },
+  { "custom_165.ypos",                         "9"                     },
+  { "custom_165.frames",                       "1"                     },
+  { "custom_165.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_165.EDITOR.xpos",                  "15"                    },
+  { "custom_165.EDITOR.ypos",                  "13"                    },
+
+  { "custom_166",                              "RocksElements.pcx"     },
+  { "custom_166.xpos",                         "7"                     },
+  { "custom_166.ypos",                         "9"                     },
+  { "custom_166.frames",                       "1"                     },
+  { "custom_166.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_166.EDITOR.xpos",                  "15"                    },
+  { "custom_166.EDITOR.ypos",                  "13"                    },
+
+  { "custom_167",                              "RocksElements.pcx"     },
+  { "custom_167.xpos",                         "7"                     },
+  { "custom_167.ypos",                         "9"                     },
+  { "custom_167.frames",                       "1"                     },
+  { "custom_167.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_167.EDITOR.xpos",                  "15"                    },
+  { "custom_167.EDITOR.ypos",                  "13"                    },
+
+  { "custom_168",                              "RocksElements.pcx"     },
+  { "custom_168.xpos",                         "7"                     },
+  { "custom_168.ypos",                         "9"                     },
+  { "custom_168.frames",                       "1"                     },
+  { "custom_168.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_168.EDITOR.xpos",                  "15"                    },
+  { "custom_168.EDITOR.ypos",                  "13"                    },
+
+  { "custom_169",                              "RocksElements.pcx"     },
+  { "custom_169.xpos",                         "7"                     },
+  { "custom_169.ypos",                         "9"                     },
+  { "custom_169.frames",                       "1"                     },
+  { "custom_169.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_169.EDITOR.xpos",                  "15"                    },
+  { "custom_169.EDITOR.ypos",                  "13"                    },
+
+  { "custom_170",                              "RocksElements.pcx"     },
+  { "custom_170.xpos",                         "7"                     },
+  { "custom_170.ypos",                         "9"                     },
+  { "custom_170.frames",                       "1"                     },
+  { "custom_170.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_170.EDITOR.xpos",                  "15"                    },
+  { "custom_170.EDITOR.ypos",                  "13"                    },
+
+  { "custom_171",                              "RocksElements.pcx"     },
+  { "custom_171.xpos",                         "7"                     },
+  { "custom_171.ypos",                         "9"                     },
+  { "custom_171.frames",                       "1"                     },
+  { "custom_171.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_171.EDITOR.xpos",                  "15"                    },
+  { "custom_171.EDITOR.ypos",                  "13"                    },
+
+  { "custom_172",                              "RocksElements.pcx"     },
+  { "custom_172.xpos",                         "7"                     },
+  { "custom_172.ypos",                         "9"                     },
+  { "custom_172.frames",                       "1"                     },
+  { "custom_172.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_172.EDITOR.xpos",                  "15"                    },
+  { "custom_172.EDITOR.ypos",                  "13"                    },
+
+  { "custom_173",                              "RocksElements.pcx"     },
+  { "custom_173.xpos",                         "7"                     },
+  { "custom_173.ypos",                         "9"                     },
+  { "custom_173.frames",                       "1"                     },
+  { "custom_173.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_173.EDITOR.xpos",                  "15"                    },
+  { "custom_173.EDITOR.ypos",                  "13"                    },
+
+  { "custom_174",                              "RocksElements.pcx"     },
+  { "custom_174.xpos",                         "7"                     },
+  { "custom_174.ypos",                         "9"                     },
+  { "custom_174.frames",                       "1"                     },
+  { "custom_174.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_174.EDITOR.xpos",                  "15"                    },
+  { "custom_174.EDITOR.ypos",                  "13"                    },
+
+  { "custom_175",                              "RocksElements.pcx"     },
+  { "custom_175.xpos",                         "7"                     },
+  { "custom_175.ypos",                         "9"                     },
+  { "custom_175.frames",                       "1"                     },
+  { "custom_175.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_175.EDITOR.xpos",                  "15"                    },
+  { "custom_175.EDITOR.ypos",                  "13"                    },
+
+  { "custom_176",                              "RocksElements.pcx"     },
+  { "custom_176.xpos",                         "7"                     },
+  { "custom_176.ypos",                         "9"                     },
+  { "custom_176.frames",                       "1"                     },
+  { "custom_176.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_176.EDITOR.xpos",                  "15"                    },
+  { "custom_176.EDITOR.ypos",                  "13"                    },
+
+  { "custom_177",                              "RocksElements.pcx"     },
+  { "custom_177.xpos",                         "7"                     },
+  { "custom_177.ypos",                         "9"                     },
+  { "custom_177.frames",                       "1"                     },
+  { "custom_177.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_177.EDITOR.xpos",                  "15"                    },
+  { "custom_177.EDITOR.ypos",                  "13"                    },
+
+  { "custom_178",                              "RocksElements.pcx"     },
+  { "custom_178.xpos",                         "7"                     },
+  { "custom_178.ypos",                         "9"                     },
+  { "custom_178.frames",                       "1"                     },
+  { "custom_178.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_178.EDITOR.xpos",                  "15"                    },
+  { "custom_178.EDITOR.ypos",                  "13"                    },
+
+  { "custom_179",                              "RocksElements.pcx"     },
+  { "custom_179.xpos",                         "7"                     },
+  { "custom_179.ypos",                         "9"                     },
+  { "custom_179.frames",                       "1"                     },
+  { "custom_179.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_179.EDITOR.xpos",                  "15"                    },
+  { "custom_179.EDITOR.ypos",                  "13"                    },
+
+  { "custom_180",                              "RocksElements.pcx"     },
+  { "custom_180.xpos",                         "7"                     },
+  { "custom_180.ypos",                         "9"                     },
+  { "custom_180.frames",                       "1"                     },
+  { "custom_180.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_180.EDITOR.xpos",                  "15"                    },
+  { "custom_180.EDITOR.ypos",                  "13"                    },
+
+  { "custom_181",                              "RocksElements.pcx"     },
+  { "custom_181.xpos",                         "7"                     },
+  { "custom_181.ypos",                         "9"                     },
+  { "custom_181.frames",                       "1"                     },
+  { "custom_181.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_181.EDITOR.xpos",                  "15"                    },
+  { "custom_181.EDITOR.ypos",                  "13"                    },
+
+  { "custom_182",                              "RocksElements.pcx"     },
+  { "custom_182.xpos",                         "7"                     },
+  { "custom_182.ypos",                         "9"                     },
+  { "custom_182.frames",                       "1"                     },
+  { "custom_182.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_182.EDITOR.xpos",                  "15"                    },
+  { "custom_182.EDITOR.ypos",                  "13"                    },
+
+  { "custom_183",                              "RocksElements.pcx"     },
+  { "custom_183.xpos",                         "7"                     },
+  { "custom_183.ypos",                         "9"                     },
+  { "custom_183.frames",                       "1"                     },
+  { "custom_183.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_183.EDITOR.xpos",                  "15"                    },
+  { "custom_183.EDITOR.ypos",                  "13"                    },
+
+  { "custom_184",                              "RocksElements.pcx"     },
+  { "custom_184.xpos",                         "7"                     },
+  { "custom_184.ypos",                         "9"                     },
+  { "custom_184.frames",                       "1"                     },
+  { "custom_184.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_184.EDITOR.xpos",                  "15"                    },
+  { "custom_184.EDITOR.ypos",                  "13"                    },
+
+  { "custom_185",                              "RocksElements.pcx"     },
+  { "custom_185.xpos",                         "7"                     },
+  { "custom_185.ypos",                         "9"                     },
+  { "custom_185.frames",                       "1"                     },
+  { "custom_185.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_185.EDITOR.xpos",                  "15"                    },
+  { "custom_185.EDITOR.ypos",                  "13"                    },
+
+  { "custom_186",                              "RocksElements.pcx"     },
+  { "custom_186.xpos",                         "7"                     },
+  { "custom_186.ypos",                         "9"                     },
+  { "custom_186.frames",                       "1"                     },
+  { "custom_186.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_186.EDITOR.xpos",                  "15"                    },
+  { "custom_186.EDITOR.ypos",                  "13"                    },
+
+  { "custom_187",                              "RocksElements.pcx"     },
+  { "custom_187.xpos",                         "7"                     },
+  { "custom_187.ypos",                         "9"                     },
+  { "custom_187.frames",                       "1"                     },
+  { "custom_187.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_187.EDITOR.xpos",                  "15"                    },
+  { "custom_187.EDITOR.ypos",                  "13"                    },
+
+  { "custom_188",                              "RocksElements.pcx"     },
+  { "custom_188.xpos",                         "7"                     },
+  { "custom_188.ypos",                         "9"                     },
+  { "custom_188.frames",                       "1"                     },
+  { "custom_188.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_188.EDITOR.xpos",                  "15"                    },
+  { "custom_188.EDITOR.ypos",                  "13"                    },
+
+  { "custom_189",                              "RocksElements.pcx"     },
+  { "custom_189.xpos",                         "7"                     },
+  { "custom_189.ypos",                         "9"                     },
+  { "custom_189.frames",                       "1"                     },
+  { "custom_189.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_189.EDITOR.xpos",                  "15"                    },
+  { "custom_189.EDITOR.ypos",                  "13"                    },
+
+  { "custom_190",                              "RocksElements.pcx"     },
+  { "custom_190.xpos",                         "7"                     },
+  { "custom_190.ypos",                         "9"                     },
+  { "custom_190.frames",                       "1"                     },
+  { "custom_190.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_190.EDITOR.xpos",                  "15"                    },
+  { "custom_190.EDITOR.ypos",                  "13"                    },
+
+  { "custom_191",                              "RocksElements.pcx"     },
+  { "custom_191.xpos",                         "7"                     },
+  { "custom_191.ypos",                         "9"                     },
+  { "custom_191.frames",                       "1"                     },
+  { "custom_191.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_191.EDITOR.xpos",                  "15"                    },
+  { "custom_191.EDITOR.ypos",                  "13"                    },
+
+  { "custom_192",                              "RocksElements.pcx"     },
+  { "custom_192.xpos",                         "7"                     },
+  { "custom_192.ypos",                         "9"                     },
+  { "custom_192.frames",                       "1"                     },
+  { "custom_192.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_192.EDITOR.xpos",                  "15"                    },
+  { "custom_192.EDITOR.ypos",                  "13"                    },
+
+  { "custom_193",                              "RocksElements.pcx"     },
+  { "custom_193.xpos",                         "7"                     },
+  { "custom_193.ypos",                         "9"                     },
+  { "custom_193.frames",                       "1"                     },
+  { "custom_193.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_193.EDITOR.xpos",                  "15"                    },
+  { "custom_193.EDITOR.ypos",                  "13"                    },
+
+  { "custom_194",                              "RocksElements.pcx"     },
+  { "custom_194.xpos",                         "7"                     },
+  { "custom_194.ypos",                         "9"                     },
+  { "custom_194.frames",                       "1"                     },
+  { "custom_194.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_194.EDITOR.xpos",                  "15"                    },
+  { "custom_194.EDITOR.ypos",                  "13"                    },
+
+  { "custom_195",                              "RocksElements.pcx"     },
+  { "custom_195.xpos",                         "7"                     },
+  { "custom_195.ypos",                         "9"                     },
+  { "custom_195.frames",                       "1"                     },
+  { "custom_195.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_195.EDITOR.xpos",                  "15"                    },
+  { "custom_195.EDITOR.ypos",                  "13"                    },
+
+  { "custom_196",                              "RocksElements.pcx"     },
+  { "custom_196.xpos",                         "7"                     },
+  { "custom_196.ypos",                         "9"                     },
+  { "custom_196.frames",                       "1"                     },
+  { "custom_196.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_196.EDITOR.xpos",                  "15"                    },
+  { "custom_196.EDITOR.ypos",                  "13"                    },
+
+  { "custom_197",                              "RocksElements.pcx"     },
+  { "custom_197.xpos",                         "7"                     },
+  { "custom_197.ypos",                         "9"                     },
+  { "custom_197.frames",                       "1"                     },
+  { "custom_197.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_197.EDITOR.xpos",                  "15"                    },
+  { "custom_197.EDITOR.ypos",                  "13"                    },
+
+  { "custom_198",                              "RocksElements.pcx"     },
+  { "custom_198.xpos",                         "7"                     },
+  { "custom_198.ypos",                         "9"                     },
+  { "custom_198.frames",                       "1"                     },
+  { "custom_198.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_198.EDITOR.xpos",                  "15"                    },
+  { "custom_198.EDITOR.ypos",                  "13"                    },
+
+  { "custom_199",                              "RocksElements.pcx"     },
+  { "custom_199.xpos",                         "7"                     },
+  { "custom_199.ypos",                         "9"                     },
+  { "custom_199.frames",                       "1"                     },
+  { "custom_199.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_199.EDITOR.xpos",                  "15"                    },
+  { "custom_199.EDITOR.ypos",                  "13"                    },
+
+  { "custom_200",                              "RocksElements.pcx"     },
+  { "custom_200.xpos",                         "7"                     },
+  { "custom_200.ypos",                         "9"                     },
+  { "custom_200.frames",                       "1"                     },
+  { "custom_200.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_200.EDITOR.xpos",                  "15"                    },
+  { "custom_200.EDITOR.ypos",                  "13"                    },
+
+  { "custom_201",                              "RocksElements.pcx"     },
+  { "custom_201.xpos",                         "7"                     },
+  { "custom_201.ypos",                         "9"                     },
+  { "custom_201.frames",                       "1"                     },
+  { "custom_201.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_201.EDITOR.xpos",                  "15"                    },
+  { "custom_201.EDITOR.ypos",                  "13"                    },
+
+  { "custom_202",                              "RocksElements.pcx"     },
+  { "custom_202.xpos",                         "7"                     },
+  { "custom_202.ypos",                         "9"                     },
+  { "custom_202.frames",                       "1"                     },
+  { "custom_202.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_202.EDITOR.xpos",                  "15"                    },
+  { "custom_202.EDITOR.ypos",                  "13"                    },
+
+  { "custom_203",                              "RocksElements.pcx"     },
+  { "custom_203.xpos",                         "7"                     },
+  { "custom_203.ypos",                         "9"                     },
+  { "custom_203.frames",                       "1"                     },
+  { "custom_203.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_203.EDITOR.xpos",                  "15"                    },
+  { "custom_203.EDITOR.ypos",                  "13"                    },
+
+  { "custom_204",                              "RocksElements.pcx"     },
+  { "custom_204.xpos",                         "7"                     },
+  { "custom_204.ypos",                         "9"                     },
+  { "custom_204.frames",                       "1"                     },
+  { "custom_204.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_204.EDITOR.xpos",                  "15"                    },
+  { "custom_204.EDITOR.ypos",                  "13"                    },
+
+  { "custom_205",                              "RocksElements.pcx"     },
+  { "custom_205.xpos",                         "7"                     },
+  { "custom_205.ypos",                         "9"                     },
+  { "custom_205.frames",                       "1"                     },
+  { "custom_205.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_205.EDITOR.xpos",                  "15"                    },
+  { "custom_205.EDITOR.ypos",                  "13"                    },
+
+  { "custom_206",                              "RocksElements.pcx"     },
+  { "custom_206.xpos",                         "7"                     },
+  { "custom_206.ypos",                         "9"                     },
+  { "custom_206.frames",                       "1"                     },
+  { "custom_206.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_206.EDITOR.xpos",                  "15"                    },
+  { "custom_206.EDITOR.ypos",                  "13"                    },
+
+  { "custom_207",                              "RocksElements.pcx"     },
+  { "custom_207.xpos",                         "7"                     },
+  { "custom_207.ypos",                         "9"                     },
+  { "custom_207.frames",                       "1"                     },
+  { "custom_207.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_207.EDITOR.xpos",                  "15"                    },
+  { "custom_207.EDITOR.ypos",                  "13"                    },
+
+  { "custom_208",                              "RocksElements.pcx"     },
+  { "custom_208.xpos",                         "7"                     },
+  { "custom_208.ypos",                         "9"                     },
+  { "custom_208.frames",                       "1"                     },
+  { "custom_208.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_208.EDITOR.xpos",                  "15"                    },
+  { "custom_208.EDITOR.ypos",                  "13"                    },
+
+  { "custom_209",                              "RocksElements.pcx"     },
+  { "custom_209.xpos",                         "7"                     },
+  { "custom_209.ypos",                         "9"                     },
+  { "custom_209.frames",                       "1"                     },
+  { "custom_209.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_209.EDITOR.xpos",                  "15"                    },
+  { "custom_209.EDITOR.ypos",                  "13"                    },
+
+  { "custom_210",                              "RocksElements.pcx"     },
+  { "custom_210.xpos",                         "7"                     },
+  { "custom_210.ypos",                         "9"                     },
+  { "custom_210.frames",                       "1"                     },
+  { "custom_210.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_210.EDITOR.xpos",                  "15"                    },
+  { "custom_210.EDITOR.ypos",                  "13"                    },
+
+  { "custom_211",                              "RocksElements.pcx"     },
+  { "custom_211.xpos",                         "7"                     },
+  { "custom_211.ypos",                         "9"                     },
+  { "custom_211.frames",                       "1"                     },
+  { "custom_211.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_211.EDITOR.xpos",                  "15"                    },
+  { "custom_211.EDITOR.ypos",                  "13"                    },
+
+  { "custom_212",                              "RocksElements.pcx"     },
+  { "custom_212.xpos",                         "7"                     },
+  { "custom_212.ypos",                         "9"                     },
+  { "custom_212.frames",                       "1"                     },
+  { "custom_212.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_212.EDITOR.xpos",                  "15"                    },
+  { "custom_212.EDITOR.ypos",                  "13"                    },
+
+  { "custom_213",                              "RocksElements.pcx"     },
+  { "custom_213.xpos",                         "7"                     },
+  { "custom_213.ypos",                         "9"                     },
+  { "custom_213.frames",                       "1"                     },
+  { "custom_213.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_213.EDITOR.xpos",                  "15"                    },
+  { "custom_213.EDITOR.ypos",                  "13"                    },
+
+  { "custom_214",                              "RocksElements.pcx"     },
+  { "custom_214.xpos",                         "7"                     },
+  { "custom_214.ypos",                         "9"                     },
+  { "custom_214.frames",                       "1"                     },
+  { "custom_214.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_214.EDITOR.xpos",                  "15"                    },
+  { "custom_214.EDITOR.ypos",                  "13"                    },
+
+  { "custom_215",                              "RocksElements.pcx"     },
+  { "custom_215.xpos",                         "7"                     },
+  { "custom_215.ypos",                         "9"                     },
+  { "custom_215.frames",                       "1"                     },
+  { "custom_215.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_215.EDITOR.xpos",                  "15"                    },
+  { "custom_215.EDITOR.ypos",                  "13"                    },
+
+  { "custom_216",                              "RocksElements.pcx"     },
+  { "custom_216.xpos",                         "7"                     },
+  { "custom_216.ypos",                         "9"                     },
+  { "custom_216.frames",                       "1"                     },
+  { "custom_216.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_216.EDITOR.xpos",                  "15"                    },
+  { "custom_216.EDITOR.ypos",                  "13"                    },
+
+  { "custom_217",                              "RocksElements.pcx"     },
+  { "custom_217.xpos",                         "7"                     },
+  { "custom_217.ypos",                         "9"                     },
+  { "custom_217.frames",                       "1"                     },
+  { "custom_217.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_217.EDITOR.xpos",                  "15"                    },
+  { "custom_217.EDITOR.ypos",                  "13"                    },
+
+  { "custom_218",                              "RocksElements.pcx"     },
+  { "custom_218.xpos",                         "7"                     },
+  { "custom_218.ypos",                         "9"                     },
+  { "custom_218.frames",                       "1"                     },
+  { "custom_218.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_218.EDITOR.xpos",                  "15"                    },
+  { "custom_218.EDITOR.ypos",                  "13"                    },
+
+  { "custom_219",                              "RocksElements.pcx"     },
+  { "custom_219.xpos",                         "7"                     },
+  { "custom_219.ypos",                         "9"                     },
+  { "custom_219.frames",                       "1"                     },
+  { "custom_219.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_219.EDITOR.xpos",                  "15"                    },
+  { "custom_219.EDITOR.ypos",                  "13"                    },
+
+  { "custom_220",                              "RocksElements.pcx"     },
+  { "custom_220.xpos",                         "7"                     },
+  { "custom_220.ypos",                         "9"                     },
+  { "custom_220.frames",                       "1"                     },
+  { "custom_220.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_220.EDITOR.xpos",                  "15"                    },
+  { "custom_220.EDITOR.ypos",                  "13"                    },
+
+  { "custom_221",                              "RocksElements.pcx"     },
+  { "custom_221.xpos",                         "7"                     },
+  { "custom_221.ypos",                         "9"                     },
+  { "custom_221.frames",                       "1"                     },
+  { "custom_221.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_221.EDITOR.xpos",                  "15"                    },
+  { "custom_221.EDITOR.ypos",                  "13"                    },
+
+  { "custom_222",                              "RocksElements.pcx"     },
+  { "custom_222.xpos",                         "7"                     },
+  { "custom_222.ypos",                         "9"                     },
+  { "custom_222.frames",                       "1"                     },
+  { "custom_222.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_222.EDITOR.xpos",                  "15"                    },
+  { "custom_222.EDITOR.ypos",                  "13"                    },
+
+  { "custom_223",                              "RocksElements.pcx"     },
+  { "custom_223.xpos",                         "7"                     },
+  { "custom_223.ypos",                         "9"                     },
+  { "custom_223.frames",                       "1"                     },
+  { "custom_223.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_223.EDITOR.xpos",                  "15"                    },
+  { "custom_223.EDITOR.ypos",                  "13"                    },
+
+  { "custom_224",                              "RocksElements.pcx"     },
+  { "custom_224.xpos",                         "7"                     },
+  { "custom_224.ypos",                         "9"                     },
+  { "custom_224.frames",                       "1"                     },
+  { "custom_224.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_224.EDITOR.xpos",                  "15"                    },
+  { "custom_224.EDITOR.ypos",                  "13"                    },
+
+  { "custom_225",                              "RocksElements.pcx"     },
+  { "custom_225.xpos",                         "7"                     },
+  { "custom_225.ypos",                         "9"                     },
+  { "custom_225.frames",                       "1"                     },
+  { "custom_225.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_225.EDITOR.xpos",                  "15"                    },
+  { "custom_225.EDITOR.ypos",                  "13"                    },
+
+  { "custom_226",                              "RocksElements.pcx"     },
+  { "custom_226.xpos",                         "7"                     },
+  { "custom_226.ypos",                         "9"                     },
+  { "custom_226.frames",                       "1"                     },
+  { "custom_226.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_226.EDITOR.xpos",                  "15"                    },
+  { "custom_226.EDITOR.ypos",                  "13"                    },
+
+  { "custom_227",                              "RocksElements.pcx"     },
+  { "custom_227.xpos",                         "7"                     },
+  { "custom_227.ypos",                         "9"                     },
+  { "custom_227.frames",                       "1"                     },
+  { "custom_227.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_227.EDITOR.xpos",                  "15"                    },
+  { "custom_227.EDITOR.ypos",                  "13"                    },
+
+  { "custom_228",                              "RocksElements.pcx"     },
+  { "custom_228.xpos",                         "7"                     },
+  { "custom_228.ypos",                         "9"                     },
+  { "custom_228.frames",                       "1"                     },
+  { "custom_228.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_228.EDITOR.xpos",                  "15"                    },
+  { "custom_228.EDITOR.ypos",                  "13"                    },
+
+  { "custom_229",                              "RocksElements.pcx"     },
+  { "custom_229.xpos",                         "7"                     },
+  { "custom_229.ypos",                         "9"                     },
+  { "custom_229.frames",                       "1"                     },
+  { "custom_229.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_229.EDITOR.xpos",                  "15"                    },
+  { "custom_229.EDITOR.ypos",                  "13"                    },
+
+  { "custom_230",                              "RocksElements.pcx"     },
+  { "custom_230.xpos",                         "7"                     },
+  { "custom_230.ypos",                         "9"                     },
+  { "custom_230.frames",                       "1"                     },
+  { "custom_230.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_230.EDITOR.xpos",                  "15"                    },
+  { "custom_230.EDITOR.ypos",                  "13"                    },
+
+  { "custom_231",                              "RocksElements.pcx"     },
+  { "custom_231.xpos",                         "7"                     },
+  { "custom_231.ypos",                         "9"                     },
+  { "custom_231.frames",                       "1"                     },
+  { "custom_231.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_231.EDITOR.xpos",                  "15"                    },
+  { "custom_231.EDITOR.ypos",                  "13"                    },
+
+  { "custom_232",                              "RocksElements.pcx"     },
+  { "custom_232.xpos",                         "7"                     },
+  { "custom_232.ypos",                         "9"                     },
+  { "custom_232.frames",                       "1"                     },
+  { "custom_232.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_232.EDITOR.xpos",                  "15"                    },
+  { "custom_232.EDITOR.ypos",                  "13"                    },
+
+  { "custom_233",                              "RocksElements.pcx"     },
+  { "custom_233.xpos",                         "7"                     },
+  { "custom_233.ypos",                         "9"                     },
+  { "custom_233.frames",                       "1"                     },
+  { "custom_233.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_233.EDITOR.xpos",                  "15"                    },
+  { "custom_233.EDITOR.ypos",                  "13"                    },
+
+  { "custom_234",                              "RocksElements.pcx"     },
+  { "custom_234.xpos",                         "7"                     },
+  { "custom_234.ypos",                         "9"                     },
+  { "custom_234.frames",                       "1"                     },
+  { "custom_234.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_234.EDITOR.xpos",                  "15"                    },
+  { "custom_234.EDITOR.ypos",                  "13"                    },
+
+  { "custom_235",                              "RocksElements.pcx"     },
+  { "custom_235.xpos",                         "7"                     },
+  { "custom_235.ypos",                         "9"                     },
+  { "custom_235.frames",                       "1"                     },
+  { "custom_235.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_235.EDITOR.xpos",                  "15"                    },
+  { "custom_235.EDITOR.ypos",                  "13"                    },
+
+  { "custom_236",                              "RocksElements.pcx"     },
+  { "custom_236.xpos",                         "7"                     },
+  { "custom_236.ypos",                         "9"                     },
+  { "custom_236.frames",                       "1"                     },
+  { "custom_236.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_236.EDITOR.xpos",                  "15"                    },
+  { "custom_236.EDITOR.ypos",                  "13"                    },
+
+  { "custom_237",                              "RocksElements.pcx"     },
+  { "custom_237.xpos",                         "7"                     },
+  { "custom_237.ypos",                         "9"                     },
+  { "custom_237.frames",                       "1"                     },
+  { "custom_237.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_237.EDITOR.xpos",                  "15"                    },
+  { "custom_237.EDITOR.ypos",                  "13"                    },
+
+  { "custom_238",                              "RocksElements.pcx"     },
+  { "custom_238.xpos",                         "7"                     },
+  { "custom_238.ypos",                         "9"                     },
+  { "custom_238.frames",                       "1"                     },
+  { "custom_238.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_238.EDITOR.xpos",                  "15"                    },
+  { "custom_238.EDITOR.ypos",                  "13"                    },
+
+  { "custom_239",                              "RocksElements.pcx"     },
+  { "custom_239.xpos",                         "7"                     },
+  { "custom_239.ypos",                         "9"                     },
+  { "custom_239.frames",                       "1"                     },
+  { "custom_239.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_239.EDITOR.xpos",                  "15"                    },
+  { "custom_239.EDITOR.ypos",                  "13"                    },
+
+  { "custom_240",                              "RocksElements.pcx"     },
+  { "custom_240.xpos",                         "7"                     },
+  { "custom_240.ypos",                         "9"                     },
+  { "custom_240.frames",                       "1"                     },
+  { "custom_240.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_240.EDITOR.xpos",                  "15"                    },
+  { "custom_240.EDITOR.ypos",                  "13"                    },
+
+  { "custom_241",                              "RocksElements.pcx"     },
+  { "custom_241.xpos",                         "7"                     },
+  { "custom_241.ypos",                         "9"                     },
+  { "custom_241.frames",                       "1"                     },
+  { "custom_241.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_241.EDITOR.xpos",                  "15"                    },
+  { "custom_241.EDITOR.ypos",                  "13"                    },
+
+  { "custom_242",                              "RocksElements.pcx"     },
+  { "custom_242.xpos",                         "7"                     },
+  { "custom_242.ypos",                         "9"                     },
+  { "custom_242.frames",                       "1"                     },
+  { "custom_242.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_242.EDITOR.xpos",                  "15"                    },
+  { "custom_242.EDITOR.ypos",                  "13"                    },
+
+  { "custom_243",                              "RocksElements.pcx"     },
+  { "custom_243.xpos",                         "7"                     },
+  { "custom_243.ypos",                         "9"                     },
+  { "custom_243.frames",                       "1"                     },
+  { "custom_243.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_243.EDITOR.xpos",                  "15"                    },
+  { "custom_243.EDITOR.ypos",                  "13"                    },
+
+  { "custom_244",                              "RocksElements.pcx"     },
+  { "custom_244.xpos",                         "7"                     },
+  { "custom_244.ypos",                         "9"                     },
+  { "custom_244.frames",                       "1"                     },
+  { "custom_244.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_244.EDITOR.xpos",                  "15"                    },
+  { "custom_244.EDITOR.ypos",                  "13"                    },
+
+  { "custom_245",                              "RocksElements.pcx"     },
+  { "custom_245.xpos",                         "7"                     },
+  { "custom_245.ypos",                         "9"                     },
+  { "custom_245.frames",                       "1"                     },
+  { "custom_245.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_245.EDITOR.xpos",                  "15"                    },
+  { "custom_245.EDITOR.ypos",                  "13"                    },
+
+  { "custom_246",                              "RocksElements.pcx"     },
+  { "custom_246.xpos",                         "7"                     },
+  { "custom_246.ypos",                         "9"                     },
+  { "custom_246.frames",                       "1"                     },
+  { "custom_246.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_246.EDITOR.xpos",                  "15"                    },
+  { "custom_246.EDITOR.ypos",                  "13"                    },
+
+  { "custom_247",                              "RocksElements.pcx"     },
+  { "custom_247.xpos",                         "7"                     },
+  { "custom_247.ypos",                         "9"                     },
+  { "custom_247.frames",                       "1"                     },
+  { "custom_247.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_247.EDITOR.xpos",                  "15"                    },
+  { "custom_247.EDITOR.ypos",                  "13"                    },
+
+  { "custom_248",                              "RocksElements.pcx"     },
+  { "custom_248.xpos",                         "7"                     },
+  { "custom_248.ypos",                         "9"                     },
+  { "custom_248.frames",                       "1"                     },
+  { "custom_248.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_248.EDITOR.xpos",                  "15"                    },
+  { "custom_248.EDITOR.ypos",                  "13"                    },
+
+  { "custom_249",                              "RocksElements.pcx"     },
+  { "custom_249.xpos",                         "7"                     },
+  { "custom_249.ypos",                         "9"                     },
+  { "custom_249.frames",                       "1"                     },
+  { "custom_249.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_249.EDITOR.xpos",                  "15"                    },
+  { "custom_249.EDITOR.ypos",                  "13"                    },
+
+  { "custom_250",                              "RocksElements.pcx"     },
+  { "custom_250.xpos",                         "7"                     },
+  { "custom_250.ypos",                         "9"                     },
+  { "custom_250.frames",                       "1"                     },
+  { "custom_250.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_250.EDITOR.xpos",                  "15"                    },
+  { "custom_250.EDITOR.ypos",                  "13"                    },
+
+  { "custom_251",                              "RocksElements.pcx"     },
+  { "custom_251.xpos",                         "7"                     },
+  { "custom_251.ypos",                         "9"                     },
+  { "custom_251.frames",                       "1"                     },
+  { "custom_251.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_251.EDITOR.xpos",                  "15"                    },
+  { "custom_251.EDITOR.ypos",                  "13"                    },
+
+  { "custom_252",                              "RocksElements.pcx"     },
+  { "custom_252.xpos",                         "7"                     },
+  { "custom_252.ypos",                         "9"                     },
+  { "custom_252.frames",                       "1"                     },
+  { "custom_252.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_252.EDITOR.xpos",                  "15"                    },
+  { "custom_252.EDITOR.ypos",                  "13"                    },
+
+  { "custom_253",                              "RocksElements.pcx"     },
+  { "custom_253.xpos",                         "7"                     },
+  { "custom_253.ypos",                         "9"                     },
+  { "custom_253.frames",                       "1"                     },
+  { "custom_253.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_253.EDITOR.xpos",                  "15"                    },
+  { "custom_253.EDITOR.ypos",                  "13"                    },
+
+  { "custom_254",                              "RocksElements.pcx"     },
+  { "custom_254.xpos",                         "7"                     },
+  { "custom_254.ypos",                         "9"                     },
+  { "custom_254.frames",                       "1"                     },
+  { "custom_254.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_254.EDITOR.xpos",                  "15"                    },
+  { "custom_254.EDITOR.ypos",                  "13"                    },
+
+  { "custom_255",                              "RocksElements.pcx"     },
+  { "custom_255.xpos",                         "7"                     },
+  { "custom_255.ypos",                         "9"                     },
+  { "custom_255.frames",                       "1"                     },
+  { "custom_255.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_255.EDITOR.xpos",                  "15"                    },
+  { "custom_255.EDITOR.ypos",                  "13"                    },
+
+  { "custom_256",                              "RocksElements.pcx"     },
+  { "custom_256.xpos",                         "7"                     },
+  { "custom_256.ypos",                         "9"                     },
+  { "custom_256.frames",                       "1"                     },
+  { "custom_256.EDITOR",                       "RocksElements.pcx"     },
+  { "custom_256.EDITOR.xpos",                  "15"                    },
+  { "custom_256.EDITOR.ypos",                  "13"                    },
+
 
 #endif /* CONF_CUS_C */
index 425334be397f5cf9cf103ed6e186b479a9a542bf..867cd125152a4d9efc6ca89ecc07fe00aa1fb85b 100644 (file)
 #define EL_CUSTOM_126                  (EL_CUSTOM_START + 125)
 #define EL_CUSTOM_127                  (EL_CUSTOM_START + 126)
 #define EL_CUSTOM_128                  (EL_CUSTOM_START + 127)
+#define EL_CUSTOM_129                  (EL_CUSTOM_START + 128)
+#define EL_CUSTOM_130                  (EL_CUSTOM_START + 129)
+#define EL_CUSTOM_131                  (EL_CUSTOM_START + 130)
+#define EL_CUSTOM_132                  (EL_CUSTOM_START + 131)
+#define EL_CUSTOM_133                  (EL_CUSTOM_START + 132)
+#define EL_CUSTOM_134                  (EL_CUSTOM_START + 133)
+#define EL_CUSTOM_135                  (EL_CUSTOM_START + 134)
+#define EL_CUSTOM_136                  (EL_CUSTOM_START + 135)
+#define EL_CUSTOM_137                  (EL_CUSTOM_START + 136)
+#define EL_CUSTOM_138                  (EL_CUSTOM_START + 137)
+#define EL_CUSTOM_139                  (EL_CUSTOM_START + 138)
+#define EL_CUSTOM_140                  (EL_CUSTOM_START + 139)
+#define EL_CUSTOM_141                  (EL_CUSTOM_START + 140)
+#define EL_CUSTOM_142                  (EL_CUSTOM_START + 141)
+#define EL_CUSTOM_143                  (EL_CUSTOM_START + 142)
+#define EL_CUSTOM_144                  (EL_CUSTOM_START + 143)
+#define EL_CUSTOM_145                  (EL_CUSTOM_START + 144)
+#define EL_CUSTOM_146                  (EL_CUSTOM_START + 145)
+#define EL_CUSTOM_147                  (EL_CUSTOM_START + 146)
+#define EL_CUSTOM_148                  (EL_CUSTOM_START + 147)
+#define EL_CUSTOM_149                  (EL_CUSTOM_START + 148)
+#define EL_CUSTOM_150                  (EL_CUSTOM_START + 149)
+#define EL_CUSTOM_151                  (EL_CUSTOM_START + 150)
+#define EL_CUSTOM_152                  (EL_CUSTOM_START + 151)
+#define EL_CUSTOM_153                  (EL_CUSTOM_START + 152)
+#define EL_CUSTOM_154                  (EL_CUSTOM_START + 153)
+#define EL_CUSTOM_155                  (EL_CUSTOM_START + 154)
+#define EL_CUSTOM_156                  (EL_CUSTOM_START + 155)
+#define EL_CUSTOM_157                  (EL_CUSTOM_START + 156)
+#define EL_CUSTOM_158                  (EL_CUSTOM_START + 157)
+#define EL_CUSTOM_159                  (EL_CUSTOM_START + 158)
+#define EL_CUSTOM_160                  (EL_CUSTOM_START + 159)
+#define EL_CUSTOM_161                  (EL_CUSTOM_START + 160)
+#define EL_CUSTOM_162                  (EL_CUSTOM_START + 161)
+#define EL_CUSTOM_163                  (EL_CUSTOM_START + 162)
+#define EL_CUSTOM_164                  (EL_CUSTOM_START + 163)
+#define EL_CUSTOM_165                  (EL_CUSTOM_START + 164)
+#define EL_CUSTOM_166                  (EL_CUSTOM_START + 165)
+#define EL_CUSTOM_167                  (EL_CUSTOM_START + 166)
+#define EL_CUSTOM_168                  (EL_CUSTOM_START + 167)
+#define EL_CUSTOM_169                  (EL_CUSTOM_START + 168)
+#define EL_CUSTOM_170                  (EL_CUSTOM_START + 169)
+#define EL_CUSTOM_171                  (EL_CUSTOM_START + 170)
+#define EL_CUSTOM_172                  (EL_CUSTOM_START + 171)
+#define EL_CUSTOM_173                  (EL_CUSTOM_START + 172)
+#define EL_CUSTOM_174                  (EL_CUSTOM_START + 173)
+#define EL_CUSTOM_175                  (EL_CUSTOM_START + 174)
+#define EL_CUSTOM_176                  (EL_CUSTOM_START + 175)
+#define EL_CUSTOM_177                  (EL_CUSTOM_START + 176)
+#define EL_CUSTOM_178                  (EL_CUSTOM_START + 177)
+#define EL_CUSTOM_179                  (EL_CUSTOM_START + 178)
+#define EL_CUSTOM_180                  (EL_CUSTOM_START + 179)
+#define EL_CUSTOM_181                  (EL_CUSTOM_START + 180)
+#define EL_CUSTOM_182                  (EL_CUSTOM_START + 181)
+#define EL_CUSTOM_183                  (EL_CUSTOM_START + 182)
+#define EL_CUSTOM_184                  (EL_CUSTOM_START + 183)
+#define EL_CUSTOM_185                  (EL_CUSTOM_START + 184)
+#define EL_CUSTOM_186                  (EL_CUSTOM_START + 185)
+#define EL_CUSTOM_187                  (EL_CUSTOM_START + 186)
+#define EL_CUSTOM_188                  (EL_CUSTOM_START + 187)
+#define EL_CUSTOM_189                  (EL_CUSTOM_START + 188)
+#define EL_CUSTOM_190                  (EL_CUSTOM_START + 189)
+#define EL_CUSTOM_191                  (EL_CUSTOM_START + 190)
+#define EL_CUSTOM_192                  (EL_CUSTOM_START + 191)
+#define EL_CUSTOM_193                  (EL_CUSTOM_START + 192)
+#define EL_CUSTOM_194                  (EL_CUSTOM_START + 193)
+#define EL_CUSTOM_195                  (EL_CUSTOM_START + 194)
+#define EL_CUSTOM_196                  (EL_CUSTOM_START + 195)
+#define EL_CUSTOM_197                  (EL_CUSTOM_START + 196)
+#define EL_CUSTOM_198                  (EL_CUSTOM_START + 197)
+#define EL_CUSTOM_199                  (EL_CUSTOM_START + 198)
+#define EL_CUSTOM_200                  (EL_CUSTOM_START + 199)
+#define EL_CUSTOM_201                  (EL_CUSTOM_START + 200)
+#define EL_CUSTOM_202                  (EL_CUSTOM_START + 201)
+#define EL_CUSTOM_203                  (EL_CUSTOM_START + 202)
+#define EL_CUSTOM_204                  (EL_CUSTOM_START + 203)
+#define EL_CUSTOM_205                  (EL_CUSTOM_START + 204)
+#define EL_CUSTOM_206                  (EL_CUSTOM_START + 205)
+#define EL_CUSTOM_207                  (EL_CUSTOM_START + 206)
+#define EL_CUSTOM_208                  (EL_CUSTOM_START + 207)
+#define EL_CUSTOM_209                  (EL_CUSTOM_START + 208)
+#define EL_CUSTOM_210                  (EL_CUSTOM_START + 209)
+#define EL_CUSTOM_211                  (EL_CUSTOM_START + 210)
+#define EL_CUSTOM_212                  (EL_CUSTOM_START + 211)
+#define EL_CUSTOM_213                  (EL_CUSTOM_START + 212)
+#define EL_CUSTOM_214                  (EL_CUSTOM_START + 213)
+#define EL_CUSTOM_215                  (EL_CUSTOM_START + 214)
+#define EL_CUSTOM_216                  (EL_CUSTOM_START + 215)
+#define EL_CUSTOM_217                  (EL_CUSTOM_START + 216)
+#define EL_CUSTOM_218                  (EL_CUSTOM_START + 217)
+#define EL_CUSTOM_219                  (EL_CUSTOM_START + 218)
+#define EL_CUSTOM_220                  (EL_CUSTOM_START + 219)
+#define EL_CUSTOM_221                  (EL_CUSTOM_START + 220)
+#define EL_CUSTOM_222                  (EL_CUSTOM_START + 221)
+#define EL_CUSTOM_223                  (EL_CUSTOM_START + 222)
+#define EL_CUSTOM_224                  (EL_CUSTOM_START + 223)
+#define EL_CUSTOM_225                  (EL_CUSTOM_START + 224)
+#define EL_CUSTOM_226                  (EL_CUSTOM_START + 225)
+#define EL_CUSTOM_227                  (EL_CUSTOM_START + 226)
+#define EL_CUSTOM_228                  (EL_CUSTOM_START + 227)
+#define EL_CUSTOM_229                  (EL_CUSTOM_START + 228)
+#define EL_CUSTOM_230                  (EL_CUSTOM_START + 229)
+#define EL_CUSTOM_231                  (EL_CUSTOM_START + 230)
+#define EL_CUSTOM_232                  (EL_CUSTOM_START + 231)
+#define EL_CUSTOM_233                  (EL_CUSTOM_START + 232)
+#define EL_CUSTOM_234                  (EL_CUSTOM_START + 233)
+#define EL_CUSTOM_235                  (EL_CUSTOM_START + 234)
+#define EL_CUSTOM_236                  (EL_CUSTOM_START + 235)
+#define EL_CUSTOM_237                  (EL_CUSTOM_START + 236)
+#define EL_CUSTOM_238                  (EL_CUSTOM_START + 237)
+#define EL_CUSTOM_239                  (EL_CUSTOM_START + 238)
+#define EL_CUSTOM_240                  (EL_CUSTOM_START + 239)
+#define EL_CUSTOM_241                  (EL_CUSTOM_START + 240)
+#define EL_CUSTOM_242                  (EL_CUSTOM_START + 241)
+#define EL_CUSTOM_243                  (EL_CUSTOM_START + 242)
+#define EL_CUSTOM_244                  (EL_CUSTOM_START + 243)
+#define EL_CUSTOM_245                  (EL_CUSTOM_START + 244)
+#define EL_CUSTOM_246                  (EL_CUSTOM_START + 245)
+#define EL_CUSTOM_247                  (EL_CUSTOM_START + 246)
+#define EL_CUSTOM_248                  (EL_CUSTOM_START + 247)
+#define EL_CUSTOM_249                  (EL_CUSTOM_START + 248)
+#define EL_CUSTOM_250                  (EL_CUSTOM_START + 249)
+#define EL_CUSTOM_251                  (EL_CUSTOM_START + 250)
+#define EL_CUSTOM_252                  (EL_CUSTOM_START + 251)
+#define EL_CUSTOM_253                  (EL_CUSTOM_START + 252)
+#define EL_CUSTOM_254                  (EL_CUSTOM_START + 253)
+#define EL_CUSTOM_255                  (EL_CUSTOM_START + 254)
+#define EL_CUSTOM_256                  (EL_CUSTOM_START + 255)
 
 #endif /* CONF_CUS_C */
index 2b9b2e006738320cda819d746dd954b9d38a1f1d..8e88f2b0807ff1eaaad77fba6902a49f57b7c986 100644 (file)
@@ -341,6 +341,14 @@ element_to_graphic[] =
     EL_SP_DISK_RED,                    ACTION_COLLECTING, -1, FALSE,
     IMG_SP_DISK_RED_COLLECTING
   },
+  {
+    EL_SP_DISK_RED_ACTIVE,             -1, -1, FALSE,
+    IMG_SP_DISK_RED_ACTIVE
+  },
+  {
+    EL_SP_DISK_RED,                    ACTION_ACTIVE, -1, FALSE,
+    IMG_SP_DISK_RED_ACTIVE
+  },
   {
     EL_SP_PORT_RIGHT,                  -1, -1, FALSE,
     IMG_SP_PORT_RIGHT
@@ -3309,6 +3317,518 @@ element_to_graphic[] =
     EL_CUSTOM_128,                     -1, -1, FALSE,
     IMG_CUSTOM_128
   },
+  {
+    EL_CUSTOM_129,                     -1, -1, FALSE,
+    IMG_CUSTOM_129
+  },
+  {
+    EL_CUSTOM_130,                     -1, -1, FALSE,
+    IMG_CUSTOM_130
+  },
+  {
+    EL_CUSTOM_131,                     -1, -1, FALSE,
+    IMG_CUSTOM_131
+  },
+  {
+    EL_CUSTOM_132,                     -1, -1, FALSE,
+    IMG_CUSTOM_132
+  },
+  {
+    EL_CUSTOM_133,                     -1, -1, FALSE,
+    IMG_CUSTOM_133
+  },
+  {
+    EL_CUSTOM_134,                     -1, -1, FALSE,
+    IMG_CUSTOM_134
+  },
+  {
+    EL_CUSTOM_135,                     -1, -1, FALSE,
+    IMG_CUSTOM_135
+  },
+  {
+    EL_CUSTOM_136,                     -1, -1, FALSE,
+    IMG_CUSTOM_136
+  },
+  {
+    EL_CUSTOM_137,                     -1, -1, FALSE,
+    IMG_CUSTOM_137
+  },
+  {
+    EL_CUSTOM_138,                     -1, -1, FALSE,
+    IMG_CUSTOM_138
+  },
+  {
+    EL_CUSTOM_139,                     -1, -1, FALSE,
+    IMG_CUSTOM_139
+  },
+  {
+    EL_CUSTOM_140,                     -1, -1, FALSE,
+    IMG_CUSTOM_140
+  },
+  {
+    EL_CUSTOM_141,                     -1, -1, FALSE,
+    IMG_CUSTOM_141
+  },
+  {
+    EL_CUSTOM_142,                     -1, -1, FALSE,
+    IMG_CUSTOM_142
+  },
+  {
+    EL_CUSTOM_143,                     -1, -1, FALSE,
+    IMG_CUSTOM_143
+  },
+  {
+    EL_CUSTOM_144,                     -1, -1, FALSE,
+    IMG_CUSTOM_144
+  },
+  {
+    EL_CUSTOM_145,                     -1, -1, FALSE,
+    IMG_CUSTOM_145
+  },
+  {
+    EL_CUSTOM_146,                     -1, -1, FALSE,
+    IMG_CUSTOM_146
+  },
+  {
+    EL_CUSTOM_147,                     -1, -1, FALSE,
+    IMG_CUSTOM_147
+  },
+  {
+    EL_CUSTOM_148,                     -1, -1, FALSE,
+    IMG_CUSTOM_148
+  },
+  {
+    EL_CUSTOM_149,                     -1, -1, FALSE,
+    IMG_CUSTOM_149
+  },
+  {
+    EL_CUSTOM_150,                     -1, -1, FALSE,
+    IMG_CUSTOM_150
+  },
+  {
+    EL_CUSTOM_151,                     -1, -1, FALSE,
+    IMG_CUSTOM_151
+  },
+  {
+    EL_CUSTOM_152,                     -1, -1, FALSE,
+    IMG_CUSTOM_152
+  },
+  {
+    EL_CUSTOM_153,                     -1, -1, FALSE,
+    IMG_CUSTOM_153
+  },
+  {
+    EL_CUSTOM_154,                     -1, -1, FALSE,
+    IMG_CUSTOM_154
+  },
+  {
+    EL_CUSTOM_155,                     -1, -1, FALSE,
+    IMG_CUSTOM_155
+  },
+  {
+    EL_CUSTOM_156,                     -1, -1, FALSE,
+    IMG_CUSTOM_156
+  },
+  {
+    EL_CUSTOM_157,                     -1, -1, FALSE,
+    IMG_CUSTOM_157
+  },
+  {
+    EL_CUSTOM_158,                     -1, -1, FALSE,
+    IMG_CUSTOM_158
+  },
+  {
+    EL_CUSTOM_159,                     -1, -1, FALSE,
+    IMG_CUSTOM_159
+  },
+  {
+    EL_CUSTOM_160,                     -1, -1, FALSE,
+    IMG_CUSTOM_160
+  },
+  {
+    EL_CUSTOM_161,                     -1, -1, FALSE,
+    IMG_CUSTOM_161
+  },
+  {
+    EL_CUSTOM_162,                     -1, -1, FALSE,
+    IMG_CUSTOM_162
+  },
+  {
+    EL_CUSTOM_163,                     -1, -1, FALSE,
+    IMG_CUSTOM_163
+  },
+  {
+    EL_CUSTOM_164,                     -1, -1, FALSE,
+    IMG_CUSTOM_164
+  },
+  {
+    EL_CUSTOM_165,                     -1, -1, FALSE,
+    IMG_CUSTOM_165
+  },
+  {
+    EL_CUSTOM_166,                     -1, -1, FALSE,
+    IMG_CUSTOM_166
+  },
+  {
+    EL_CUSTOM_167,                     -1, -1, FALSE,
+    IMG_CUSTOM_167
+  },
+  {
+    EL_CUSTOM_168,                     -1, -1, FALSE,
+    IMG_CUSTOM_168
+  },
+  {
+    EL_CUSTOM_169,                     -1, -1, FALSE,
+    IMG_CUSTOM_169
+  },
+  {
+    EL_CUSTOM_170,                     -1, -1, FALSE,
+    IMG_CUSTOM_170
+  },
+  {
+    EL_CUSTOM_171,                     -1, -1, FALSE,
+    IMG_CUSTOM_171
+  },
+  {
+    EL_CUSTOM_172,                     -1, -1, FALSE,
+    IMG_CUSTOM_172
+  },
+  {
+    EL_CUSTOM_173,                     -1, -1, FALSE,
+    IMG_CUSTOM_173
+  },
+  {
+    EL_CUSTOM_174,                     -1, -1, FALSE,
+    IMG_CUSTOM_174
+  },
+  {
+    EL_CUSTOM_175,                     -1, -1, FALSE,
+    IMG_CUSTOM_175
+  },
+  {
+    EL_CUSTOM_176,                     -1, -1, FALSE,
+    IMG_CUSTOM_176
+  },
+  {
+    EL_CUSTOM_177,                     -1, -1, FALSE,
+    IMG_CUSTOM_177
+  },
+  {
+    EL_CUSTOM_178,                     -1, -1, FALSE,
+    IMG_CUSTOM_178
+  },
+  {
+    EL_CUSTOM_179,                     -1, -1, FALSE,
+    IMG_CUSTOM_179
+  },
+  {
+    EL_CUSTOM_180,                     -1, -1, FALSE,
+    IMG_CUSTOM_180
+  },
+  {
+    EL_CUSTOM_181,                     -1, -1, FALSE,
+    IMG_CUSTOM_181
+  },
+  {
+    EL_CUSTOM_182,                     -1, -1, FALSE,
+    IMG_CUSTOM_182
+  },
+  {
+    EL_CUSTOM_183,                     -1, -1, FALSE,
+    IMG_CUSTOM_183
+  },
+  {
+    EL_CUSTOM_184,                     -1, -1, FALSE,
+    IMG_CUSTOM_184
+  },
+  {
+    EL_CUSTOM_185,                     -1, -1, FALSE,
+    IMG_CUSTOM_185
+  },
+  {
+    EL_CUSTOM_186,                     -1, -1, FALSE,
+    IMG_CUSTOM_186
+  },
+  {
+    EL_CUSTOM_187,                     -1, -1, FALSE,
+    IMG_CUSTOM_187
+  },
+  {
+    EL_CUSTOM_188,                     -1, -1, FALSE,
+    IMG_CUSTOM_188
+  },
+  {
+    EL_CUSTOM_189,                     -1, -1, FALSE,
+    IMG_CUSTOM_189
+  },
+  {
+    EL_CUSTOM_190,                     -1, -1, FALSE,
+    IMG_CUSTOM_190
+  },
+  {
+    EL_CUSTOM_191,                     -1, -1, FALSE,
+    IMG_CUSTOM_191
+  },
+  {
+    EL_CUSTOM_192,                     -1, -1, FALSE,
+    IMG_CUSTOM_192
+  },
+  {
+    EL_CUSTOM_193,                     -1, -1, FALSE,
+    IMG_CUSTOM_193
+  },
+  {
+    EL_CUSTOM_194,                     -1, -1, FALSE,
+    IMG_CUSTOM_194
+  },
+  {
+    EL_CUSTOM_195,                     -1, -1, FALSE,
+    IMG_CUSTOM_195
+  },
+  {
+    EL_CUSTOM_196,                     -1, -1, FALSE,
+    IMG_CUSTOM_196
+  },
+  {
+    EL_CUSTOM_197,                     -1, -1, FALSE,
+    IMG_CUSTOM_197
+  },
+  {
+    EL_CUSTOM_198,                     -1, -1, FALSE,
+    IMG_CUSTOM_198
+  },
+  {
+    EL_CUSTOM_199,                     -1, -1, FALSE,
+    IMG_CUSTOM_199
+  },
+  {
+    EL_CUSTOM_200,                     -1, -1, FALSE,
+    IMG_CUSTOM_200
+  },
+  {
+    EL_CUSTOM_201,                     -1, -1, FALSE,
+    IMG_CUSTOM_201
+  },
+  {
+    EL_CUSTOM_202,                     -1, -1, FALSE,
+    IMG_CUSTOM_202
+  },
+  {
+    EL_CUSTOM_203,                     -1, -1, FALSE,
+    IMG_CUSTOM_203
+  },
+  {
+    EL_CUSTOM_204,                     -1, -1, FALSE,
+    IMG_CUSTOM_204
+  },
+  {
+    EL_CUSTOM_205,                     -1, -1, FALSE,
+    IMG_CUSTOM_205
+  },
+  {
+    EL_CUSTOM_206,                     -1, -1, FALSE,
+    IMG_CUSTOM_206
+  },
+  {
+    EL_CUSTOM_207,                     -1, -1, FALSE,
+    IMG_CUSTOM_207
+  },
+  {
+    EL_CUSTOM_208,                     -1, -1, FALSE,
+    IMG_CUSTOM_208
+  },
+  {
+    EL_CUSTOM_209,                     -1, -1, FALSE,
+    IMG_CUSTOM_209
+  },
+  {
+    EL_CUSTOM_210,                     -1, -1, FALSE,
+    IMG_CUSTOM_210
+  },
+  {
+    EL_CUSTOM_211,                     -1, -1, FALSE,
+    IMG_CUSTOM_211
+  },
+  {
+    EL_CUSTOM_212,                     -1, -1, FALSE,
+    IMG_CUSTOM_212
+  },
+  {
+    EL_CUSTOM_213,                     -1, -1, FALSE,
+    IMG_CUSTOM_213
+  },
+  {
+    EL_CUSTOM_214,                     -1, -1, FALSE,
+    IMG_CUSTOM_214
+  },
+  {
+    EL_CUSTOM_215,                     -1, -1, FALSE,
+    IMG_CUSTOM_215
+  },
+  {
+    EL_CUSTOM_216,                     -1, -1, FALSE,
+    IMG_CUSTOM_216
+  },
+  {
+    EL_CUSTOM_217,                     -1, -1, FALSE,
+    IMG_CUSTOM_217
+  },
+  {
+    EL_CUSTOM_218,                     -1, -1, FALSE,
+    IMG_CUSTOM_218
+  },
+  {
+    EL_CUSTOM_219,                     -1, -1, FALSE,
+    IMG_CUSTOM_219
+  },
+  {
+    EL_CUSTOM_220,                     -1, -1, FALSE,
+    IMG_CUSTOM_220
+  },
+  {
+    EL_CUSTOM_221,                     -1, -1, FALSE,
+    IMG_CUSTOM_221
+  },
+  {
+    EL_CUSTOM_222,                     -1, -1, FALSE,
+    IMG_CUSTOM_222
+  },
+  {
+    EL_CUSTOM_223,                     -1, -1, FALSE,
+    IMG_CUSTOM_223
+  },
+  {
+    EL_CUSTOM_224,                     -1, -1, FALSE,
+    IMG_CUSTOM_224
+  },
+  {
+    EL_CUSTOM_225,                     -1, -1, FALSE,
+    IMG_CUSTOM_225
+  },
+  {
+    EL_CUSTOM_226,                     -1, -1, FALSE,
+    IMG_CUSTOM_226
+  },
+  {
+    EL_CUSTOM_227,                     -1, -1, FALSE,
+    IMG_CUSTOM_227
+  },
+  {
+    EL_CUSTOM_228,                     -1, -1, FALSE,
+    IMG_CUSTOM_228
+  },
+  {
+    EL_CUSTOM_229,                     -1, -1, FALSE,
+    IMG_CUSTOM_229
+  },
+  {
+    EL_CUSTOM_230,                     -1, -1, FALSE,
+    IMG_CUSTOM_230
+  },
+  {
+    EL_CUSTOM_231,                     -1, -1, FALSE,
+    IMG_CUSTOM_231
+  },
+  {
+    EL_CUSTOM_232,                     -1, -1, FALSE,
+    IMG_CUSTOM_232
+  },
+  {
+    EL_CUSTOM_233,                     -1, -1, FALSE,
+    IMG_CUSTOM_233
+  },
+  {
+    EL_CUSTOM_234,                     -1, -1, FALSE,
+    IMG_CUSTOM_234
+  },
+  {
+    EL_CUSTOM_235,                     -1, -1, FALSE,
+    IMG_CUSTOM_235
+  },
+  {
+    EL_CUSTOM_236,                     -1, -1, FALSE,
+    IMG_CUSTOM_236
+  },
+  {
+    EL_CUSTOM_237,                     -1, -1, FALSE,
+    IMG_CUSTOM_237
+  },
+  {
+    EL_CUSTOM_238,                     -1, -1, FALSE,
+    IMG_CUSTOM_238
+  },
+  {
+    EL_CUSTOM_239,                     -1, -1, FALSE,
+    IMG_CUSTOM_239
+  },
+  {
+    EL_CUSTOM_240,                     -1, -1, FALSE,
+    IMG_CUSTOM_240
+  },
+  {
+    EL_CUSTOM_241,                     -1, -1, FALSE,
+    IMG_CUSTOM_241
+  },
+  {
+    EL_CUSTOM_242,                     -1, -1, FALSE,
+    IMG_CUSTOM_242
+  },
+  {
+    EL_CUSTOM_243,                     -1, -1, FALSE,
+    IMG_CUSTOM_243
+  },
+  {
+    EL_CUSTOM_244,                     -1, -1, FALSE,
+    IMG_CUSTOM_244
+  },
+  {
+    EL_CUSTOM_245,                     -1, -1, FALSE,
+    IMG_CUSTOM_245
+  },
+  {
+    EL_CUSTOM_246,                     -1, -1, FALSE,
+    IMG_CUSTOM_246
+  },
+  {
+    EL_CUSTOM_247,                     -1, -1, FALSE,
+    IMG_CUSTOM_247
+  },
+  {
+    EL_CUSTOM_248,                     -1, -1, FALSE,
+    IMG_CUSTOM_248
+  },
+  {
+    EL_CUSTOM_249,                     -1, -1, FALSE,
+    IMG_CUSTOM_249
+  },
+  {
+    EL_CUSTOM_250,                     -1, -1, FALSE,
+    IMG_CUSTOM_250
+  },
+  {
+    EL_CUSTOM_251,                     -1, -1, FALSE,
+    IMG_CUSTOM_251
+  },
+  {
+    EL_CUSTOM_252,                     -1, -1, FALSE,
+    IMG_CUSTOM_252
+  },
+  {
+    EL_CUSTOM_253,                     -1, -1, FALSE,
+    IMG_CUSTOM_253
+  },
+  {
+    EL_CUSTOM_254,                     -1, -1, FALSE,
+    IMG_CUSTOM_254
+  },
+  {
+    EL_CUSTOM_255,                     -1, -1, FALSE,
+    IMG_CUSTOM_255
+  },
+  {
+    EL_CUSTOM_256,                     -1, -1, FALSE,
+    IMG_CUSTOM_256
+  },
   {
     -1,                                        -1, -1, FALSE,
     -1
index b2180fb3a855be56d94e00b015999da407e7a164..233ea9e9df8ee07850f37c969a660a5703567784 100644 (file)
@@ -739,6 +739,518 @@ element_to_special_graphic[] =
     EL_CUSTOM_128,                             GFX_SPECIAL_ARG_EDITOR,
     IMG_CUSTOM_128_EDITOR
   },
+  {
+    EL_CUSTOM_129,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_129_EDITOR
+  },
+  {
+    EL_CUSTOM_130,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_130_EDITOR
+  },
+  {
+    EL_CUSTOM_131,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_131_EDITOR
+  },
+  {
+    EL_CUSTOM_132,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_132_EDITOR
+  },
+  {
+    EL_CUSTOM_133,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_133_EDITOR
+  },
+  {
+    EL_CUSTOM_134,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_134_EDITOR
+  },
+  {
+    EL_CUSTOM_135,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_135_EDITOR
+  },
+  {
+    EL_CUSTOM_136,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_136_EDITOR
+  },
+  {
+    EL_CUSTOM_137,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_137_EDITOR
+  },
+  {
+    EL_CUSTOM_138,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_138_EDITOR
+  },
+  {
+    EL_CUSTOM_139,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_139_EDITOR
+  },
+  {
+    EL_CUSTOM_140,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_140_EDITOR
+  },
+  {
+    EL_CUSTOM_141,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_141_EDITOR
+  },
+  {
+    EL_CUSTOM_142,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_142_EDITOR
+  },
+  {
+    EL_CUSTOM_143,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_143_EDITOR
+  },
+  {
+    EL_CUSTOM_144,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_144_EDITOR
+  },
+  {
+    EL_CUSTOM_145,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_145_EDITOR
+  },
+  {
+    EL_CUSTOM_146,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_146_EDITOR
+  },
+  {
+    EL_CUSTOM_147,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_147_EDITOR
+  },
+  {
+    EL_CUSTOM_148,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_148_EDITOR
+  },
+  {
+    EL_CUSTOM_149,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_149_EDITOR
+  },
+  {
+    EL_CUSTOM_150,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_150_EDITOR
+  },
+  {
+    EL_CUSTOM_151,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_151_EDITOR
+  },
+  {
+    EL_CUSTOM_152,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_152_EDITOR
+  },
+  {
+    EL_CUSTOM_153,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_153_EDITOR
+  },
+  {
+    EL_CUSTOM_154,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_154_EDITOR
+  },
+  {
+    EL_CUSTOM_155,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_155_EDITOR
+  },
+  {
+    EL_CUSTOM_156,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_156_EDITOR
+  },
+  {
+    EL_CUSTOM_157,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_157_EDITOR
+  },
+  {
+    EL_CUSTOM_158,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_158_EDITOR
+  },
+  {
+    EL_CUSTOM_159,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_159_EDITOR
+  },
+  {
+    EL_CUSTOM_160,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_160_EDITOR
+  },
+  {
+    EL_CUSTOM_161,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_161_EDITOR
+  },
+  {
+    EL_CUSTOM_162,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_162_EDITOR
+  },
+  {
+    EL_CUSTOM_163,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_163_EDITOR
+  },
+  {
+    EL_CUSTOM_164,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_164_EDITOR
+  },
+  {
+    EL_CUSTOM_165,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_165_EDITOR
+  },
+  {
+    EL_CUSTOM_166,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_166_EDITOR
+  },
+  {
+    EL_CUSTOM_167,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_167_EDITOR
+  },
+  {
+    EL_CUSTOM_168,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_168_EDITOR
+  },
+  {
+    EL_CUSTOM_169,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_169_EDITOR
+  },
+  {
+    EL_CUSTOM_170,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_170_EDITOR
+  },
+  {
+    EL_CUSTOM_171,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_171_EDITOR
+  },
+  {
+    EL_CUSTOM_172,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_172_EDITOR
+  },
+  {
+    EL_CUSTOM_173,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_173_EDITOR
+  },
+  {
+    EL_CUSTOM_174,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_174_EDITOR
+  },
+  {
+    EL_CUSTOM_175,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_175_EDITOR
+  },
+  {
+    EL_CUSTOM_176,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_176_EDITOR
+  },
+  {
+    EL_CUSTOM_177,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_177_EDITOR
+  },
+  {
+    EL_CUSTOM_178,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_178_EDITOR
+  },
+  {
+    EL_CUSTOM_179,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_179_EDITOR
+  },
+  {
+    EL_CUSTOM_180,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_180_EDITOR
+  },
+  {
+    EL_CUSTOM_181,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_181_EDITOR
+  },
+  {
+    EL_CUSTOM_182,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_182_EDITOR
+  },
+  {
+    EL_CUSTOM_183,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_183_EDITOR
+  },
+  {
+    EL_CUSTOM_184,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_184_EDITOR
+  },
+  {
+    EL_CUSTOM_185,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_185_EDITOR
+  },
+  {
+    EL_CUSTOM_186,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_186_EDITOR
+  },
+  {
+    EL_CUSTOM_187,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_187_EDITOR
+  },
+  {
+    EL_CUSTOM_188,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_188_EDITOR
+  },
+  {
+    EL_CUSTOM_189,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_189_EDITOR
+  },
+  {
+    EL_CUSTOM_190,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_190_EDITOR
+  },
+  {
+    EL_CUSTOM_191,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_191_EDITOR
+  },
+  {
+    EL_CUSTOM_192,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_192_EDITOR
+  },
+  {
+    EL_CUSTOM_193,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_193_EDITOR
+  },
+  {
+    EL_CUSTOM_194,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_194_EDITOR
+  },
+  {
+    EL_CUSTOM_195,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_195_EDITOR
+  },
+  {
+    EL_CUSTOM_196,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_196_EDITOR
+  },
+  {
+    EL_CUSTOM_197,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_197_EDITOR
+  },
+  {
+    EL_CUSTOM_198,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_198_EDITOR
+  },
+  {
+    EL_CUSTOM_199,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_199_EDITOR
+  },
+  {
+    EL_CUSTOM_200,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_200_EDITOR
+  },
+  {
+    EL_CUSTOM_201,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_201_EDITOR
+  },
+  {
+    EL_CUSTOM_202,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_202_EDITOR
+  },
+  {
+    EL_CUSTOM_203,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_203_EDITOR
+  },
+  {
+    EL_CUSTOM_204,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_204_EDITOR
+  },
+  {
+    EL_CUSTOM_205,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_205_EDITOR
+  },
+  {
+    EL_CUSTOM_206,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_206_EDITOR
+  },
+  {
+    EL_CUSTOM_207,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_207_EDITOR
+  },
+  {
+    EL_CUSTOM_208,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_208_EDITOR
+  },
+  {
+    EL_CUSTOM_209,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_209_EDITOR
+  },
+  {
+    EL_CUSTOM_210,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_210_EDITOR
+  },
+  {
+    EL_CUSTOM_211,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_211_EDITOR
+  },
+  {
+    EL_CUSTOM_212,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_212_EDITOR
+  },
+  {
+    EL_CUSTOM_213,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_213_EDITOR
+  },
+  {
+    EL_CUSTOM_214,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_214_EDITOR
+  },
+  {
+    EL_CUSTOM_215,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_215_EDITOR
+  },
+  {
+    EL_CUSTOM_216,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_216_EDITOR
+  },
+  {
+    EL_CUSTOM_217,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_217_EDITOR
+  },
+  {
+    EL_CUSTOM_218,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_218_EDITOR
+  },
+  {
+    EL_CUSTOM_219,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_219_EDITOR
+  },
+  {
+    EL_CUSTOM_220,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_220_EDITOR
+  },
+  {
+    EL_CUSTOM_221,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_221_EDITOR
+  },
+  {
+    EL_CUSTOM_222,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_222_EDITOR
+  },
+  {
+    EL_CUSTOM_223,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_223_EDITOR
+  },
+  {
+    EL_CUSTOM_224,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_224_EDITOR
+  },
+  {
+    EL_CUSTOM_225,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_225_EDITOR
+  },
+  {
+    EL_CUSTOM_226,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_226_EDITOR
+  },
+  {
+    EL_CUSTOM_227,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_227_EDITOR
+  },
+  {
+    EL_CUSTOM_228,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_228_EDITOR
+  },
+  {
+    EL_CUSTOM_229,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_229_EDITOR
+  },
+  {
+    EL_CUSTOM_230,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_230_EDITOR
+  },
+  {
+    EL_CUSTOM_231,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_231_EDITOR
+  },
+  {
+    EL_CUSTOM_232,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_232_EDITOR
+  },
+  {
+    EL_CUSTOM_233,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_233_EDITOR
+  },
+  {
+    EL_CUSTOM_234,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_234_EDITOR
+  },
+  {
+    EL_CUSTOM_235,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_235_EDITOR
+  },
+  {
+    EL_CUSTOM_236,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_236_EDITOR
+  },
+  {
+    EL_CUSTOM_237,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_237_EDITOR
+  },
+  {
+    EL_CUSTOM_238,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_238_EDITOR
+  },
+  {
+    EL_CUSTOM_239,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_239_EDITOR
+  },
+  {
+    EL_CUSTOM_240,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_240_EDITOR
+  },
+  {
+    EL_CUSTOM_241,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_241_EDITOR
+  },
+  {
+    EL_CUSTOM_242,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_242_EDITOR
+  },
+  {
+    EL_CUSTOM_243,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_243_EDITOR
+  },
+  {
+    EL_CUSTOM_244,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_244_EDITOR
+  },
+  {
+    EL_CUSTOM_245,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_245_EDITOR
+  },
+  {
+    EL_CUSTOM_246,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_246_EDITOR
+  },
+  {
+    EL_CUSTOM_247,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_247_EDITOR
+  },
+  {
+    EL_CUSTOM_248,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_248_EDITOR
+  },
+  {
+    EL_CUSTOM_249,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_249_EDITOR
+  },
+  {
+    EL_CUSTOM_250,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_250_EDITOR
+  },
+  {
+    EL_CUSTOM_251,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_251_EDITOR
+  },
+  {
+    EL_CUSTOM_252,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_252_EDITOR
+  },
+  {
+    EL_CUSTOM_253,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_253_EDITOR
+  },
+  {
+    EL_CUSTOM_254,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_254_EDITOR
+  },
+  {
+    EL_CUSTOM_255,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_255_EDITOR
+  },
+  {
+    EL_CUSTOM_256,                             GFX_SPECIAL_ARG_EDITOR,
+    IMG_CUSTOM_256_EDITOR
+  },
   {
     -1,                                                -1,
     -1
index 7b692bfa0e394f4ce8ea18d3b337e42590d5b26f..258b7fde0750671b85b9d325a81940bade85311d 100644 (file)
@@ -411,6 +411,10 @@ struct ConfigInfo image_config[] =
   { "sp_disk_red.collecting.xpos",             "8"                     },
   { "sp_disk_red.collecting.ypos",             "5"                     },
   { "sp_disk_red.collecting.frames",           "8"                     },
+  { "sp_disk_red.active",                      "RocksSP.pcx"           },
+  { "sp_disk_red.active.xpos",                 "4"                     },
+  { "sp_disk_red.active.ypos",                 "2"                     },
+  { "sp_disk_red.active.frames",               "1"                     },
 
   { "sp_port_right",                           "RocksSP.pcx"           },
   { "sp_port_right.xpos",                      "1"                     },
index 8b3f18c8cd2507c399fb4fc016d172caf50b0386..41fe2b22700ff03e067fa8cc47790449c846d233 100644 (file)
 #define IMG_SP_DISK_YELLOW                             68
 #define IMG_SP_DISK_RED                                        69
 #define IMG_SP_DISK_RED_COLLECTING                     70
-#define IMG_SP_PORT_RIGHT                              71
-#define IMG_SP_PORT_DOWN                               72
-#define IMG_SP_PORT_LEFT                               73
-#define IMG_SP_PORT_UP                                 74
-#define IMG_SP_PORT_HORIZONTAL                         75
-#define IMG_SP_PORT_VERTICAL                           76
-#define IMG_SP_PORT_ANY                                        77
-#define IMG_SP_GRAVITY_PORT_RIGHT                      78
-#define IMG_SP_GRAVITY_PORT_DOWN                       79
-#define IMG_SP_GRAVITY_PORT_LEFT                       80
-#define IMG_SP_GRAVITY_PORT_UP                         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_ELECTRON_EDITOR                         88
-#define IMG_SP_ELECTRON_EXPLODING                      89
-#define IMG_SP_TERMINAL                                        90
-#define IMG_SP_TERMINAL_EDITOR                         91
-#define IMG_SP_TERMINAL_ACTIVE                         92
-#define IMG_SP_BUGGY_BASE                              93
-#define IMG_SP_BUGGY_BASE_EDITOR                       94
-#define IMG_SP_BUGGY_BASE_ACTIVATING                   95
-#define IMG_SP_BUGGY_BASE_ACTIVE                       96
-#define IMG_SP_HARDWARE_BASE_1                         97
-#define IMG_SP_HARDWARE_BASE_2                         98
-#define IMG_SP_HARDWARE_BASE_3                         99
-#define IMG_SP_HARDWARE_BASE_4                         100
-#define IMG_SP_HARDWARE_BASE_5                         101
-#define IMG_SP_HARDWARE_BASE_6                         102
-#define IMG_SOKOBAN_OBJECT                             103
-#define IMG_SOKOBAN_OBJECT_EDITOR                      104
-#define IMG_SOKOBAN_FIELD_EMPTY                                105
-#define IMG_SOKOBAN_FIELD_FULL                         106
-#define IMG_EMPTY_SPACE                                        107
-#define IMG_SAND                                       108
-#define IMG_SAND_CRUMBLED                              109
-#define IMG_SAND_DIGGING_LEFT                          110
-#define IMG_SAND_DIGGING_RIGHT                         111
-#define IMG_SAND_DIGGING_UP                            112
-#define IMG_SAND_DIGGING_DOWN                          113
-#define IMG_SAND_DIGGING_LEFT_CRUMBLED                 114
-#define IMG_SAND_DIGGING_RIGHT_CRUMBLED                        115
-#define IMG_SAND_DIGGING_UP_CRUMBLED                   116
-#define IMG_SAND_DIGGING_DOWN_CRUMBLED                 117
-#define IMG_WALL                                       118
-#define IMG_WALL_SLIPPERY                              119
-#define IMG_STEELWALL                                  120
-#define IMG_ROCK                                       121
-#define IMG_ROCK_MOVING_LEFT                           122
-#define IMG_ROCK_MOVING_RIGHT                          123
-#define IMG_ROCK_PUSHING_LEFT                          124
-#define IMG_ROCK_PUSHING_RIGHT                         125
-#define IMG_EMERALD                                    126
-#define IMG_EMERALD_MOVING                             127
-#define IMG_EMERALD_FALLING                            128
-#define IMG_EMERALD_COLLECTING                         129
-#define IMG_DIAMOND                                    130
-#define IMG_DIAMOND_MOVING                             131
-#define IMG_DIAMOND_FALLING                            132
-#define IMG_DIAMOND_COLLECTING                         133
-#define IMG_BOMB                                       134
-#define IMG_NUT                                                135
-#define IMG_NUT_BREAKING                               136
-#define IMG_DYNAMITE                                   137
-#define IMG_DYNAMITE_EDITOR                            138
-#define IMG_DYNAMITE_ACTIVE                            139
-#define IMG_DYNAMITE_ACTIVE_EDITOR                     140
-#define IMG_WALL_EMERALD                               141
-#define IMG_WALL_DIAMOND                               142
-#define IMG_BUG                                                143
-#define IMG_BUG_RIGHT                                  144
-#define IMG_BUG_UP                                     145
-#define IMG_BUG_LEFT                                   146
-#define IMG_BUG_DOWN                                   147
-#define IMG_BUG_MOVING_RIGHT                           148
-#define IMG_BUG_MOVING_UP                              149
-#define IMG_BUG_MOVING_LEFT                            150
-#define IMG_BUG_MOVING_DOWN                            151
-#define IMG_SPACESHIP                                  152
-#define IMG_SPACESHIP_RIGHT                            153
-#define IMG_SPACESHIP_UP                               154
-#define IMG_SPACESHIP_LEFT                             155
-#define IMG_SPACESHIP_DOWN                             156
-#define IMG_SPACESHIP_MOVING_RIGHT                     157
-#define IMG_SPACESHIP_MOVING_UP                                158
-#define IMG_SPACESHIP_MOVING_LEFT                      159
-#define IMG_SPACESHIP_MOVING_DOWN                      160
-#define IMG_YAMYAM                                     161
-#define IMG_YAMYAM_MOVING                              162
-#define IMG_ROBOT                                      163
-#define IMG_ROBOT_MOVING                               164
-#define IMG_ROBOT_WHEEL                                        165
-#define IMG_ROBOT_WHEEL_ACTIVE                         166
-#define IMG_MAGIC_WALL                                 167
-#define IMG_MAGIC_WALL_ACTIVE                          168
-#define IMG_MAGIC_WALL_FILLING                         169
-#define IMG_MAGIC_WALL_FULL                            170
-#define IMG_MAGIC_WALL_EMPTYING                                171
-#define IMG_MAGIC_WALL_DEAD                            172
-#define IMG_QUICKSAND_EMPTY                            173
-#define IMG_QUICKSAND_FILLING                          174
-#define IMG_QUICKSAND_FULL                             175
-#define IMG_QUICKSAND_FULL_EDITOR                      176
-#define IMG_QUICKSAND_EMPTYING                         177
-#define IMG_ACID_POOL_TOPLEFT                          178
-#define IMG_ACID_POOL_TOPRIGHT                         179
-#define IMG_ACID_POOL_BOTTOMLEFT                       180
-#define IMG_ACID_POOL_BOTTOM                           181
-#define IMG_ACID_POOL_BOTTOMRIGHT                      182
-#define IMG_ACID                                       183
-#define IMG_ACID_SPLASH_LEFT                           184
-#define IMG_ACID_SPLASH_RIGHT                          185
-#define IMG_AMOEBA_DROP                                        186
-#define IMG_AMOEBA_GROWING                             187
-#define IMG_AMOEBA_SHRINKING                           188
-#define IMG_AMOEBA_WET                                 189
-#define IMG_AMOEBA_WET_EDITOR                          190
-#define IMG_AMOEBA_DROPPING                            191
-#define IMG_AMOEBA_DRY                                 192
-#define IMG_AMOEBA_FULL                                        193
-#define IMG_AMOEBA_FULL_EDITOR                         194
-#define IMG_AMOEBA_DEAD                                        195
-#define IMG_AMOEBA_DEAD_EDITOR                         196
-#define IMG_EM_KEY_1                                   197
-#define IMG_EM_KEY_2                                   198
-#define IMG_EM_KEY_3                                   199
-#define IMG_EM_KEY_4                                   200
-#define IMG_EM_GATE_1                                  201
-#define IMG_EM_GATE_2                                  202
-#define IMG_EM_GATE_3                                  203
-#define IMG_EM_GATE_4                                  204
-#define IMG_EM_GATE_1_GRAY                             205
-#define IMG_EM_GATE_1_GRAY_EDITOR                      206
-#define IMG_EM_GATE_2_GRAY                             207
-#define IMG_EM_GATE_2_GRAY_EDITOR                      208
-#define IMG_EM_GATE_3_GRAY                             209
-#define IMG_EM_GATE_3_GRAY_EDITOR                      210
-#define IMG_EM_GATE_4_GRAY                             211
-#define IMG_EM_GATE_4_GRAY_EDITOR                      212
-#define IMG_EXIT_CLOSED                                        213
-#define IMG_EXIT_OPENING                               214
-#define IMG_EXIT_OPEN                                  215
-#define IMG_BALLOON                                    216
-#define IMG_BALLOON_MOVING                             217
-#define IMG_BALLOON_PUSHING                            218
-#define IMG_BALLOON_SWITCH_LEFT                                219
-#define IMG_BALLOON_SWITCH_RIGHT                       220
-#define IMG_BALLOON_SWITCH_UP                          221
-#define IMG_BALLOON_SWITCH_DOWN                                222
-#define IMG_BALLOON_SWITCH_ANY                         223
-#define IMG_SPRING                                     224
-#define IMG_EMC_STEELWALL_1                            225
-#define IMG_EMC_STEELWALL_2                            226
-#define IMG_EMC_STEELWALL_3                            227
-#define IMG_EMC_STEELWALL_4                            228
-#define IMG_EMC_WALL_1                                 229
-#define IMG_EMC_WALL_2                                 230
-#define IMG_EMC_WALL_3                                 231
-#define IMG_EMC_WALL_4                                 232
-#define IMG_EMC_WALL_5                                 233
-#define IMG_EMC_WALL_6                                 234
-#define IMG_EMC_WALL_7                                 235
-#define IMG_EMC_WALL_8                                 236
-#define IMG_INVISIBLE_STEELWALL                                237
-#define IMG_INVISIBLE_STEELWALL_EDITOR                 238
-#define IMG_INVISIBLE_STEELWALL_ACTIVE                 239
-#define IMG_INVISIBLE_WALL                             240
-#define IMG_INVISIBLE_WALL_EDITOR                      241
-#define IMG_INVISIBLE_WALL_ACTIVE                      242
-#define IMG_INVISIBLE_SAND                             243
-#define IMG_INVISIBLE_SAND_EDITOR                      244
-#define IMG_INVISIBLE_SAND_ACTIVE                      245
-#define IMG_CONVEYOR_BELT_1_MIDDLE                     246
-#define IMG_CONVEYOR_BELT_1_MIDDLE_ACTIVE              247
-#define IMG_CONVEYOR_BELT_1_LEFT                       248
-#define IMG_CONVEYOR_BELT_1_LEFT_ACTIVE                        249
-#define IMG_CONVEYOR_BELT_1_RIGHT                      250
-#define IMG_CONVEYOR_BELT_1_RIGHT_ACTIVE               251
-#define IMG_CONVEYOR_BELT_1_SWITCH_LEFT                        252
-#define IMG_CONVEYOR_BELT_1_SWITCH_MIDDLE              253
-#define IMG_CONVEYOR_BELT_1_SWITCH_RIGHT               254
-#define IMG_CONVEYOR_BELT_2_MIDDLE                     255
-#define IMG_CONVEYOR_BELT_2_MIDDLE_ACTIVE              256
-#define IMG_CONVEYOR_BELT_2_LEFT                       257
-#define IMG_CONVEYOR_BELT_2_LEFT_ACTIVE                        258
-#define IMG_CONVEYOR_BELT_2_RIGHT                      259
-#define IMG_CONVEYOR_BELT_2_RIGHT_ACTIVE               260
-#define IMG_CONVEYOR_BELT_2_SWITCH_LEFT                        261
-#define IMG_CONVEYOR_BELT_2_SWITCH_MIDDLE              262
-#define IMG_CONVEYOR_BELT_2_SWITCH_RIGHT               263
-#define IMG_CONVEYOR_BELT_3_MIDDLE                     264
-#define IMG_CONVEYOR_BELT_3_MIDDLE_ACTIVE              265
-#define IMG_CONVEYOR_BELT_3_LEFT                       266
-#define IMG_CONVEYOR_BELT_3_LEFT_ACTIVE                        267
-#define IMG_CONVEYOR_BELT_3_RIGHT                      268
-#define IMG_CONVEYOR_BELT_3_RIGHT_ACTIVE               269
-#define IMG_CONVEYOR_BELT_3_SWITCH_LEFT                        270
-#define IMG_CONVEYOR_BELT_3_SWITCH_MIDDLE              271
-#define IMG_CONVEYOR_BELT_3_SWITCH_RIGHT               272
-#define IMG_CONVEYOR_BELT_4_MIDDLE                     273
-#define IMG_CONVEYOR_BELT_4_MIDDLE_ACTIVE              274
-#define IMG_CONVEYOR_BELT_4_LEFT                       275
-#define IMG_CONVEYOR_BELT_4_LEFT_ACTIVE                        276
-#define IMG_CONVEYOR_BELT_4_RIGHT                      277
-#define IMG_CONVEYOR_BELT_4_RIGHT_ACTIVE               278
-#define IMG_CONVEYOR_BELT_4_SWITCH_LEFT                        279
-#define IMG_CONVEYOR_BELT_4_SWITCH_MIDDLE              280
-#define IMG_CONVEYOR_BELT_4_SWITCH_RIGHT               281
-#define IMG_SWITCHGATE_SWITCH_UP                       282
-#define IMG_SWITCHGATE_SWITCH_DOWN                     283
-#define IMG_LIGHT_SWITCH                               284
-#define IMG_LIGHT_SWITCH_ACTIVE                                285
-#define IMG_TIMEGATE_SWITCH                            286
-#define IMG_TIMEGATE_SWITCH_ACTIVE                     287
-#define IMG_ENVELOPE                                   288
-#define IMG_SIGN_EXCLAMATION                           289
-#define IMG_SIGN_STOP                                  290
-#define IMG_LANDMINE                                   291
-#define IMG_STEELWALL_SLIPPERY                         292
-#define IMG_EXTRA_TIME                                 293
-#define IMG_SHIELD_NORMAL                              294
-#define IMG_SHIELD_NORMAL_ACTIVE                       295
-#define IMG_SHIELD_DEADLY                              296
-#define IMG_SHIELD_DEADLY_ACTIVE                       297
-#define IMG_SWITCHGATE_CLOSED                          298
-#define IMG_SWITCHGATE_OPENING                         299
-#define IMG_SWITCHGATE_OPEN                            300
-#define IMG_SWITCHGATE_CLOSING                         301
-#define IMG_TIMEGATE_CLOSED                            302
-#define IMG_TIMEGATE_OPENING                           303
-#define IMG_TIMEGATE_OPEN                              304
-#define IMG_TIMEGATE_CLOSING                           305
-#define IMG_PEARL                                      306
-#define IMG_PEARL_BREAKING                             307
-#define IMG_CRYSTAL                                    308
-#define IMG_WALL_PEARL                                 309
-#define IMG_WALL_CRYSTAL                               310
-#define IMG_TUBE_RIGHT_DOWN                            311
-#define IMG_TUBE_HORIZONTAL_DOWN                       312
-#define IMG_TUBE_LEFT_DOWN                             313
-#define IMG_TUBE_HORIZONTAL                            314
-#define IMG_TUBE_VERTICAL_RIGHT                                315
-#define IMG_TUBE_ANY                                   316
-#define IMG_TUBE_VERTICAL_LEFT                         317
-#define IMG_TUBE_VERTICAL                              318
-#define IMG_TUBE_RIGHT_UP                              319
-#define IMG_TUBE_HORIZONTAL_UP                         320
-#define IMG_TUBE_LEFT_UP                               321
-#define IMG_TRAP                                       322
-#define IMG_TRAP_ACTIVE                                        323
-#define IMG_DX_SUPABOMB                                        324
-#define IMG_KEY_1                                      325
-#define IMG_KEY_1_EDITOR                               326
-#define IMG_KEY_2                                      327
-#define IMG_KEY_2_EDITOR                               328
-#define IMG_KEY_3                                      329
-#define IMG_KEY_3_EDITOR                               330
-#define IMG_KEY_4                                      331
-#define IMG_KEY_4_EDITOR                               332
-#define IMG_GATE_1                                     333
-#define IMG_GATE_2                                     334
-#define IMG_GATE_3                                     335
-#define IMG_GATE_4                                     336
-#define IMG_GATE_1_GRAY                                        337
-#define IMG_GATE_1_GRAY_EDITOR                         338
-#define IMG_GATE_2_GRAY                                        339
-#define IMG_GATE_2_GRAY_EDITOR                         340
-#define IMG_GATE_3_GRAY                                        341
-#define IMG_GATE_3_GRAY_EDITOR                         342
-#define IMG_GATE_4_GRAY                                        343
-#define IMG_GATE_4_GRAY_EDITOR                         344
-#define IMG_GAME_OF_LIFE                               345
-#define IMG_BIOMAZE                                    346
-#define IMG_PACMAN                                     347
-#define IMG_PACMAN_RIGHT                               348
-#define IMG_PACMAN_UP                                  349
-#define IMG_PACMAN_LEFT                                        350
-#define IMG_PACMAN_DOWN                                        351
-#define IMG_PACMAN_MOVING_RIGHT                                352
-#define IMG_PACMAN_MOVING_UP                           353
-#define IMG_PACMAN_MOVING_LEFT                         354
-#define IMG_PACMAN_MOVING_DOWN                         355
-#define IMG_LAMP                                       356
-#define IMG_LAMP_EDITOR                                        357
-#define IMG_LAMP_ACTIVE                                        358
-#define IMG_TIME_ORB_FULL                              359
-#define IMG_TIME_ORB_EMPTY                             360
-#define IMG_EMERALD_YELLOW                             361
-#define IMG_EMERALD_YELLOW_MOVING                      362
-#define IMG_EMERALD_YELLOW_FALLING                     363
-#define IMG_EMERALD_RED                                        364
-#define IMG_EMERALD_RED_MOVING                         365
-#define IMG_EMERALD_RED_FALLING                                366
-#define IMG_EMERALD_PURPLE                             367
-#define IMG_EMERALD_PURPLE_MOVING                      368
-#define IMG_EMERALD_PURPLE_FALLING                     369
-#define IMG_WALL_EMERALD_YELLOW                                370
-#define IMG_WALL_EMERALD_RED                           371
-#define IMG_WALL_EMERALD_PURPLE                                372
-#define IMG_WALL_BD_DIAMOND                            373
-#define IMG_EXPANDABLE_WALL                            374
-#define IMG_EXPANDABLE_WALL_HORIZONTAL                 375
-#define IMG_EXPANDABLE_WALL_HORIZONTAL_EDITOR          376
-#define IMG_EXPANDABLE_WALL_VERTICAL                   377
-#define IMG_EXPANDABLE_WALL_VERTICAL_EDITOR            378
-#define IMG_EXPANDABLE_WALL_ANY                                379
-#define IMG_EXPANDABLE_WALL_ANY_EDITOR                 380
-#define IMG_EXPANDABLE_WALL_GROWING_LEFT               381
-#define IMG_EXPANDABLE_WALL_GROWING_RIGHT              382
-#define IMG_EXPANDABLE_WALL_GROWING_UP                 383
-#define IMG_EXPANDABLE_WALL_GROWING_DOWN               384
-#define IMG_BLACK_ORB                                  385
-#define IMG_SPEED_PILL                                 386
-#define IMG_DARK_YAMYAM                                        387
-#define IMG_DYNABOMB                                   388
-#define IMG_DYNABOMB_ACTIVE                            389
-#define IMG_DYNABOMB_PLAYER_1                          390
-#define IMG_DYNABOMB_PLAYER_1_ACTIVE                   391
-#define IMG_DYNABOMB_PLAYER_2                          392
-#define IMG_DYNABOMB_PLAYER_2_ACTIVE                   393
-#define IMG_DYNABOMB_PLAYER_3                          394
-#define IMG_DYNABOMB_PLAYER_3_ACTIVE                   395
-#define IMG_DYNABOMB_PLAYER_4                          396
-#define IMG_DYNABOMB_PLAYER_4_ACTIVE                   397
-#define IMG_DYNABOMB_INCREASE_NUMBER                   398
-#define IMG_DYNABOMB_INCREASE_SIZE                     399
-#define IMG_DYNABOMB_INCREASE_POWER                    400
-#define IMG_PIG                                                401
-#define IMG_PIG_DOWN                                   402
-#define IMG_PIG_UP                                     403
-#define IMG_PIG_LEFT                                   404
-#define IMG_PIG_RIGHT                                  405
-#define IMG_PIG_MOVING_DOWN                            406
-#define IMG_PIG_MOVING_UP                              407
-#define IMG_PIG_MOVING_LEFT                            408
-#define IMG_PIG_MOVING_RIGHT                           409
-#define IMG_PIG_DIGGING_DOWN                           410
-#define IMG_PIG_DIGGING_UP                             411
-#define IMG_PIG_DIGGING_LEFT                           412
-#define IMG_PIG_DIGGING_RIGHT                          413
-#define IMG_DRAGON                                     414
-#define IMG_DRAGON_DOWN                                        415
-#define IMG_DRAGON_UP                                  416
-#define IMG_DRAGON_LEFT                                        417
-#define IMG_DRAGON_RIGHT                               418
-#define IMG_DRAGON_MOVING_DOWN                         419
-#define IMG_DRAGON_MOVING_UP                           420
-#define IMG_DRAGON_MOVING_LEFT                         421
-#define IMG_DRAGON_MOVING_RIGHT                                422
-#define IMG_DRAGON_ATTACKING_DOWN                      423
-#define IMG_DRAGON_ATTACKING_UP                                424
-#define IMG_DRAGON_ATTACKING_LEFT                      425
-#define IMG_DRAGON_ATTACKING_RIGHT                     426
-#define IMG_MOLE                                       427
-#define IMG_MOLE_DOWN                                  428
-#define IMG_MOLE_UP                                    429
-#define IMG_MOLE_LEFT                                  430
-#define IMG_MOLE_RIGHT                                 431
-#define IMG_MOLE_MOVING_DOWN                           432
-#define IMG_MOLE_MOVING_UP                             433
-#define IMG_MOLE_MOVING_LEFT                           434
-#define IMG_MOLE_MOVING_RIGHT                          435
-#define IMG_MOLE_DIGGING_DOWN                          436
-#define IMG_MOLE_DIGGING_UP                            437
-#define IMG_MOLE_DIGGING_LEFT                          438
-#define IMG_MOLE_DIGGING_RIGHT                         439
-#define IMG_PENGUIN                                    440
-#define IMG_PENGUIN_EDITOR                             441
-#define IMG_PENGUIN_DOWN                               442
-#define IMG_PENGUIN_UP                                 443
-#define IMG_PENGUIN_LEFT                               444
-#define IMG_PENGUIN_RIGHT                              445
-#define IMG_PENGUIN_MOVING_DOWN                                446
-#define IMG_PENGUIN_MOVING_UP                          447
-#define IMG_PENGUIN_MOVING_LEFT                                448
-#define IMG_PENGUIN_MOVING_RIGHT                       449
-#define IMG_SATELLITE                                  450
-#define IMG_FLAMES_1_LEFT                              451
-#define IMG_FLAMES_2_LEFT                              452
-#define IMG_FLAMES_3_LEFT                              453
-#define IMG_FLAMES_1_RIGHT                             454
-#define IMG_FLAMES_2_RIGHT                             455
-#define IMG_FLAMES_3_RIGHT                             456
-#define IMG_FLAMES_1_UP                                        457
-#define IMG_FLAMES_2_UP                                        458
-#define IMG_FLAMES_3_UP                                        459
-#define IMG_FLAMES_1_DOWN                              460
-#define IMG_FLAMES_2_DOWN                              461
-#define IMG_FLAMES_3_DOWN                              462
-#define IMG_STONEBLOCK                                 463
-#define IMG_PLAYER_1                                   464
-#define IMG_PLAYER_1_EDITOR                            465
-#define IMG_PLAYER_1_DOWN                              466
-#define IMG_PLAYER_1_UP                                        467
-#define IMG_PLAYER_1_LEFT                              468
-#define IMG_PLAYER_1_RIGHT                             469
-#define IMG_PLAYER_1_MOVING_DOWN                       470
-#define IMG_PLAYER_1_MOVING_UP                         471
-#define IMG_PLAYER_1_MOVING_LEFT                       472
-#define IMG_PLAYER_1_MOVING_RIGHT                      473
-#define IMG_PLAYER_1_DIGGING_DOWN                      474
-#define IMG_PLAYER_1_DIGGING_UP                                475
-#define IMG_PLAYER_1_DIGGING_LEFT                      476
-#define IMG_PLAYER_1_DIGGING_RIGHT                     477
-#define IMG_PLAYER_1_COLLECTING_DOWN                   478
-#define IMG_PLAYER_1_COLLECTING_UP                     479
-#define IMG_PLAYER_1_COLLECTING_LEFT                   480
-#define IMG_PLAYER_1_COLLECTING_RIGHT                  481
-#define IMG_PLAYER_1_PUSHING_DOWN                      482
-#define IMG_PLAYER_1_PUSHING_UP                                483
-#define IMG_PLAYER_1_PUSHING_LEFT                      484
-#define IMG_PLAYER_1_PUSHING_RIGHT                     485
-#define IMG_PLAYER_1_SNAPPING_DOWN                     486
-#define IMG_PLAYER_1_SNAPPING_UP                       487
-#define IMG_PLAYER_1_SNAPPING_LEFT                     488
-#define IMG_PLAYER_1_SNAPPING_RIGHT                    489
-#define IMG_PLAYER_2                                   490
-#define IMG_PLAYER_2_EDITOR                            491
-#define IMG_PLAYER_2_DOWN                              492
-#define IMG_PLAYER_2_UP                                        493
-#define IMG_PLAYER_2_LEFT                              494
-#define IMG_PLAYER_2_RIGHT                             495
-#define IMG_PLAYER_2_MOVING_DOWN                       496
-#define IMG_PLAYER_2_MOVING_UP                         497
-#define IMG_PLAYER_2_MOVING_LEFT                       498
-#define IMG_PLAYER_2_MOVING_RIGHT                      499
-#define IMG_PLAYER_2_DIGGING_DOWN                      500
-#define IMG_PLAYER_2_DIGGING_UP                                501
-#define IMG_PLAYER_2_DIGGING_LEFT                      502
-#define IMG_PLAYER_2_DIGGING_RIGHT                     503
-#define IMG_PLAYER_2_COLLECTING_DOWN                   504
-#define IMG_PLAYER_2_COLLECTING_UP                     505
-#define IMG_PLAYER_2_COLLECTING_LEFT                   506
-#define IMG_PLAYER_2_COLLECTING_RIGHT                  507
-#define IMG_PLAYER_2_PUSHING_DOWN                      508
-#define IMG_PLAYER_2_PUSHING_UP                                509
-#define IMG_PLAYER_2_PUSHING_LEFT                      510
-#define IMG_PLAYER_2_PUSHING_RIGHT                     511
-#define IMG_PLAYER_2_SNAPPING_DOWN                     512
-#define IMG_PLAYER_2_SNAPPING_UP                       513
-#define IMG_PLAYER_2_SNAPPING_LEFT                     514
-#define IMG_PLAYER_2_SNAPPING_RIGHT                    515
-#define IMG_PLAYER_3                                   516
-#define IMG_PLAYER_3_EDITOR                            517
-#define IMG_PLAYER_3_DOWN                              518
-#define IMG_PLAYER_3_UP                                        519
-#define IMG_PLAYER_3_LEFT                              520
-#define IMG_PLAYER_3_RIGHT                             521
-#define IMG_PLAYER_3_MOVING_DOWN                       522
-#define IMG_PLAYER_3_MOVING_UP                         523
-#define IMG_PLAYER_3_MOVING_LEFT                       524
-#define IMG_PLAYER_3_MOVING_RIGHT                      525
-#define IMG_PLAYER_3_DIGGING_DOWN                      526
-#define IMG_PLAYER_3_DIGGING_UP                                527
-#define IMG_PLAYER_3_DIGGING_LEFT                      528
-#define IMG_PLAYER_3_DIGGING_RIGHT                     529
-#define IMG_PLAYER_3_COLLECTING_DOWN                   530
-#define IMG_PLAYER_3_COLLECTING_UP                     531
-#define IMG_PLAYER_3_COLLECTING_LEFT                   532
-#define IMG_PLAYER_3_COLLECTING_RIGHT                  533
-#define IMG_PLAYER_3_PUSHING_DOWN                      534
-#define IMG_PLAYER_3_PUSHING_UP                                535
-#define IMG_PLAYER_3_PUSHING_LEFT                      536
-#define IMG_PLAYER_3_PUSHING_RIGHT                     537
-#define IMG_PLAYER_3_SNAPPING_DOWN                     538
-#define IMG_PLAYER_3_SNAPPING_UP                       539
-#define IMG_PLAYER_3_SNAPPING_LEFT                     540
-#define IMG_PLAYER_3_SNAPPING_RIGHT                    541
-#define IMG_PLAYER_4                                   542
-#define IMG_PLAYER_4_EDITOR                            543
-#define IMG_PLAYER_4_DOWN                              544
-#define IMG_PLAYER_4_UP                                        545
-#define IMG_PLAYER_4_LEFT                              546
-#define IMG_PLAYER_4_RIGHT                             547
-#define IMG_PLAYER_4_MOVING_DOWN                       548
-#define IMG_PLAYER_4_MOVING_UP                         549
-#define IMG_PLAYER_4_MOVING_LEFT                       550
-#define IMG_PLAYER_4_MOVING_RIGHT                      551
-#define IMG_PLAYER_4_DIGGING_DOWN                      552
-#define IMG_PLAYER_4_DIGGING_UP                                553
-#define IMG_PLAYER_4_DIGGING_LEFT                      554
-#define IMG_PLAYER_4_DIGGING_RIGHT                     555
-#define IMG_PLAYER_4_COLLECTING_DOWN                   556
-#define IMG_PLAYER_4_COLLECTING_UP                     557
-#define IMG_PLAYER_4_COLLECTING_LEFT                   558
-#define IMG_PLAYER_4_COLLECTING_RIGHT                  559
-#define IMG_PLAYER_4_PUSHING_DOWN                      560
-#define IMG_PLAYER_4_PUSHING_UP                                561
-#define IMG_PLAYER_4_PUSHING_LEFT                      562
-#define IMG_PLAYER_4_PUSHING_RIGHT                     563
-#define IMG_PLAYER_4_SNAPPING_DOWN                     564
-#define IMG_PLAYER_4_SNAPPING_UP                       565
-#define IMG_PLAYER_4_SNAPPING_LEFT                     566
-#define IMG_PLAYER_4_SNAPPING_RIGHT                    567
-#define IMG_DEFAULT_EXPLODING                          568
-#define IMG_TWINKLE_BLUE                               569
-#define IMG_TWINKLE_WHITE                              570
-#define IMG_STEELWALL_TOPLEFT                          571
-#define IMG_STEELWALL_TOPRIGHT                         572
-#define IMG_STEELWALL_BOTTOMLEFT                       573
-#define IMG_STEELWALL_BOTTOMRIGHT                      574
-#define IMG_STEELWALL_HORIZONTAL                       575
-#define IMG_STEELWALL_VERTICAL                         576
-#define IMG_STEELWALL_TOPLEFT_EDITOR                   577
-#define IMG_STEELWALL_TOPRIGHT_EDITOR                  578
-#define IMG_STEELWALL_BOTTOMLEFT_EDITOR                        579
-#define IMG_STEELWALL_BOTTOMRIGHT_EDITOR               580
-#define IMG_STEELWALL_HORIZONTAL_EDITOR                        581
-#define IMG_STEELWALL_VERTICAL_EDITOR                  582
-#define IMG_INVISIBLE_STEELWALL_TOPLEFT                        583
-#define IMG_INVISIBLE_STEELWALL_TOPRIGHT               584
-#define IMG_INVISIBLE_STEELWALL_BOTTOMLEFT             585
-#define IMG_INVISIBLE_STEELWALL_BOTTOMRIGHT            586
-#define IMG_INVISIBLE_STEELWALL_HORIZONTAL             587
-#define IMG_INVISIBLE_STEELWALL_VERTICAL               588
-#define IMG_INVISIBLE_STEELWALL_TOPLEFT_EDITOR         589
-#define IMG_INVISIBLE_STEELWALL_TOPRIGHT_EDITOR                590
-#define IMG_INVISIBLE_STEELWALL_BOTTOMLEFT_EDITOR      591
-#define IMG_INVISIBLE_STEELWALL_BOTTOMRIGHT_EDITOR     592
-#define IMG_INVISIBLE_STEELWALL_HORIZONTAL_EDITOR      593
-#define IMG_INVISIBLE_STEELWALL_VERTICAL_EDITOR                594
-#define IMG_ARROW_LEFT                                 595
-#define IMG_ARROW_RIGHT                                        596
-#define IMG_ARROW_UP                                   597
-#define IMG_ARROW_DOWN                                 598
-#define IMG_CHAR_SPACE                                 599
-#define IMG_CHAR_EXCLAM                                        600
-#define IMG_CHAR_QUOTEDBL                              601
-#define IMG_CHAR_NUMBERSIGN                            602
-#define IMG_CHAR_DOLLAR                                        603
-#define IMG_CHAR_PROCENT                               604
-#define IMG_CHAR_AMPERSAND                             605
-#define IMG_CHAR_APOSTROPHE                            606
-#define IMG_CHAR_PARENLEFT                             607
-#define IMG_CHAR_PARENRIGHT                            608
-#define IMG_CHAR_ASTERISK                              609
-#define IMG_CHAR_PLUS                                  610
-#define IMG_CHAR_COMMA                                 611
-#define IMG_CHAR_MINUS                                 612
-#define IMG_CHAR_PERIOD                                        613
-#define IMG_CHAR_SLASH                                 614
-#define IMG_CHAR_0                                     615
-#define IMG_CHAR_1                                     616
-#define IMG_CHAR_2                                     617
-#define IMG_CHAR_3                                     618
-#define IMG_CHAR_4                                     619
-#define IMG_CHAR_5                                     620
-#define IMG_CHAR_6                                     621
-#define IMG_CHAR_7                                     622
-#define IMG_CHAR_8                                     623
-#define IMG_CHAR_9                                     624
-#define IMG_CHAR_COLON                                 625
-#define IMG_CHAR_SEMICOLON                             626
-#define IMG_CHAR_LESS                                  627
-#define IMG_CHAR_EQUAL                                 628
-#define IMG_CHAR_GREATER                               629
-#define IMG_CHAR_QUESTION                              630
-#define IMG_CHAR_AT                                    631
-#define IMG_CHAR_A                                     632
-#define IMG_CHAR_B                                     633
-#define IMG_CHAR_C                                     634
-#define IMG_CHAR_D                                     635
-#define IMG_CHAR_E                                     636
-#define IMG_CHAR_F                                     637
-#define IMG_CHAR_G                                     638
-#define IMG_CHAR_H                                     639
-#define IMG_CHAR_I                                     640
-#define IMG_CHAR_J                                     641
-#define IMG_CHAR_K                                     642
-#define IMG_CHAR_L                                     643
-#define IMG_CHAR_M                                     644
-#define IMG_CHAR_N                                     645
-#define IMG_CHAR_O                                     646
-#define IMG_CHAR_P                                     647
-#define IMG_CHAR_Q                                     648
-#define IMG_CHAR_R                                     649
-#define IMG_CHAR_S                                     650
-#define IMG_CHAR_T                                     651
-#define IMG_CHAR_U                                     652
-#define IMG_CHAR_V                                     653
-#define IMG_CHAR_W                                     654
-#define IMG_CHAR_X                                     655
-#define IMG_CHAR_Y                                     656
-#define IMG_CHAR_Z                                     657
-#define IMG_CHAR_BRACKETLEFT                           658
-#define IMG_CHAR_BACKSLASH                             659
-#define IMG_CHAR_BRACKETRIGHT                          660
-#define IMG_CHAR_ASCIICIRCUM                           661
-#define IMG_CHAR_UNDERSCORE                            662
-#define IMG_CHAR_COPYRIGHT                             663
-#define IMG_CHAR_AUMLAUT                               664
-#define IMG_CHAR_OUMLAUT                               665
-#define IMG_CHAR_UUMLAUT                               666
-#define IMG_CHAR_DEGREE                                        667
-#define IMG_CHAR_TRADEMARK                             668
-#define IMG_CHAR_CURSOR                                        669
-#define IMG_CUSTOM_1                                   670
-#define IMG_CUSTOM_1_EDITOR                            671
-#define IMG_CUSTOM_2                                   672
-#define IMG_CUSTOM_2_EDITOR                            673
-#define IMG_CUSTOM_3                                   674
-#define IMG_CUSTOM_3_EDITOR                            675
-#define IMG_CUSTOM_4                                   676
-#define IMG_CUSTOM_4_EDITOR                            677
-#define IMG_CUSTOM_5                                   678
-#define IMG_CUSTOM_5_EDITOR                            679
-#define IMG_CUSTOM_6                                   680
-#define IMG_CUSTOM_6_EDITOR                            681
-#define IMG_CUSTOM_7                                   682
-#define IMG_CUSTOM_7_EDITOR                            683
-#define IMG_CUSTOM_8                                   684
-#define IMG_CUSTOM_8_EDITOR                            685
-#define IMG_CUSTOM_9                                   686
-#define IMG_CUSTOM_9_EDITOR                            687
-#define IMG_CUSTOM_10                                  688
-#define IMG_CUSTOM_10_EDITOR                           689
-#define IMG_CUSTOM_11                                  690
-#define IMG_CUSTOM_11_EDITOR                           691
-#define IMG_CUSTOM_12                                  692
-#define IMG_CUSTOM_12_EDITOR                           693
-#define IMG_CUSTOM_13                                  694
-#define IMG_CUSTOM_13_EDITOR                           695
-#define IMG_CUSTOM_14                                  696
-#define IMG_CUSTOM_14_EDITOR                           697
-#define IMG_CUSTOM_15                                  698
-#define IMG_CUSTOM_15_EDITOR                           699
-#define IMG_CUSTOM_16                                  700
-#define IMG_CUSTOM_16_EDITOR                           701
-#define IMG_CUSTOM_17                                  702
-#define IMG_CUSTOM_17_EDITOR                           703
-#define IMG_CUSTOM_18                                  704
-#define IMG_CUSTOM_18_EDITOR                           705
-#define IMG_CUSTOM_19                                  706
-#define IMG_CUSTOM_19_EDITOR                           707
-#define IMG_CUSTOM_20                                  708
-#define IMG_CUSTOM_20_EDITOR                           709
-#define IMG_CUSTOM_21                                  710
-#define IMG_CUSTOM_21_EDITOR                           711
-#define IMG_CUSTOM_22                                  712
-#define IMG_CUSTOM_22_EDITOR                           713
-#define IMG_CUSTOM_23                                  714
-#define IMG_CUSTOM_23_EDITOR                           715
-#define IMG_CUSTOM_24                                  716
-#define IMG_CUSTOM_24_EDITOR                           717
-#define IMG_CUSTOM_25                                  718
-#define IMG_CUSTOM_25_EDITOR                           719
-#define IMG_CUSTOM_26                                  720
-#define IMG_CUSTOM_26_EDITOR                           721
-#define IMG_CUSTOM_27                                  722
-#define IMG_CUSTOM_27_EDITOR                           723
-#define IMG_CUSTOM_28                                  724
-#define IMG_CUSTOM_28_EDITOR                           725
-#define IMG_CUSTOM_29                                  726
-#define IMG_CUSTOM_29_EDITOR                           727
-#define IMG_CUSTOM_30                                  728
-#define IMG_CUSTOM_30_EDITOR                           729
-#define IMG_CUSTOM_31                                  730
-#define IMG_CUSTOM_31_EDITOR                           731
-#define IMG_CUSTOM_32                                  732
-#define IMG_CUSTOM_32_EDITOR                           733
-#define IMG_CUSTOM_33                                  734
-#define IMG_CUSTOM_33_EDITOR                           735
-#define IMG_CUSTOM_34                                  736
-#define IMG_CUSTOM_34_EDITOR                           737
-#define IMG_CUSTOM_35                                  738
-#define IMG_CUSTOM_35_EDITOR                           739
-#define IMG_CUSTOM_36                                  740
-#define IMG_CUSTOM_36_EDITOR                           741
-#define IMG_CUSTOM_37                                  742
-#define IMG_CUSTOM_37_EDITOR                           743
-#define IMG_CUSTOM_38                                  744
-#define IMG_CUSTOM_38_EDITOR                           745
-#define IMG_CUSTOM_39                                  746
-#define IMG_CUSTOM_39_EDITOR                           747
-#define IMG_CUSTOM_40                                  748
-#define IMG_CUSTOM_40_EDITOR                           749
-#define IMG_CUSTOM_41                                  750
-#define IMG_CUSTOM_41_EDITOR                           751
-#define IMG_CUSTOM_42                                  752
-#define IMG_CUSTOM_42_EDITOR                           753
-#define IMG_CUSTOM_43                                  754
-#define IMG_CUSTOM_43_EDITOR                           755
-#define IMG_CUSTOM_44                                  756
-#define IMG_CUSTOM_44_EDITOR                           757
-#define IMG_CUSTOM_45                                  758
-#define IMG_CUSTOM_45_EDITOR                           759
-#define IMG_CUSTOM_46                                  760
-#define IMG_CUSTOM_46_EDITOR                           761
-#define IMG_CUSTOM_47                                  762
-#define IMG_CUSTOM_47_EDITOR                           763
-#define IMG_CUSTOM_48                                  764
-#define IMG_CUSTOM_48_EDITOR                           765
-#define IMG_CUSTOM_49                                  766
-#define IMG_CUSTOM_49_EDITOR                           767
-#define IMG_CUSTOM_50                                  768
-#define IMG_CUSTOM_50_EDITOR                           769
-#define IMG_CUSTOM_51                                  770
-#define IMG_CUSTOM_51_EDITOR                           771
-#define IMG_CUSTOM_52                                  772
-#define IMG_CUSTOM_52_EDITOR                           773
-#define IMG_CUSTOM_53                                  774
-#define IMG_CUSTOM_53_EDITOR                           775
-#define IMG_CUSTOM_54                                  776
-#define IMG_CUSTOM_54_EDITOR                           777
-#define IMG_CUSTOM_55                                  778
-#define IMG_CUSTOM_55_EDITOR                           779
-#define IMG_CUSTOM_56                                  780
-#define IMG_CUSTOM_56_EDITOR                           781
-#define IMG_CUSTOM_57                                  782
-#define IMG_CUSTOM_57_EDITOR                           783
-#define IMG_CUSTOM_58                                  784
-#define IMG_CUSTOM_58_EDITOR                           785
-#define IMG_CUSTOM_59                                  786
-#define IMG_CUSTOM_59_EDITOR                           787
-#define IMG_CUSTOM_60                                  788
-#define IMG_CUSTOM_60_EDITOR                           789
-#define IMG_CUSTOM_61                                  790
-#define IMG_CUSTOM_61_EDITOR                           791
-#define IMG_CUSTOM_62                                  792
-#define IMG_CUSTOM_62_EDITOR                           793
-#define IMG_CUSTOM_63                                  794
-#define IMG_CUSTOM_63_EDITOR                           795
-#define IMG_CUSTOM_64                                  796
-#define IMG_CUSTOM_64_EDITOR                           797
-#define IMG_CUSTOM_65                                  798
-#define IMG_CUSTOM_65_EDITOR                           799
-#define IMG_CUSTOM_66                                  800
-#define IMG_CUSTOM_66_EDITOR                           801
-#define IMG_CUSTOM_67                                  802
-#define IMG_CUSTOM_67_EDITOR                           803
-#define IMG_CUSTOM_68                                  804
-#define IMG_CUSTOM_68_EDITOR                           805
-#define IMG_CUSTOM_69                                  806
-#define IMG_CUSTOM_69_EDITOR                           807
-#define IMG_CUSTOM_70                                  808
-#define IMG_CUSTOM_70_EDITOR                           809
-#define IMG_CUSTOM_71                                  810
-#define IMG_CUSTOM_71_EDITOR                           811
-#define IMG_CUSTOM_72                                  812
-#define IMG_CUSTOM_72_EDITOR                           813
-#define IMG_CUSTOM_73                                  814
-#define IMG_CUSTOM_73_EDITOR                           815
-#define IMG_CUSTOM_74                                  816
-#define IMG_CUSTOM_74_EDITOR                           817
-#define IMG_CUSTOM_75                                  818
-#define IMG_CUSTOM_75_EDITOR                           819
-#define IMG_CUSTOM_76                                  820
-#define IMG_CUSTOM_76_EDITOR                           821
-#define IMG_CUSTOM_77                                  822
-#define IMG_CUSTOM_77_EDITOR                           823
-#define IMG_CUSTOM_78                                  824
-#define IMG_CUSTOM_78_EDITOR                           825
-#define IMG_CUSTOM_79                                  826
-#define IMG_CUSTOM_79_EDITOR                           827
-#define IMG_CUSTOM_80                                  828
-#define IMG_CUSTOM_80_EDITOR                           829
-#define IMG_CUSTOM_81                                  830
-#define IMG_CUSTOM_81_EDITOR                           831
-#define IMG_CUSTOM_82                                  832
-#define IMG_CUSTOM_82_EDITOR                           833
-#define IMG_CUSTOM_83                                  834
-#define IMG_CUSTOM_83_EDITOR                           835
-#define IMG_CUSTOM_84                                  836
-#define IMG_CUSTOM_84_EDITOR                           837
-#define IMG_CUSTOM_85                                  838
-#define IMG_CUSTOM_85_EDITOR                           839
-#define IMG_CUSTOM_86                                  840
-#define IMG_CUSTOM_86_EDITOR                           841
-#define IMG_CUSTOM_87                                  842
-#define IMG_CUSTOM_87_EDITOR                           843
-#define IMG_CUSTOM_88                                  844
-#define IMG_CUSTOM_88_EDITOR                           845
-#define IMG_CUSTOM_89                                  846
-#define IMG_CUSTOM_89_EDITOR                           847
-#define IMG_CUSTOM_90                                  848
-#define IMG_CUSTOM_90_EDITOR                           849
-#define IMG_CUSTOM_91                                  850
-#define IMG_CUSTOM_91_EDITOR                           851
-#define IMG_CUSTOM_92                                  852
-#define IMG_CUSTOM_92_EDITOR                           853
-#define IMG_CUSTOM_93                                  854
-#define IMG_CUSTOM_93_EDITOR                           855
-#define IMG_CUSTOM_94                                  856
-#define IMG_CUSTOM_94_EDITOR                           857
-#define IMG_CUSTOM_95                                  858
-#define IMG_CUSTOM_95_EDITOR                           859
-#define IMG_CUSTOM_96                                  860
-#define IMG_CUSTOM_96_EDITOR                           861
-#define IMG_CUSTOM_97                                  862
-#define IMG_CUSTOM_97_EDITOR                           863
-#define IMG_CUSTOM_98                                  864
-#define IMG_CUSTOM_98_EDITOR                           865
-#define IMG_CUSTOM_99                                  866
-#define IMG_CUSTOM_99_EDITOR                           867
-#define IMG_CUSTOM_100                                 868
-#define IMG_CUSTOM_100_EDITOR                          869
-#define IMG_CUSTOM_101                                 870
-#define IMG_CUSTOM_101_EDITOR                          871
-#define IMG_CUSTOM_102                                 872
-#define IMG_CUSTOM_102_EDITOR                          873
-#define IMG_CUSTOM_103                                 874
-#define IMG_CUSTOM_103_EDITOR                          875
-#define IMG_CUSTOM_104                                 876
-#define IMG_CUSTOM_104_EDITOR                          877
-#define IMG_CUSTOM_105                                 878
-#define IMG_CUSTOM_105_EDITOR                          879
-#define IMG_CUSTOM_106                                 880
-#define IMG_CUSTOM_106_EDITOR                          881
-#define IMG_CUSTOM_107                                 882
-#define IMG_CUSTOM_107_EDITOR                          883
-#define IMG_CUSTOM_108                                 884
-#define IMG_CUSTOM_108_EDITOR                          885
-#define IMG_CUSTOM_109                                 886
-#define IMG_CUSTOM_109_EDITOR                          887
-#define IMG_CUSTOM_110                                 888
-#define IMG_CUSTOM_110_EDITOR                          889
-#define IMG_CUSTOM_111                                 890
-#define IMG_CUSTOM_111_EDITOR                          891
-#define IMG_CUSTOM_112                                 892
-#define IMG_CUSTOM_112_EDITOR                          893
-#define IMG_CUSTOM_113                                 894
-#define IMG_CUSTOM_113_EDITOR                          895
-#define IMG_CUSTOM_114                                 896
-#define IMG_CUSTOM_114_EDITOR                          897
-#define IMG_CUSTOM_115                                 898
-#define IMG_CUSTOM_115_EDITOR                          899
-#define IMG_CUSTOM_116                                 900
-#define IMG_CUSTOM_116_EDITOR                          901
-#define IMG_CUSTOM_117                                 902
-#define IMG_CUSTOM_117_EDITOR                          903
-#define IMG_CUSTOM_118                                 904
-#define IMG_CUSTOM_118_EDITOR                          905
-#define IMG_CUSTOM_119                                 906
-#define IMG_CUSTOM_119_EDITOR                          907
-#define IMG_CUSTOM_120                                 908
-#define IMG_CUSTOM_120_EDITOR                          909
-#define IMG_CUSTOM_121                                 910
-#define IMG_CUSTOM_121_EDITOR                          911
-#define IMG_CUSTOM_122                                 912
-#define IMG_CUSTOM_122_EDITOR                          913
-#define IMG_CUSTOM_123                                 914
-#define IMG_CUSTOM_123_EDITOR                          915
-#define IMG_CUSTOM_124                                 916
-#define IMG_CUSTOM_124_EDITOR                          917
-#define IMG_CUSTOM_125                                 918
-#define IMG_CUSTOM_125_EDITOR                          919
-#define IMG_CUSTOM_126                                 920
-#define IMG_CUSTOM_126_EDITOR                          921
-#define IMG_CUSTOM_127                                 922
-#define IMG_CUSTOM_127_EDITOR                          923
-#define IMG_CUSTOM_128                                 924
-#define IMG_CUSTOM_128_EDITOR                          925
-#define IMG_TOON_1                                     926
-#define IMG_TOON_2                                     927
-#define IMG_TOON_3                                     928
-#define IMG_TOON_4                                     929
-#define IMG_TOON_5                                     930
-#define IMG_TOON_6                                     931
-#define IMG_TOON_7                                     932
-#define IMG_TOON_8                                     933
-#define IMG_TOON_9                                     934
-#define IMG_TOON_10                                    935
-#define IMG_TOON_11                                    936
-#define IMG_TOON_12                                    937
-#define IMG_TOON_13                                    938
-#define IMG_TOON_14                                    939
-#define IMG_TOON_15                                    940
-#define IMG_TOON_16                                    941
-#define IMG_TOON_17                                    942
-#define IMG_TOON_18                                    943
-#define IMG_TOON_19                                    944
-#define IMG_TOON_20                                    945
-#define IMG_MENU_CALIBRATE_RED                         946
-#define IMG_MENU_CALIBRATE_BLUE                                947
-#define IMG_MENU_CALIBRATE_YELLOW                      948
-#define IMG_MENU_BUTTON                                        949
-#define IMG_MENU_BUTTON_ACTIVE                         950
-#define IMG_MENU_BUTTON_LEFT                           951
-#define IMG_MENU_BUTTON_RIGHT                          952
-#define IMG_MENU_BUTTON_UP                             953
-#define IMG_MENU_BUTTON_DOWN                           954
-#define IMG_MENU_BUTTON_LEFT_ACTIVE                    955
-#define IMG_MENU_BUTTON_RIGHT_ACTIVE                   956
-#define IMG_MENU_BUTTON_UP_ACTIVE                      957
-#define IMG_MENU_BUTTON_DOWN_ACTIVE                    958
-#define IMG_MENU_SCROLLBAR                             959
-#define IMG_MENU_SCROLLBAR_ACTIVE                      960
-#define IMG_FONT_INITIAL_1                             961
-#define IMG_FONT_INITIAL_2                             962
-#define IMG_FONT_INITIAL_3                             963
-#define IMG_FONT_INITIAL_4                             964
-#define IMG_FONT_TITLE_1                               965
-#define IMG_FONT_TITLE_1_LEVELS                                966
-#define IMG_FONT_TITLE_2                               967
-#define IMG_FONT_MENU_1                                        968
-#define IMG_FONT_MENU_2                                        969
-#define IMG_FONT_TEXT_1                                        970
-#define IMG_FONT_TEXT_1_LEVELS                         971
-#define IMG_FONT_TEXT_1_PREVIEW                                972
-#define IMG_FONT_TEXT_1_SCORES                         973
-#define IMG_FONT_TEXT_1_ACTIVE_SCORES                  974
-#define IMG_FONT_TEXT_2                                        975
-#define IMG_FONT_TEXT_2_LEVELS                         976
-#define IMG_FONT_TEXT_2_PREVIEW                                977
-#define IMG_FONT_TEXT_2_SCORES                         978
-#define IMG_FONT_TEXT_2_ACTIVE_SCORES                  979
-#define IMG_FONT_TEXT_3                                        980
-#define IMG_FONT_TEXT_3_LEVELS                         981
-#define IMG_FONT_TEXT_3_PREVIEW                                982
-#define IMG_FONT_TEXT_3_SCORES                         983
-#define IMG_FONT_TEXT_3_ACTIVE_SCORES                  984
-#define IMG_FONT_TEXT_4                                        985
-#define IMG_FONT_TEXT_4_LEVELS                         986
-#define IMG_FONT_TEXT_4_SCORES                         987
-#define IMG_FONT_TEXT_4_ACTIVE_SCORES                  988
-#define IMG_FONT_INPUT_1                               989
-#define IMG_FONT_INPUT_1_MAIN                          990
-#define IMG_FONT_INPUT_1_ACTIVE                                991
-#define IMG_FONT_INPUT_1_ACTIVE_MAIN                   992
-#define IMG_FONT_INPUT_1_ACTIVE_SETUP                  993
-#define IMG_FONT_INPUT_2                               994
-#define IMG_FONT_INPUT_2_ACTIVE                                995
-#define IMG_FONT_OPTION_OFF                            996
-#define IMG_FONT_OPTION_ON                             997
-#define IMG_FONT_VALUE_1                               998
-#define IMG_FONT_VALUE_2                               999
-#define IMG_FONT_VALUE_OLD                             1000
-#define IMG_FONT_LEVEL_NUMBER                          1001
-#define IMG_FONT_TAPE_RECORDER                         1002
-#define IMG_FONT_GAME_INFO                             1003
-#define IMG_GLOBAL_BORDER                              1004
-#define IMG_GLOBAL_DOOR                                        1005
-#define IMG_EDITOR_ELEMENT_BORDER                      1006
-#define IMG_EDITOR_ELEMENT_BORDER_INPUT                        1007
-#define IMG_BACKGROUND                                 1008
-#define IMG_BACKGROUND_MAIN                            1009
-#define IMG_BACKGROUND_LEVELS                          1010
-#define IMG_BACKGROUND_SCORES                          1011
-#define IMG_BACKGROUND_EDITOR                          1012
-#define IMG_BACKGROUND_INFO                            1013
-#define IMG_BACKGROUND_SETUP                           1014
-#define IMG_BACKGROUND_DOOR                            1015
+#define IMG_SP_DISK_RED_ACTIVE                         71
+#define IMG_SP_PORT_RIGHT                              72
+#define IMG_SP_PORT_DOWN                               73
+#define IMG_SP_PORT_LEFT                               74
+#define IMG_SP_PORT_UP                                 75
+#define IMG_SP_PORT_HORIZONTAL                         76
+#define IMG_SP_PORT_VERTICAL                           77
+#define IMG_SP_PORT_ANY                                        78
+#define IMG_SP_GRAVITY_PORT_RIGHT                      79
+#define IMG_SP_GRAVITY_PORT_DOWN                       80
+#define IMG_SP_GRAVITY_PORT_LEFT                       81
+#define IMG_SP_GRAVITY_PORT_UP                         82
+#define IMG_SP_SNIKSNAK                                        83
+#define IMG_SP_SNIKSNAK_LEFT                           84
+#define IMG_SP_SNIKSNAK_RIGHT                          85
+#define IMG_SP_SNIKSNAK_UP                             86
+#define IMG_SP_SNIKSNAK_DOWN                           87
+#define IMG_SP_ELECTRON                                        88
+#define IMG_SP_ELECTRON_EDITOR                         89
+#define IMG_SP_ELECTRON_EXPLODING                      90
+#define IMG_SP_TERMINAL                                        91
+#define IMG_SP_TERMINAL_EDITOR                         92
+#define IMG_SP_TERMINAL_ACTIVE                         93
+#define IMG_SP_BUGGY_BASE                              94
+#define IMG_SP_BUGGY_BASE_EDITOR                       95
+#define IMG_SP_BUGGY_BASE_ACTIVATING                   96
+#define IMG_SP_BUGGY_BASE_ACTIVE                       97
+#define IMG_SP_HARDWARE_BASE_1                         98
+#define IMG_SP_HARDWARE_BASE_2                         99
+#define IMG_SP_HARDWARE_BASE_3                         100
+#define IMG_SP_HARDWARE_BASE_4                         101
+#define IMG_SP_HARDWARE_BASE_5                         102
+#define IMG_SP_HARDWARE_BASE_6                         103
+#define IMG_SOKOBAN_OBJECT                             104
+#define IMG_SOKOBAN_OBJECT_EDITOR                      105
+#define IMG_SOKOBAN_FIELD_EMPTY                                106
+#define IMG_SOKOBAN_FIELD_FULL                         107
+#define IMG_EMPTY_SPACE                                        108
+#define IMG_SAND                                       109
+#define IMG_SAND_CRUMBLED                              110
+#define IMG_SAND_DIGGING_LEFT                          111
+#define IMG_SAND_DIGGING_RIGHT                         112
+#define IMG_SAND_DIGGING_UP                            113
+#define IMG_SAND_DIGGING_DOWN                          114
+#define IMG_SAND_DIGGING_LEFT_CRUMBLED                 115
+#define IMG_SAND_DIGGING_RIGHT_CRUMBLED                        116
+#define IMG_SAND_DIGGING_UP_CRUMBLED                   117
+#define IMG_SAND_DIGGING_DOWN_CRUMBLED                 118
+#define IMG_WALL                                       119
+#define IMG_WALL_SLIPPERY                              120
+#define IMG_STEELWALL                                  121
+#define IMG_ROCK                                       122
+#define IMG_ROCK_MOVING_LEFT                           123
+#define IMG_ROCK_MOVING_RIGHT                          124
+#define IMG_ROCK_PUSHING_LEFT                          125
+#define IMG_ROCK_PUSHING_RIGHT                         126
+#define IMG_EMERALD                                    127
+#define IMG_EMERALD_MOVING                             128
+#define IMG_EMERALD_FALLING                            129
+#define IMG_EMERALD_COLLECTING                         130
+#define IMG_DIAMOND                                    131
+#define IMG_DIAMOND_MOVING                             132
+#define IMG_DIAMOND_FALLING                            133
+#define IMG_DIAMOND_COLLECTING                         134
+#define IMG_BOMB                                       135
+#define IMG_NUT                                                136
+#define IMG_NUT_BREAKING                               137
+#define IMG_DYNAMITE                                   138
+#define IMG_DYNAMITE_EDITOR                            139
+#define IMG_DYNAMITE_ACTIVE                            140
+#define IMG_DYNAMITE_ACTIVE_EDITOR                     141
+#define IMG_WALL_EMERALD                               142
+#define IMG_WALL_DIAMOND                               143
+#define IMG_BUG                                                144
+#define IMG_BUG_RIGHT                                  145
+#define IMG_BUG_UP                                     146
+#define IMG_BUG_LEFT                                   147
+#define IMG_BUG_DOWN                                   148
+#define IMG_BUG_MOVING_RIGHT                           149
+#define IMG_BUG_MOVING_UP                              150
+#define IMG_BUG_MOVING_LEFT                            151
+#define IMG_BUG_MOVING_DOWN                            152
+#define IMG_SPACESHIP                                  153
+#define IMG_SPACESHIP_RIGHT                            154
+#define IMG_SPACESHIP_UP                               155
+#define IMG_SPACESHIP_LEFT                             156
+#define IMG_SPACESHIP_DOWN                             157
+#define IMG_SPACESHIP_MOVING_RIGHT                     158
+#define IMG_SPACESHIP_MOVING_UP                                159
+#define IMG_SPACESHIP_MOVING_LEFT                      160
+#define IMG_SPACESHIP_MOVING_DOWN                      161
+#define IMG_YAMYAM                                     162
+#define IMG_YAMYAM_MOVING                              163
+#define IMG_ROBOT                                      164
+#define IMG_ROBOT_MOVING                               165
+#define IMG_ROBOT_WHEEL                                        166
+#define IMG_ROBOT_WHEEL_ACTIVE                         167
+#define IMG_MAGIC_WALL                                 168
+#define IMG_MAGIC_WALL_ACTIVE                          169
+#define IMG_MAGIC_WALL_FILLING                         170
+#define IMG_MAGIC_WALL_FULL                            171
+#define IMG_MAGIC_WALL_EMPTYING                                172
+#define IMG_MAGIC_WALL_DEAD                            173
+#define IMG_QUICKSAND_EMPTY                            174
+#define IMG_QUICKSAND_FILLING                          175
+#define IMG_QUICKSAND_FULL                             176
+#define IMG_QUICKSAND_FULL_EDITOR                      177
+#define IMG_QUICKSAND_EMPTYING                         178
+#define IMG_ACID_POOL_TOPLEFT                          179
+#define IMG_ACID_POOL_TOPRIGHT                         180
+#define IMG_ACID_POOL_BOTTOMLEFT                       181
+#define IMG_ACID_POOL_BOTTOM                           182
+#define IMG_ACID_POOL_BOTTOMRIGHT                      183
+#define IMG_ACID                                       184
+#define IMG_ACID_SPLASH_LEFT                           185
+#define IMG_ACID_SPLASH_RIGHT                          186
+#define IMG_AMOEBA_DROP                                        187
+#define IMG_AMOEBA_GROWING                             188
+#define IMG_AMOEBA_SHRINKING                           189
+#define IMG_AMOEBA_WET                                 190
+#define IMG_AMOEBA_WET_EDITOR                          191
+#define IMG_AMOEBA_DROPPING                            192
+#define IMG_AMOEBA_DRY                                 193
+#define IMG_AMOEBA_FULL                                        194
+#define IMG_AMOEBA_FULL_EDITOR                         195
+#define IMG_AMOEBA_DEAD                                        196
+#define IMG_AMOEBA_DEAD_EDITOR                         197
+#define IMG_EM_KEY_1                                   198
+#define IMG_EM_KEY_2                                   199
+#define IMG_EM_KEY_3                                   200
+#define IMG_EM_KEY_4                                   201
+#define IMG_EM_GATE_1                                  202
+#define IMG_EM_GATE_2                                  203
+#define IMG_EM_GATE_3                                  204
+#define IMG_EM_GATE_4                                  205
+#define IMG_EM_GATE_1_GRAY                             206
+#define IMG_EM_GATE_1_GRAY_EDITOR                      207
+#define IMG_EM_GATE_2_GRAY                             208
+#define IMG_EM_GATE_2_GRAY_EDITOR                      209
+#define IMG_EM_GATE_3_GRAY                             210
+#define IMG_EM_GATE_3_GRAY_EDITOR                      211
+#define IMG_EM_GATE_4_GRAY                             212
+#define IMG_EM_GATE_4_GRAY_EDITOR                      213
+#define IMG_EXIT_CLOSED                                        214
+#define IMG_EXIT_OPENING                               215
+#define IMG_EXIT_OPEN                                  216
+#define IMG_BALLOON                                    217
+#define IMG_BALLOON_MOVING                             218
+#define IMG_BALLOON_PUSHING                            219
+#define IMG_BALLOON_SWITCH_LEFT                                220
+#define IMG_BALLOON_SWITCH_RIGHT                       221
+#define IMG_BALLOON_SWITCH_UP                          222
+#define IMG_BALLOON_SWITCH_DOWN                                223
+#define IMG_BALLOON_SWITCH_ANY                         224
+#define IMG_SPRING                                     225
+#define IMG_EMC_STEELWALL_1                            226
+#define IMG_EMC_STEELWALL_2                            227
+#define IMG_EMC_STEELWALL_3                            228
+#define IMG_EMC_STEELWALL_4                            229
+#define IMG_EMC_WALL_1                                 230
+#define IMG_EMC_WALL_2                                 231
+#define IMG_EMC_WALL_3                                 232
+#define IMG_EMC_WALL_4                                 233
+#define IMG_EMC_WALL_5                                 234
+#define IMG_EMC_WALL_6                                 235
+#define IMG_EMC_WALL_7                                 236
+#define IMG_EMC_WALL_8                                 237
+#define IMG_INVISIBLE_STEELWALL                                238
+#define IMG_INVISIBLE_STEELWALL_EDITOR                 239
+#define IMG_INVISIBLE_STEELWALL_ACTIVE                 240
+#define IMG_INVISIBLE_WALL                             241
+#define IMG_INVISIBLE_WALL_EDITOR                      242
+#define IMG_INVISIBLE_WALL_ACTIVE                      243
+#define IMG_INVISIBLE_SAND                             244
+#define IMG_INVISIBLE_SAND_EDITOR                      245
+#define IMG_INVISIBLE_SAND_ACTIVE                      246
+#define IMG_CONVEYOR_BELT_1_MIDDLE                     247
+#define IMG_CONVEYOR_BELT_1_MIDDLE_ACTIVE              248
+#define IMG_CONVEYOR_BELT_1_LEFT                       249
+#define IMG_CONVEYOR_BELT_1_LEFT_ACTIVE                        250
+#define IMG_CONVEYOR_BELT_1_RIGHT                      251
+#define IMG_CONVEYOR_BELT_1_RIGHT_ACTIVE               252
+#define IMG_CONVEYOR_BELT_1_SWITCH_LEFT                        253
+#define IMG_CONVEYOR_BELT_1_SWITCH_MIDDLE              254
+#define IMG_CONVEYOR_BELT_1_SWITCH_RIGHT               255
+#define IMG_CONVEYOR_BELT_2_MIDDLE                     256
+#define IMG_CONVEYOR_BELT_2_MIDDLE_ACTIVE              257
+#define IMG_CONVEYOR_BELT_2_LEFT                       258
+#define IMG_CONVEYOR_BELT_2_LEFT_ACTIVE                        259
+#define IMG_CONVEYOR_BELT_2_RIGHT                      260
+#define IMG_CONVEYOR_BELT_2_RIGHT_ACTIVE               261
+#define IMG_CONVEYOR_BELT_2_SWITCH_LEFT                        262
+#define IMG_CONVEYOR_BELT_2_SWITCH_MIDDLE              263
+#define IMG_CONVEYOR_BELT_2_SWITCH_RIGHT               264
+#define IMG_CONVEYOR_BELT_3_MIDDLE                     265
+#define IMG_CONVEYOR_BELT_3_MIDDLE_ACTIVE              266
+#define IMG_CONVEYOR_BELT_3_LEFT                       267
+#define IMG_CONVEYOR_BELT_3_LEFT_ACTIVE                        268
+#define IMG_CONVEYOR_BELT_3_RIGHT                      269
+#define IMG_CONVEYOR_BELT_3_RIGHT_ACTIVE               270
+#define IMG_CONVEYOR_BELT_3_SWITCH_LEFT                        271
+#define IMG_CONVEYOR_BELT_3_SWITCH_MIDDLE              272
+#define IMG_CONVEYOR_BELT_3_SWITCH_RIGHT               273
+#define IMG_CONVEYOR_BELT_4_MIDDLE                     274
+#define IMG_CONVEYOR_BELT_4_MIDDLE_ACTIVE              275
+#define IMG_CONVEYOR_BELT_4_LEFT                       276
+#define IMG_CONVEYOR_BELT_4_LEFT_ACTIVE                        277
+#define IMG_CONVEYOR_BELT_4_RIGHT                      278
+#define IMG_CONVEYOR_BELT_4_RIGHT_ACTIVE               279
+#define IMG_CONVEYOR_BELT_4_SWITCH_LEFT                        280
+#define IMG_CONVEYOR_BELT_4_SWITCH_MIDDLE              281
+#define IMG_CONVEYOR_BELT_4_SWITCH_RIGHT               282
+#define IMG_SWITCHGATE_SWITCH_UP                       283
+#define IMG_SWITCHGATE_SWITCH_DOWN                     284
+#define IMG_LIGHT_SWITCH                               285
+#define IMG_LIGHT_SWITCH_ACTIVE                                286
+#define IMG_TIMEGATE_SWITCH                            287
+#define IMG_TIMEGATE_SWITCH_ACTIVE                     288
+#define IMG_ENVELOPE                                   289
+#define IMG_SIGN_EXCLAMATION                           290
+#define IMG_SIGN_STOP                                  291
+#define IMG_LANDMINE                                   292
+#define IMG_STEELWALL_SLIPPERY                         293
+#define IMG_EXTRA_TIME                                 294
+#define IMG_SHIELD_NORMAL                              295
+#define IMG_SHIELD_NORMAL_ACTIVE                       296
+#define IMG_SHIELD_DEADLY                              297
+#define IMG_SHIELD_DEADLY_ACTIVE                       298
+#define IMG_SWITCHGATE_CLOSED                          299
+#define IMG_SWITCHGATE_OPENING                         300
+#define IMG_SWITCHGATE_OPEN                            301
+#define IMG_SWITCHGATE_CLOSING                         302
+#define IMG_TIMEGATE_CLOSED                            303
+#define IMG_TIMEGATE_OPENING                           304
+#define IMG_TIMEGATE_OPEN                              305
+#define IMG_TIMEGATE_CLOSING                           306
+#define IMG_PEARL                                      307
+#define IMG_PEARL_BREAKING                             308
+#define IMG_CRYSTAL                                    309
+#define IMG_WALL_PEARL                                 310
+#define IMG_WALL_CRYSTAL                               311
+#define IMG_TUBE_RIGHT_DOWN                            312
+#define IMG_TUBE_HORIZONTAL_DOWN                       313
+#define IMG_TUBE_LEFT_DOWN                             314
+#define IMG_TUBE_HORIZONTAL                            315
+#define IMG_TUBE_VERTICAL_RIGHT                                316
+#define IMG_TUBE_ANY                                   317
+#define IMG_TUBE_VERTICAL_LEFT                         318
+#define IMG_TUBE_VERTICAL                              319
+#define IMG_TUBE_RIGHT_UP                              320
+#define IMG_TUBE_HORIZONTAL_UP                         321
+#define IMG_TUBE_LEFT_UP                               322
+#define IMG_TRAP                                       323
+#define IMG_TRAP_ACTIVE                                        324
+#define IMG_DX_SUPABOMB                                        325
+#define IMG_KEY_1                                      326
+#define IMG_KEY_1_EDITOR                               327
+#define IMG_KEY_2                                      328
+#define IMG_KEY_2_EDITOR                               329
+#define IMG_KEY_3                                      330
+#define IMG_KEY_3_EDITOR                               331
+#define IMG_KEY_4                                      332
+#define IMG_KEY_4_EDITOR                               333
+#define IMG_GATE_1                                     334
+#define IMG_GATE_2                                     335
+#define IMG_GATE_3                                     336
+#define IMG_GATE_4                                     337
+#define IMG_GATE_1_GRAY                                        338
+#define IMG_GATE_1_GRAY_EDITOR                         339
+#define IMG_GATE_2_GRAY                                        340
+#define IMG_GATE_2_GRAY_EDITOR                         341
+#define IMG_GATE_3_GRAY                                        342
+#define IMG_GATE_3_GRAY_EDITOR                         343
+#define IMG_GATE_4_GRAY                                        344
+#define IMG_GATE_4_GRAY_EDITOR                         345
+#define IMG_GAME_OF_LIFE                               346
+#define IMG_BIOMAZE                                    347
+#define IMG_PACMAN                                     348
+#define IMG_PACMAN_RIGHT                               349
+#define IMG_PACMAN_UP                                  350
+#define IMG_PACMAN_LEFT                                        351
+#define IMG_PACMAN_DOWN                                        352
+#define IMG_PACMAN_MOVING_RIGHT                                353
+#define IMG_PACMAN_MOVING_UP                           354
+#define IMG_PACMAN_MOVING_LEFT                         355
+#define IMG_PACMAN_MOVING_DOWN                         356
+#define IMG_LAMP                                       357
+#define IMG_LAMP_EDITOR                                        358
+#define IMG_LAMP_ACTIVE                                        359
+#define IMG_TIME_ORB_FULL                              360
+#define IMG_TIME_ORB_EMPTY                             361
+#define IMG_EMERALD_YELLOW                             362
+#define IMG_EMERALD_YELLOW_MOVING                      363
+#define IMG_EMERALD_YELLOW_FALLING                     364
+#define IMG_EMERALD_RED                                        365
+#define IMG_EMERALD_RED_MOVING                         366
+#define IMG_EMERALD_RED_FALLING                                367
+#define IMG_EMERALD_PURPLE                             368
+#define IMG_EMERALD_PURPLE_MOVING                      369
+#define IMG_EMERALD_PURPLE_FALLING                     370
+#define IMG_WALL_EMERALD_YELLOW                                371
+#define IMG_WALL_EMERALD_RED                           372
+#define IMG_WALL_EMERALD_PURPLE                                373
+#define IMG_WALL_BD_DIAMOND                            374
+#define IMG_EXPANDABLE_WALL                            375
+#define IMG_EXPANDABLE_WALL_HORIZONTAL                 376
+#define IMG_EXPANDABLE_WALL_HORIZONTAL_EDITOR          377
+#define IMG_EXPANDABLE_WALL_VERTICAL                   378
+#define IMG_EXPANDABLE_WALL_VERTICAL_EDITOR            379
+#define IMG_EXPANDABLE_WALL_ANY                                380
+#define IMG_EXPANDABLE_WALL_ANY_EDITOR                 381
+#define IMG_EXPANDABLE_WALL_GROWING_LEFT               382
+#define IMG_EXPANDABLE_WALL_GROWING_RIGHT              383
+#define IMG_EXPANDABLE_WALL_GROWING_UP                 384
+#define IMG_EXPANDABLE_WALL_GROWING_DOWN               385
+#define IMG_BLACK_ORB                                  386
+#define IMG_SPEED_PILL                                 387
+#define IMG_DARK_YAMYAM                                        388
+#define IMG_DYNABOMB                                   389
+#define IMG_DYNABOMB_ACTIVE                            390
+#define IMG_DYNABOMB_PLAYER_1                          391
+#define IMG_DYNABOMB_PLAYER_1_ACTIVE                   392
+#define IMG_DYNABOMB_PLAYER_2                          393
+#define IMG_DYNABOMB_PLAYER_2_ACTIVE                   394
+#define IMG_DYNABOMB_PLAYER_3                          395
+#define IMG_DYNABOMB_PLAYER_3_ACTIVE                   396
+#define IMG_DYNABOMB_PLAYER_4                          397
+#define IMG_DYNABOMB_PLAYER_4_ACTIVE                   398
+#define IMG_DYNABOMB_INCREASE_NUMBER                   399
+#define IMG_DYNABOMB_INCREASE_SIZE                     400
+#define IMG_DYNABOMB_INCREASE_POWER                    401
+#define IMG_PIG                                                402
+#define IMG_PIG_DOWN                                   403
+#define IMG_PIG_UP                                     404
+#define IMG_PIG_LEFT                                   405
+#define IMG_PIG_RIGHT                                  406
+#define IMG_PIG_MOVING_DOWN                            407
+#define IMG_PIG_MOVING_UP                              408
+#define IMG_PIG_MOVING_LEFT                            409
+#define IMG_PIG_MOVING_RIGHT                           410
+#define IMG_PIG_DIGGING_DOWN                           411
+#define IMG_PIG_DIGGING_UP                             412
+#define IMG_PIG_DIGGING_LEFT                           413
+#define IMG_PIG_DIGGING_RIGHT                          414
+#define IMG_DRAGON                                     415
+#define IMG_DRAGON_DOWN                                        416
+#define IMG_DRAGON_UP                                  417
+#define IMG_DRAGON_LEFT                                        418
+#define IMG_DRAGON_RIGHT                               419
+#define IMG_DRAGON_MOVING_DOWN                         420
+#define IMG_DRAGON_MOVING_UP                           421
+#define IMG_DRAGON_MOVING_LEFT                         422
+#define IMG_DRAGON_MOVING_RIGHT                                423
+#define IMG_DRAGON_ATTACKING_DOWN                      424
+#define IMG_DRAGON_ATTACKING_UP                                425
+#define IMG_DRAGON_ATTACKING_LEFT                      426
+#define IMG_DRAGON_ATTACKING_RIGHT                     427
+#define IMG_MOLE                                       428
+#define IMG_MOLE_DOWN                                  429
+#define IMG_MOLE_UP                                    430
+#define IMG_MOLE_LEFT                                  431
+#define IMG_MOLE_RIGHT                                 432
+#define IMG_MOLE_MOVING_DOWN                           433
+#define IMG_MOLE_MOVING_UP                             434
+#define IMG_MOLE_MOVING_LEFT                           435
+#define IMG_MOLE_MOVING_RIGHT                          436
+#define IMG_MOLE_DIGGING_DOWN                          437
+#define IMG_MOLE_DIGGING_UP                            438
+#define IMG_MOLE_DIGGING_LEFT                          439
+#define IMG_MOLE_DIGGING_RIGHT                         440
+#define IMG_PENGUIN                                    441
+#define IMG_PENGUIN_EDITOR                             442
+#define IMG_PENGUIN_DOWN                               443
+#define IMG_PENGUIN_UP                                 444
+#define IMG_PENGUIN_LEFT                               445
+#define IMG_PENGUIN_RIGHT                              446
+#define IMG_PENGUIN_MOVING_DOWN                                447
+#define IMG_PENGUIN_MOVING_UP                          448
+#define IMG_PENGUIN_MOVING_LEFT                                449
+#define IMG_PENGUIN_MOVING_RIGHT                       450
+#define IMG_SATELLITE                                  451
+#define IMG_FLAMES_1_LEFT                              452
+#define IMG_FLAMES_2_LEFT                              453
+#define IMG_FLAMES_3_LEFT                              454
+#define IMG_FLAMES_1_RIGHT                             455
+#define IMG_FLAMES_2_RIGHT                             456
+#define IMG_FLAMES_3_RIGHT                             457
+#define IMG_FLAMES_1_UP                                        458
+#define IMG_FLAMES_2_UP                                        459
+#define IMG_FLAMES_3_UP                                        460
+#define IMG_FLAMES_1_DOWN                              461
+#define IMG_FLAMES_2_DOWN                              462
+#define IMG_FLAMES_3_DOWN                              463
+#define IMG_STONEBLOCK                                 464
+#define IMG_PLAYER_1                                   465
+#define IMG_PLAYER_1_EDITOR                            466
+#define IMG_PLAYER_1_DOWN                              467
+#define IMG_PLAYER_1_UP                                        468
+#define IMG_PLAYER_1_LEFT                              469
+#define IMG_PLAYER_1_RIGHT                             470
+#define IMG_PLAYER_1_MOVING_DOWN                       471
+#define IMG_PLAYER_1_MOVING_UP                         472
+#define IMG_PLAYER_1_MOVING_LEFT                       473
+#define IMG_PLAYER_1_MOVING_RIGHT                      474
+#define IMG_PLAYER_1_DIGGING_DOWN                      475
+#define IMG_PLAYER_1_DIGGING_UP                                476
+#define IMG_PLAYER_1_DIGGING_LEFT                      477
+#define IMG_PLAYER_1_DIGGING_RIGHT                     478
+#define IMG_PLAYER_1_COLLECTING_DOWN                   479
+#define IMG_PLAYER_1_COLLECTING_UP                     480
+#define IMG_PLAYER_1_COLLECTING_LEFT                   481
+#define IMG_PLAYER_1_COLLECTING_RIGHT                  482
+#define IMG_PLAYER_1_PUSHING_DOWN                      483
+#define IMG_PLAYER_1_PUSHING_UP                                484
+#define IMG_PLAYER_1_PUSHING_LEFT                      485
+#define IMG_PLAYER_1_PUSHING_RIGHT                     486
+#define IMG_PLAYER_1_SNAPPING_DOWN                     487
+#define IMG_PLAYER_1_SNAPPING_UP                       488
+#define IMG_PLAYER_1_SNAPPING_LEFT                     489
+#define IMG_PLAYER_1_SNAPPING_RIGHT                    490
+#define IMG_PLAYER_2                                   491
+#define IMG_PLAYER_2_EDITOR                            492
+#define IMG_PLAYER_2_DOWN                              493
+#define IMG_PLAYER_2_UP                                        494
+#define IMG_PLAYER_2_LEFT                              495
+#define IMG_PLAYER_2_RIGHT                             496
+#define IMG_PLAYER_2_MOVING_DOWN                       497
+#define IMG_PLAYER_2_MOVING_UP                         498
+#define IMG_PLAYER_2_MOVING_LEFT                       499
+#define IMG_PLAYER_2_MOVING_RIGHT                      500
+#define IMG_PLAYER_2_DIGGING_DOWN                      501
+#define IMG_PLAYER_2_DIGGING_UP                                502
+#define IMG_PLAYER_2_DIGGING_LEFT                      503
+#define IMG_PLAYER_2_DIGGING_RIGHT                     504
+#define IMG_PLAYER_2_COLLECTING_DOWN                   505
+#define IMG_PLAYER_2_COLLECTING_UP                     506
+#define IMG_PLAYER_2_COLLECTING_LEFT                   507
+#define IMG_PLAYER_2_COLLECTING_RIGHT                  508
+#define IMG_PLAYER_2_PUSHING_DOWN                      509
+#define IMG_PLAYER_2_PUSHING_UP                                510
+#define IMG_PLAYER_2_PUSHING_LEFT                      511
+#define IMG_PLAYER_2_PUSHING_RIGHT                     512
+#define IMG_PLAYER_2_SNAPPING_DOWN                     513
+#define IMG_PLAYER_2_SNAPPING_UP                       514
+#define IMG_PLAYER_2_SNAPPING_LEFT                     515
+#define IMG_PLAYER_2_SNAPPING_RIGHT                    516
+#define IMG_PLAYER_3                                   517
+#define IMG_PLAYER_3_EDITOR                            518
+#define IMG_PLAYER_3_DOWN                              519
+#define IMG_PLAYER_3_UP                                        520
+#define IMG_PLAYER_3_LEFT                              521
+#define IMG_PLAYER_3_RIGHT                             522
+#define IMG_PLAYER_3_MOVING_DOWN                       523
+#define IMG_PLAYER_3_MOVING_UP                         524
+#define IMG_PLAYER_3_MOVING_LEFT                       525
+#define IMG_PLAYER_3_MOVING_RIGHT                      526
+#define IMG_PLAYER_3_DIGGING_DOWN                      527
+#define IMG_PLAYER_3_DIGGING_UP                                528
+#define IMG_PLAYER_3_DIGGING_LEFT                      529
+#define IMG_PLAYER_3_DIGGING_RIGHT                     530
+#define IMG_PLAYER_3_COLLECTING_DOWN                   531
+#define IMG_PLAYER_3_COLLECTING_UP                     532
+#define IMG_PLAYER_3_COLLECTING_LEFT                   533
+#define IMG_PLAYER_3_COLLECTING_RIGHT                  534
+#define IMG_PLAYER_3_PUSHING_DOWN                      535
+#define IMG_PLAYER_3_PUSHING_UP                                536
+#define IMG_PLAYER_3_PUSHING_LEFT                      537
+#define IMG_PLAYER_3_PUSHING_RIGHT                     538
+#define IMG_PLAYER_3_SNAPPING_DOWN                     539
+#define IMG_PLAYER_3_SNAPPING_UP                       540
+#define IMG_PLAYER_3_SNAPPING_LEFT                     541
+#define IMG_PLAYER_3_SNAPPING_RIGHT                    542
+#define IMG_PLAYER_4                                   543
+#define IMG_PLAYER_4_EDITOR                            544
+#define IMG_PLAYER_4_DOWN                              545
+#define IMG_PLAYER_4_UP                                        546
+#define IMG_PLAYER_4_LEFT                              547
+#define IMG_PLAYER_4_RIGHT                             548
+#define IMG_PLAYER_4_MOVING_DOWN                       549
+#define IMG_PLAYER_4_MOVING_UP                         550
+#define IMG_PLAYER_4_MOVING_LEFT                       551
+#define IMG_PLAYER_4_MOVING_RIGHT                      552
+#define IMG_PLAYER_4_DIGGING_DOWN                      553
+#define IMG_PLAYER_4_DIGGING_UP                                554
+#define IMG_PLAYER_4_DIGGING_LEFT                      555
+#define IMG_PLAYER_4_DIGGING_RIGHT                     556
+#define IMG_PLAYER_4_COLLECTING_DOWN                   557
+#define IMG_PLAYER_4_COLLECTING_UP                     558
+#define IMG_PLAYER_4_COLLECTING_LEFT                   559
+#define IMG_PLAYER_4_COLLECTING_RIGHT                  560
+#define IMG_PLAYER_4_PUSHING_DOWN                      561
+#define IMG_PLAYER_4_PUSHING_UP                                562
+#define IMG_PLAYER_4_PUSHING_LEFT                      563
+#define IMG_PLAYER_4_PUSHING_RIGHT                     564
+#define IMG_PLAYER_4_SNAPPING_DOWN                     565
+#define IMG_PLAYER_4_SNAPPING_UP                       566
+#define IMG_PLAYER_4_SNAPPING_LEFT                     567
+#define IMG_PLAYER_4_SNAPPING_RIGHT                    568
+#define IMG_DEFAULT_EXPLODING                          569
+#define IMG_TWINKLE_BLUE                               570
+#define IMG_TWINKLE_WHITE                              571
+#define IMG_STEELWALL_TOPLEFT                          572
+#define IMG_STEELWALL_TOPRIGHT                         573
+#define IMG_STEELWALL_BOTTOMLEFT                       574
+#define IMG_STEELWALL_BOTTOMRIGHT                      575
+#define IMG_STEELWALL_HORIZONTAL                       576
+#define IMG_STEELWALL_VERTICAL                         577
+#define IMG_STEELWALL_TOPLEFT_EDITOR                   578
+#define IMG_STEELWALL_TOPRIGHT_EDITOR                  579
+#define IMG_STEELWALL_BOTTOMLEFT_EDITOR                        580
+#define IMG_STEELWALL_BOTTOMRIGHT_EDITOR               581
+#define IMG_STEELWALL_HORIZONTAL_EDITOR                        582
+#define IMG_STEELWALL_VERTICAL_EDITOR                  583
+#define IMG_INVISIBLE_STEELWALL_TOPLEFT                        584
+#define IMG_INVISIBLE_STEELWALL_TOPRIGHT               585
+#define IMG_INVISIBLE_STEELWALL_BOTTOMLEFT             586
+#define IMG_INVISIBLE_STEELWALL_BOTTOMRIGHT            587
+#define IMG_INVISIBLE_STEELWALL_HORIZONTAL             588
+#define IMG_INVISIBLE_STEELWALL_VERTICAL               589
+#define IMG_INVISIBLE_STEELWALL_TOPLEFT_EDITOR         590
+#define IMG_INVISIBLE_STEELWALL_TOPRIGHT_EDITOR                591
+#define IMG_INVISIBLE_STEELWALL_BOTTOMLEFT_EDITOR      592
+#define IMG_INVISIBLE_STEELWALL_BOTTOMRIGHT_EDITOR     593
+#define IMG_INVISIBLE_STEELWALL_HORIZONTAL_EDITOR      594
+#define IMG_INVISIBLE_STEELWALL_VERTICAL_EDITOR                595
+#define IMG_ARROW_LEFT                                 596
+#define IMG_ARROW_RIGHT                                        597
+#define IMG_ARROW_UP                                   598
+#define IMG_ARROW_DOWN                                 599
+#define IMG_CHAR_SPACE                                 600
+#define IMG_CHAR_EXCLAM                                        601
+#define IMG_CHAR_QUOTEDBL                              602
+#define IMG_CHAR_NUMBERSIGN                            603
+#define IMG_CHAR_DOLLAR                                        604
+#define IMG_CHAR_PROCENT                               605
+#define IMG_CHAR_AMPERSAND                             606
+#define IMG_CHAR_APOSTROPHE                            607
+#define IMG_CHAR_PARENLEFT                             608
+#define IMG_CHAR_PARENRIGHT                            609
+#define IMG_CHAR_ASTERISK                              610
+#define IMG_CHAR_PLUS                                  611
+#define IMG_CHAR_COMMA                                 612
+#define IMG_CHAR_MINUS                                 613
+#define IMG_CHAR_PERIOD                                        614
+#define IMG_CHAR_SLASH                                 615
+#define IMG_CHAR_0                                     616
+#define IMG_CHAR_1                                     617
+#define IMG_CHAR_2                                     618
+#define IMG_CHAR_3                                     619
+#define IMG_CHAR_4                                     620
+#define IMG_CHAR_5                                     621
+#define IMG_CHAR_6                                     622
+#define IMG_CHAR_7                                     623
+#define IMG_CHAR_8                                     624
+#define IMG_CHAR_9                                     625
+#define IMG_CHAR_COLON                                 626
+#define IMG_CHAR_SEMICOLON                             627
+#define IMG_CHAR_LESS                                  628
+#define IMG_CHAR_EQUAL                                 629
+#define IMG_CHAR_GREATER                               630
+#define IMG_CHAR_QUESTION                              631
+#define IMG_CHAR_AT                                    632
+#define IMG_CHAR_A                                     633
+#define IMG_CHAR_B                                     634
+#define IMG_CHAR_C                                     635
+#define IMG_CHAR_D                                     636
+#define IMG_CHAR_E                                     637
+#define IMG_CHAR_F                                     638
+#define IMG_CHAR_G                                     639
+#define IMG_CHAR_H                                     640
+#define IMG_CHAR_I                                     641
+#define IMG_CHAR_J                                     642
+#define IMG_CHAR_K                                     643
+#define IMG_CHAR_L                                     644
+#define IMG_CHAR_M                                     645
+#define IMG_CHAR_N                                     646
+#define IMG_CHAR_O                                     647
+#define IMG_CHAR_P                                     648
+#define IMG_CHAR_Q                                     649
+#define IMG_CHAR_R                                     650
+#define IMG_CHAR_S                                     651
+#define IMG_CHAR_T                                     652
+#define IMG_CHAR_U                                     653
+#define IMG_CHAR_V                                     654
+#define IMG_CHAR_W                                     655
+#define IMG_CHAR_X                                     656
+#define IMG_CHAR_Y                                     657
+#define IMG_CHAR_Z                                     658
+#define IMG_CHAR_BRACKETLEFT                           659
+#define IMG_CHAR_BACKSLASH                             660
+#define IMG_CHAR_BRACKETRIGHT                          661
+#define IMG_CHAR_ASCIICIRCUM                           662
+#define IMG_CHAR_UNDERSCORE                            663
+#define IMG_CHAR_COPYRIGHT                             664
+#define IMG_CHAR_AUMLAUT                               665
+#define IMG_CHAR_OUMLAUT                               666
+#define IMG_CHAR_UUMLAUT                               667
+#define IMG_CHAR_DEGREE                                        668
+#define IMG_CHAR_TRADEMARK                             669
+#define IMG_CHAR_CURSOR                                        670
+#define IMG_CUSTOM_1                                   671
+#define IMG_CUSTOM_1_EDITOR                            672
+#define IMG_CUSTOM_2                                   673
+#define IMG_CUSTOM_2_EDITOR                            674
+#define IMG_CUSTOM_3                                   675
+#define IMG_CUSTOM_3_EDITOR                            676
+#define IMG_CUSTOM_4                                   677
+#define IMG_CUSTOM_4_EDITOR                            678
+#define IMG_CUSTOM_5                                   679
+#define IMG_CUSTOM_5_EDITOR                            680
+#define IMG_CUSTOM_6                                   681
+#define IMG_CUSTOM_6_EDITOR                            682
+#define IMG_CUSTOM_7                                   683
+#define IMG_CUSTOM_7_EDITOR                            684
+#define IMG_CUSTOM_8                                   685
+#define IMG_CUSTOM_8_EDITOR                            686
+#define IMG_CUSTOM_9                                   687
+#define IMG_CUSTOM_9_EDITOR                            688
+#define IMG_CUSTOM_10                                  689
+#define IMG_CUSTOM_10_EDITOR                           690
+#define IMG_CUSTOM_11                                  691
+#define IMG_CUSTOM_11_EDITOR                           692
+#define IMG_CUSTOM_12                                  693
+#define IMG_CUSTOM_12_EDITOR                           694
+#define IMG_CUSTOM_13                                  695
+#define IMG_CUSTOM_13_EDITOR                           696
+#define IMG_CUSTOM_14                                  697
+#define IMG_CUSTOM_14_EDITOR                           698
+#define IMG_CUSTOM_15                                  699
+#define IMG_CUSTOM_15_EDITOR                           700
+#define IMG_CUSTOM_16                                  701
+#define IMG_CUSTOM_16_EDITOR                           702
+#define IMG_CUSTOM_17                                  703
+#define IMG_CUSTOM_17_EDITOR                           704
+#define IMG_CUSTOM_18                                  705
+#define IMG_CUSTOM_18_EDITOR                           706
+#define IMG_CUSTOM_19                                  707
+#define IMG_CUSTOM_19_EDITOR                           708
+#define IMG_CUSTOM_20                                  709
+#define IMG_CUSTOM_20_EDITOR                           710
+#define IMG_CUSTOM_21                                  711
+#define IMG_CUSTOM_21_EDITOR                           712
+#define IMG_CUSTOM_22                                  713
+#define IMG_CUSTOM_22_EDITOR                           714
+#define IMG_CUSTOM_23                                  715
+#define IMG_CUSTOM_23_EDITOR                           716
+#define IMG_CUSTOM_24                                  717
+#define IMG_CUSTOM_24_EDITOR                           718
+#define IMG_CUSTOM_25                                  719
+#define IMG_CUSTOM_25_EDITOR                           720
+#define IMG_CUSTOM_26                                  721
+#define IMG_CUSTOM_26_EDITOR                           722
+#define IMG_CUSTOM_27                                  723
+#define IMG_CUSTOM_27_EDITOR                           724
+#define IMG_CUSTOM_28                                  725
+#define IMG_CUSTOM_28_EDITOR                           726
+#define IMG_CUSTOM_29                                  727
+#define IMG_CUSTOM_29_EDITOR                           728
+#define IMG_CUSTOM_30                                  729
+#define IMG_CUSTOM_30_EDITOR                           730
+#define IMG_CUSTOM_31                                  731
+#define IMG_CUSTOM_31_EDITOR                           732
+#define IMG_CUSTOM_32                                  733
+#define IMG_CUSTOM_32_EDITOR                           734
+#define IMG_CUSTOM_33                                  735
+#define IMG_CUSTOM_33_EDITOR                           736
+#define IMG_CUSTOM_34                                  737
+#define IMG_CUSTOM_34_EDITOR                           738
+#define IMG_CUSTOM_35                                  739
+#define IMG_CUSTOM_35_EDITOR                           740
+#define IMG_CUSTOM_36                                  741
+#define IMG_CUSTOM_36_EDITOR                           742
+#define IMG_CUSTOM_37                                  743
+#define IMG_CUSTOM_37_EDITOR                           744
+#define IMG_CUSTOM_38                                  745
+#define IMG_CUSTOM_38_EDITOR                           746
+#define IMG_CUSTOM_39                                  747
+#define IMG_CUSTOM_39_EDITOR                           748
+#define IMG_CUSTOM_40                                  749
+#define IMG_CUSTOM_40_EDITOR                           750
+#define IMG_CUSTOM_41                                  751
+#define IMG_CUSTOM_41_EDITOR                           752
+#define IMG_CUSTOM_42                                  753
+#define IMG_CUSTOM_42_EDITOR                           754
+#define IMG_CUSTOM_43                                  755
+#define IMG_CUSTOM_43_EDITOR                           756
+#define IMG_CUSTOM_44                                  757
+#define IMG_CUSTOM_44_EDITOR                           758
+#define IMG_CUSTOM_45                                  759
+#define IMG_CUSTOM_45_EDITOR                           760
+#define IMG_CUSTOM_46                                  761
+#define IMG_CUSTOM_46_EDITOR                           762
+#define IMG_CUSTOM_47                                  763
+#define IMG_CUSTOM_47_EDITOR                           764
+#define IMG_CUSTOM_48                                  765
+#define IMG_CUSTOM_48_EDITOR                           766
+#define IMG_CUSTOM_49                                  767
+#define IMG_CUSTOM_49_EDITOR                           768
+#define IMG_CUSTOM_50                                  769
+#define IMG_CUSTOM_50_EDITOR                           770
+#define IMG_CUSTOM_51                                  771
+#define IMG_CUSTOM_51_EDITOR                           772
+#define IMG_CUSTOM_52                                  773
+#define IMG_CUSTOM_52_EDITOR                           774
+#define IMG_CUSTOM_53                                  775
+#define IMG_CUSTOM_53_EDITOR                           776
+#define IMG_CUSTOM_54                                  777
+#define IMG_CUSTOM_54_EDITOR                           778
+#define IMG_CUSTOM_55                                  779
+#define IMG_CUSTOM_55_EDITOR                           780
+#define IMG_CUSTOM_56                                  781
+#define IMG_CUSTOM_56_EDITOR                           782
+#define IMG_CUSTOM_57                                  783
+#define IMG_CUSTOM_57_EDITOR                           784
+#define IMG_CUSTOM_58                                  785
+#define IMG_CUSTOM_58_EDITOR                           786
+#define IMG_CUSTOM_59                                  787
+#define IMG_CUSTOM_59_EDITOR                           788
+#define IMG_CUSTOM_60                                  789
+#define IMG_CUSTOM_60_EDITOR                           790
+#define IMG_CUSTOM_61                                  791
+#define IMG_CUSTOM_61_EDITOR                           792
+#define IMG_CUSTOM_62                                  793
+#define IMG_CUSTOM_62_EDITOR                           794
+#define IMG_CUSTOM_63                                  795
+#define IMG_CUSTOM_63_EDITOR                           796
+#define IMG_CUSTOM_64                                  797
+#define IMG_CUSTOM_64_EDITOR                           798
+#define IMG_CUSTOM_65                                  799
+#define IMG_CUSTOM_65_EDITOR                           800
+#define IMG_CUSTOM_66                                  801
+#define IMG_CUSTOM_66_EDITOR                           802
+#define IMG_CUSTOM_67                                  803
+#define IMG_CUSTOM_67_EDITOR                           804
+#define IMG_CUSTOM_68                                  805
+#define IMG_CUSTOM_68_EDITOR                           806
+#define IMG_CUSTOM_69                                  807
+#define IMG_CUSTOM_69_EDITOR                           808
+#define IMG_CUSTOM_70                                  809
+#define IMG_CUSTOM_70_EDITOR                           810
+#define IMG_CUSTOM_71                                  811
+#define IMG_CUSTOM_71_EDITOR                           812
+#define IMG_CUSTOM_72                                  813
+#define IMG_CUSTOM_72_EDITOR                           814
+#define IMG_CUSTOM_73                                  815
+#define IMG_CUSTOM_73_EDITOR                           816
+#define IMG_CUSTOM_74                                  817
+#define IMG_CUSTOM_74_EDITOR                           818
+#define IMG_CUSTOM_75                                  819
+#define IMG_CUSTOM_75_EDITOR                           820
+#define IMG_CUSTOM_76                                  821
+#define IMG_CUSTOM_76_EDITOR                           822
+#define IMG_CUSTOM_77                                  823
+#define IMG_CUSTOM_77_EDITOR                           824
+#define IMG_CUSTOM_78                                  825
+#define IMG_CUSTOM_78_EDITOR                           826
+#define IMG_CUSTOM_79                                  827
+#define IMG_CUSTOM_79_EDITOR                           828
+#define IMG_CUSTOM_80                                  829
+#define IMG_CUSTOM_80_EDITOR                           830
+#define IMG_CUSTOM_81                                  831
+#define IMG_CUSTOM_81_EDITOR                           832
+#define IMG_CUSTOM_82                                  833
+#define IMG_CUSTOM_82_EDITOR                           834
+#define IMG_CUSTOM_83                                  835
+#define IMG_CUSTOM_83_EDITOR                           836
+#define IMG_CUSTOM_84                                  837
+#define IMG_CUSTOM_84_EDITOR                           838
+#define IMG_CUSTOM_85                                  839
+#define IMG_CUSTOM_85_EDITOR                           840
+#define IMG_CUSTOM_86                                  841
+#define IMG_CUSTOM_86_EDITOR                           842
+#define IMG_CUSTOM_87                                  843
+#define IMG_CUSTOM_87_EDITOR                           844
+#define IMG_CUSTOM_88                                  845
+#define IMG_CUSTOM_88_EDITOR                           846
+#define IMG_CUSTOM_89                                  847
+#define IMG_CUSTOM_89_EDITOR                           848
+#define IMG_CUSTOM_90                                  849
+#define IMG_CUSTOM_90_EDITOR                           850
+#define IMG_CUSTOM_91                                  851
+#define IMG_CUSTOM_91_EDITOR                           852
+#define IMG_CUSTOM_92                                  853
+#define IMG_CUSTOM_92_EDITOR                           854
+#define IMG_CUSTOM_93                                  855
+#define IMG_CUSTOM_93_EDITOR                           856
+#define IMG_CUSTOM_94                                  857
+#define IMG_CUSTOM_94_EDITOR                           858
+#define IMG_CUSTOM_95                                  859
+#define IMG_CUSTOM_95_EDITOR                           860
+#define IMG_CUSTOM_96                                  861
+#define IMG_CUSTOM_96_EDITOR                           862
+#define IMG_CUSTOM_97                                  863
+#define IMG_CUSTOM_97_EDITOR                           864
+#define IMG_CUSTOM_98                                  865
+#define IMG_CUSTOM_98_EDITOR                           866
+#define IMG_CUSTOM_99                                  867
+#define IMG_CUSTOM_99_EDITOR                           868
+#define IMG_CUSTOM_100                                 869
+#define IMG_CUSTOM_100_EDITOR                          870
+#define IMG_CUSTOM_101                                 871
+#define IMG_CUSTOM_101_EDITOR                          872
+#define IMG_CUSTOM_102                                 873
+#define IMG_CUSTOM_102_EDITOR                          874
+#define IMG_CUSTOM_103                                 875
+#define IMG_CUSTOM_103_EDITOR                          876
+#define IMG_CUSTOM_104                                 877
+#define IMG_CUSTOM_104_EDITOR                          878
+#define IMG_CUSTOM_105                                 879
+#define IMG_CUSTOM_105_EDITOR                          880
+#define IMG_CUSTOM_106                                 881
+#define IMG_CUSTOM_106_EDITOR                          882
+#define IMG_CUSTOM_107                                 883
+#define IMG_CUSTOM_107_EDITOR                          884
+#define IMG_CUSTOM_108                                 885
+#define IMG_CUSTOM_108_EDITOR                          886
+#define IMG_CUSTOM_109                                 887
+#define IMG_CUSTOM_109_EDITOR                          888
+#define IMG_CUSTOM_110                                 889
+#define IMG_CUSTOM_110_EDITOR                          890
+#define IMG_CUSTOM_111                                 891
+#define IMG_CUSTOM_111_EDITOR                          892
+#define IMG_CUSTOM_112                                 893
+#define IMG_CUSTOM_112_EDITOR                          894
+#define IMG_CUSTOM_113                                 895
+#define IMG_CUSTOM_113_EDITOR                          896
+#define IMG_CUSTOM_114                                 897
+#define IMG_CUSTOM_114_EDITOR                          898
+#define IMG_CUSTOM_115                                 899
+#define IMG_CUSTOM_115_EDITOR                          900
+#define IMG_CUSTOM_116                                 901
+#define IMG_CUSTOM_116_EDITOR                          902
+#define IMG_CUSTOM_117                                 903
+#define IMG_CUSTOM_117_EDITOR                          904
+#define IMG_CUSTOM_118                                 905
+#define IMG_CUSTOM_118_EDITOR                          906
+#define IMG_CUSTOM_119                                 907
+#define IMG_CUSTOM_119_EDITOR                          908
+#define IMG_CUSTOM_120                                 909
+#define IMG_CUSTOM_120_EDITOR                          910
+#define IMG_CUSTOM_121                                 911
+#define IMG_CUSTOM_121_EDITOR                          912
+#define IMG_CUSTOM_122                                 913
+#define IMG_CUSTOM_122_EDITOR                          914
+#define IMG_CUSTOM_123                                 915
+#define IMG_CUSTOM_123_EDITOR                          916
+#define IMG_CUSTOM_124                                 917
+#define IMG_CUSTOM_124_EDITOR                          918
+#define IMG_CUSTOM_125                                 919
+#define IMG_CUSTOM_125_EDITOR                          920
+#define IMG_CUSTOM_126                                 921
+#define IMG_CUSTOM_126_EDITOR                          922
+#define IMG_CUSTOM_127                                 923
+#define IMG_CUSTOM_127_EDITOR                          924
+#define IMG_CUSTOM_128                                 925
+#define IMG_CUSTOM_128_EDITOR                          926
+#define IMG_CUSTOM_129                                 927
+#define IMG_CUSTOM_129_EDITOR                          928
+#define IMG_CUSTOM_130                                 929
+#define IMG_CUSTOM_130_EDITOR                          930
+#define IMG_CUSTOM_131                                 931
+#define IMG_CUSTOM_131_EDITOR                          932
+#define IMG_CUSTOM_132                                 933
+#define IMG_CUSTOM_132_EDITOR                          934
+#define IMG_CUSTOM_133                                 935
+#define IMG_CUSTOM_133_EDITOR                          936
+#define IMG_CUSTOM_134                                 937
+#define IMG_CUSTOM_134_EDITOR                          938
+#define IMG_CUSTOM_135                                 939
+#define IMG_CUSTOM_135_EDITOR                          940
+#define IMG_CUSTOM_136                                 941
+#define IMG_CUSTOM_136_EDITOR                          942
+#define IMG_CUSTOM_137                                 943
+#define IMG_CUSTOM_137_EDITOR                          944
+#define IMG_CUSTOM_138                                 945
+#define IMG_CUSTOM_138_EDITOR                          946
+#define IMG_CUSTOM_139                                 947
+#define IMG_CUSTOM_139_EDITOR                          948
+#define IMG_CUSTOM_140                                 949
+#define IMG_CUSTOM_140_EDITOR                          950
+#define IMG_CUSTOM_141                                 951
+#define IMG_CUSTOM_141_EDITOR                          952
+#define IMG_CUSTOM_142                                 953
+#define IMG_CUSTOM_142_EDITOR                          954
+#define IMG_CUSTOM_143                                 955
+#define IMG_CUSTOM_143_EDITOR                          956
+#define IMG_CUSTOM_144                                 957
+#define IMG_CUSTOM_144_EDITOR                          958
+#define IMG_CUSTOM_145                                 959
+#define IMG_CUSTOM_145_EDITOR                          960
+#define IMG_CUSTOM_146                                 961
+#define IMG_CUSTOM_146_EDITOR                          962
+#define IMG_CUSTOM_147                                 963
+#define IMG_CUSTOM_147_EDITOR                          964
+#define IMG_CUSTOM_148                                 965
+#define IMG_CUSTOM_148_EDITOR                          966
+#define IMG_CUSTOM_149                                 967
+#define IMG_CUSTOM_149_EDITOR                          968
+#define IMG_CUSTOM_150                                 969
+#define IMG_CUSTOM_150_EDITOR                          970
+#define IMG_CUSTOM_151                                 971
+#define IMG_CUSTOM_151_EDITOR                          972
+#define IMG_CUSTOM_152                                 973
+#define IMG_CUSTOM_152_EDITOR                          974
+#define IMG_CUSTOM_153                                 975
+#define IMG_CUSTOM_153_EDITOR                          976
+#define IMG_CUSTOM_154                                 977
+#define IMG_CUSTOM_154_EDITOR                          978
+#define IMG_CUSTOM_155                                 979
+#define IMG_CUSTOM_155_EDITOR                          980
+#define IMG_CUSTOM_156                                 981
+#define IMG_CUSTOM_156_EDITOR                          982
+#define IMG_CUSTOM_157                                 983
+#define IMG_CUSTOM_157_EDITOR                          984
+#define IMG_CUSTOM_158                                 985
+#define IMG_CUSTOM_158_EDITOR                          986
+#define IMG_CUSTOM_159                                 987
+#define IMG_CUSTOM_159_EDITOR                          988
+#define IMG_CUSTOM_160                                 989
+#define IMG_CUSTOM_160_EDITOR                          990
+#define IMG_CUSTOM_161                                 991
+#define IMG_CUSTOM_161_EDITOR                          992
+#define IMG_CUSTOM_162                                 993
+#define IMG_CUSTOM_162_EDITOR                          994
+#define IMG_CUSTOM_163                                 995
+#define IMG_CUSTOM_163_EDITOR                          996
+#define IMG_CUSTOM_164                                 997
+#define IMG_CUSTOM_164_EDITOR                          998
+#define IMG_CUSTOM_165                                 999
+#define IMG_CUSTOM_165_EDITOR                          1000
+#define IMG_CUSTOM_166                                 1001
+#define IMG_CUSTOM_166_EDITOR                          1002
+#define IMG_CUSTOM_167                                 1003
+#define IMG_CUSTOM_167_EDITOR                          1004
+#define IMG_CUSTOM_168                                 1005
+#define IMG_CUSTOM_168_EDITOR                          1006
+#define IMG_CUSTOM_169                                 1007
+#define IMG_CUSTOM_169_EDITOR                          1008
+#define IMG_CUSTOM_170                                 1009
+#define IMG_CUSTOM_170_EDITOR                          1010
+#define IMG_CUSTOM_171                                 1011
+#define IMG_CUSTOM_171_EDITOR                          1012
+#define IMG_CUSTOM_172                                 1013
+#define IMG_CUSTOM_172_EDITOR                          1014
+#define IMG_CUSTOM_173                                 1015
+#define IMG_CUSTOM_173_EDITOR                          1016
+#define IMG_CUSTOM_174                                 1017
+#define IMG_CUSTOM_174_EDITOR                          1018
+#define IMG_CUSTOM_175                                 1019
+#define IMG_CUSTOM_175_EDITOR                          1020
+#define IMG_CUSTOM_176                                 1021
+#define IMG_CUSTOM_176_EDITOR                          1022
+#define IMG_CUSTOM_177                                 1023
+#define IMG_CUSTOM_177_EDITOR                          1024
+#define IMG_CUSTOM_178                                 1025
+#define IMG_CUSTOM_178_EDITOR                          1026
+#define IMG_CUSTOM_179                                 1027
+#define IMG_CUSTOM_179_EDITOR                          1028
+#define IMG_CUSTOM_180                                 1029
+#define IMG_CUSTOM_180_EDITOR                          1030
+#define IMG_CUSTOM_181                                 1031
+#define IMG_CUSTOM_181_EDITOR                          1032
+#define IMG_CUSTOM_182                                 1033
+#define IMG_CUSTOM_182_EDITOR                          1034
+#define IMG_CUSTOM_183                                 1035
+#define IMG_CUSTOM_183_EDITOR                          1036
+#define IMG_CUSTOM_184                                 1037
+#define IMG_CUSTOM_184_EDITOR                          1038
+#define IMG_CUSTOM_185                                 1039
+#define IMG_CUSTOM_185_EDITOR                          1040
+#define IMG_CUSTOM_186                                 1041
+#define IMG_CUSTOM_186_EDITOR                          1042
+#define IMG_CUSTOM_187                                 1043
+#define IMG_CUSTOM_187_EDITOR                          1044
+#define IMG_CUSTOM_188                                 1045
+#define IMG_CUSTOM_188_EDITOR                          1046
+#define IMG_CUSTOM_189                                 1047
+#define IMG_CUSTOM_189_EDITOR                          1048
+#define IMG_CUSTOM_190                                 1049
+#define IMG_CUSTOM_190_EDITOR                          1050
+#define IMG_CUSTOM_191                                 1051
+#define IMG_CUSTOM_191_EDITOR                          1052
+#define IMG_CUSTOM_192                                 1053
+#define IMG_CUSTOM_192_EDITOR                          1054
+#define IMG_CUSTOM_193                                 1055
+#define IMG_CUSTOM_193_EDITOR                          1056
+#define IMG_CUSTOM_194                                 1057
+#define IMG_CUSTOM_194_EDITOR                          1058
+#define IMG_CUSTOM_195                                 1059
+#define IMG_CUSTOM_195_EDITOR                          1060
+#define IMG_CUSTOM_196                                 1061
+#define IMG_CUSTOM_196_EDITOR                          1062
+#define IMG_CUSTOM_197                                 1063
+#define IMG_CUSTOM_197_EDITOR                          1064
+#define IMG_CUSTOM_198                                 1065
+#define IMG_CUSTOM_198_EDITOR                          1066
+#define IMG_CUSTOM_199                                 1067
+#define IMG_CUSTOM_199_EDITOR                          1068
+#define IMG_CUSTOM_200                                 1069
+#define IMG_CUSTOM_200_EDITOR                          1070
+#define IMG_CUSTOM_201                                 1071
+#define IMG_CUSTOM_201_EDITOR                          1072
+#define IMG_CUSTOM_202                                 1073
+#define IMG_CUSTOM_202_EDITOR                          1074
+#define IMG_CUSTOM_203                                 1075
+#define IMG_CUSTOM_203_EDITOR                          1076
+#define IMG_CUSTOM_204                                 1077
+#define IMG_CUSTOM_204_EDITOR                          1078
+#define IMG_CUSTOM_205                                 1079
+#define IMG_CUSTOM_205_EDITOR                          1080
+#define IMG_CUSTOM_206                                 1081
+#define IMG_CUSTOM_206_EDITOR                          1082
+#define IMG_CUSTOM_207                                 1083
+#define IMG_CUSTOM_207_EDITOR                          1084
+#define IMG_CUSTOM_208                                 1085
+#define IMG_CUSTOM_208_EDITOR                          1086
+#define IMG_CUSTOM_209                                 1087
+#define IMG_CUSTOM_209_EDITOR                          1088
+#define IMG_CUSTOM_210                                 1089
+#define IMG_CUSTOM_210_EDITOR                          1090
+#define IMG_CUSTOM_211                                 1091
+#define IMG_CUSTOM_211_EDITOR                          1092
+#define IMG_CUSTOM_212                                 1093
+#define IMG_CUSTOM_212_EDITOR                          1094
+#define IMG_CUSTOM_213                                 1095
+#define IMG_CUSTOM_213_EDITOR                          1096
+#define IMG_CUSTOM_214                                 1097
+#define IMG_CUSTOM_214_EDITOR                          1098
+#define IMG_CUSTOM_215                                 1099
+#define IMG_CUSTOM_215_EDITOR                          1100
+#define IMG_CUSTOM_216                                 1101
+#define IMG_CUSTOM_216_EDITOR                          1102
+#define IMG_CUSTOM_217                                 1103
+#define IMG_CUSTOM_217_EDITOR                          1104
+#define IMG_CUSTOM_218                                 1105
+#define IMG_CUSTOM_218_EDITOR                          1106
+#define IMG_CUSTOM_219                                 1107
+#define IMG_CUSTOM_219_EDITOR                          1108
+#define IMG_CUSTOM_220                                 1109
+#define IMG_CUSTOM_220_EDITOR                          1110
+#define IMG_CUSTOM_221                                 1111
+#define IMG_CUSTOM_221_EDITOR                          1112
+#define IMG_CUSTOM_222                                 1113
+#define IMG_CUSTOM_222_EDITOR                          1114
+#define IMG_CUSTOM_223                                 1115
+#define IMG_CUSTOM_223_EDITOR                          1116
+#define IMG_CUSTOM_224                                 1117
+#define IMG_CUSTOM_224_EDITOR                          1118
+#define IMG_CUSTOM_225                                 1119
+#define IMG_CUSTOM_225_EDITOR                          1120
+#define IMG_CUSTOM_226                                 1121
+#define IMG_CUSTOM_226_EDITOR                          1122
+#define IMG_CUSTOM_227                                 1123
+#define IMG_CUSTOM_227_EDITOR                          1124
+#define IMG_CUSTOM_228                                 1125
+#define IMG_CUSTOM_228_EDITOR                          1126
+#define IMG_CUSTOM_229                                 1127
+#define IMG_CUSTOM_229_EDITOR                          1128
+#define IMG_CUSTOM_230                                 1129
+#define IMG_CUSTOM_230_EDITOR                          1130
+#define IMG_CUSTOM_231                                 1131
+#define IMG_CUSTOM_231_EDITOR                          1132
+#define IMG_CUSTOM_232                                 1133
+#define IMG_CUSTOM_232_EDITOR                          1134
+#define IMG_CUSTOM_233                                 1135
+#define IMG_CUSTOM_233_EDITOR                          1136
+#define IMG_CUSTOM_234                                 1137
+#define IMG_CUSTOM_234_EDITOR                          1138
+#define IMG_CUSTOM_235                                 1139
+#define IMG_CUSTOM_235_EDITOR                          1140
+#define IMG_CUSTOM_236                                 1141
+#define IMG_CUSTOM_236_EDITOR                          1142
+#define IMG_CUSTOM_237                                 1143
+#define IMG_CUSTOM_237_EDITOR                          1144
+#define IMG_CUSTOM_238                                 1145
+#define IMG_CUSTOM_238_EDITOR                          1146
+#define IMG_CUSTOM_239                                 1147
+#define IMG_CUSTOM_239_EDITOR                          1148
+#define IMG_CUSTOM_240                                 1149
+#define IMG_CUSTOM_240_EDITOR                          1150
+#define IMG_CUSTOM_241                                 1151
+#define IMG_CUSTOM_241_EDITOR                          1152
+#define IMG_CUSTOM_242                                 1153
+#define IMG_CUSTOM_242_EDITOR                          1154
+#define IMG_CUSTOM_243                                 1155
+#define IMG_CUSTOM_243_EDITOR                          1156
+#define IMG_CUSTOM_244                                 1157
+#define IMG_CUSTOM_244_EDITOR                          1158
+#define IMG_CUSTOM_245                                 1159
+#define IMG_CUSTOM_245_EDITOR                          1160
+#define IMG_CUSTOM_246                                 1161
+#define IMG_CUSTOM_246_EDITOR                          1162
+#define IMG_CUSTOM_247                                 1163
+#define IMG_CUSTOM_247_EDITOR                          1164
+#define IMG_CUSTOM_248                                 1165
+#define IMG_CUSTOM_248_EDITOR                          1166
+#define IMG_CUSTOM_249                                 1167
+#define IMG_CUSTOM_249_EDITOR                          1168
+#define IMG_CUSTOM_250                                 1169
+#define IMG_CUSTOM_250_EDITOR                          1170
+#define IMG_CUSTOM_251                                 1171
+#define IMG_CUSTOM_251_EDITOR                          1172
+#define IMG_CUSTOM_252                                 1173
+#define IMG_CUSTOM_252_EDITOR                          1174
+#define IMG_CUSTOM_253                                 1175
+#define IMG_CUSTOM_253_EDITOR                          1176
+#define IMG_CUSTOM_254                                 1177
+#define IMG_CUSTOM_254_EDITOR                          1178
+#define IMG_CUSTOM_255                                 1179
+#define IMG_CUSTOM_255_EDITOR                          1180
+#define IMG_CUSTOM_256                                 1181
+#define IMG_CUSTOM_256_EDITOR                          1182
+#define IMG_TOON_1                                     1183
+#define IMG_TOON_2                                     1184
+#define IMG_TOON_3                                     1185
+#define IMG_TOON_4                                     1186
+#define IMG_TOON_5                                     1187
+#define IMG_TOON_6                                     1188
+#define IMG_TOON_7                                     1189
+#define IMG_TOON_8                                     1190
+#define IMG_TOON_9                                     1191
+#define IMG_TOON_10                                    1192
+#define IMG_TOON_11                                    1193
+#define IMG_TOON_12                                    1194
+#define IMG_TOON_13                                    1195
+#define IMG_TOON_14                                    1196
+#define IMG_TOON_15                                    1197
+#define IMG_TOON_16                                    1198
+#define IMG_TOON_17                                    1199
+#define IMG_TOON_18                                    1200
+#define IMG_TOON_19                                    1201
+#define IMG_TOON_20                                    1202
+#define IMG_MENU_CALIBRATE_RED                         1203
+#define IMG_MENU_CALIBRATE_BLUE                                1204
+#define IMG_MENU_CALIBRATE_YELLOW                      1205
+#define IMG_MENU_BUTTON                                        1206
+#define IMG_MENU_BUTTON_ACTIVE                         1207
+#define IMG_MENU_BUTTON_LEFT                           1208
+#define IMG_MENU_BUTTON_RIGHT                          1209
+#define IMG_MENU_BUTTON_UP                             1210
+#define IMG_MENU_BUTTON_DOWN                           1211
+#define IMG_MENU_BUTTON_LEFT_ACTIVE                    1212
+#define IMG_MENU_BUTTON_RIGHT_ACTIVE                   1213
+#define IMG_MENU_BUTTON_UP_ACTIVE                      1214
+#define IMG_MENU_BUTTON_DOWN_ACTIVE                    1215
+#define IMG_MENU_SCROLLBAR                             1216
+#define IMG_MENU_SCROLLBAR_ACTIVE                      1217
+#define IMG_FONT_INITIAL_1                             1218
+#define IMG_FONT_INITIAL_2                             1219
+#define IMG_FONT_INITIAL_3                             1220
+#define IMG_FONT_INITIAL_4                             1221
+#define IMG_FONT_TITLE_1                               1222
+#define IMG_FONT_TITLE_1_LEVELS                                1223
+#define IMG_FONT_TITLE_2                               1224
+#define IMG_FONT_MENU_1                                        1225
+#define IMG_FONT_MENU_2                                        1226
+#define IMG_FONT_TEXT_1                                        1227
+#define IMG_FONT_TEXT_1_LEVELS                         1228
+#define IMG_FONT_TEXT_1_PREVIEW                                1229
+#define IMG_FONT_TEXT_1_SCORES                         1230
+#define IMG_FONT_TEXT_1_ACTIVE_SCORES                  1231
+#define IMG_FONT_TEXT_2                                        1232
+#define IMG_FONT_TEXT_2_LEVELS                         1233
+#define IMG_FONT_TEXT_2_PREVIEW                                1234
+#define IMG_FONT_TEXT_2_SCORES                         1235
+#define IMG_FONT_TEXT_2_ACTIVE_SCORES                  1236
+#define IMG_FONT_TEXT_3                                        1237
+#define IMG_FONT_TEXT_3_LEVELS                         1238
+#define IMG_FONT_TEXT_3_PREVIEW                                1239
+#define IMG_FONT_TEXT_3_SCORES                         1240
+#define IMG_FONT_TEXT_3_ACTIVE_SCORES                  1241
+#define IMG_FONT_TEXT_4                                        1242
+#define IMG_FONT_TEXT_4_LEVELS                         1243
+#define IMG_FONT_TEXT_4_SCORES                         1244
+#define IMG_FONT_TEXT_4_ACTIVE_SCORES                  1245
+#define IMG_FONT_INPUT_1                               1246
+#define IMG_FONT_INPUT_1_MAIN                          1247
+#define IMG_FONT_INPUT_1_ACTIVE                                1248
+#define IMG_FONT_INPUT_1_ACTIVE_MAIN                   1249
+#define IMG_FONT_INPUT_1_ACTIVE_SETUP                  1250
+#define IMG_FONT_INPUT_2                               1251
+#define IMG_FONT_INPUT_2_ACTIVE                                1252
+#define IMG_FONT_OPTION_OFF                            1253
+#define IMG_FONT_OPTION_ON                             1254
+#define IMG_FONT_VALUE_1                               1255
+#define IMG_FONT_VALUE_2                               1256
+#define IMG_FONT_VALUE_OLD                             1257
+#define IMG_FONT_LEVEL_NUMBER                          1258
+#define IMG_FONT_TAPE_RECORDER                         1259
+#define IMG_FONT_GAME_INFO                             1260
+#define IMG_GLOBAL_BORDER                              1261
+#define IMG_GLOBAL_DOOR                                        1262
+#define IMG_EDITOR_ELEMENT_BORDER                      1263
+#define IMG_EDITOR_ELEMENT_BORDER_INPUT                        1264
+#define IMG_BACKGROUND                                 1265
+#define IMG_BACKGROUND_MAIN                            1266
+#define IMG_BACKGROUND_LEVELS                          1267
+#define IMG_BACKGROUND_SCORES                          1268
+#define IMG_BACKGROUND_EDITOR                          1269
+#define IMG_BACKGROUND_INFO                            1270
+#define IMG_BACKGROUND_SETUP                           1271
+#define IMG_BACKGROUND_DOOR                            1272
 
-#define NUM_IMAGE_FILES                                        1016
+#define NUM_IMAGE_FILES                                        1273
 
 #endif /* CONF_GFX_H */
index e2c1ccdd7231482331565162a4dda86016edcba3..052f4be3749c846a741935436794f2dbbd629dba 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "[2003-08-05 01:57]"
+#define COMPILE_DATE_STRING "[2003-08-18 21:51]"
index 1749fe25f9c78a59565665ae9999c934c6fdd1b1..4a47194a4066bd6b346616bbca718db1f1a1c7b8 100644 (file)
@@ -75,6 +75,8 @@
 
 #define ED_GADGET_DISTANCE             2
 #define ED_GADGET_TEXT_DISTANCE                (2 * ED_GADGET_DISTANCE)
+#define ED_DRAWINGAREA_TEXT_DISTANCE   (ED_GADGET_TEXT_DISTANCE + \
+                                        MINI_TILEX / 2)
 
 /* values for the setting windows */
 #define ED_SETTINGS_XSTART             (3 * MINI_TILEX / 2)
 /* how many steps can be cancelled */
 #define NUM_UNDO_STEPS                 (10 + 1)
 
-/* values for elements with score */
+/* values for elements with score for certain actions */
 #define MIN_SCORE                      0
 #define MAX_SCORE                      255
 
-/* values for elements with gem count */
-#define MIN_GEM_COUNT                  0
-#define MAX_GEM_COUNT                  100
+/* values for elements with count for collecting */
+#define MIN_COLLECT_COUNT              0
+#define MAX_COLLECT_COUNT              100
 
 /* values for random placement */
 #define RANDOM_USE_PERCENTAGE          0
@@ -822,16 +824,16 @@ static struct
     MIN_SCORE,                         MAX_SCORE,
     GADGET_ID_CUSTOM_SCORE_DOWN,       GADGET_ID_CUSTOM_SCORE_UP,
     GADGET_ID_CUSTOM_SCORE_TEXT,       GADGET_ID_NONE,
-    &custom_element.score,
-    NULL,                              "collect score", NULL
+    &custom_element.collect_score,
+    NULL,                              "score", NULL
   },
   {
     ED_SETTINGS_XPOS(13) + 10,         ED_SETTINGS_YPOS(3),
-    MIN_GEM_COUNT,                     MAX_GEM_COUNT,
+    MIN_COLLECT_COUNT,                 MAX_COLLECT_COUNT,
     GADGET_ID_CUSTOM_GEMCOUNT_DOWN,    GADGET_ID_CUSTOM_GEMCOUNT_UP,
     GADGET_ID_CUSTOM_GEMCOUNT_TEXT,    GADGET_ID_CUSTOM_SCORE_UP,
-    &custom_element.gem_count,
-    NULL,                              "gems", NULL
+    &custom_element.collect_count,
+    NULL,                              "count", NULL
   },
   {
     ED_SETTINGS_XPOS(1),               ED_SETTINGS_YPOS(4),
@@ -922,7 +924,7 @@ static struct
     GADGET_ID_ELEMENT_NAME,
     MAX_ELEMENT_NAME_LEN - 2,          /* currently 2 chars less editable */
     custom_element.description,
-    NULL
+    "Element name"
   }
 };
 
@@ -944,7 +946,8 @@ static struct ValueTextInfo options_access_layer[] =
 static struct ValueTextInfo options_walk_to_action[] =
 {
   { EP_DIGGABLE,               "diggable"                      },
-  { EP_COLLECTIBLE,            "collectible"                   },
+  { EP_COLLECTIBLE_ONLY,       "collectible"                   },
+  { EP_DROPPABLE,              "collectible & droppable"       },
   { EP_PUSHABLE,               "pushable"                      },
   { -1,                                NULL                            }
 };
@@ -1017,7 +1020,8 @@ static struct ValueTextInfo options_deadliness[] =
 
 static struct ValueTextInfo options_consistency[] =
 {
-  { EP_CAN_EXPLODE,            "can explode"                   },
+  { EP_CAN_EXPLODE_3X3,                "can explode 3x3"               },
+  { EP_CAN_EXPLODE_1X1,                "can explode 1x1"               },
   { EP_INDESTRUCTIBLE,         "indestructible"                },
   { -1,                                NULL                            }
 };
@@ -1034,6 +1038,7 @@ static struct ValueTextInfo options_change_player_action[] =
   { CE_TOUCHED_BY_PLAYER,      "touched"                       },
   { CE_PRESSED_BY_PLAYER,      "pressed"                       },
   { CE_PUSHED_BY_PLAYER,       "pushed"                        },
+  { CE_DROPPED_BY_PLAYER,      "dropped"                       },
   { -1,                                NULL                            }
 };
 
@@ -1047,14 +1052,15 @@ static struct ValueTextInfo options_change_collide_action[] =
 
 static struct ValueTextInfo options_change_other_action[] =
 {
-  { CE_OTHER_IS_TOUCHING,              "touching"                      },
-  { CE_OTHER_IS_CHANGING,              "change of"                     },
-  { CE_OTHER_IS_EXPLODING,             "explosion of"                  },
-  { CE_OTHER_GETS_TOUCHED,             "player touches"                },
-  { CE_OTHER_GETS_PRESSED,             "player presses"                },
-  { CE_OTHER_GETS_PUSHED,              "player pushes"                 },
-  { CE_OTHER_GETS_COLLECTED,           "player collects"               },
-  { -1,                                NULL                                    }
+  { CE_OTHER_IS_TOUCHING,      "touching"                      },
+  { CE_OTHER_IS_CHANGING,      "change of"                     },
+  { CE_OTHER_IS_EXPLODING,     "explosion of"                  },
+  { CE_OTHER_GETS_TOUCHED,     "player touches"                },
+  { CE_OTHER_GETS_PRESSED,     "player presses"                },
+  { CE_OTHER_GETS_PUSHED,      "player pushes"                 },
+  { CE_OTHER_GETS_COLLECTED,   "player collects"               },
+  { CE_OTHER_GETS_DROPPED,     "player drops"                  },
+  { -1,                                NULL                            }
 };
 
 static struct ValueTextInfo options_change_power[] =
@@ -1156,7 +1162,7 @@ static struct
     -1,
     options_consistency,
     &custom_element.consistency,
-    NULL, "explodes to:", "consistency/destructibility"
+    NULL, NULL, "consistency/destructibility"
   },
 
   /* ---------- element settings: advanced (custom elements) --------------- */
@@ -1536,7 +1542,7 @@ static struct
   int area_xsize, area_ysize;
   int gadget_id;
   int gadget_id_align;
-  char *text_left, *text_right;
+  char *text_left, *text_right, *text_below;
 } drawingarea_info[ED_NUM_DRAWING_AREAS] =
 {
   /* ---------- level playfield content ------------------------------------ */
@@ -1545,7 +1551,7 @@ static struct
     0, 0,
     MAX_ED_FIELDX, MAX_ED_FIELDY,
     GADGET_ID_DRAWING_LEVEL,           GADGET_ID_NONE,
-    NULL, NULL
+    NULL, NULL,                                NULL
   },
 
   /* ---------- yam yam content -------------------------------------------- */
@@ -1554,49 +1560,49 @@ static struct
     ED_AREA_YAMYAM_CONTENT_XPOS(0),    ED_AREA_YAMYAM_CONTENT_YPOS(0),
     3, 3,
     GADGET_ID_ELEMENT_CONTENT_0,       GADGET_ID_NONE,
-    NULL, NULL
+    NULL, NULL,                                "1"
   },
   {
     ED_AREA_YAMYAM_CONTENT_XPOS(1),    ED_AREA_YAMYAM_CONTENT_YPOS(1),
     3, 3,
     GADGET_ID_ELEMENT_CONTENT_1,       GADGET_ID_NONE,
-    NULL, NULL
+    NULL, NULL,                                "2"
   },
   {
     ED_AREA_YAMYAM_CONTENT_XPOS(2),    ED_AREA_YAMYAM_CONTENT_YPOS(2),
     3, 3,
     GADGET_ID_ELEMENT_CONTENT_2,       GADGET_ID_NONE,
-    NULL, NULL
+    NULL, NULL,                                "3"
   },
   {
     ED_AREA_YAMYAM_CONTENT_XPOS(3),    ED_AREA_YAMYAM_CONTENT_YPOS(3),
     3, 3,
     GADGET_ID_ELEMENT_CONTENT_3,       GADGET_ID_NONE,
-    NULL, NULL
+    NULL, NULL,                                "4"
   },
   {
     ED_AREA_YAMYAM_CONTENT_XPOS(4),    ED_AREA_YAMYAM_CONTENT_YPOS(4),
     3, 3,
     GADGET_ID_ELEMENT_CONTENT_4,       GADGET_ID_NONE,
-    NULL, NULL
+    NULL, NULL,                                "5"
   },
   {
     ED_AREA_YAMYAM_CONTENT_XPOS(5),    ED_AREA_YAMYAM_CONTENT_YPOS(5),
     3, 3,
     GADGET_ID_ELEMENT_CONTENT_5,       GADGET_ID_NONE,
-    NULL, NULL
+    NULL, NULL,                                "6"
   },
   {
     ED_AREA_YAMYAM_CONTENT_XPOS(6),    ED_AREA_YAMYAM_CONTENT_YPOS(6),
     3, 3,
     GADGET_ID_ELEMENT_CONTENT_6,       GADGET_ID_NONE,
-    NULL, NULL
+    NULL, NULL,                                "7"
   },
   {
     ED_AREA_YAMYAM_CONTENT_XPOS(7),    ED_AREA_YAMYAM_CONTENT_YPOS(7),
     3, 3,
     GADGET_ID_ELEMENT_CONTENT_7,       GADGET_ID_NONE,
-    NULL, NULL
+    NULL, NULL,                                "8"
   },
 
   /* ---------- amoeba content --------------------------------------------- */
@@ -1605,7 +1611,7 @@ static struct
     ED_AREA_ELEM_CONTENT_XPOS,         ED_AREA_ELEM_CONTENT_YPOS,
     1, 1,
     GADGET_ID_AMOEBA_CONTENT,          GADGET_ID_NONE,
-    NULL, NULL
+    NULL, "content of amoeba",         NULL
   },
 
   /* ---------- custom graphic --------------------------------------------- */
@@ -1614,7 +1620,7 @@ static struct
     ED_AREA_ELEM_CONTENT3_XPOS,                ED_AREA_ELEM_CONTENT3_YPOS,
     1, 1,
     GADGET_ID_CUSTOM_GRAPHIC,          GADGET_ID_CUSTOM_USE_GRAPHIC,
-    NULL, NULL
+    NULL, NULL,                                NULL
   },
 
   /* ---------- custom content (when exploding) ---------------------------- */
@@ -1623,7 +1629,7 @@ static struct
     ED_AREA_ELEM_CONTENT4_XPOS,                ED_AREA_ELEM_CONTENT4_YPOS,
     3, 3,
     GADGET_ID_CUSTOM_CONTENT,          GADGET_ID_NONE, /* align three rows */
-    NULL, NULL
+    "content:", NULL,                  NULL
   },
 
   /* ---------- custom change target --------------------------------------- */
@@ -1632,7 +1638,7 @@ static struct
     ED_AREA_ELEM_CONTENT2_XPOS,                ED_AREA_ELEM_CONTENT2_YPOS,
     1, 1,
     GADGET_ID_CUSTOM_CHANGE_TARGET,    GADGET_ID_CUSTOM_CAN_CHANGE,
-    NULL, "after/when:"
+    NULL, "after/when:",               NULL
   },
 
   /* ---------- custom change content (extended change target) ------------- */
@@ -1641,7 +1647,7 @@ static struct
     ED_AREA_ELEM_CONTENT6_XPOS,                ED_AREA_ELEM_CONTENT6_YPOS,
     3, 3,
     GADGET_ID_CUSTOM_CHANGE_CONTENT,   GADGET_ID_NONE, /* align three rows */
-    NULL, NULL
+    NULL, NULL,                                NULL
   },
 
   /* ---------- custom change trigger (element causing change) ------------- */
@@ -1650,7 +1656,7 @@ static struct
     ED_AREA_ELEM_CONTENT5_XPOS,                ED_AREA_ELEM_CONTENT5_YPOS,
     1, 1,
     GADGET_ID_CUSTOM_CHANGE_TRIGGER,   GADGET_ID_CHANGE_OTHER_ACTION,
-    NULL, NULL
+    NULL, NULL,                                NULL
   },
 
   /* ---------- random background (for random painting) -------------------- */
@@ -1659,7 +1665,7 @@ static struct
     ED_AREA_RANDOM_BACKGROUND_XPOS,    ED_AREA_RANDOM_BACKGROUND_YPOS,
     1, 1,
     GADGET_ID_RANDOM_BACKGROUND,       GADGET_ID_RANDOM_RESTRICTED,
-    NULL, NULL
+    NULL, NULL,                                NULL
   },
 };
 
@@ -2463,6 +2469,170 @@ static int editor_el_custom[] =
 };
 static int num_editor_el_custom = SIZEOF_ARRAY_INT(editor_el_custom);
 
+static int editor_el_custom_more[] =
+{
+  EL_CUSTOM_START + 128,
+  EL_CUSTOM_START + 129,
+  EL_CUSTOM_START + 130,
+  EL_CUSTOM_START + 131,
+
+  EL_CUSTOM_START + 132,
+  EL_CUSTOM_START + 133,
+  EL_CUSTOM_START + 134,
+  EL_CUSTOM_START + 135,
+
+  EL_CUSTOM_START + 136,
+  EL_CUSTOM_START + 137,
+  EL_CUSTOM_START + 138,
+  EL_CUSTOM_START + 139,
+
+  EL_CUSTOM_START + 140,
+  EL_CUSTOM_START + 141,
+  EL_CUSTOM_START + 142,
+  EL_CUSTOM_START + 143,
+
+  EL_CUSTOM_START + 144,
+  EL_CUSTOM_START + 145,
+  EL_CUSTOM_START + 146,
+  EL_CUSTOM_START + 147,
+
+  EL_CUSTOM_START + 148,
+  EL_CUSTOM_START + 149,
+  EL_CUSTOM_START + 150,
+  EL_CUSTOM_START + 151,
+
+  EL_CUSTOM_START + 152,
+  EL_CUSTOM_START + 153,
+  EL_CUSTOM_START + 154,
+  EL_CUSTOM_START + 155,
+
+  EL_CUSTOM_START + 156,
+  EL_CUSTOM_START + 157,
+  EL_CUSTOM_START + 158,
+  EL_CUSTOM_START + 159,
+
+  EL_CUSTOM_START + 160,
+  EL_CUSTOM_START + 161,
+  EL_CUSTOM_START + 162,
+  EL_CUSTOM_START + 163,
+
+  EL_CUSTOM_START + 164,
+  EL_CUSTOM_START + 165,
+  EL_CUSTOM_START + 166,
+  EL_CUSTOM_START + 167,
+
+  EL_CUSTOM_START + 168,
+  EL_CUSTOM_START + 169,
+  EL_CUSTOM_START + 170,
+  EL_CUSTOM_START + 171,
+
+  EL_CUSTOM_START + 172,
+  EL_CUSTOM_START + 173,
+  EL_CUSTOM_START + 174,
+  EL_CUSTOM_START + 175,
+
+  EL_CUSTOM_START + 176,
+  EL_CUSTOM_START + 177,
+  EL_CUSTOM_START + 178,
+  EL_CUSTOM_START + 179,
+
+  EL_CUSTOM_START + 180,
+  EL_CUSTOM_START + 181,
+  EL_CUSTOM_START + 182,
+  EL_CUSTOM_START + 183,
+
+  EL_CUSTOM_START + 184,
+  EL_CUSTOM_START + 185,
+  EL_CUSTOM_START + 186,
+  EL_CUSTOM_START + 187,
+
+  EL_CUSTOM_START + 188,
+  EL_CUSTOM_START + 189,
+  EL_CUSTOM_START + 190,
+  EL_CUSTOM_START + 191,
+
+  EL_CUSTOM_START + 192,
+  EL_CUSTOM_START + 193,
+  EL_CUSTOM_START + 194,
+  EL_CUSTOM_START + 195,
+
+  EL_CUSTOM_START + 196,
+  EL_CUSTOM_START + 197,
+  EL_CUSTOM_START + 198,
+  EL_CUSTOM_START + 199,
+
+  EL_CUSTOM_START + 200,
+  EL_CUSTOM_START + 201,
+  EL_CUSTOM_START + 202,
+  EL_CUSTOM_START + 203,
+
+  EL_CUSTOM_START + 204,
+  EL_CUSTOM_START + 205,
+  EL_CUSTOM_START + 206,
+  EL_CUSTOM_START + 207,
+
+  EL_CUSTOM_START + 208,
+  EL_CUSTOM_START + 209,
+  EL_CUSTOM_START + 210,
+  EL_CUSTOM_START + 211,
+
+  EL_CUSTOM_START + 212,
+  EL_CUSTOM_START + 213,
+  EL_CUSTOM_START + 214,
+  EL_CUSTOM_START + 215,
+
+  EL_CUSTOM_START + 216,
+  EL_CUSTOM_START + 217,
+  EL_CUSTOM_START + 218,
+  EL_CUSTOM_START + 219,
+
+  EL_CUSTOM_START + 220,
+  EL_CUSTOM_START + 221,
+  EL_CUSTOM_START + 222,
+  EL_CUSTOM_START + 223,
+
+  EL_CUSTOM_START + 224,
+  EL_CUSTOM_START + 225,
+  EL_CUSTOM_START + 226,
+  EL_CUSTOM_START + 227,
+
+  EL_CUSTOM_START + 228,
+  EL_CUSTOM_START + 229,
+  EL_CUSTOM_START + 230,
+  EL_CUSTOM_START + 231,
+
+  EL_CUSTOM_START + 232,
+  EL_CUSTOM_START + 233,
+  EL_CUSTOM_START + 234,
+  EL_CUSTOM_START + 235,
+
+  EL_CUSTOM_START + 236,
+  EL_CUSTOM_START + 237,
+  EL_CUSTOM_START + 238,
+  EL_CUSTOM_START + 239,
+
+  EL_CUSTOM_START + 240,
+  EL_CUSTOM_START + 241,
+  EL_CUSTOM_START + 242,
+  EL_CUSTOM_START + 243,
+
+  EL_CUSTOM_START + 244,
+  EL_CUSTOM_START + 245,
+  EL_CUSTOM_START + 246,
+  EL_CUSTOM_START + 247,
+
+  EL_CUSTOM_START + 248,
+  EL_CUSTOM_START + 249,
+  EL_CUSTOM_START + 250,
+  EL_CUSTOM_START + 251,
+
+  EL_CUSTOM_START + 252,
+  EL_CUSTOM_START + 253,
+  EL_CUSTOM_START + 254,
+  EL_CUSTOM_START + 255
+};
+static int num_editor_el_custom_more = SIZEOF_ARRAY_INT(editor_el_custom_more);
+
 static int *editor_elements = NULL;    /* dynamically allocated */
 static int num_editor_elements = 0;    /* dynamically determined */
 
@@ -2494,6 +2664,8 @@ editor_elements_info[] =
     &num_editor_el_chars                                               },
   { &setup.editor.el_custom,           editor_el_custom,
     &num_editor_el_custom                                              },
+  { &setup.editor.el_custom_more,      editor_el_custom_more,
+    &num_editor_el_custom_more                                         },
   { NULL,                              NULL,
     NULL                                                               }
 };
@@ -2536,6 +2708,12 @@ static void ReinitializeElementList()
     if (*editor_elements_info[i].setup_value)
       for (j=0; j<*editor_elements_info[i].element_list_size; j++)
        editor_elements[pos++] = editor_elements_info[i].element_list[j];
+
+  /* correct position of element list scrollbar */
+  if (element_shift < 0)
+    element_shift = 0;
+  if (element_shift > num_editor_elements - ED_NUM_ELEMENTLIST_BUTTONS)
+    element_shift = num_editor_elements - ED_NUM_ELEMENTLIST_BUTTONS;
 }
 
 static void ReinitializeElementListButtons()
@@ -2568,17 +2746,25 @@ static int getMaxInfoTextLength()
   return (SXSIZE / getFontWidth(FONT_TEXT_2));
 }
 
-static int getFullTextWidth(char *text)
+static int getTextWidthForGadget(char *text)
 {
   if (text == NULL)
     return 0;
 
-  return (strlen(text) * getFontWidth(FONT_TEXT_1) + ED_GADGET_TEXT_DISTANCE);
+  return (getTextWidth(text, FONT_TEXT_1) + ED_GADGET_TEXT_DISTANCE);
+}
+
+static int getTextWidthForDrawingArea(char *text)
+{
+  if (text == NULL)
+    return 0;
+
+  return (getTextWidth(text, FONT_TEXT_1) + ED_DRAWINGAREA_TEXT_DISTANCE);
 }
 
 static int getRightGadgetBorder(struct GadgetInfo *gi, char *text)
 {
-  return (gi->x + gi->width + getFullTextWidth(text));
+  return (gi->x + gi->width + getTextWidthForGadget(text));
 }
 
 static char *getElementInfoText(int element)
@@ -2605,6 +2791,72 @@ static char *getElementInfoText(int element)
   return info_text;
 }
 
+static void DrawElementBorder(int dest_x, int dest_y, int width, int height,
+                             boolean input)
+{
+  int border_graphic =
+    (input ? IMG_EDITOR_ELEMENT_BORDER_INPUT : IMG_EDITOR_ELEMENT_BORDER);
+  Bitmap *src_bitmap;
+  int src_x, src_y;
+  int num_mini_tilex = width / MINI_TILEX + 1;
+  int num_mini_tiley = width / MINI_TILEY + 1;
+  int x, y;
+
+  getMiniGraphicSource(border_graphic, &src_bitmap, &src_x, &src_y);
+
+  for (y=0; y < num_mini_tiley; y++)
+    for (x=0; x < num_mini_tilex; x++)
+      BlitBitmap(src_bitmap, drawto, src_x, src_y, MINI_TILEX, MINI_TILEY,
+                dest_x - MINI_TILEX / 2 + x * MINI_TILEX,
+                dest_y - MINI_TILEY / 2 + y * MINI_TILEY);
+
+  ClearRectangle(drawto, dest_x - 1, dest_y - 1, width + 2, height + 2);
+}
+
+static void DrawDrawingArea(int id)
+{
+  struct GadgetInfo *gi = level_editor_gadget[drawingarea_info[id].gadget_id];
+  int x, y;
+
+  if (id == ED_DRAWING_ID_RANDOM_BACKGROUND)
+    DrawMiniGraphicExt(drawto, gi->x, gi->y,
+                      el2edimg(random_placement_background_element));
+  else if (id == ED_DRAWING_ID_AMOEBA_CONTENT)
+    DrawMiniGraphicExt(drawto, gi->x, gi->y, el2edimg(level.amoeba_content));
+  else if (id == ED_DRAWING_ID_CUSTOM_GRAPHIC)
+    DrawMiniGraphicExt(drawto, gi->x, gi->y,
+                      el2edimg(custom_element.gfx_element));
+  else if (id == ED_DRAWING_ID_CUSTOM_CONTENT)
+    for (y=0; y<3; y++)
+      for (x=0; x<3; x++)
+       DrawMiniGraphicExt(drawto,
+                          gi->x + x * MINI_TILEX, gi->y + y * MINI_TILEY,
+                          el2edimg(custom_element.content[x][y]));
+  else if (id == ED_DRAWING_ID_CUSTOM_CHANGE_TARGET)
+    DrawMiniGraphicExt(drawto, gi->x, gi->y,
+                      el2edimg(custom_element.change.target_element));
+  else if (id == ED_DRAWING_ID_CUSTOM_CHANGE_CONTENT)
+    for (y=0; y < 3; y++)
+      for (x=0; x < 3; x++)
+       DrawMiniGraphicExt(drawto,
+                          gi->x + x * MINI_TILEX, gi->y + y * MINI_TILEY,
+                          el2edimg(custom_element.change.content[x][y]));
+  else if (id == ED_DRAWING_ID_CUSTOM_CHANGE_TRIGGER)
+    DrawMiniGraphicExt(drawto, gi->x, gi->y,
+                      el2edimg(custom_element.change.trigger_element));
+  else if (id >= ED_DRAWING_ID_ELEMENT_CONTENT_0 &&
+          id <= ED_DRAWING_ID_ELEMENT_CONTENT_7)
+  {
+    int nr = id - ED_DRAWING_ID_ELEMENT_CONTENT_0;
+
+    for (y=0; y < 3; y++)
+      for (x=0; x < 3; x++)
+       DrawMiniGraphicExt(drawto,
+                          gi->x + x * MINI_TILEX, gi->y + y * MINI_TILEY,
+                          el2edimg(level.yamyam_content[nr][x][y]));
+  }
+}
+
 static void ScrollMiniLevel(int from_x, int from_y, int scroll)
 {
   int x,y;
@@ -2864,8 +3116,7 @@ static void CreateCounterButtons()
 
     /* determine horizontal offset for leading text */
     if (counterbutton_info[i].text_left != NULL)
-      x += (getFontWidth(FONT_TEXT_1) * strlen(counterbutton_info[i].text_left)
-           + ED_GADGET_TEXT_DISTANCE);
+      x += getTextWidthForGadget(counterbutton_info[i].text_left);
 
     for (j=0; j<2; j++)
     {
@@ -3020,12 +3271,11 @@ static void CreateDrawingAreas()
     /* determine horizontal position to the right of specified gadget */
     if (drawingarea_info[i].gadget_id_align != GADGET_ID_NONE)
       x = (right_gadget_border[drawingarea_info[i].gadget_id_align] +
-          ED_GADGET_TEXT_DISTANCE + MINI_TILEX / 2);
+          ED_DRAWINGAREA_TEXT_DISTANCE);
 
     /* determine horizontal offset for leading text */
     if (drawingarea_info[i].text_left != NULL)
-      x += (getFontWidth(FONT_TEXT_1) * strlen(drawingarea_info[i].text_left) +
-           ED_GADGET_TEXT_DISTANCE + MINI_TILEX / 2);
+      x += getTextWidthForDrawingArea(drawingarea_info[i].text_left);
 
     gi = CreateGadget(GDI_CUSTOM_ID, id,
                      GDI_CUSTOM_TYPE_ID, i,
@@ -3139,8 +3389,7 @@ static void CreateSelectboxGadgets()
 
     /* determine horizontal offset for leading text */
     if (selectbox_info[i].text_left != NULL)
-      x += (getFontWidth(FONT_TEXT_1) * strlen(selectbox_info[i].text_left) +
-           ED_GADGET_TEXT_DISTANCE);
+      x += getTextWidthForGadget(selectbox_info[i].text_left);
 
     sprintf(infotext, "Select %s", selectbox_info[i].infotext);
     infotext[max_infotext_len] = '\0';
@@ -3350,8 +3599,7 @@ static void CreateCheckbuttonGadgets()
 
     /* determine horizontal offset for leading text */
     if (checkbutton_info[i].text_left != NULL)
-      x += (getFontWidth(FONT_TEXT_1) * strlen(checkbutton_info[i].text_left) +
-           ED_GADGET_TEXT_DISTANCE);
+      x += getTextWidthForGadget(checkbutton_info[i].text_left);
 
     gi = CreateGadget(GDI_CUSTOM_ID, id,
                      GDI_CUSTOM_TYPE_ID, i,
@@ -3412,8 +3660,7 @@ static void CreateRadiobuttonGadgets()
 
     /* determine horizontal offset for leading text */
     if (radiobutton_info[i].text_left != NULL)
-      x += (getFontWidth(FONT_TEXT_1) * strlen(radiobutton_info[i].text_left) +
-           ED_GADGET_TEXT_DISTANCE);
+      x += getTextWidthForGadget(radiobutton_info[i].text_left);
 
     gi = CreateGadget(GDI_CUSTOM_ID, id,
                      GDI_CUSTOM_TYPE_ID, i,
@@ -3489,7 +3736,7 @@ static void MapCounterButtons(int id)
   int xoffset_right = getCounterGadgetWidth();
   int yoffset_right = ED_BORDER_SIZE;
 #else
-  int xoffset_left = getFullTextWidth(counterbutton_info[id].text_left);
+  int xoffset_left = getTextWidthForGadget(counterbutton_info[id].text_left);
   int xoffset_right = ED_GADGET_TEXT_DISTANCE;
   int yoffset_above = MINI_TILEX + ED_GADGET_DISTANCE;
   int yoffset = ED_BORDER_SIZE;
@@ -3542,11 +3789,40 @@ static void MapControlButtons()
 
 static void MapDrawingArea(int id)
 {
-  MapGadget(level_editor_gadget[drawingarea_info[id].gadget_id]);
+  struct GadgetInfo *gi = level_editor_gadget[drawingarea_info[id].gadget_id];
+  int area_xsize = gi->drawing.area_xsize;
+  int area_ysize = gi->drawing.area_ysize;
+  int xoffset_left= getTextWidthForDrawingArea(drawingarea_info[id].text_left);
+  int xoffset_below= getTextWidth(drawingarea_info[id].text_below,FONT_TEXT_1);
+  int x_left  = gi->x - xoffset_left;
+  int x_right = gi->x + gi->width + ED_DRAWINGAREA_TEXT_DISTANCE;
+  int x_below = gi->x + (gi->width - xoffset_below) / 2;
+  int y_side  = gi->y + (gi->height - getFontHeight(FONT_TEXT_1)) / 2;
+  int y_below = gi->y + gi->height + ED_DRAWINGAREA_TEXT_DISTANCE;
+
+  if (drawingarea_info[id].text_left)
+    DrawText(x_left, y_side, drawingarea_info[id].text_left, FONT_TEXT_1);
+
+  if (drawingarea_info[id].text_right)
+    DrawText(x_right, y_side, drawingarea_info[id].text_right, FONT_TEXT_1);
+
+  if (drawingarea_info[id].text_below)
+    DrawText(x_below, y_below, drawingarea_info[id].text_below, FONT_TEXT_1);
+
+  if (id != ED_DRAWING_ID_DRAWING_LEVEL)
+  {
+    DrawElementBorder(gi->x, gi->y,
+                     area_xsize * MINI_TILEX, area_ysize * MINI_TILEY, TRUE);
+
+    DrawDrawingArea(id);
+  }
+
+  MapGadget(gi);
 }
 
 static void MapTextInputGadget(int id)
 {
+  struct GadgetInfo *gi = level_editor_gadget[textinput_info[id].gadget_id];
   char infotext[MAX_OUTPUT_LINESIZE + 1];
   int max_infotext_len = getMaxInfoTextLength();
   int xoffset_above = 0;
@@ -3561,30 +3837,20 @@ static void MapTextInputGadget(int id)
     DrawTextF(x, y, FONT_TEXT_1, infotext);
   }
 
-  ModifyGadget(level_editor_gadget[textinput_info[id].gadget_id],
-              GDI_TEXT_VALUE, textinput_info[id].value, GDI_END);
+  ModifyGadget(gi, GDI_TEXT_VALUE, textinput_info[id].value, GDI_END);
 
-  MapGadget(level_editor_gadget[textinput_info[id].gadget_id]);
+  MapGadget(gi);
 }
 
 static void MapSelectboxGadget(int id)
 {
   struct GadgetInfo *gi = level_editor_gadget[selectbox_info[id].gadget_id];
-#if 0
-  int xoffset_left = 0;
-  int yoffset_left = ED_BORDER_SIZE;
-  int xoffset_right = ED_GADGET_TEXT_DISTANCE;
-  int yoffset_right = ED_BORDER_SIZE;
-  int x = selectbox_info[id].x + xoffset_left;
-  int y = selectbox_info[id].y + yoffset_left;
-#else
-  int xoffset_left = getFullTextWidth(selectbox_info[id].text_left);
+  int xoffset_left = getTextWidthForGadget(selectbox_info[id].text_left);
   int xoffset_right = ED_GADGET_TEXT_DISTANCE;
   int yoffset = ED_BORDER_SIZE;
   int x_left = gi->x - xoffset_left;
   int x_right = gi->x + gi->width + xoffset_right;
   int y = gi->y + yoffset;
-#endif
 
   if (selectbox_info[id].text_left)
     DrawText(x_left, y, selectbox_info[id].text_left, FONT_TEXT_1);
@@ -3594,12 +3860,14 @@ static void MapSelectboxGadget(int id)
 
   ModifyEditorSelectbox(id, *selectbox_info[id].value);
 
-  MapGadget(level_editor_gadget[selectbox_info[id].gadget_id]);
+  MapGadget(gi);
 }
 
 static void MapTextbuttonGadget(int id)
 {
-  MapGadget(level_editor_gadget[textbutton_info[id].gadget_id]);
+  struct GadgetInfo *gi = level_editor_gadget[textbutton_info[id].gadget_id];
+
+  MapGadget(gi);
 }
 
 static void MapRadiobuttonGadget(int id)
@@ -3611,7 +3879,7 @@ static void MapRadiobuttonGadget(int id)
   int x = radiobutton_info[id].x + xoffset_right;
   int y = radiobutton_info[id].y + yoffset_right;
 #else
-  int xoffset_left = getFullTextWidth(checkbutton_info[id].text_left);
+  int xoffset_left = getTextWidthForGadget(checkbutton_info[id].text_left);
   int xoffset_right = ED_GADGET_TEXT_DISTANCE;
   int yoffset = ED_BORDER_SIZE;
   int x_left = gi->x - xoffset_left;
@@ -3627,10 +3895,9 @@ static void MapRadiobuttonGadget(int id)
   if (radiobutton_info[id].text_right)
     DrawText(x_right, y, radiobutton_info[id].text_right, FONT_TEXT_1);
 
-  ModifyGadget(level_editor_gadget[radiobutton_info[id].gadget_id],
-              GDI_CHECKED, checked, GDI_END);
+  ModifyGadget(gi, GDI_CHECKED, checked, GDI_END);
 
-  MapGadget(level_editor_gadget[radiobutton_info[id].gadget_id]);
+  MapGadget(gi);
 }
 
 static void MapCheckbuttonGadget(int id)
@@ -3642,7 +3909,7 @@ static void MapCheckbuttonGadget(int id)
   int x = checkbutton_info[id].x + xoffset_right;
   int y = checkbutton_info[id].y + yoffset_right;
 #else
-  int xoffset_left = getFullTextWidth(checkbutton_info[id].text_left);
+  int xoffset_left = getTextWidthForGadget(checkbutton_info[id].text_left);
   int xoffset_right = ED_GADGET_TEXT_DISTANCE;
   int yoffset = ED_BORDER_SIZE;
   int x_left = gi->x - xoffset_left;
@@ -3651,8 +3918,7 @@ static void MapCheckbuttonGadget(int id)
 #endif
 
   /* special case needed for "sticky" gadget */
-  ModifyGadget(level_editor_gadget[checkbutton_info[id].gadget_id],
-              GDI_CHECKED, *checkbutton_info[id].value,
+  ModifyGadget(gi, GDI_CHECKED, *checkbutton_info[id].value,
               GDI_Y, SY + checkbutton_info[id].y, GDI_END);
   y = gi->y + yoffset;
 
@@ -3662,7 +3928,7 @@ static void MapCheckbuttonGadget(int id)
   if (checkbutton_info[id].text_right)
     DrawText(x_right, y, checkbutton_info[id].text_right, FONT_TEXT_1);
 
-  MapGadget(level_editor_gadget[checkbutton_info[id].gadget_id]);
+  MapGadget(gi);
 }
 
 static void MapMainDrawingArea()
@@ -3775,6 +4041,21 @@ static void CopyPlayfield(short src[MAX_LEV_FIELDX][MAX_LEV_FIELDY],
       dst[x][y] = src[x][y];
 }
 
+static int SetSelectboxValue(int selectbox_id, int new_value)
+{
+  int new_index_value = 0;
+  int i;
+
+  for(i=0; selectbox_info[selectbox_id].options[i].text != NULL; i++)
+    if (selectbox_info[selectbox_id].options[i].value == new_value)
+      new_index_value = i;
+
+  *selectbox_info[selectbox_id].value =
+    selectbox_info[selectbox_id].options[new_index_value].value;
+
+  return new_index_value;
+}
+
 static void CopyCustomElementPropertiesToEditor(int element)
 {
   int i;
@@ -3784,6 +4065,10 @@ static void CopyCustomElementPropertiesToEditor(int element)
 
   custom_element = element_info[element];
 
+  /* needed to initially set selectbox value variables to reliable defaults */
+  for (i=0; i < ED_NUM_SELECTBOX; i++)
+    SetSelectboxValue(i, *selectbox_info[i].value);
+
   for (i=0; i < NUM_ELEMENT_PROPERTIES; i++)
     custom_element_properties[i] = HAS_PROPERTY(element, i);
 
@@ -3810,12 +4095,14 @@ static void CopyCustomElementPropertiesToEditor(int element)
   /* set walk-to-object action selectbox help value */
   custom_element.walk_to_action =
     (IS_DIGGABLE(element) ? EP_DIGGABLE :
-     IS_COLLECTIBLE(element) ? EP_COLLECTIBLE :
+     IS_COLLECTIBLE_ONLY(element) ? EP_COLLECTIBLE_ONLY :
+     IS_DROPPABLE(element) ? EP_DROPPABLE :
      IS_PUSHABLE(element) ? EP_PUSHABLE :
      custom_element.walk_to_action);
   custom_element_properties[EP_WALK_TO_OBJECT] =
     (IS_DIGGABLE(element) ||
-     IS_COLLECTIBLE(element) ||
+     IS_COLLECTIBLE_ONLY(element) ||
+     IS_DROPPABLE(element) ||
      IS_PUSHABLE(element));
 
   /* set smash targets selectbox help value */
@@ -3843,11 +4130,13 @@ static void CopyCustomElementPropertiesToEditor(int element)
   /* set consistency selectbox help value */
   custom_element.consistency =
     (IS_INDESTRUCTIBLE(element) ? EP_INDESTRUCTIBLE :
-     CAN_EXPLODE(element) ? EP_CAN_EXPLODE :
+     CAN_EXPLODE_1X1(element) ? EP_CAN_EXPLODE_1X1 :
+     CAN_EXPLODE_3X3(element) ? EP_CAN_EXPLODE_3X3 :
      custom_element.consistency);
   custom_element_properties[EP_EXPLODE_RESULT] =
     (IS_INDESTRUCTIBLE(element) ||
-     CAN_EXPLODE(element));
+     CAN_EXPLODE_1X1(element) ||
+     CAN_EXPLODE_3X3(element));
 
   /* special case: sub-settings dependent from main setting */
   if (CAN_EXPLODE_BY_FIRE(element))
@@ -3861,7 +4150,8 @@ static void CopyCustomElementPropertiesToEditor(int element)
 
   /* set change by player selectbox help value */
   custom_element.change_player_action =
-    (HAS_CHANGE_EVENT(element, CE_PUSHED_BY_PLAYER) ? CE_PUSHED_BY_PLAYER :
+    (HAS_CHANGE_EVENT(element, CE_DROPPED_BY_PLAYER) ? CE_DROPPED_BY_PLAYER :
+     HAS_CHANGE_EVENT(element, CE_PUSHED_BY_PLAYER) ? CE_PUSHED_BY_PLAYER :
      HAS_CHANGE_EVENT(element, CE_PRESSED_BY_PLAYER) ? CE_PRESSED_BY_PLAYER :
      HAS_CHANGE_EVENT(element, CE_TOUCHED_BY_PLAYER) ? CE_TOUCHED_BY_PLAYER :
      custom_element.change_player_action);
@@ -3875,7 +4165,8 @@ static void CopyCustomElementPropertiesToEditor(int element)
 
   /* set change by other element action selectbox help value */
   custom_element.change_other_action =
-    (HAS_CHANGE_EVENT(element, CE_OTHER_GETS_COLLECTED) ? CE_OTHER_GETS_COLLECTED :
+    (HAS_CHANGE_EVENT(element, CE_OTHER_GETS_DROPPED) ? CE_OTHER_GETS_DROPPED :
+     HAS_CHANGE_EVENT(element, CE_OTHER_GETS_COLLECTED) ? CE_OTHER_GETS_COLLECTED :
      HAS_CHANGE_EVENT(element, CE_OTHER_GETS_PUSHED) ? CE_OTHER_GETS_PUSHED :
      HAS_CHANGE_EVENT(element, CE_OTHER_GETS_PRESSED) ? CE_OTHER_GETS_PRESSED :
      HAS_CHANGE_EVENT(element, CE_OTHER_GETS_TOUCHED) ? CE_OTHER_GETS_TOUCHED :
@@ -3890,6 +4181,9 @@ static void CopyCustomElementPropertiesToGame(int element)
   int i;
   int access_type_and_layer;
 
+  /* mark that this custom element has been modified */
+  custom_element.modified_settings = TRUE;
+
   if (level.use_custom_template)
   {
     if (Request("Copy and modify level tem- plate ?", REQ_ASK))
@@ -3900,9 +4194,9 @@ static void CopyCustomElementPropertiesToGame(int element)
     }
     else
     {
-      LoadLevelTemplate(-1);
+      LoadLevelTemplate(-1);   /* this resets all element modifications ... */
 
-      DrawEditModeWindow();
+      DrawEditModeWindow();    /* ... and copies them to 'custom_element' */
     }
   }
 
@@ -3925,7 +4219,8 @@ static void CopyCustomElementPropertiesToGame(int element)
 
   /* set walk-to-object property from checkbox and selectbox */
   custom_element_properties[EP_DIGGABLE] = FALSE;
-  custom_element_properties[EP_COLLECTIBLE] = FALSE;
+  custom_element_properties[EP_COLLECTIBLE_ONLY] = FALSE;
+  custom_element_properties[EP_DROPPABLE] = FALSE;
   custom_element_properties[EP_PUSHABLE] = FALSE;
   custom_element_properties[custom_element.walk_to_action] =
     custom_element_properties[EP_WALK_TO_OBJECT];
@@ -3946,7 +4241,8 @@ static void CopyCustomElementPropertiesToGame(int element)
 
   /* set consistency property from checkbox and selectbox */
   custom_element_properties[EP_INDESTRUCTIBLE] = FALSE;
-  custom_element_properties[EP_CAN_EXPLODE] = FALSE;
+  custom_element_properties[EP_CAN_EXPLODE_1X1] = FALSE;
+  custom_element_properties[EP_CAN_EXPLODE_3X3] = FALSE;
   custom_element_properties[EP_CAN_EXPLODE_BY_FIRE] = FALSE;
   custom_element_properties[EP_CAN_EXPLODE_SMASHED] = FALSE;
   custom_element_properties[EP_CAN_EXPLODE_IMPACT] = FALSE;
@@ -3954,7 +4250,8 @@ static void CopyCustomElementPropertiesToGame(int element)
     custom_element_properties[EP_EXPLODE_RESULT];
 
   /* special case: sub-settings dependent from main setting */
-  if (custom_element_properties[EP_CAN_EXPLODE])
+  if (custom_element_properties[EP_CAN_EXPLODE_3X3] ||
+      custom_element_properties[EP_CAN_EXPLODE_1X1])
   {
     custom_element_properties[EP_CAN_EXPLODE_BY_FIRE] =
       custom_element.can_explode_by_fire;
@@ -3970,6 +4267,7 @@ static void CopyCustomElementPropertiesToGame(int element)
   custom_element_change_events[CE_TOUCHED_BY_PLAYER] = FALSE;
   custom_element_change_events[CE_PRESSED_BY_PLAYER] = FALSE;
   custom_element_change_events[CE_PUSHED_BY_PLAYER] = FALSE;
+  custom_element_change_events[CE_DROPPED_BY_PLAYER] = FALSE;
   custom_element_change_events[custom_element.change_player_action] =
     custom_element_change_events[CE_BY_PLAYER];
 
@@ -3988,6 +4286,7 @@ static void CopyCustomElementPropertiesToGame(int element)
   custom_element_change_events[CE_OTHER_GETS_PRESSED] = FALSE;
   custom_element_change_events[CE_OTHER_GETS_PUSHED] = FALSE;
   custom_element_change_events[CE_OTHER_GETS_COLLECTED] = FALSE;
+  custom_element_change_events[CE_OTHER_GETS_DROPPED] = FALSE;
   custom_element_change_events[custom_element.change_other_action] =
     custom_element_change_events[CE_BY_OTHER];
 
@@ -4187,15 +4486,7 @@ static void ModifyEditorSelectbox(int selectbox_id, int new_value)
 {
   int gadget_id = selectbox_info[selectbox_id].gadget_id;
   struct GadgetInfo *gi = level_editor_gadget[gadget_id];
-  int new_index_value = 0;
-  int i;
-
-  for(i=0; selectbox_info[selectbox_id].options[i].text != NULL; i++)
-    if (selectbox_info[selectbox_id].options[i].value == new_value)
-      new_index_value = i;
-
-  *selectbox_info[selectbox_id].value =
-    selectbox_info[selectbox_id].options[new_index_value].value;
+  int new_index_value = SetSelectboxValue(selectbox_id, new_value);
 
   ModifyGadget(gi, GDI_SELECTBOX_INDEX, new_index_value, GDI_END);
 }
@@ -4272,44 +4563,6 @@ static void DrawDrawingWindow()
   MapMainDrawingArea();
 }
 
-static void DrawElementBorder(int dest_x, int dest_y, int width, int height,
-                             boolean input)
-{
-  int border_graphic =
-    (input ? IMG_EDITOR_ELEMENT_BORDER_INPUT : IMG_EDITOR_ELEMENT_BORDER);
-  Bitmap *src_bitmap;
-  int src_x, src_y;
-  int num_mini_tilex = width / MINI_TILEX + 1;
-  int num_mini_tiley = width / MINI_TILEY + 1;
-  int x, y;
-
-  getMiniGraphicSource(border_graphic, &src_bitmap, &src_x, &src_y);
-
-  for (y=0; y < num_mini_tiley; y++)
-    for (x=0; x < num_mini_tilex; x++)
-      BlitBitmap(src_bitmap, drawto, src_x, src_y, MINI_TILEX, MINI_TILEY,
-                dest_x - MINI_TILEX / 2 + x * MINI_TILEX,
-                dest_y - MINI_TILEY / 2 + y * MINI_TILEY);
-
-  ClearRectangle(drawto, dest_x - 1, dest_y - 1, width + 2, height + 2);
-}
-
-static void DrawRandomPlacementBackgroundArea()
-{
-  struct GadgetInfo *gi = level_editor_gadget[GADGET_ID_RANDOM_BACKGROUND];
-#if 0
-  int area_x = ED_AREA_RANDOM_BACKGROUND_XPOS / MINI_TILEX;
-  int area_y = ED_AREA_RANDOM_BACKGROUND_YPOS / MINI_TILEY;
-  int area_sx = SX + ED_AREA_RANDOM_BACKGROUND_XPOS;
-  int area_sy = SY + ED_AREA_RANDOM_BACKGROUND_YPOS;
-#endif
-
-  DrawElementBorder(gi->x, gi->y, MINI_TILEX, MINI_TILEY, TRUE);
-  DrawMiniElement(gi->x, gi->y, random_placement_background_element);
-
-  MapDrawingArea(ED_DRAWING_ID_RANDOM_BACKGROUND);
-}
-
 static void DrawLevelInfoWindow()
 {
   int i;
@@ -4342,227 +4595,71 @@ static void DrawLevelInfoWindow()
     MapTextInputGadget(i);
 
   /* draw drawing area */
-  DrawRandomPlacementBackgroundArea();
-}
-
-static void DrawAmoebaContentArea()
-{
-  int area_x = ED_AREA_ELEM_CONTENT_XPOS / MINI_TILEX;
-  int area_y = ED_AREA_ELEM_CONTENT_YPOS / MINI_TILEY;
-  int area_sx = SX + ED_AREA_ELEM_CONTENT_XPOS;
-  int area_sy = SY + ED_AREA_ELEM_CONTENT_YPOS;
-
-  DrawElementBorder(area_sx, area_sy, MINI_TILEX, MINI_TILEY, TRUE);
-  DrawMiniElement(area_x, area_y, level.amoeba_content);
-
-  DrawText(area_sx + TILEX, area_sy + 1, "Content of amoeba", FONT_TEXT_1);
-
-  MapDrawingArea(ED_DRAWING_ID_AMOEBA_CONTENT);
-}
-
-static void DrawCustomGraphicElementArea()
-{
-  struct GadgetInfo *gi = level_editor_gadget[GADGET_ID_CUSTOM_GRAPHIC];
-#if 0
-  int xpos = ED_AREA_ELEM_CONTENT3_XPOS;
-  int ypos = ED_AREA_ELEM_CONTENT3_YPOS;
-  int area_sx = SX + xpos;
-  int area_sy = SY + ypos;
-#endif
-
-  if (!IS_CUSTOM_ELEMENT(properties_element))
-  {
-    /* this should never happen */
-    Error(ERR_WARN, "element %d is no custom element", properties_element);
-
-    return;
-  }
-
-  DrawElementBorder(gi->x, gi->y, MINI_TILEX, MINI_TILEY, TRUE);
-  DrawMiniGraphicExt(drawto, gi->x, gi->y,
-                    el2edimg(custom_element.gfx_element));
-
-  MapDrawingArea(ED_DRAWING_ID_CUSTOM_GRAPHIC);
+  MapDrawingArea(ED_DRAWING_ID_RANDOM_BACKGROUND);
 }
 
 static void DrawCustomContentArea()
 {
-  struct GadgetInfo *gi = level_editor_gadget[GADGET_ID_CUSTOM_CONTENT];
-#if 0
-  int area_sx = SX + ED_AREA_ELEM_CONTENT4_XPOS;
-  int area_sy = SY + ED_AREA_ELEM_CONTENT4_YPOS;
-#endif
+  int id = ED_DRAWING_ID_CUSTOM_CONTENT;
+  struct GadgetInfo *gi = level_editor_gadget[drawingarea_info[id].gadget_id];
   int x1 = right_gadget_border[GADGET_ID_CUSTOM_DEADLINESS];
   int x2 = right_gadget_border[GADGET_ID_CUSTOM_CONSISTENCY];
   int x3 = right_gadget_border[GADGET_ID_CUSTOM_EXPLODE_IMPACT];
-  int xoffset = ED_GADGET_TEXT_DISTANCE + MINI_TILEX / 2;
-  int x, y;
-
-  if (!IS_CUSTOM_ELEMENT(properties_element))
-  {
-    /* this should never happen */
-    Error(ERR_WARN, "element %d is no custom element", properties_element);
+  int xoffset = ED_DRAWINGAREA_TEXT_DISTANCE;
 
-    return;
-  }
+  /* add distance for potential left text (without drawing area border) */
+  x2 += getTextWidthForGadget(drawingarea_info[id].text_left);
 
   ModifyGadget(gi, GDI_X, MAX(x1, MAX(x2, x3)) + xoffset, GDI_END);
 
-  DrawElementBorder(gi->x, gi->y, 3 * MINI_TILEX, 3 * MINI_TILEY, TRUE);
-
-  for (y=0; y<3; y++)
-    for (x=0; x<3; x++)
-      DrawMiniGraphicExt(drawto, gi->x + x * MINI_TILEX,gi->y + y * MINI_TILEY,
-                        el2edimg(custom_element.content[x][y]));
-
   MapDrawingArea(ED_DRAWING_ID_CUSTOM_CONTENT);
 }
 
-static void DrawCustomChangeTargetArea()
-{
-  int id = ED_DRAWING_ID_CUSTOM_CHANGE_TARGET;
-  int gadget_id = drawingarea_info[id].gadget_id;
-  struct GadgetInfo *gi = level_editor_gadget[gadget_id];
-#if 0
-  int xpos = ED_AREA_ELEM_CONTENT2_XPOS;
-  int ypos = ED_AREA_ELEM_CONTENT2_YPOS;
-  int area_sx = SX + xpos;
-  int area_sy = SY + ypos;
-#endif
-  int xoffset_left = 0;
-  int yoffset_left = ED_BORDER_AREA_YSIZE;
-  int xoffset_right = ED_GADGET_TEXT_DISTANCE + MINI_TILEX / 2;
-  int yoffset_right = ED_BORDER_AREA_YSIZE;
-  int x = drawingarea_info[id].x + xoffset_left;
-  int y = drawingarea_info[id].y + yoffset_left;
-
-  if (!IS_CUSTOM_ELEMENT(properties_element))
-  {
-    /* this should never happen */
-    Error(ERR_WARN, "element %d is no custom element", properties_element);
-
-    return;
-  }
-
-  DrawElementBorder(gi->x, gi->y, MINI_TILEX, MINI_TILEY, TRUE);
-  DrawMiniGraphicExt(drawto, gi->x, gi->y,
-                    el2edimg(custom_element.change.target_element));
-
-  MapDrawingArea(ED_DRAWING_ID_CUSTOM_CHANGE_TARGET);
-
-  if (drawingarea_info[id].text_left)
-    DrawTextF(x, y, FONT_TEXT_1, drawingarea_info[id].text_left);
-
-  if (drawingarea_info[id].text_right)
-  {
-    x = gi->x + gi->width + xoffset_right;
-    y = SY + drawingarea_info[id].y + yoffset_right;
-
-    DrawText(x, y, drawingarea_info[id].text_right, FONT_TEXT_1);
-  }
-}
-
 static void DrawCustomChangeContentArea()
 {
-  struct GadgetInfo *gi = level_editor_gadget[GADGET_ID_CUSTOM_CHANGE_CONTENT];
-#if 0
-  int area_sx = SX + ED_AREA_ELEM_CONTENT6_XPOS;
-  int area_sy = SY + ED_AREA_ELEM_CONTENT6_YPOS;
-#endif
+  int id = ED_DRAWING_ID_CUSTOM_CHANGE_CONTENT;
+  struct GadgetInfo *gi = level_editor_gadget[drawingarea_info[id].gadget_id];
   int x1 = right_gadget_border[GADGET_ID_CHANGE_USE_CONTENT];
   int x2 = right_gadget_border[GADGET_ID_CHANGE_POWER];
   int x3 = right_gadget_border[GADGET_ID_CHANGE_ONLY_COMPLETE];
-  int xoffset = ED_GADGET_TEXT_DISTANCE + MINI_TILEX / 2;
-  int x, y;
-
-  if (!IS_CUSTOM_ELEMENT(properties_element))
-  {
-    /* this should never happen */
-    Error(ERR_WARN, "element %d is no custom element", properties_element);
-
-    return;
-  }
+  int xoffset = ED_DRAWINGAREA_TEXT_DISTANCE;
 
   ModifyGadget(gi, GDI_X, MAX(x1, MAX(x2, x3)) + xoffset, GDI_END);
 
-  DrawElementBorder(gi->x, gi->y, 3 * MINI_TILEX, 3 * MINI_TILEY, TRUE);
-
-  for (y=0; y<3; y++)
-    for (x=0; x<3; x++)
-      DrawMiniGraphicExt(drawto, gi->x + x * MINI_TILEX,gi->y + y * MINI_TILEY,
-                        el2edimg(custom_element.change.content[x][y]));
-
-  MapDrawingArea(ED_DRAWING_ID_CUSTOM_CHANGE_CONTENT);
-}
-
-static void DrawCustomChangeTriggerArea()
-{
-  struct GadgetInfo *gi = level_editor_gadget[GADGET_ID_CUSTOM_CHANGE_TRIGGER];
-#if 0
-  int xpos = ED_AREA_ELEM_CONTENT5_XPOS;
-  int ypos = ED_AREA_ELEM_CONTENT5_YPOS;
-  int area_sx = SX + xpos;
-  int area_sy = SY + ypos;
-#endif
-
-  if (!IS_CUSTOM_ELEMENT(properties_element))
-  {
-    /* this should never happen */
-    Error(ERR_WARN, "element %d is no custom element", properties_element);
-
-    return;
-  }
-
-  DrawElementBorder(gi->x, gi->y, MINI_TILEX, MINI_TILEY, TRUE);
-  DrawMiniGraphicExt(drawto, gi->x, gi->y,
-                    el2edimg(custom_element.change.trigger_element));
-
-  MapDrawingArea(ED_DRAWING_ID_CUSTOM_CHANGE_TRIGGER);
+  MapDrawingArea(id);
 }
 
 static void DrawElementContentAreas()
 {
-  int area_x = ED_AREA_ELEM_CONTENT_XPOS / MINI_TILEX;
-  int area_y = ED_AREA_ELEM_CONTENT_YPOS / MINI_TILEY;
-  int area_sx = SX + ED_AREA_ELEM_CONTENT_XPOS;
-  int area_sy = SY + ED_AREA_ELEM_CONTENT_YPOS;
-  int i, x, y;
-
-  for (i=0; i<MAX_ELEMENT_CONTENTS; i++)
-    UnmapDrawingArea(GADGET_ID_ELEMENT_CONTENT_0 + i);
+  int x = SX + ED_AREA_YAMYAM_CONTENT_XPOS(3) + 4 * MINI_TILEX;
+  int y = SY + ED_AREA_YAMYAM_CONTENT_YPOS(0) + ED_BORDER_AREA_YSIZE;
+  int i;
 
   /* display counter to choose number of element content areas */
   MapCounterButtons(ED_COUNTER_ID_ELEMENT_CONTENT);
 
-  /* delete content areas in case of reducing number of them */
-  DrawBackground(SX, area_sy - MINI_TILEX, SXSIZE, 12 * MINI_TILEY);
-
-  for (i=0; i<level.num_yamyam_contents; i++)
-    DrawElementBorder(area_sx + 5 * (i % 4) * MINI_TILEX,
-                     area_sy + 6 * (i / 4) * MINI_TILEY,
-                     3 * MINI_TILEX, 3 * MINI_TILEY, TRUE);
-
-  DrawText(area_sx + (5 * 4 - 1) * MINI_TILEX, area_sy + 0 * MINI_TILEY + 1,
-          "Content", FONT_TEXT_1);
-  DrawText(area_sx + (5 * 4 - 1) * MINI_TILEX, area_sy + 1 * MINI_TILEY + 1,
-          "when",    FONT_TEXT_1);
-  DrawText(area_sx + (5 * 4 - 1) * MINI_TILEX, area_sy + 2 * MINI_TILEY + 1,
-          "smashed", FONT_TEXT_1);
-
-  for (i=0; i<level.num_yamyam_contents; i++)
+  for (i=0; i < MAX_ELEMENT_CONTENTS; i++)
   {
-    for (y=0; y<3; y++)
-      for (x=0; x<3; x++)
-       DrawMiniElement(area_x + 5 * (i % 4) + x, area_y + 6 * (i / 4) + y,
-                       level.yamyam_content[i][x][y]);
+    int id = ED_DRAWING_ID_ELEMENT_CONTENT_0 + i;
+    int font_height = getFontHeight(FONT_TEXT_1);
+
+    if (i < level.num_yamyam_contents)
+      MapDrawingArea(id);
+    else
+    {
+      UnmapDrawingArea(id);
 
-    DrawTextF(area_sx - SX + 5 * (i % 4) * MINI_TILEX + MINI_TILEX + 1,
-             area_sy - SY + 6 * (i / 4) * MINI_TILEY + 4 * MINI_TILEY - 4,
-             FONT_TEXT_1, "%d", i + 1);
+      /* delete content areas in case of reducing number of them */
+      DrawBackground(SX + drawingarea_info[id].x - MINI_TILEX / 2,
+                    SY + drawingarea_info[id].y - MINI_TILEY / 2,
+                    4 * MINI_TILEX,
+                    4 * MINI_TILEX + ED_GADGET_TEXT_DISTANCE + font_height);
+    }
   }
 
-  for (i=0; i<level.num_yamyam_contents; i++)
-    MapDrawingArea(ED_DRAWING_ID_ELEMENT_CONTENT_0 + i);
+  DrawText(x, y + 0 * MINI_TILEY, "content", FONT_TEXT_1);
+  DrawText(x, y + 1 * MINI_TILEY, "when",    FONT_TEXT_1);
+  DrawText(x, y + 2 * MINI_TILEY, "smashed", FONT_TEXT_1);
 }
 
 char *getElementDescriptionFilename(int element)
@@ -4799,9 +4896,10 @@ static void DrawPropertiesInfo()
     { EP_PASSABLE_INSIDE,      "- player can pass through it"          },
     { EP_PASSABLE_UNDER,       "- player can pass under it"            },
 
-    { EP_DIGGABLE,             "- diggable"                            },
-    { EP_COLLECTIBLE,          "- collectible"                         },
-    { EP_PUSHABLE,             "- pushable"                            },
+    { EP_DIGGABLE,             "- can be digged away"                  },
+    { EP_COLLECTIBLE,          "- can be collected"                    },
+    { EP_DROPPABLE,            "- can be dropped after collecting"     },
+    { EP_PUSHABLE,             "- can be pushed"                       },
 
     { EP_CAN_MOVE,             "- can move"                            },
     { EP_CAN_FALL,             "- can fall"                            },
@@ -5015,7 +5113,7 @@ static void DrawPropertiesConfig()
     MapCheckbuttonGadget(i);
 
     if (IS_AMOEBOID(properties_element))
-      DrawAmoebaContentArea();
+      MapDrawingArea(ED_DRAWING_ID_AMOEBA_CONTENT);
     else
       DrawElementContentAreas();
   }
@@ -5053,9 +5151,10 @@ static void DrawPropertiesConfig()
 
 static void DrawPropertiesAdvancedDrawingAreas()
 {
-  DrawCustomGraphicElementArea();
-  DrawCustomChangeTargetArea();
-  DrawCustomChangeTriggerArea();
+  MapDrawingArea(ED_DRAWING_ID_CUSTOM_GRAPHIC);
+  MapDrawingArea(ED_DRAWING_ID_CUSTOM_CHANGE_TARGET);
+  MapDrawingArea(ED_DRAWING_ID_CUSTOM_CHANGE_TRIGGER);
+
   DrawCustomChangeContentArea();
 
   redraw_mask |= REDRAW_FIELD;
index 0dec9df9a52d62b89705f83f9ac61f39f4c560c6..f060c0ff1d9ec1aa11df94b283fa994788efcb6e 100644 (file)
@@ -793,9 +793,16 @@ void HandleKey(Key key, int key_status)
 
        case KSYM_Q:
        case KSYM_q:
-         local_player->dynamite = 1000;
-         break;
+         {
+           int i;
 
+           for (i=0; i < MAX_INVENTORY_SIZE; i++)
+             if (local_player->inventory_size < MAX_INVENTORY_SIZE)
+               local_player->inventory_element[local_player->inventory_size++] =
+                 EL_DYNAMITE;
+         }
+
+         break;
 
 
 #if 0
index bd2539b8ef19ac6cb8a5ac35eeca23952bd27d7b..358333a474f74da747c2fa25a0f87d7cba8ed2f1 100644 (file)
@@ -116,8 +116,8 @@ static void setLevelInfoToDefaults(struct LevelInfo *level)
     element_info[element].use_gfx_element = FALSE;
     element_info[element].gfx_element = EL_EMPTY_SPACE;
 
-    element_info[element].score = 0;
-    element_info[element].gem_count = 0;
+    element_info[element].collect_score = 10;          /* special default */
+    element_info[element].collect_count = 1;           /* special default */
 
     element_info[element].push_delay_fixed = 2;                /* special default */
     element_info[element].push_delay_random = 8;       /* special default */
@@ -171,6 +171,8 @@ static void setLevelInfoToDefaults(struct LevelInfo *level)
     /* start with no properties at all */
     for (j=0; j < NUM_EP_BITFIELDS; j++)
       Properties[element][j] = EP_BITMASK_DEFAULT;
+
+    element_info[element].modified_settings = FALSE;
   }
 
   BorderElement = EL_STEELWALL;
@@ -496,8 +498,8 @@ static int LoadLevel_CUS3(FILE *file, int chunk_size, struct LevelInfo *level)
     element_info[element].gfx_element =
       checkLevelElement(getFile16BitBE(file));
 
-    element_info[element].score = getFile8Bit(file);
-    element_info[element].gem_count = getFile8Bit(file);
+    element_info[element].collect_score = getFile8Bit(file);
+    element_info[element].collect_count = getFile8Bit(file);
 
     element_info[element].push_delay_fixed = getFile16BitBE(file);
     element_info[element].push_delay_random = getFile16BitBE(file);
@@ -542,6 +544,9 @@ static int LoadLevel_CUS3(FILE *file, int chunk_size, struct LevelInfo *level)
 
     /* some free bytes for future properties and padding */
     ReadUnusedBytesFromFile(file, LEVEL_CPART_CUS3_UNUSED);
+
+    /* mark that this custom element has been modified */
+    element_info[element].modified_settings = TRUE;
   }
 
   return chunk_size;
@@ -1007,7 +1012,7 @@ static void SaveLevel_CUS3(FILE *file, struct LevelInfo *level,
   {
     int element = EL_CUSTOM_START + i;
 
-    if (Properties[element][EP_BITFIELD_BASE] != EP_BITMASK_DEFAULT)
+    if (element_info[element].modified_settings)
     {
       if (check < num_changed_custom_elements)
       {
@@ -1024,8 +1029,8 @@ static void SaveLevel_CUS3(FILE *file, struct LevelInfo *level,
        putFile8Bit(file, element_info[element].use_gfx_element);
        putFile16BitBE(file, element_info[element].gfx_element);
 
-       putFile8Bit(file, element_info[element].score);
-       putFile8Bit(file, element_info[element].gem_count);
+       putFile8Bit(file, element_info[element].collect_score);
+       putFile8Bit(file, element_info[element].collect_count);
 
        putFile16BitBE(file, element_info[element].push_delay_fixed);
        putFile16BitBE(file, element_info[element].push_delay_random);
@@ -1119,7 +1124,7 @@ static void SaveLevelFromFilename(struct LevelInfo *level, char *filename)
 
   /* check for non-standard custom elements and calculate "CUS3" chunk size */
   for (i=0; i < NUM_CUSTOM_ELEMENTS; i++)
-    if (Properties[EL_CUSTOM_START +i][EP_BITFIELD_BASE] != EP_BITMASK_DEFAULT)
+    if (element_info[EL_CUSTOM_START + i].modified_settings)
       num_changed_custom_elements++;
   level_chunk_CUS3_size = LEVEL_CHUNK_CUS3_SIZE(num_changed_custom_elements);
 
@@ -1886,6 +1891,7 @@ static struct TokenInfo editor_setup_tokens[] =
   { TYPE_SWITCH, &sei.el_dx_boulderdash,"editor.el_dx_boulderdash"     },
   { TYPE_SWITCH, &sei.el_chars,                "editor.el_chars"               },
   { TYPE_SWITCH, &sei.el_custom,       "editor.el_custom"              },
+  { TYPE_SWITCH, &sei.el_custom_more,  "editor.el_custom_more"         },
 };
 
 static struct TokenInfo shortcut_setup_tokens[] =
@@ -1965,9 +1971,9 @@ static void setSetupInfoToDefaults(struct SetupInfo *si)
   si->fullscreen = FALSE;
   si->ask_on_escape = TRUE;
 
-  si->graphics_set = getStringCopy(GRAPHICS_SUBDIR);
-  si->sounds_set = getStringCopy(SOUNDS_SUBDIR);
-  si->music_set = getStringCopy(MUSIC_SUBDIR);
+  si->graphics_set = getStringCopy(GFX_CLASSIC_SUBDIR);
+  si->sounds_set = getStringCopy(SND_CLASSIC_SUBDIR);
+  si->music_set = getStringCopy(MUS_CLASSIC_SUBDIR);
   si->override_level_graphics = FALSE;
   si->override_level_sounds = FALSE;
   si->override_level_music = FALSE;
@@ -1981,6 +1987,7 @@ static void setSetupInfoToDefaults(struct SetupInfo *si)
   si->editor.el_dx_boulderdash = TRUE;
   si->editor.el_chars = TRUE;
   si->editor.el_custom = TRUE;
+  si->editor.el_custom_more = FALSE;
 
   si->shortcut.save_game = DEFAULT_KEY_SAVE_GAME;
   si->shortcut.load_game = DEFAULT_KEY_LOAD_GAME;
index a9256de700b26165492684b984d700a492895e22..1aef43abbb1143e3ac3952850e5f6aacb438dc3c 100644 (file)
@@ -398,9 +398,9 @@ move_stepsize_list[] =
 struct
 {
   int element;
-  int gem_count;
+  int count;
 }
-gem_count_list[] =
+collect_count_list[] =
 {
   { EL_EMERALD,                        1 },
   { EL_BD_DIAMOND,             1 },
@@ -427,7 +427,7 @@ static unsigned long trigger_events[MAX_NUM_ELEMENTS];
 void GetPlayerConfig()
 {
   if (!audio.sound_available)
-    setup.sound = FALSE;
+    setup.sound_simple = FALSE;
 
   if (!audio.loops_available)
     setup.sound_loops = FALSE;
@@ -438,7 +438,7 @@ void GetPlayerConfig()
   if (!video.fullscreen_available)
     setup.fullscreen = FALSE;
 
-  setup.sound_simple = setup.sound;
+  setup.sound = (setup.sound_simple || setup.sound_loops || setup.sound_music);
 
   SetAudioMode(setup.sound);
   InitJoysticks();
@@ -495,62 +495,71 @@ static int getBeltDirFromBeltSwitchElement(int element)
   return belt_move_dir[belt_dir_nr];
 }
 
-static void InitField(int x, int y, boolean init_game)
+static void InitPlayerField(int x, int y, int element, boolean init_game)
 {
-  int element = Feld[x][y];
-
-  switch (element)
+  if (element == EL_SP_MURPHY)
   {
-    case EL_SP_MURPHY:
-      if (init_game)
+    if (init_game)
+    {
+      if (stored_player[0].present)
       {
-       if (stored_player[0].present)
-       {
-         Feld[x][y] = EL_SP_MURPHY_CLONE;
-         break;
-       }
-       else
-       {
-         stored_player[0].use_murphy_graphic = TRUE;
-       }
+       Feld[x][y] = EL_SP_MURPHY_CLONE;
 
-       Feld[x][y] = EL_PLAYER_1;
+       return;
       }
-      /* no break! */
-    case EL_PLAYER_1:
-    case EL_PLAYER_2:
-    case EL_PLAYER_3:
-    case EL_PLAYER_4:
-      if (init_game)
+      else
       {
-       struct PlayerInfo *player = &stored_player[Feld[x][y] - EL_PLAYER_1];
-       int jx = player->jx, jy = player->jy;
+       stored_player[0].use_murphy_graphic = TRUE;
+      }
 
-       player->present = TRUE;
+      Feld[x][y] = EL_PLAYER_1;
+    }
+  }
 
-       if (!options.network || player->connected)
-       {
-         player->active = TRUE;
+  if (init_game)
+  {
+    struct PlayerInfo *player = &stored_player[Feld[x][y] - EL_PLAYER_1];
+    int jx = player->jx, jy = player->jy;
 
-         /* remove potentially duplicate players */
-         if (StorePlayer[jx][jy] == Feld[x][y])
-           StorePlayer[jx][jy] = 0;
+    player->present = TRUE;
 
-         StorePlayer[x][y] = Feld[x][y];
+    if (!options.network || player->connected)
+    {
+      player->active = TRUE;
 
-         if (options.debug)
-         {
-           printf("Player %d activated.\n", player->element_nr);
-           printf("[Local player is %d and currently %s.]\n",
-                  local_player->element_nr,
-                  local_player->active ? "active" : "not active");
-         }
-       }
+      /* remove potentially duplicate players */
+      if (StorePlayer[jx][jy] == Feld[x][y])
+       StorePlayer[jx][jy] = 0;
 
-       Feld[x][y] = EL_EMPTY;
-       player->jx = player->last_jx = x;
-       player->jy = player->last_jy = y;
+      StorePlayer[x][y] = Feld[x][y];
+
+      if (options.debug)
+      {
+       printf("Player %d activated.\n", player->element_nr);
+       printf("[Local player is %d and currently %s.]\n",
+              local_player->element_nr,
+              local_player->active ? "active" : "not active");
       }
+    }
+
+    Feld[x][y] = EL_EMPTY;
+    player->jx = player->last_jx = x;
+    player->jy = player->last_jy = y;
+  }
+}
+
+static void InitField(int x, int y, boolean init_game)
+{
+  int element = Feld[x][y];
+
+  switch (element)
+  {
+    case EL_SP_MURPHY:
+    case EL_PLAYER_1:
+    case EL_PLAYER_2:
+    case EL_PLAYER_3:
+    case EL_PLAYER_4:
+      InitPlayerField(x, y, element, init_game);
       break;
 
     case EL_STONEBLOCK:
@@ -715,7 +724,7 @@ void DrawGameDoorValues()
   DrawText(DX + XX_EMERALDS, DY + YY_EMERALDS,
           int2str(local_player->gems_still_needed, 3), FONT_TEXT_2);
   DrawText(DX + XX_DYNAMITE, DY + YY_DYNAMITE,
-          int2str(local_player->dynamite, 3), FONT_TEXT_2);
+          int2str(local_player->inventory_size, 3), FONT_TEXT_2);
   DrawText(DX + XX_SCORE, DY + YY_SCORE,
           int2str(local_player->score, 5), FONT_TEXT_2);
   DrawText(DX + XX_TIME, DY + YY_TIME,
@@ -890,12 +899,12 @@ static void InitGameEngine()
   /* initialize gem count values for each element */
   for (i=0; i<MAX_NUM_ELEMENTS; i++)
     if (!IS_CUSTOM_ELEMENT(i))
-      element_info[i].gem_count = 0;
+      element_info[i].collect_count = 0;
 
   /* add gem count values for all elements from pre-defined list */
-  for (i=0; gem_count_list[i].element != EL_UNDEFINED; i++)
-    element_info[gem_count_list[i].element].gem_count =
-      gem_count_list[i].gem_count;
+  for (i=0; collect_count_list[i].element != EL_UNDEFINED; i++)
+    element_info[collect_count_list[i].element].collect_count =
+      collect_count_list[i].count;
 }
 
 
@@ -952,7 +961,6 @@ void InitGame()
     for (j=0; j<4; j++)
       player->key[j] = FALSE;
 
-    player->dynamite = 0;
     player->dynabomb_count = 0;
     player->dynabomb_size = 1;
     player->dynabombs_left = 0;
@@ -994,6 +1002,8 @@ void InitGame()
     player->shield_normal_time_left = 0;
     player->shield_deadly_time_left = 0;
 
+    player->inventory_size = 0;
+
     DigField(player, 0, 0, 0, 0, DF_NO_PUSH);
     SnapField(player, 0, 0);
 
@@ -1206,16 +1216,101 @@ void InitGame()
   if (lev_fieldy + (SBY_Upper == -1 ? 2 : 0) <= SCR_FIELDY)
     SBY_Upper = SBY_Lower = -1 * (SCR_FIELDY - lev_fieldy) / 2;
 
-  scroll_x = SBX_Left;
-  scroll_y = SBY_Upper;
-  if (local_player->jx >= SBX_Left + MIDPOSX)
-    scroll_x = (local_player->jx <= SBX_Right + MIDPOSX ?
-               local_player->jx - MIDPOSX :
-               SBX_Right);
-  if (local_player->jy >= SBY_Upper + MIDPOSY)
-    scroll_y = (local_player->jy <= SBY_Lower + MIDPOSY ?
-               local_player->jy - MIDPOSY :
-               SBY_Lower);
+  /* if local player not found, look for custom element that might create
+     the player (make some assumptions about the right custom element) */
+  if (!local_player->present)
+  {
+    int start_x = 0, start_y = 0;
+    int found_rating = 0;
+    int found_element = EL_UNDEFINED;
+
+    for(y=0; y < lev_fieldy; y++) for(x=0; x < lev_fieldx; x++)
+    {
+      int element = Feld[x][y];
+      int content;
+      int xx, yy;
+      boolean is_player;
+
+      if (!IS_CUSTOM_ELEMENT(element))
+       continue;
+
+      if (CAN_CHANGE(element))
+      {
+       content = element_info[element].change.target_element;
+       is_player = ELEM_IS_PLAYER(content);
+
+       if (is_player && (found_rating < 3 || element < found_element))
+       {
+         start_x = x;
+         start_y = y;
+
+         found_rating = 3;
+         found_element = element;
+       }
+      }
+
+      for(yy=0; yy < 3; yy++) for(xx=0; xx < 3; xx++)
+      {
+       content = element_info[element].content[xx][yy];
+       is_player = ELEM_IS_PLAYER(content);
+
+       if (is_player && (found_rating < 2 || element < found_element))
+       {
+         start_x = x + xx - 1;
+         start_y = y + yy - 1;
+
+         found_rating = 2;
+         found_element = element;
+       }
+
+       if (!CAN_CHANGE(element))
+         continue;
+
+       content = element_info[element].change.content[xx][yy];
+       is_player = ELEM_IS_PLAYER(content);
+
+       if (is_player && (found_rating < 1 || element < found_element))
+       {
+         start_x = x + xx - 1;
+         start_y = y + yy - 1;
+
+         found_rating = 1;
+         found_element = element;
+       }
+      }
+    }
+
+    scroll_x = (start_x < SBX_Left  + MIDPOSX ? SBX_Left :
+               start_x > SBX_Right + MIDPOSX ? SBX_Right :
+               start_x - MIDPOSX);
+
+    scroll_y = (start_y < SBY_Upper + MIDPOSY ? SBY_Upper :
+               start_y > SBY_Lower + MIDPOSY ? SBY_Lower :
+               start_y - MIDPOSY);
+  }
+  else
+  {
+#if 1
+    scroll_x = (local_player->jx < SBX_Left  + MIDPOSX ? SBX_Left :
+               local_player->jx > SBX_Right + MIDPOSX ? SBX_Right :
+               local_player->jx - MIDPOSX);
+
+    scroll_y = (local_player->jy < SBY_Upper + MIDPOSY ? SBY_Upper :
+               local_player->jy > SBY_Lower + MIDPOSY ? SBY_Lower :
+               local_player->jy - MIDPOSY);
+#else
+    scroll_x = SBX_Left;
+    scroll_y = SBY_Upper;
+    if (local_player->jx >= SBX_Left + MIDPOSX)
+      scroll_x = (local_player->jx <= SBX_Right + MIDPOSX ?
+                 local_player->jx - MIDPOSX :
+                 SBX_Right);
+    if (local_player->jy >= SBY_Upper + MIDPOSY)
+      scroll_y = (local_player->jy <= SBY_Lower + MIDPOSY ?
+                 local_player->jy - MIDPOSY :
+                 SBY_Lower);
+#endif
+  }
 
   CloseDoor(DOOR_CLOSE_1);
 
@@ -1862,6 +1957,68 @@ void CheckDynamite(int x, int y)
   Bang(x, y);
 }
 
+void RelocatePlayer(int x, int y, int element)
+{
+  struct PlayerInfo *player = &stored_player[element - EL_PLAYER_1];
+
+  if (player->present)
+  {
+    while (player->MovPos)
+    {
+      ScrollFigure(player, SCROLL_GO_ON);
+      ScrollScreen(NULL, SCROLL_GO_ON);
+      FrameCounter++;
+      DrawAllPlayers();
+      BackToFront();
+    }
+
+    RemoveField(player->jx, player->jy);
+    DrawLevelField(player->jx, player->jy);
+  }
+
+  InitPlayerField(x, y, element, TRUE);
+
+  if (player == local_player)
+  {
+    int scroll_xx = -999, scroll_yy = -999;
+
+    while (scroll_xx != scroll_x || scroll_yy != scroll_y)
+    {
+      int dx = 0, dy = 0;
+      int fx = FX, fy = FY;
+
+      scroll_xx = (local_player->jx < SBX_Left  + MIDPOSX ? SBX_Left :
+                  local_player->jx > SBX_Right + MIDPOSX ? SBX_Right :
+                  local_player->jx - MIDPOSX);
+
+      scroll_yy = (local_player->jy < SBY_Upper + MIDPOSY ? SBY_Upper :
+                  local_player->jy > SBY_Lower + MIDPOSY ? SBY_Lower :
+                  local_player->jy - MIDPOSY);
+
+      dx = (scroll_xx < scroll_x ? +1 : scroll_xx > scroll_x ? -1 : 0);
+      dy = (scroll_yy < scroll_y ? +1 : scroll_yy > scroll_y ? -1 : 0);
+
+      scroll_x -= dx;
+      scroll_y -= dy;
+
+      fx += dx * TILEX / 2;
+      fy += dy * TILEY / 2;
+
+      ScrollLevel(dx, dy);
+      DrawAllPlayers();
+
+      /* scroll in to steps of half tile size to make things smoother */
+      BlitBitmap(drawto_field, window, fx, fy, SXSIZE, SYSIZE, SX, SY);
+      FlushDisplay();
+      Delay(GAME_FRAME_DELAY);
+
+      /* scroll second step to align at full tile size */
+      BackToFront();
+      Delay(GAME_FRAME_DELAY);
+    }
+  }
+}
+
 void Explode(int ex, int ey, int phase, int mode)
 {
   int x, y;
@@ -2038,7 +2195,7 @@ void Explode(int ex, int ey, int phase, int mode)
        Store[x][y] = EL_PEARL;
       else if (element == EL_WALL_CRYSTAL)
        Store[x][y] = EL_CRYSTAL;
-      else if (IS_CUSTOM_ELEMENT(element))
+      else if (IS_CUSTOM_ELEMENT(element) && !CAN_EXPLODE(element))
        Store[x][y] = element_info[element].content[1][1];
       else
        Store[x][y] = EL_EMPTY;
@@ -2141,6 +2298,9 @@ void Explode(int ex, int ey, int phase, int mode)
 
     if (IS_PLAYER(x, y) && !PLAYERINFO(x,y)->present)
       StorePlayer[x][y] = 0;
+
+    if (ELEM_IS_PLAYER(element))
+      RelocatePlayer(x, y, element);
   }
   else if (phase >= delay && IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
   {
@@ -2289,7 +2449,10 @@ void Bang(int x, int y)
        Explode(x, y, EX_PHASE_START, EX_CENTER);
       break;
     default:
-      Explode(x, y, EX_PHASE_START, EX_NORMAL);
+      if (CAN_EXPLODE_1X1(element))
+       Explode(x, y, EX_PHASE_START, EX_CENTER);
+      else
+       Explode(x, y, EX_PHASE_START, EX_NORMAL);
       break;
   }
 
@@ -2683,7 +2846,9 @@ void Impact(int x, int y)
     return;
   }
 
-  if (impact)
+  /* only reset graphic animation if graphic really changes after impact */
+  if (impact &&
+      el_act_dir2img(element, GfxAction[x][y], MV_DOWN) != el2img(element))
   {
     ResetGfxAnimation(x, y);
     DrawLevelField(x, y);
@@ -5145,11 +5310,13 @@ static void ChangeActiveTrap(int x, int y)
 
 static void ChangeElementNowExt(int x, int y, int target_element)
 {
+#if 0  /* !!! let the player exacpe from a suddenly unaccessible element */
   if (IS_PLAYER(x, y) && !IS_ACCESSIBLE(target_element))
   {
     Bang(x, y);
     return;
   }
+#endif
 
   RemoveField(x, y);
   Feld[x][y] = target_element;
@@ -5169,6 +5336,9 @@ static void ChangeElementNowExt(int x, int y, int target_element)
   TestIfBadThingTouchesHero(x, y);
   TestIfPlayerTouchesCustomElement(x, y);
   TestIfElementTouchesCustomElement(x, y);
+
+  if (ELEM_IS_PLAYER(target_element))
+    RelocatePlayer(x, y, target_element);
 }
 
 static void ChangeElementNow(int x, int y, int element)
@@ -5414,7 +5584,7 @@ static void PlayerActions(struct PlayerInfo *player, byte player_action)
 {
   static byte stored_player_action[MAX_PLAYERS];
   static int num_stored_actions = 0;
-  boolean moved = FALSE, snapped = FALSE, bombed = FALSE;
+  boolean moved = FALSE, snapped = FALSE, dropped = FALSE;
   int left     = player_action & JOY_LEFT;
   int right    = player_action & JOY_RIGHT;
   int up       = player_action & JOY_UP;
@@ -5437,13 +5607,14 @@ static void PlayerActions(struct PlayerInfo *player, byte player_action)
     else
     {
       if (button2)
-       bombed = PlaceBomb(player);
+       dropped = DropElement(player);
+
       moved = MoveFigure(player, dx, dy);
     }
 
     if (tape.single_step && tape.recording && !tape.pausing)
     {
-      if (button1 || (bombed && !moved))
+      if (button1 || (dropped && !moved))
       {
        TapeTogglePause(TAPE_TOGGLE_AUTOMATIC);
        SnapField(player, 0, 0);                /* stop snapping */
@@ -6061,24 +6232,24 @@ void ScrollLevel(int dx, int dy)
   int x, y;
 
   BlitBitmap(drawto_field, drawto_field,
-            FX + TILEX*(dx == -1) - softscroll_offset,
-            FY + TILEY*(dy == -1) - softscroll_offset,
-            SXSIZE - TILEX*(dx!=0) + 2*softscroll_offset,
-            SYSIZE - TILEY*(dy!=0) + 2*softscroll_offset,
-            FX + TILEX*(dx == 1) - softscroll_offset,
-            FY + TILEY*(dy == 1) - softscroll_offset);
+            FX + TILEX * (dx == -1) - softscroll_offset,
+            FY + TILEY * (dy == -1) - softscroll_offset,
+            SXSIZE - TILEX * (dx!=0) + 2 * softscroll_offset,
+            SYSIZE - TILEY * (dy!=0) + 2 * softscroll_offset,
+            FX + TILEX * (dx == 1) - softscroll_offset,
+            FY + TILEY * (dy == 1) - softscroll_offset);
 
   if (dx)
   {
     x = (dx == 1 ? BX1 : BX2);
-    for (y=BY1; y<=BY2; y++)
+    for (y=BY1; y <= BY2; y++)
       DrawScreenField(x, y);
   }
 
   if (dy)
   {
     y = (dy == 1 ? BY1 : BY2);
-    for (x=BX1; x<=BX2; x++)
+    for (x=BX1; x <= BX2; x++)
       DrawScreenField(x, y);
   }
 
@@ -6415,6 +6586,7 @@ void ScrollFigure(struct PlayerInfo *player, int mode)
     if (Feld[jx][jy] == EL_EXIT_OPEN ||
        Feld[jx][jy] == EL_SP_EXIT_OPEN)
     {
+      DrawPlayer(player);      /* needed here only to cleanup last field */
       RemoveHero(player);
 
       if (local_player->friends_still_needed == 0 ||
@@ -6466,11 +6638,9 @@ void TestIfPlayerTouchesCustomElement(int x, int y)
     { +1, 0 },
     { 0, +1 }
   };
-  boolean center_is_player = (IS_PLAYER(x, y));
   int i;
 
-  /* prevent TestIfPlayerTouchesCustomElement() from looping */
-  if (check_changing)
+  if (check_changing)  /* prevent this function from running into a loop */
     return;
 
   check_changing = TRUE;
@@ -6483,7 +6653,7 @@ void TestIfPlayerTouchesCustomElement(int x, int y)
     if (!IN_LEV_FIELD(xx, yy))
       continue;
 
-    if (center_is_player)
+    if (IS_PLAYER(x, y))
     {
       CheckTriggeredElementChange(xx, yy, Feld[xx][yy], CE_OTHER_GETS_TOUCHED);
       CheckElementChange(xx, yy, Feld[xx][yy], CE_TOUCHED_BY_PLAYER);
@@ -6510,11 +6680,11 @@ void TestIfElementTouchesCustomElement(int x, int y)
     { +1, 0 },
     { 0, +1 }
   };
-  boolean center_is_custom = (IS_CUSTOM_ELEMENT(Feld[x][y]));
+  boolean change_center_element = FALSE;
+  int center_element = Feld[x][y];
   int i;
 
-  /* prevent TestIfElementTouchesCustomElement() from looping */
-  if (check_changing)
+  if (check_changing)  /* prevent this function from running into a loop */
     return;
 
   check_changing = TRUE;
@@ -6523,23 +6693,27 @@ void TestIfElementTouchesCustomElement(int x, int y)
   {
     int xx = x + xy[i][0];
     int yy = y + xy[i][1];
+    int border_element;
 
     if (!IN_LEV_FIELD(xx, yy))
       continue;
 
-    if (center_is_custom &&
-       Feld[xx][yy] == element_info[Feld[x][y]].change.trigger_element)
-    {
-      CheckElementChange(x, y, Feld[x][y], CE_OTHER_IS_TOUCHING);
-    }
+    border_element = Feld[xx][yy];
 
-    if (IS_CUSTOM_ELEMENT(Feld[xx][yy]) &&
-       Feld[x][y] == element_info[Feld[xx][yy]].change.trigger_element)
-    {
-      CheckElementChange(xx, yy, Feld[xx][yy], CE_OTHER_IS_TOUCHING);
-    }
+    /* check for change of center element (but change it only once) */
+    if (IS_CUSTOM_ELEMENT(center_element) &&
+       border_element == element_info[center_element].change.trigger_element)
+      change_center_element = TRUE;
+
+    /* check for change of border element */
+    if (IS_CUSTOM_ELEMENT(border_element) &&
+       center_element == element_info[border_element].change.trigger_element)
+      CheckElementChange(xx, yy, border_element, CE_OTHER_IS_TOUCHING);
   }
 
+  if (change_center_element)
+    CheckElementChange(x, y, center_element, CE_OTHER_IS_TOUCHING);
+
   check_changing = FALSE;
 }
 
@@ -7255,11 +7429,13 @@ int DigField(struct PlayerInfo *player,
        }
        else if (element == EL_DYNAMITE || element == EL_SP_DISK_RED)
        {
-         player->dynamite++;
+         if (player->inventory_size < MAX_INVENTORY_SIZE)
+           player->inventory_element[player->inventory_size++] = element;
+
          player->use_disk_red_graphic = (element == EL_SP_DISK_RED);
 
          DrawText(DX_DYNAMITE, DY_DYNAMITE,
-                  int2str(local_player->dynamite, 3), FONT_TEXT_2);
+                  int2str(local_player->inventory_size, 3), FONT_TEXT_2);
        }
        else if (element == EL_DYNABOMB_INCREASE_NUMBER)
        {
@@ -7286,10 +7462,21 @@ int DigField(struct PlayerInfo *player,
                             el2edimg(EL_KEY_1 + key_nr));
          redraw_mask |= REDRAW_DOOR_1;
        }
-       else if (element_info[element].gem_count > 0)
+       else if (IS_DROPPABLE(element)) /* can be collected and dropped */
+       {
+         int i;
+
+         for (i=0; i < element_info[element].collect_count; i++)
+           if (player->inventory_size < MAX_INVENTORY_SIZE)
+             player->inventory_element[player->inventory_size++] = element;
+
+         DrawText(DX_DYNAMITE, DY_DYNAMITE,
+                  int2str(local_player->inventory_size, 3), FONT_TEXT_2);
+       }
+       else if (element_info[element].collect_count > 0)
        {
          local_player->gems_still_needed -=
-           element_info[element].gem_count;
+           element_info[element].collect_count;
          if (local_player->gems_still_needed < 0)
            local_player->gems_still_needed = 0;
 
@@ -7465,66 +7652,68 @@ boolean SnapField(struct PlayerInfo *player, int dx, int dy)
   return TRUE;
 }
 
-boolean PlaceBomb(struct PlayerInfo *player)
+boolean DropElement(struct PlayerInfo *player)
 {
   int jx = player->jx, jy = player->jy;
-  int element;
+  int old_element;
 
   if (!player->active || player->MovPos)
     return FALSE;
 
-  element = Feld[jx][jy];
+  old_element = Feld[jx][jy];
 
-  if ((player->dynamite == 0 && player->dynabombs_left == 0) ||
-      IS_ACTIVE_BOMB(element) || element == EL_EXPLOSION)
+  /* check if player has anything that can be dropped */
+  if (player->inventory_size == 0 && player->dynabombs_left == 0)
     return FALSE;
 
-#if 0
-  if (element != EL_EMPTY)
+  /* check if anything can be dropped at the current position */
+  if (IS_ACTIVE_BOMB(old_element) || old_element == EL_EXPLOSION)
     return FALSE;
-#endif
 
-  if (element != EL_EMPTY)
-  {
-#if 0
-    Store[jx][jy] = element;
-#else
-    Back[jx][jy] = element;
-#endif
-  }
+  /* collected custom elements can only be dropped on empty fields */
+  if (player->inventory_size > 0 &&
+      IS_CUSTOM_ELEMENT(player->inventory_element[player->inventory_size - 1])
+      && old_element != EL_EMPTY)
+    return FALSE;
+
+  if (old_element != EL_EMPTY)
+    Back[jx][jy] = old_element;                /* store old element on this field */
 
   MovDelay[jx][jy] = 96;
 
   ResetGfxAnimation(jx, jy);
   ResetRandomAnimationValue(jx, jy);
 
-  if (player->dynamite)
+  if (player->inventory_size > 0)
   {
+    int new_element = player->inventory_element[--player->inventory_size];
+
+#if 1
+    Feld[jx][jy] = (new_element == EL_DYNAMITE ? EL_DYNAMITE_ACTIVE :
+                   new_element == EL_SP_DISK_RED ? EL_SP_DISK_RED_ACTIVE :
+                   new_element);
+#else
     Feld[jx][jy] = (player->use_disk_red_graphic ? EL_SP_DISK_RED_ACTIVE :
                    EL_DYNAMITE_ACTIVE);
-    player->dynamite--;
+#endif
+
+    DrawText(DX_DYNAMITE, DY_DYNAMITE,
+            int2str(local_player->inventory_size, 3), FONT_TEXT_2);
 
-    DrawText(DX_DYNAMITE, DY_DYNAMITE, int2str(local_player->dynamite, 3),
-            FONT_TEXT_2);
     if (IN_SCR_FIELD(SCREENX(jx), SCREENY(jy)))
-    {
-#if 1
       DrawGraphicThruMask(SCREENX(jx), SCREENY(jy), el2img(Feld[jx][jy]), 0);
-#else
-      if (game.emulation == EMU_SUPAPLEX)
-       DrawGraphic(SCREENX(jx), SCREENY(jy), IMG_SP_DISK_RED, 0);
-      else
-       DrawGraphicThruMask(SCREENX(jx), SCREENY(jy), IMG_DYNAMITE_ACTIVE, 0);
-#endif
-    }
 
     PlaySoundLevelAction(jx, jy, ACTION_DROPPING);
+
+    CheckTriggeredElementChange(jx, jy, new_element, CE_OTHER_GETS_DROPPED);
+    CheckElementChange(jx, jy, new_element, CE_DROPPED_BY_PLAYER);
   }
-  else
+  else         /* player is dropping a dyna bomb */
   {
+    player->dynabombs_left--;
+
     Feld[jx][jy] =
       EL_DYNABOMB_PLAYER_1_ACTIVE + (player->element_nr - EL_PLAYER_1);
-    player->dynabombs_left--;
 
     if (IN_SCR_FIELD(SCREENX(jx), SCREENY(jy)))
       DrawGraphicThruMask(SCREENX(jx), SCREENY(jy), el2img(Feld[jx][jy]), 0);
@@ -7710,7 +7899,7 @@ void RaiseScoreElement(int element)
       RaiseScore(level.score[SC_KEY]);
       break;
     default:
-      RaiseScore(element_info[element].score);
+      RaiseScore(element_info[element].collect_score);
       break;
   }
 }
index 01209d95e53d733ace1fc96e2070d4a10b789f4b..6c6ea57bf46c6cf36fb6d1b791ecd60f26af5d9a 100644 (file)
@@ -95,7 +95,7 @@ void BuryHero(struct PlayerInfo *);
 void RemoveHero(struct PlayerInfo *);
 int DigField(struct PlayerInfo *, int, int, int, int, int);
 boolean SnapField(struct PlayerInfo *, int, int);
-boolean PlaceBomb(struct PlayerInfo *);
+boolean DropElement(struct PlayerInfo *);
 
 void InitPlaySoundLevel();
 
index 79a67d1eb066eec2842660ddf6b26a633d2d62b2..2403d4150f4a9e539471167ecf64474e26817694 100644 (file)
@@ -548,6 +548,34 @@ void InitElementGraphicInfo()
     }
   }
 
+#if 1
+  /* now set all undefined/invalid graphics to -1 to set to default after it */
+  for (i=0; i<MAX_NUM_ELEMENTS; i++)
+  {
+    for (act=0; act<NUM_ACTIONS; act++)
+    {
+      if (graphic_info[element_info[i].graphic[act]].bitmap == NULL)
+       element_info[i].graphic[act] = -1;
+
+      if (graphic_info[element_info[i].crumbled[act]].bitmap == NULL)
+       element_info[i].crumbled[act] = -1;
+
+      for (dir=0; dir<NUM_DIRECTIONS; dir++)
+      {
+       int graphic;
+
+       graphic = element_info[i].direction_graphic[act][dir];
+       if (graphic_info[graphic].bitmap == NULL)
+         element_info[i].direction_graphic[act][dir] = -1;
+
+       graphic = element_info[i].direction_crumbled[act][dir];
+       if (graphic_info[graphic].bitmap == NULL)
+         element_info[i].direction_crumbled[act][dir] = -1;
+      }
+    }
+  }
+#endif
+
   /* now set all '-1' values to element specific default values */
   for (i=0; i<MAX_NUM_ELEMENTS; i++)
   {
@@ -576,9 +604,9 @@ void InitElementGraphicInfo()
 
     for (act=0; act<NUM_ACTIONS; act++)
     {
-      boolean act_remove = (act == ACTION_DIGGING ||
-                           act == ACTION_SNAPPING ||
-                           act == ACTION_COLLECTING);
+      boolean act_remove = ((IS_DIGGABLE(i)    && act == ACTION_DIGGING)  ||
+                           (IS_SNAPPABLE(i)   && act == ACTION_SNAPPING) ||
+                           (IS_COLLECTIBLE(i) && act == ACTION_COLLECTING));
 
       /* generic default action graphic (defined by "[default]" directive) */
       int default_action_graphic = element_info[EL_DEFAULT].graphic[act];
@@ -693,6 +721,15 @@ void InitElementSpecialGraphicInfo()
     if (special >= 0 && special < NUM_SPECIAL_GFX_ARGS)
       element_info[element].special_graphic[special] = graphic;
   }
+
+#if 1
+  /* now set all undefined/invalid graphics to default */
+  for (i=0; i < MAX_NUM_ELEMENTS; i++)
+    for (j=0; j < NUM_SPECIAL_GFX_ARGS; j++)
+      if (graphic_info[element_info[i].special_graphic[j]].bitmap == NULL)
+       element_info[i].special_graphic[j] =
+         element_info[i].graphic[ACTION_DEFAULT];
+#endif
 }
 
 static int get_element_from_token(char *token)
@@ -879,7 +916,7 @@ static void InitGraphicInfo()
     int first_frame, last_frame;
 
 #if 0
-    printf("::: image: '%s'\n", image->token);
+    printf("::: image: '%s' [%d]\n", image->token, i);
 #endif
 
 #if 0
@@ -1284,7 +1321,7 @@ void InitElementPropertiesStatic()
     -1
   };
 
-  static int ep_collectible[] =
+  static int ep_collectible_only[] =
   {
     EL_BD_DIAMOND,
     EL_EMERALD,
@@ -1774,6 +1811,7 @@ void InitElementPropertiesStatic()
     EL_PLAYER_2,
     EL_PLAYER_3,
     EL_PLAYER_4,
+    EL_SP_MURPHY,
     -1
   };
 
@@ -2495,7 +2533,7 @@ void InitElementPropertiesStatic()
   } element_properties[] =
   {
     { ep_diggable,             EP_DIGGABLE             },
-    { ep_collectible,          EP_COLLECTIBLE          },
+    { ep_collectible_only,     EP_COLLECTIBLE_ONLY     },
     { ep_dont_run_into,                EP_DONT_RUN_INTO        },
     { ep_dont_collide_with,    EP_DONT_COLLIDE_WITH    },
     { ep_dont_touch,           EP_DONT_TOUCH           },
@@ -2639,7 +2677,7 @@ void InitElementPropertiesEngine(int engine_version)
   static int no_wall_properties[] =
   {
     EP_DIGGABLE,
-    EP_COLLECTIBLE,
+    EP_COLLECTIBLE_ONLY,
     EP_DONT_RUN_INTO,
     EP_DONT_COLLIDE_WITH,
     EP_CAN_MOVE,
@@ -2705,6 +2743,10 @@ void InitElementPropertiesEngine(int engine_version)
     SET_PROPERTY(i, EP_ACCESSIBLE, (IS_WALKABLE(i) ||
                                    IS_PASSABLE(i)));
 
+    /* ---------- COLLECTIBLE ---------------------------------------------- */
+    SET_PROPERTY(i, EP_COLLECTIBLE, (IS_COLLECTIBLE_ONLY(i) ||
+                                    IS_DROPPABLE(i)));
+
     /* ---------- SNAPPABLE ------------------------------------------------ */
     SET_PROPERTY(i, EP_SNAPPABLE, (IS_DIGGABLE(i) ||
                                   IS_COLLECTIBLE(i) ||
@@ -2773,6 +2815,10 @@ void InitElementPropertiesEngine(int engine_version)
                                     CAN_EXPLODE_SMASHED(i) ||
                                     CAN_EXPLODE_IMPACT(i)));
 
+    /* ---------- CAN_EXPLODE_3X3 ------------------------------------------ */
+    SET_PROPERTY(i, EP_CAN_EXPLODE_3X3, (CAN_EXPLODE(i) &&
+                                        !CAN_EXPLODE_1X1(i)));
+
     /* ---------- CAN_BE_CRUMBLED ------------------------------------------ */
     SET_PROPERTY(i, EP_CAN_BE_CRUMBLED,
                 element_info[i].crumbled[ACTION_DEFAULT] != IMG_EMPTY);
@@ -3195,7 +3241,9 @@ void InitLevelArtworkInfo()
 
 static void InitImages()
 {
+#if 0
   setLevelArtworkDir(artwork.gfx_first);
+#endif
 
 #if 0
   printf("::: InitImages for '%s' ['%s', '%s'] ['%s', '%s']\n",
@@ -3219,8 +3267,10 @@ static void InitSound(char *identifier)
   if (identifier == NULL)
     identifier = artwork.snd_current->identifier;
 
+#if 0
   /* set artwork path to send it to the sound server process */
   setLevelArtworkDir(artwork.snd_first);
+#endif
 
   InitReloadCustomSounds(identifier);
   ReinitializeSounds();
@@ -3231,8 +3281,10 @@ static void InitMusic(char *identifier)
   if (identifier == NULL)
     identifier = artwork.mus_current->identifier;
 
+#if 0
   /* set artwork path to send it to the sound server process */
   setLevelArtworkDir(artwork.mus_first);
+#endif
 
   InitReloadCustomMusic(identifier);
   ReinitializeMusic();
@@ -3271,7 +3323,12 @@ static char *getNewArtworkIdentifier(int type)
   boolean setup_override_artwork = SETUP_OVERRIDE_ARTWORK(setup, type);
   char *setup_artwork_set = SETUP_ARTWORK_SET(setup, type);
   char *leveldir_identifier = leveldir_current->identifier;
+#if 1
+  /* !!! setLevelArtworkDir() should be moved to an earlier stage !!! */
+  char *leveldir_artwork_set = setLevelArtworkDir(artwork_first_node);
+#else
   char *leveldir_artwork_set = LEVELDIR_ARTWORK_SET(leveldir_current, type);
+#endif
   boolean has_level_artwork_set = (leveldir_artwork_set != NULL);
   char *artwork_current_identifier;
   char *artwork_new_identifier = NULL; /* default: nothing has changed */
@@ -3280,7 +3337,6 @@ static char *getNewArtworkIdentifier(int type)
   if (!validLevelSeries(leveldir_current))
     return NULL;
 
-
   /* 1st step: determine artwork set to be activated in descending order:
      --------------------------------------------------------------------
      1. setup artwork (when configured to override everything else)
@@ -3302,6 +3358,16 @@ static char *getNewArtworkIdentifier(int type)
   /* 2nd step: check if it is really needed to reload artwork set
      ------------------------------------------------------------ */
 
+#if 0
+  if (type == ARTWORK_TYPE_GRAPHICS)
+    printf("::: 0: '%s' ['%s', '%s'] ['%s' ('%s')]\n",
+          artwork_new_identifier,
+          ARTWORK_CURRENT_IDENTIFIER(artwork, type),
+          artwork_current_identifier,
+          leveldir_current->graphics_set,
+          leveldir_current->identifier);
+#endif
+
   /* ---------- reload if level set and also artwork set has changed ------- */
   if (leveldir_current_identifier[type] != leveldir_identifier &&
       (last_has_level_artwork_set[type] || has_level_artwork_set))
@@ -3310,12 +3376,22 @@ static char *getNewArtworkIdentifier(int type)
   leveldir_current_identifier[type] = leveldir_identifier;
   last_has_level_artwork_set[type] = has_level_artwork_set;
 
+#if 0
+  if (type == ARTWORK_TYPE_GRAPHICS)
+    printf("::: 1: '%s'\n", artwork_new_identifier);
+#endif
+
   /* ---------- reload if "override artwork" setting has changed ----------- */
   if (last_override_level_artwork[type] != setup_override_artwork)
     artwork_new_identifier = artwork_current_identifier;
 
   last_override_level_artwork[type] = setup_override_artwork;
 
+#if 0
+  if (type == ARTWORK_TYPE_GRAPHICS)
+    printf("::: 2: '%s'\n", artwork_new_identifier);
+#endif
+
   /* ---------- reload if current artwork identifier has changed ----------- */
   if (strcmp(ARTWORK_CURRENT_IDENTIFIER(artwork, type),
             artwork_current_identifier) != 0)
@@ -3323,6 +3399,11 @@ static char *getNewArtworkIdentifier(int type)
 
   *(&(ARTWORK_CURRENT_IDENTIFIER(artwork, type))) = artwork_current_identifier;
 
+#if 0
+  if (type == ARTWORK_TYPE_GRAPHICS)
+    printf("::: 3: '%s'\n", artwork_new_identifier);
+#endif
+
   /* ---------- do not reload directly after starting ---------------------- */
   if (!initialized[type])
     artwork_new_identifier = NULL;
@@ -3330,10 +3411,16 @@ static char *getNewArtworkIdentifier(int type)
   initialized[type] = TRUE;
 
 #if 0
-  printf("CHECKING OLD/NEW GFX:\n- OLD: %s\n- NEW: %s ['%s', '%s'] ['%s']\n",
-        artwork.gfx_current_identifier, artwork_current_identifier,
-        artwork.gfx_current->identifier, leveldir_current->graphics_set,
-        artwork_new_identifier);
+  if (type == ARTWORK_TYPE_GRAPHICS)
+    printf("::: 4: '%s'\n", artwork_new_identifier);
+#endif
+
+#if 0
+  if (type == ARTWORK_TYPE_GRAPHICS)
+    printf("CHECKING OLD/NEW GFX:\n- OLD: %s\n- NEW: %s ['%s', '%s'] ['%s']\n",
+          artwork.gfx_current_identifier, artwork_current_identifier,
+          artwork.gfx_current->identifier, leveldir_current->graphics_set,
+          artwork_new_identifier);
 #endif
 
   return artwork_new_identifier;
@@ -3349,16 +3436,22 @@ void ReloadCustomArtwork()
   if (gfx_new_identifier != NULL)
   {
 #if 0
-    printf("RELOADING GRAPHICS '%s' -> '%s' ['%s']\n",
+    printf("RELOADING GRAPHICS '%s' -> '%s' ['%s', '%s']\n",
           artwork.gfx_current_identifier,
           gfx_new_identifier,
-          artwork.gfx_current->identifier);
+          artwork.gfx_current->identifier,
+          leveldir_current->graphics_set);
 #endif
 
     ClearRectangle(window, 0, 0, WIN_XSIZE, WIN_YSIZE);
 
     InitImages();
 
+#if 0
+    printf("... '%s'\n",
+          leveldir_current->graphics_set);
+#endif
+
     FreeTileClipmasks();
     InitTileClipmasks();
 
@@ -3442,6 +3535,7 @@ void OpenAll()
   InitEventFilter(FilterMouseMotionEvents);
 
   InitElementPropertiesStatic();
+  InitElementPropertiesEngine(GAME_VERSION_ACTUAL);
 
   InitGfx();
 
index f6cc110d4922e9e41be4fe8bae19fc1433919cab..70b2a5d6b802ccbcbe16894a44e5778ced15cfaf 100644 (file)
@@ -2165,8 +2165,7 @@ static void LoadArtworkConfigFromFilename(struct ArtworkListInfo *artwork_info,
     }
     END_HASH_ITERATION(extra_file_hash, itr)
 
-#if DEBUG
-    if (dynamic_tokens_found)
+    if (options.debug && dynamic_tokens_found)
     {
       Error(ERR_RETURN_LINE, "-");
       Error(ERR_RETURN, "dynamic token(s) found in config file:");
@@ -2182,7 +2181,6 @@ static void LoadArtworkConfigFromFilename(struct ArtworkListInfo *artwork_info,
 
       Error(ERR_RETURN_LINE, "-");
     }
-#endif
 
     if (unknown_tokens_found)
     {
index a99c7a83fa80178fbcb3638091dbc8eea39d431a..2a5eb1ab12cdb0263a589a056082606f0e816c5a 100644 (file)
@@ -270,19 +270,19 @@ static char *getDefaultMusicDir(char *music_subdir)
 
 static char *getDefaultArtworkSet(int type)
 {
-  return (type == TREE_TYPE_GRAPHICS_DIR ? GRAPHICS_SUBDIR :
-         type == TREE_TYPE_SOUNDS_DIR   ? SOUNDS_SUBDIR   :
-         type == TREE_TYPE_MUSIC_DIR    ? MUSIC_SUBDIR    : "");
+  return (type == TREE_TYPE_GRAPHICS_DIR ? GFX_CLASSIC_SUBDIR :
+         type == TREE_TYPE_SOUNDS_DIR   ? SND_CLASSIC_SUBDIR :
+         type == TREE_TYPE_MUSIC_DIR    ? MUS_CLASSIC_SUBDIR : "");
 }
 
 static char *getDefaultArtworkDir(int type)
 {
   return (type == TREE_TYPE_GRAPHICS_DIR ?
-         getDefaultGraphicsDir(GRAPHICS_SUBDIR) :
+         getDefaultGraphicsDir(GFX_CLASSIC_SUBDIR) :
          type == TREE_TYPE_SOUNDS_DIR ?
-         getDefaultSoundsDir(SOUNDS_SUBDIR) :
+         getDefaultSoundsDir(SND_CLASSIC_SUBDIR) :
          type == TREE_TYPE_MUSIC_DIR ?
-         getDefaultMusicDir(MUSIC_SUBDIR) : "");
+         getDefaultMusicDir(MUS_CLASSIC_SUBDIR) : "");
 }
 
 static char *getUserGraphicsDir()
@@ -327,13 +327,13 @@ static char *getSetupArtworkDir(TreeInfo *ti)
   return artwork_dir;
 }
 
-void setLevelArtworkDir(TreeInfo *ti)
+char *setLevelArtworkDir(TreeInfo *ti)
 {
   char **artwork_path_ptr, **artwork_set_ptr;
   TreeInfo *level_artwork;
 
   if (ti == NULL || leveldir_current == NULL)
-    return;
+    return NULL;
 
   artwork_path_ptr = &(LEVELDIR_ARTWORK_PATH(leveldir_current, ti->type));
   artwork_set_ptr  = &(LEVELDIR_ARTWORK_SET( leveldir_current, ti->type));
@@ -370,6 +370,8 @@ void setLevelArtworkDir(TreeInfo *ti)
 
     free(dir);
   }
+
+  return *artwork_set_ptr;
 }
 
 inline static char *getLevelArtworkSet(int type)
@@ -446,7 +448,7 @@ char *getSetupFilename()
   return filename;
 }
 
-static char *getCorrectedImageBasename(char *basename)
+static char *getCorrectedArtworkBasename(char *basename)
 {
   char *basename_corrected = basename;
 
@@ -461,7 +463,7 @@ static char *getCorrectedImageBasename(char *basename)
     /* if corrected filename is still longer than standard MS-DOS filename
        size (8 characters + 1 dot + 3 characters file extension), shorten
        filename by writing file extension after 8th basename character */
-    if (strlen(basename_corrected) > 8+1+3)
+    if (strlen(basename_corrected) > 8 + 1 + 3)
     {
       static char *msdos_filename = NULL;
 
@@ -469,7 +471,9 @@ static char *getCorrectedImageBasename(char *basename)
        free(msdos_filename);
 
       msdos_filename = getStringCopy(basename_corrected);
-      strncpy(&msdos_filename[8], &basename[strlen(basename) - 1+3], 1+3 + 1);
+      strncpy(&msdos_filename[8], &basename[strlen(basename) - (1+3)], 1+3 +1);
+
+      basename_corrected = msdos_filename;
     }
   }
 #endif
@@ -485,7 +489,7 @@ char *getCustomImageFilename(char *basename)
   if (filename != NULL)
     free(filename);
 
-  basename = getCorrectedImageBasename(basename);
+  basename = getCorrectedArtworkBasename(basename);
 
   if (!setup.override_level_graphics)
   {
@@ -522,7 +526,7 @@ char *getCustomImageFilename(char *basename)
   }
 
   /* 4th try: look for default artwork in new default artwork directory */
-  filename = getPath2(getDefaultGraphicsDir(GRAPHICS_SUBDIR), basename);
+  filename = getPath2(getDefaultGraphicsDir(GFX_CLASSIC_SUBDIR), basename);
   if (fileExists(filename))
     return filename;
 
@@ -544,6 +548,8 @@ char *getCustomSoundFilename(char *basename)
   if (filename != NULL)
     free(filename);
 
+  basename = getCorrectedArtworkBasename(basename);
+
   if (!setup.override_level_sounds)
   {
     /* 1st try: look for special artwork in current level series directory */
@@ -579,7 +585,7 @@ char *getCustomSoundFilename(char *basename)
   }
 
   /* 4th try: look for default artwork in new default artwork directory */
-  filename = getPath2(getDefaultSoundsDir(SOUNDS_SUBDIR), basename);
+  filename = getPath2(getDefaultSoundsDir(SND_CLASSIC_SUBDIR), basename);
   if (fileExists(filename))
     return filename;
 
@@ -663,7 +669,7 @@ char *getCustomMusicDirectory(void)
   }
 
   /* 4th try: look for default artwork in new default artwork directory */
-  directory = getStringCopy(getDefaultMusicDir(MUSIC_SUBDIR));
+  directory = getStringCopy(getDefaultMusicDir(MUS_CLASSIC_SUBDIR));
   if (fileExists(directory))
     return directory;
 
@@ -2167,7 +2173,7 @@ void LoadArtworkInfo()
     getTreeInfoFromIdentifier(artwork.gfx_first, setup.graphics_set);
   if (artwork.gfx_current == NULL)
     artwork.gfx_current =
-      getTreeInfoFromIdentifier(artwork.gfx_first, GRAPHICS_SUBDIR);
+      getTreeInfoFromIdentifier(artwork.gfx_first, GFX_CLASSIC_SUBDIR);
   if (artwork.gfx_current == NULL)
     artwork.gfx_current = getFirstValidTreeInfoEntry(artwork.gfx_first);
 
@@ -2175,7 +2181,7 @@ void LoadArtworkInfo()
     getTreeInfoFromIdentifier(artwork.snd_first, setup.sounds_set);
   if (artwork.snd_current == NULL)
     artwork.snd_current =
-      getTreeInfoFromIdentifier(artwork.snd_first, SOUNDS_SUBDIR);
+      getTreeInfoFromIdentifier(artwork.snd_first, SND_CLASSIC_SUBDIR);
   if (artwork.snd_current == NULL)
     artwork.snd_current = getFirstValidTreeInfoEntry(artwork.snd_first);
 
@@ -2183,7 +2189,7 @@ void LoadArtworkInfo()
     getTreeInfoFromIdentifier(artwork.mus_first, setup.music_set);
   if (artwork.mus_current == NULL)
     artwork.mus_current =
-      getTreeInfoFromIdentifier(artwork.mus_first, MUSIC_SUBDIR);
+      getTreeInfoFromIdentifier(artwork.mus_first, MUS_CLASSIC_SUBDIR);
   if (artwork.mus_current == NULL)
     artwork.mus_current = getFirstValidTreeInfoEntry(artwork.mus_first);
 
@@ -2270,7 +2276,7 @@ void LoadLevelArtworkInfo()
       getTreeInfoFromIdentifier(artwork.gfx_first, setup.graphics_set);
     if (artwork.gfx_current == NULL)
       artwork.gfx_current =
-       getTreeInfoFromIdentifier(artwork.gfx_first, GRAPHICS_SUBDIR);
+       getTreeInfoFromIdentifier(artwork.gfx_first, GFX_CLASSIC_SUBDIR);
     if (artwork.gfx_current == NULL)
       artwork.gfx_current = getFirstValidTreeInfoEntry(artwork.gfx_first);
   }
@@ -2281,7 +2287,7 @@ void LoadLevelArtworkInfo()
       getTreeInfoFromIdentifier(artwork.snd_first, setup.sounds_set);
     if (artwork.snd_current == NULL)
       artwork.snd_current =
-       getTreeInfoFromIdentifier(artwork.snd_first, SOUNDS_SUBDIR);
+       getTreeInfoFromIdentifier(artwork.snd_first, SND_CLASSIC_SUBDIR);
     if (artwork.snd_current == NULL)
       artwork.snd_current = getFirstValidTreeInfoEntry(artwork.snd_first);
   }
@@ -2292,7 +2298,7 @@ void LoadLevelArtworkInfo()
       getTreeInfoFromIdentifier(artwork.mus_first, setup.music_set);
     if (artwork.mus_current == NULL)
       artwork.mus_current =
-       getTreeInfoFromIdentifier(artwork.mus_first, MUSIC_SUBDIR);
+       getTreeInfoFromIdentifier(artwork.mus_first, MUS_CLASSIC_SUBDIR);
     if (artwork.mus_current == NULL)
       artwork.mus_current = getFirstValidTreeInfoEntry(artwork.mus_first);
   }
@@ -2334,9 +2340,9 @@ static void SaveUserLevelInfo()
   ldi.first_level = 1;
   ldi.sort_priority = LEVELCLASS_USER_START;
   ldi.readonly = FALSE;
-  setString(&ldi.graphics_set, GRAPHICS_SUBDIR);
-  setString(&ldi.sounds_set, SOUNDS_SUBDIR);
-  setString(&ldi.music_set, MUSIC_SUBDIR);
+  setString(&ldi.graphics_set, GFX_CLASSIC_SUBDIR);
+  setString(&ldi.sounds_set,   SND_CLASSIC_SUBDIR);
+  setString(&ldi.music_set,    MUS_CLASSIC_SUBDIR);
 #else
   ldi.name = getStringCopy(getLoginName());
   ldi.author = getStringCopy(getRealName());
@@ -2344,9 +2350,9 @@ static void SaveUserLevelInfo()
   ldi.first_level = 1;
   ldi.sort_priority = LEVELCLASS_USER_START;
   ldi.readonly = FALSE;
-  ldi.graphics_set = getStringCopy(GRAPHICS_SUBDIR);
-  ldi.sounds_set = getStringCopy(SOUNDS_SUBDIR);
-  ldi.music_set = getStringCopy(MUSIC_SUBDIR);
+  ldi.graphics_set = getStringCopy(GFX_CLASSIC_SUBDIR);
+  ldi.sounds_set = getStringCopy(SND_CLASSIC_SUBDIR);
+  ldi.music_set = getStringCopy(MUS_CLASSIC_SUBDIR);
 #endif
 
   fprintf(file, "%s\n\n", getFormattedSetupEntry(TOKEN_STR_FILE_IDENTIFIER,
index 30952c650e9b963aa26b0d658003d56599d79af9..5ae3bc4b97c36f72e00a292c0e25859a72219405 100644 (file)
@@ -185,7 +185,7 @@ typedef struct hashtable SetupFileHash;
                         ARTWORKCLASS_UNDEFINED)
 
 
-void setLevelArtworkDir(TreeInfo *);
+char *setLevelArtworkDir(TreeInfo *);
 char *getLevelFilename(int);
 char *getTapeFilename(int);
 char *getScoreFilename(int);
index eaa71dc010602c207ad6e8186fff62930cf451ac..a9f1efa1786ad01efeb85cb7b8d2321da3640dee 100644 (file)
 #define DOCS_DIRECTORY         "docs"
 
 #if !defined(PLATFORM_MSDOS)
-#define GRAPHICS_SUBDIR                "gfx_classic"
-#define SOUNDS_SUBDIR          "snd_classic"
-#define MUSIC_SUBDIR           "mus_classic"
+#define GFX_CLASSIC_SUBDIR     "gfx_classic"
+#define SND_CLASSIC_SUBDIR     "snd_classic"
+#define MUS_CLASSIC_SUBDIR     "mus_classic"
 #else
-#define GRAPHICS_SUBDIR                "gfx_orig"
-#define SOUNDS_SUBDIR          "snd_orig"
-#define MUSIC_SUBDIR           "mus_orig"
+#define GFX_CLASSIC_SUBDIR     "gfx_orig"
+#define SND_CLASSIC_SUBDIR     "snd_orig"
+#define MUS_CLASSIC_SUBDIR     "mus_orig"
 #endif
 
 
@@ -484,6 +484,7 @@ struct SetupEditorInfo
   boolean el_dx_boulderdash;
   boolean el_chars;
   boolean el_custom;
+  boolean el_custom_more;
 };
 
 struct SetupShortcutInfo
index 5558fc1c2b8efb471a4f994dfdc050fead8b6118..a4b60302110914df7d3b35640470c9b9ddbc95e3 100644 (file)
@@ -144,6 +144,11 @@ int getFontHeight(int font_nr)
   return gfx.font_bitmap_info[font_bitmap_id].height;
 }
 
+int getTextWidth(char *text, int font_nr)
+{
+  return (text != NULL ? strlen(text) * getFontWidth(font_nr) : 0);
+}
+
 static char getFontCharPosition(int font_nr, char c)
 {
   int font_bitmap_id = gfx.select_font_function(font_nr);
@@ -179,11 +184,9 @@ void DrawInitText(char *text, int ypos, int font_nr)
       gfx.num_fonts > 0 &&
       gfx.font_bitmap_info[font_nr].bitmap != NULL)
   {
-    int text_width = strlen(text) * getFontWidth(font_nr);
-
     ClearRectangle(window, 0, ypos, video.width, getFontHeight(font_nr));
-    DrawTextExt(window, (video.width - text_width) / 2, ypos, text, font_nr,
-               BLIT_OPAQUE);
+    DrawTextExt(window, (video.width - getTextWidth(text, font_nr)) / 2, ypos,
+               text, font_nr, BLIT_OPAQUE);
     FlushDisplay();
   }
 }
@@ -200,7 +203,7 @@ void DrawTextFCentered(int y, int font_nr, char *format, ...)
   if (strlen(buffer) > MAX_OUTPUT_LINESIZE)
     Error(ERR_EXIT, "string too long in DrawTextFCentered() -- aborting");
 
-  DrawText(gfx.sx + (gfx.sxsize - strlen(buffer) * getFontWidth(font_nr)) / 2,
+  DrawText(gfx.sx + (gfx.sxsize - getTextWidth(buffer, font_nr)) / 2,
           gfx.sy + y, buffer, font_nr);
 }
 
index 5d701fa714e4cf4073a8eb3f104324d70f8ce86a..fd1e8c57d558a1efa501c4b3470183e666930fde 100644 (file)
@@ -57,6 +57,8 @@ void FreeFontInfo(struct FontBitmapInfo *);
 
 int getFontWidth(int);
 int getFontHeight(int);
+int getTextWidth(char *, int);
+
 void getFontCharSource(int, char, Bitmap **, int *, int *);
 
 void DrawInitText(char *, int, int);
index ba7ab867873f6620715e4bf35ebbdc3812b11520..479e0122634d42a0a02e6964d4c0c175f6469794 100644 (file)
@@ -2543,6 +2543,646 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] =
     "custom",
     "custom element 128"
   },
+  {
+    "custom_129",
+    "custom",
+    "custom element 129"
+  },
+  {
+    "custom_130",
+    "custom",
+    "custom element 130"
+  },
+  {
+    "custom_131",
+    "custom",
+    "custom element 131"
+  },
+  {
+    "custom_132",
+    "custom",
+    "custom element 132"
+  },
+  {
+    "custom_133",
+    "custom",
+    "custom element 133"
+  },
+  {
+    "custom_134",
+    "custom",
+    "custom element 134"
+  },
+  {
+    "custom_135",
+    "custom",
+    "custom element 135"
+  },
+  {
+    "custom_136",
+    "custom",
+    "custom element 136"
+  },
+  {
+    "custom_137",
+    "custom",
+    "custom element 137"
+  },
+  {
+    "custom_138",
+    "custom",
+    "custom element 138"
+  },
+  {
+    "custom_139",
+    "custom",
+    "custom element 139"
+  },
+  {
+    "custom_140",
+    "custom",
+    "custom element 140"
+  },
+  {
+    "custom_141",
+    "custom",
+    "custom element 141"
+  },
+  {
+    "custom_142",
+    "custom",
+    "custom element 142"
+  },
+  {
+    "custom_143",
+    "custom",
+    "custom element 143"
+  },
+  {
+    "custom_144",
+    "custom",
+    "custom element 144"
+  },
+  {
+    "custom_145",
+    "custom",
+    "custom element 145"
+  },
+  {
+    "custom_146",
+    "custom",
+    "custom element 146"
+  },
+  {
+    "custom_147",
+    "custom",
+    "custom element 147"
+  },
+  {
+    "custom_148",
+    "custom",
+    "custom element 148"
+  },
+  {
+    "custom_149",
+    "custom",
+    "custom element 149"
+  },
+  {
+    "custom_150",
+    "custom",
+    "custom element 150"
+  },
+  {
+    "custom_151",
+    "custom",
+    "custom element 151"
+  },
+  {
+    "custom_152",
+    "custom",
+    "custom element 152"
+  },
+  {
+    "custom_153",
+    "custom",
+    "custom element 153"
+  },
+  {
+    "custom_154",
+    "custom",
+    "custom element 154"
+  },
+  {
+    "custom_155",
+    "custom",
+    "custom element 155"
+  },
+  {
+    "custom_156",
+    "custom",
+    "custom element 156"
+  },
+  {
+    "custom_157",
+    "custom",
+    "custom element 157"
+  },
+  {
+    "custom_158",
+    "custom",
+    "custom element 158"
+  },
+  {
+    "custom_159",
+    "custom",
+    "custom element 159"
+  },
+  {
+    "custom_160",
+    "custom",
+    "custom element 160"
+  },
+  {
+    "custom_161",
+    "custom",
+    "custom element 161"
+  },
+  {
+    "custom_162",
+    "custom",
+    "custom element 162"
+  },
+  {
+    "custom_163",
+    "custom",
+    "custom element 163"
+  },
+  {
+    "custom_164",
+    "custom",
+    "custom element 164"
+  },
+  {
+    "custom_165",
+    "custom",
+    "custom element 165"
+  },
+  {
+    "custom_166",
+    "custom",
+    "custom element 166"
+  },
+  {
+    "custom_167",
+    "custom",
+    "custom element 167"
+  },
+  {
+    "custom_168",
+    "custom",
+    "custom element 168"
+  },
+  {
+    "custom_169",
+    "custom",
+    "custom element 169"
+  },
+  {
+    "custom_170",
+    "custom",
+    "custom element 170"
+  },
+  {
+    "custom_171",
+    "custom",
+    "custom element 171"
+  },
+  {
+    "custom_172",
+    "custom",
+    "custom element 172"
+  },
+  {
+    "custom_173",
+    "custom",
+    "custom element 173"
+  },
+  {
+    "custom_174",
+    "custom",
+    "custom element 174"
+  },
+  {
+    "custom_175",
+    "custom",
+    "custom element 175"
+  },
+  {
+    "custom_176",
+    "custom",
+    "custom element 176"
+  },
+  {
+    "custom_177",
+    "custom",
+    "custom element 177"
+  },
+  {
+    "custom_178",
+    "custom",
+    "custom element 178"
+  },
+  {
+    "custom_179",
+    "custom",
+    "custom element 179"
+  },
+  {
+    "custom_180",
+    "custom",
+    "custom element 180"
+  },
+  {
+    "custom_181",
+    "custom",
+    "custom element 181"
+  },
+  {
+    "custom_182",
+    "custom",
+    "custom element 182"
+  },
+  {
+    "custom_183",
+    "custom",
+    "custom element 183"
+  },
+  {
+    "custom_184",
+    "custom",
+    "custom element 184"
+  },
+  {
+    "custom_185",
+    "custom",
+    "custom element 185"
+  },
+  {
+    "custom_186",
+    "custom",
+    "custom element 186"
+  },
+  {
+    "custom_187",
+    "custom",
+    "custom element 187"
+  },
+  {
+    "custom_188",
+    "custom",
+    "custom element 188"
+  },
+  {
+    "custom_189",
+    "custom",
+    "custom element 189"
+  },
+  {
+    "custom_190",
+    "custom",
+    "custom element 190"
+  },
+  {
+    "custom_191",
+    "custom",
+    "custom element 191"
+  },
+  {
+    "custom_192",
+    "custom",
+    "custom element 192"
+  },
+  {
+    "custom_193",
+    "custom",
+    "custom element 193"
+  },
+  {
+    "custom_194",
+    "custom",
+    "custom element 194"
+  },
+  {
+    "custom_195",
+    "custom",
+    "custom element 195"
+  },
+  {
+    "custom_196",
+    "custom",
+    "custom element 196"
+  },
+  {
+    "custom_197",
+    "custom",
+    "custom element 197"
+  },
+  {
+    "custom_198",
+    "custom",
+    "custom element 198"
+  },
+  {
+    "custom_199",
+    "custom",
+    "custom element 199"
+  },
+  {
+    "custom_200",
+    "custom",
+    "custom element 200"
+  },
+  {
+    "custom_201",
+    "custom",
+    "custom element 201"
+  },
+  {
+    "custom_202",
+    "custom",
+    "custom element 202"
+  },
+  {
+    "custom_203",
+    "custom",
+    "custom element 203"
+  },
+  {
+    "custom_204",
+    "custom",
+    "custom element 204"
+  },
+  {
+    "custom_205",
+    "custom",
+    "custom element 205"
+  },
+  {
+    "custom_206",
+    "custom",
+    "custom element 206"
+  },
+  {
+    "custom_207",
+    "custom",
+    "custom element 207"
+  },
+  {
+    "custom_208",
+    "custom",
+    "custom element 208"
+  },
+  {
+    "custom_209",
+    "custom",
+    "custom element 209"
+  },
+  {
+    "custom_210",
+    "custom",
+    "custom element 210"
+  },
+  {
+    "custom_211",
+    "custom",
+    "custom element 211"
+  },
+  {
+    "custom_212",
+    "custom",
+    "custom element 212"
+  },
+  {
+    "custom_213",
+    "custom",
+    "custom element 213"
+  },
+  {
+    "custom_214",
+    "custom",
+    "custom element 214"
+  },
+  {
+    "custom_215",
+    "custom",
+    "custom element 215"
+  },
+  {
+    "custom_216",
+    "custom",
+    "custom element 216"
+  },
+  {
+    "custom_217",
+    "custom",
+    "custom element 217"
+  },
+  {
+    "custom_218",
+    "custom",
+    "custom element 218"
+  },
+  {
+    "custom_219",
+    "custom",
+    "custom element 219"
+  },
+  {
+    "custom_220",
+    "custom",
+    "custom element 220"
+  },
+  {
+    "custom_221",
+    "custom",
+    "custom element 221"
+  },
+  {
+    "custom_222",
+    "custom",
+    "custom element 222"
+  },
+  {
+    "custom_223",
+    "custom",
+    "custom element 223"
+  },
+  {
+    "custom_224",
+    "custom",
+    "custom element 224"
+  },
+  {
+    "custom_225",
+    "custom",
+    "custom element 225"
+  },
+  {
+    "custom_226",
+    "custom",
+    "custom element 226"
+  },
+  {
+    "custom_227",
+    "custom",
+    "custom element 227"
+  },
+  {
+    "custom_228",
+    "custom",
+    "custom element 228"
+  },
+  {
+    "custom_229",
+    "custom",
+    "custom element 229"
+  },
+  {
+    "custom_230",
+    "custom",
+    "custom element 230"
+  },
+  {
+    "custom_231",
+    "custom",
+    "custom element 231"
+  },
+  {
+    "custom_232",
+    "custom",
+    "custom element 232"
+  },
+  {
+    "custom_233",
+    "custom",
+    "custom element 233"
+  },
+  {
+    "custom_234",
+    "custom",
+    "custom element 234"
+  },
+  {
+    "custom_235",
+    "custom",
+    "custom element 235"
+  },
+  {
+    "custom_236",
+    "custom",
+    "custom element 236"
+  },
+  {
+    "custom_237",
+    "custom",
+    "custom element 237"
+  },
+  {
+    "custom_238",
+    "custom",
+    "custom element 238"
+  },
+  {
+    "custom_239",
+    "custom",
+    "custom element 239"
+  },
+  {
+    "custom_240",
+    "custom",
+    "custom element 240"
+  },
+  {
+    "custom_241",
+    "custom",
+    "custom element 241"
+  },
+  {
+    "custom_242",
+    "custom",
+    "custom element 242"
+  },
+  {
+    "custom_243",
+    "custom",
+    "custom element 243"
+  },
+  {
+    "custom_244",
+    "custom",
+    "custom element 244"
+  },
+  {
+    "custom_245",
+    "custom",
+    "custom element 245"
+  },
+  {
+    "custom_246",
+    "custom",
+    "custom element 246"
+  },
+  {
+    "custom_247",
+    "custom",
+    "custom element 247"
+  },
+  {
+    "custom_248",
+    "custom",
+    "custom element 248"
+  },
+  {
+    "custom_249",
+    "custom",
+    "custom element 249"
+  },
+  {
+    "custom_250",
+    "custom",
+    "custom element 250"
+  },
+  {
+    "custom_251",
+    "custom",
+    "custom element 251"
+  },
+  {
+    "custom_252",
+    "custom",
+    "custom element 252"
+  },
+  {
+    "custom_253",
+    "custom",
+    "custom element 253"
+  },
+  {
+    "custom_254",
+    "custom",
+    "custom element 254"
+  },
+  {
+    "custom_255",
+    "custom",
+    "custom element 255"
+  },
+  {
+    "custom_256",
+    "custom",
+    "custom element 256"
+  },
 
   /* ----------------------------------------------------------------------- */
   /* "real" (and therefore drawable) runtime elements                        */
index 03e983782a83ec62ff9425804ffbd1e422c9e8a8..7f08589684579efcaff1327e7667727356b56afc 100644 (file)
@@ -63,7 +63,7 @@
 
 /* values for configurable properties (custom elem's only, else pre-defined) */
 #define EP_DIGGABLE            0
-#define EP_COLLECTIBLE         1
+#define EP_COLLECTIBLE_ONLY    1
 #define EP_DONT_RUN_INTO       2
 #define EP_DONT_COLLIDE_WITH   3
 #define EP_DONT_TOUCH          4
@@ -84,8 +84,8 @@
 #define EP_PASSABLE_OVER       19
 #define EP_PASSABLE_INSIDE     20
 #define EP_PASSABLE_UNDER      21
-#define EP_UNUSED_22           22
-#define EP_UNUSED_23           23
+#define EP_DROPPABLE           22
+#define EP_CAN_EXPLODE_1X1     23
 #define EP_PUSHABLE            24
 
 /* values for special configurable properties (depending on level settings) */
 #define EP_WALKABLE            60
 #define EP_PASSABLE            61
 #define EP_ACCESSIBLE          62
-#define EP_SNAPPABLE           63
-#define EP_WALL                        64
-#define EP_SOLID_FOR_PUSHING   65
-#define EP_DRAGONFIRE_PROOF    66
-#define EP_EXPLOSION_PROOF     67
-#define EP_CAN_SMASH           68
-#define EP_CAN_EXPLODE         69
+#define EP_COLLECTIBLE         63
+#define EP_SNAPPABLE           64
+#define EP_WALL                        65
+#define EP_SOLID_FOR_PUSHING   66
+#define EP_DRAGONFIRE_PROOF    67
+#define EP_EXPLOSION_PROOF     68
+#define EP_CAN_SMASH           69
+#define EP_CAN_EXPLODE         70
+#define EP_CAN_EXPLODE_3X3     71
 
 /* values for internal purpose only (level editor) */
-#define EP_EXPLODE_RESULT      70
-#define EP_WALK_TO_OBJECT      71
-#define EP_DEADLY              72
+#define EP_EXPLODE_RESULT      72
+#define EP_WALK_TO_OBJECT      73
+#define EP_DEADLY              74
 
-#define NUM_ELEMENT_PROPERTIES 73
+#define NUM_ELEMENT_PROPERTIES 75
 
 #define NUM_EP_BITFIELDS       ((NUM_ELEMENT_PROPERTIES + 31) / 32)
 #define EP_BITFIELD_BASE       0
 #define CE_TOUCHED_BY_PLAYER   1
 #define CE_PRESSED_BY_PLAYER   2
 #define CE_PUSHED_BY_PLAYER    3
-#define CE_COLLISION           4
-#define CE_IMPACT              5
-#define CE_SMASHED             6
-#define CE_OTHER_IS_TOUCHING   7
-#define CE_OTHER_IS_CHANGING   8
-#define CE_OTHER_IS_EXPLODING  9
-#define CE_OTHER_GETS_TOUCHED  10
-#define CE_OTHER_GETS_PRESSED  11
-#define CE_OTHER_GETS_PUSHED   12
-#define CE_OTHER_GETS_COLLECTED        13
+#define CE_DROPPED_BY_PLAYER   4
+#define CE_COLLISION           5
+#define CE_IMPACT              6
+#define CE_SMASHED             7
+#define CE_OTHER_IS_TOUCHING   8
+#define CE_OTHER_IS_CHANGING   9
+#define CE_OTHER_IS_EXPLODING  10
+#define CE_OTHER_GETS_TOUCHED  11
+#define CE_OTHER_GETS_PRESSED  12
+#define CE_OTHER_GETS_PUSHED   13
+#define CE_OTHER_GETS_COLLECTED        14
+#define CE_OTHER_GETS_DROPPED  15
 
 /* values for internal purpose only (level editor) */
-#define CE_BY_PLAYER           14
-#define CE_BY_COLLISION                15
-#define CE_BY_OTHER            16
+#define CE_BY_PLAYER           16
+#define CE_BY_COLLISION                17
+#define CE_BY_OTHER            18
 
-#define NUM_CHANGE_EVENTS      17
+#define NUM_CHANGE_EVENTS      19
 
 #define CE_BITMASK_DEFAULT     0
 
 
 /* macros for configurable properties */
 #define IS_DIGGABLE(e)         HAS_PROPERTY(e, EP_DIGGABLE)
-#define IS_COLLECTIBLE(e)      HAS_PROPERTY(e, EP_COLLECTIBLE)
+#define IS_COLLECTIBLE_ONLY(e) HAS_PROPERTY(e, EP_COLLECTIBLE_ONLY)
 #define DONT_RUN_INTO(e)       HAS_PROPERTY(e, EP_DONT_RUN_INTO)
 #define DONT_COLLIDE_WITH(e)   HAS_PROPERTY(e, EP_DONT_COLLIDE_WITH)
 #define DONT_TOUCH(e)          HAS_PROPERTY(e, EP_DONT_TOUCH)
 #define IS_PASSABLE_OVER(e)    HAS_PROPERTY(e, EP_PASSABLE_OVER)
 #define IS_PASSABLE_INSIDE(e)  HAS_PROPERTY(e, EP_PASSABLE_INSIDE)
 #define IS_PASSABLE_UNDER(e)   HAS_PROPERTY(e, EP_PASSABLE_UNDER)
+#define IS_DROPPABLE(e)                HAS_PROPERTY(e, EP_DROPPABLE)
+#define CAN_EXPLODE_1X1(e)     HAS_PROPERTY(e, EP_CAN_EXPLODE_1X1)
 #define IS_PUSHABLE(e)         HAS_PROPERTY(e, EP_PUSHABLE)
 
 /* macros for special configurable properties */
 #define IS_ACCESSIBLE_OVER(e)  HAS_PROPERTY(e, EP_ACCESSIBLE_OVER)
 #define IS_ACCESSIBLE_INSIDE(e)        HAS_PROPERTY(e, EP_ACCESSIBLE_INSIDE)
 #define IS_ACCESSIBLE_UNDER(e) HAS_PROPERTY(e, EP_ACCESSIBLE_UNDER)
-#define IS_SNAPPABLE(e)                HAS_PROPERTY(e, EP_SNAPPABLE)
 #define IS_WALKABLE(e)         HAS_PROPERTY(e, EP_WALKABLE)
 #define IS_PASSABLE(e)         HAS_PROPERTY(e, EP_PASSABLE)
 #define IS_ACCESSIBLE(e)       HAS_PROPERTY(e, EP_ACCESSIBLE)
+#define IS_COLLECTIBLE(e)      HAS_PROPERTY(e, EP_COLLECTIBLE)
+#define IS_SNAPPABLE(e)                HAS_PROPERTY(e, EP_SNAPPABLE)
 #define IS_WALL(e)             HAS_PROPERTY(e, EP_WALL)
 #define IS_SOLID_FOR_PUSHING(e)        HAS_PROPERTY(e, EP_SOLID_FOR_PUSHING)
 #define IS_DRAGONFIRE_PROOF(e) HAS_PROPERTY(e, EP_DRAGONFIRE_PROOF)
 #define IS_EXPLOSION_PROOF(e)  HAS_PROPERTY(e, EP_EXPLOSION_PROOF)
 #define CAN_SMASH(e)           HAS_PROPERTY(e, EP_CAN_SMASH)
 #define CAN_EXPLODE(e)         HAS_PROPERTY(e, EP_CAN_EXPLODE)
+#define CAN_EXPLODE_3X3(e)     HAS_PROPERTY(e, EP_CAN_EXPLODE_3X3)
 
 /* special macros used in game engine */
 #define IS_CUSTOM_ELEMENT(e)   ((e) >= EL_CUSTOM_START &&              \
 #define MAX_TAPELEN            (1000 * 50)     /* max. time * framerate */
 #define MAX_SCORE_ENTRIES      100
 #define MAX_NUM_AMOEBA         100
+#define MAX_INVENTORY_SIZE     1000
 
 /* values for elements with content */
 #define MIN_ELEMENT_CONTENTS   1
 
 #include "conf_cus.h"  /* include auto-generated data structure definitions */
 
-#define EL_CUSTOM_END                  (EL_CUSTOM_START + 127)
+#define NUM_CUSTOM_ELEMENTS            256
 
-#define NUM_CUSTOM_ELEMENTS            128
-#define NUM_FILE_ELEMENTS              488
+#define EL_CUSTOM_END          (EL_CUSTOM_START + NUM_CUSTOM_ELEMENTS - 1)
+#define NUM_FILE_ELEMENTS      (EL_CUSTOM_START + NUM_CUSTOM_ELEMENTS)
 
 
 /* "real" (and therefore drawable) runtime elements */
 
 #define PROGRAM_VERSION_MAJOR  3
 #define PROGRAM_VERSION_MINOR  0
-#define PROGRAM_VERSION_PATCH  0
+#define PROGRAM_VERSION_PATCH  1
 #define PROGRAM_VERSION_RELEASE        0
-#define PROGRAM_VERSION_STRING "3.0.0"
+#define PROGRAM_VERSION_STRING "3.0.1"
 
 #define PROGRAM_TITLE_STRING   "Rocks'n'Diamonds"
 #define PROGRAM_AUTHOR_STRING  "Holger Schemel"
@@ -1086,10 +1095,12 @@ struct PlayerInfo
   int lights_still_needed;
   int friends_still_needed;
   int key[4];
-  int dynamite;
   int dynabomb_count, dynabomb_size, dynabombs_left, dynabomb_xl;
   int shield_normal_time_left;
   int shield_deadly_time_left;
+
+  int inventory_element[MAX_INVENTORY_SIZE];
+  int inventory_size;
 };
 
 struct LevelInfo
@@ -1270,8 +1281,8 @@ struct ElementInfo
   boolean use_gfx_element;     /* use custom graphic element */
   short gfx_element;           /* optional custom graphic element */
 
-  int score;                   /* score value for collecting */
-  int gem_count;               /* gem count value for collecting */
+  int collect_score;           /* score value for collecting */
+  int collect_count;           /* count value for collecting */
 
   int push_delay_fixed;                /* constant frame delay for pushing */
   int push_delay_random;       /* additional random frame delay for pushing */
@@ -1303,6 +1314,8 @@ struct ElementInfo
   boolean can_explode_by_fire; /* element explodes by fire */
   boolean can_explode_smashed; /* element explodes when smashed */
   boolean can_explode_impact;  /* element explodes on impact */
+
+  boolean modified_settings;   /* set for all modified custom elements */
 };
 
 struct FontInfo
index d0b5313d735b27fcf89b67157aa58f3c38974e1f..b158d0dbce13ec9d4bf5b2462222468f811b8db0 100644 (file)
@@ -155,10 +155,10 @@ static void PlaySound_Menu_Continue(int sound)
 
 void DrawHeadline()
 {
-  int font1_width = getFontWidth(FONT_TITLE_1);
-  int font2_width = getFontWidth(FONT_TITLE_2);
-  int x1 = SX + (SXSIZE - strlen(PROGRAM_TITLE_STRING)   * font1_width) / 2;
-  int x2 = SX + (SXSIZE - strlen(WINDOW_SUBTITLE_STRING) * font2_width) / 2;
+  int text1_width = getTextWidth(PROGRAM_TITLE_STRING,   FONT_TITLE_1);
+  int text2_width = getTextWidth(WINDOW_SUBTITLE_STRING, FONT_TITLE_2);
+  int x1 = SX + (SXSIZE - text1_width) / 2;
+  int x2 = SX + (SXSIZE - text2_width) / 2;
 
   DrawText(x1, SY + 8,  PROGRAM_TITLE_STRING,   FONT_TITLE_1);
   DrawText(x2, SY + 46, WINDOW_SUBTITLE_STRING, FONT_TITLE_2);
@@ -192,9 +192,8 @@ void DrawMainMenu()
 {
   static LevelDirTree *leveldir_last_valid = NULL;
   char *name_text = (!options.network && setup.team_mode ? "Team:" : "Name:");
-  int font_width = getFontWidth(FONT_MENU_1);
-  int name_width = font_width * strlen("Name:");
-  int level_width = font_width * strlen("Level:");
+  int name_width  = getTextWidth("Name:",  FONT_MENU_1);
+  int level_width = getTextWidth("Level:", FONT_MENU_1);
   int i;
 
   UnmapAllGadgets();
@@ -1242,8 +1241,11 @@ static void drawChooseTreeList(int first_entry, int num_page_entries,
   int yoffset = (ti->type == TREE_TYPE_LEVEL_DIR ? 0 : yoffset_setup);
   int last_game_status = game_status;  /* save current game status */
 
+#if 1
+  DrawBackground(mSX, mSY, SXSIZE - 32 + menu.scrollbar_xoffset, SYSIZE);
+#else
   DrawBackground(SX, SY, SXSIZE - 32, SYSIZE);
-  redraw_mask |= REDRAW_FIELD;
+#endif
 
   title_string =
     (ti->type == TREE_TYPE_LEVEL_DIR ? "Level Directories" :
@@ -1279,6 +1281,8 @@ static void drawChooseTreeList(int first_entry, int num_page_entries,
   }
 
   game_status = last_game_status;      /* restore current game status */
+
+  redraw_mask |= REDRAW_FIELD;
 }
 
 static void drawChooseTreeInfo(int entry_pos, TreeInfo *ti)
@@ -1808,6 +1812,7 @@ static struct TokenInfo setup_info_editor[] =
   { TYPE_SWITCH,       &setup.editor.el_dx_boulderdash,"DX Boulderd.:" },
   { TYPE_SWITCH,       &setup.editor.el_chars,         "Characters:"   },
   { TYPE_SWITCH,       &setup.editor.el_custom,        "Custom:"       },
+  { TYPE_SWITCH,       &setup.editor.el_custom_more,   "More Custom:"  },
   { TYPE_EMPTY,                NULL,                   ""                      },
   { TYPE_LEAVE_MENU,   execSetupMain,          "Back"                  },
   { 0,                 NULL,                   NULL                    }
@@ -1831,8 +1836,6 @@ static struct TokenInfo setup_info_graphics[] =
 
 static struct TokenInfo setup_info_sound[] =
 {
-  { TYPE_SWITCH,       &setup.sound,           "Sound:",               },
-  { TYPE_EMPTY,                NULL,                   ""                      },
   { TYPE_SWITCH,       &setup.sound_simple,    "Simple Sound:"         },
   { TYPE_SWITCH,       &setup.sound_loops,     "Sound Loops:"          },
   { TYPE_SWITCH,       &setup.sound_music,     "Game Music:"           },
@@ -2041,10 +2044,10 @@ static void DrawSetupScreen_Generic()
     int font_nr = FONT_MENU_1;
 
     /* set some entries to "unchangeable" according to other variables */
-    if ((value_ptr == &setup.sound       && !audio.sound_available) ||
-       (value_ptr == &setup.sound_loops && !audio.loops_available) ||
-       (value_ptr == &setup.sound_music && !audio.music_available) ||
-       (value_ptr == &setup.fullscreen  && !video.fullscreen_available))
+    if ((value_ptr == &setup.sound_simple && !audio.sound_available) ||
+       (value_ptr == &setup.sound_loops  && !audio.loops_available) ||
+       (value_ptr == &setup.sound_music  && !audio.music_available) ||
+       (value_ptr == &setup.fullscreen   && !video.fullscreen_available))
       setup_info[i].type |= TYPE_GHOSTED;
 
     if (setup_info[i].type & TYPE_STRING)
index 744065cd5923675762f020124912bc5a78a6dd8e..45d37436a325dec9840a38644e2fba606f3d4208 100644 (file)
@@ -1634,8 +1634,7 @@ static void DrawMicroLevelLabelExt(int mode)
 
   if (strlen(label_text) > 0)
   {
-    int text_width = strlen(label_text) * getFontWidth(font_nr);
-    int lxpos = SX + (SXSIZE - text_width) / 2;
+    int lxpos = SX + (SXSIZE - getTextWidth(label_text, font_nr)) / 2;
     int lypos = MICROLABEL_YPOS;
 
     DrawText(lxpos, lypos, label_text, font_nr);
@@ -1671,8 +1670,8 @@ void DrawMicroLevel(int xpos, int ypos, boolean restart)
 
     if (leveldir_current->name)
     {
-      int len = strlen(leveldir_current->name);
-      int lxpos = SX + (SXSIZE - len * getFontWidth(FONT_TEXT_1)) / 2;
+      int text_width = getTextWidth(leveldir_current->name, FONT_TEXT_1);
+      int lxpos = SX + (SXSIZE - text_width) / 2;
       int lypos = SY + 352;
 
       DrawText(lxpos, lypos, leveldir_current->name, FONT_TEXT_1);
@@ -1883,6 +1882,8 @@ boolean Request(char *text, unsigned int req_state)
 
   SetDrawBackgroundMask(REDRAW_FIELD | REDRAW_DOOR_1);
 
+  SetMouseCursor(CURSOR_DEFAULT);
+
   while(result < 0)
   {
     if (PendingEvent())