+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
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)
{ "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 */
#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 */
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
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
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
{ "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" },
#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 */
-#define COMPILE_DATE_STRING "[2003-08-05 01:57]"
+#define COMPILE_DATE_STRING "[2003-08-18 21:51]"
#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
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),
GADGET_ID_ELEMENT_NAME,
MAX_ELEMENT_NAME_LEN - 2, /* currently 2 chars less editable */
custom_element.description,
- NULL
+ "Element name"
}
};
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 }
};
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 }
};
{ CE_TOUCHED_BY_PLAYER, "touched" },
{ CE_PRESSED_BY_PLAYER, "pressed" },
{ CE_PUSHED_BY_PLAYER, "pushed" },
+ { CE_DROPPED_BY_PLAYER, "dropped" },
{ -1, NULL }
};
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[] =
-1,
options_consistency,
&custom_element.consistency,
- NULL, "explodes to:", "consistency/destructibility"
+ NULL, NULL, "consistency/destructibility"
},
/* ---------- element settings: advanced (custom elements) --------------- */
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 ------------------------------------ */
0, 0,
MAX_ED_FIELDX, MAX_ED_FIELDY,
GADGET_ID_DRAWING_LEVEL, GADGET_ID_NONE,
- NULL, NULL
+ NULL, NULL, NULL
},
/* ---------- yam yam content -------------------------------------------- */
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 --------------------------------------------- */
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 --------------------------------------------- */
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) ---------------------------- */
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 --------------------------------------- */
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) ------------- */
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) ------------- */
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) -------------------- */
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
},
};
};
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 */
&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 }
};
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()
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)
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;
/* 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++)
{
/* 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,
/* 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';
/* 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,
/* 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,
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;
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;
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);
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)
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;
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)
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;
#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;
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()
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;
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);
/* 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 */
/* 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))
/* 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);
/* 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 :
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))
}
else
{
- LoadLevelTemplate(-1);
+ LoadLevelTemplate(-1); /* this resets all element modifications ... */
- DrawEditModeWindow();
+ DrawEditModeWindow(); /* ... and copies them to 'custom_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];
/* 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;
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;
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];
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];
{
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);
}
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;
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)
{ 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" },
MapCheckbuttonGadget(i);
if (IS_AMOEBOID(properties_element))
- DrawAmoebaContentArea();
+ MapDrawingArea(ED_DRAWING_ID_AMOEBA_CONTENT);
else
DrawElementContentAreas();
}
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;
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
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 */
/* 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;
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);
/* 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;
{
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)
{
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);
/* 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);
{ 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[] =
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;
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;
struct
{
int element;
- int gem_count;
+ int count;
}
-gem_count_list[] =
+collect_count_list[] =
{
{ EL_EMERALD, 1 },
{ EL_BD_DIAMOND, 1 },
void GetPlayerConfig()
{
if (!audio.sound_available)
- setup.sound = FALSE;
+ setup.sound_simple = FALSE;
if (!audio.loops_available)
setup.sound_loops = FALSE;
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();
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:
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,
/* 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;
}
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;
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);
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);
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;
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;
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)))
{
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;
}
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);
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;
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)
{
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;
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 */
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);
}
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 ||
{ +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;
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);
{ +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;
{
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;
}
}
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)
{
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;
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);
RaiseScore(level.score[SC_KEY]);
break;
default:
- RaiseScore(element_info[element].score);
+ RaiseScore(element_info[element].collect_score);
break;
}
}
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();
}
}
+#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++)
{
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];
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)
int first_frame, last_frame;
#if 0
- printf("::: image: '%s'\n", image->token);
+ printf("::: image: '%s' [%d]\n", image->token, i);
#endif
#if 0
-1
};
- static int ep_collectible[] =
+ static int ep_collectible_only[] =
{
EL_BD_DIAMOND,
EL_EMERALD,
EL_PLAYER_2,
EL_PLAYER_3,
EL_PLAYER_4,
+ EL_SP_MURPHY,
-1
};
} 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 },
static int no_wall_properties[] =
{
EP_DIGGABLE,
- EP_COLLECTIBLE,
+ EP_COLLECTIBLE_ONLY,
EP_DONT_RUN_INTO,
EP_DONT_COLLIDE_WITH,
EP_CAN_MOVE,
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) ||
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);
static void InitImages()
{
+#if 0
setLevelArtworkDir(artwork.gfx_first);
+#endif
#if 0
printf("::: InitImages for '%s' ['%s', '%s'] ['%s', '%s']\n",
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();
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();
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 */
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)
/* 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))
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)
*(&(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;
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;
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();
InitEventFilter(FilterMouseMotionEvents);
InitElementPropertiesStatic();
+ InitElementPropertiesEngine(GAME_VERSION_ACTUAL);
InitGfx();
}
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:");
Error(ERR_RETURN_LINE, "-");
}
-#endif
if (unknown_tokens_found)
{
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()
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));
free(dir);
}
+
+ return *artwork_set_ptr;
}
inline static char *getLevelArtworkSet(int type)
return filename;
}
-static char *getCorrectedImageBasename(char *basename)
+static char *getCorrectedArtworkBasename(char *basename)
{
char *basename_corrected = 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;
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
if (filename != NULL)
free(filename);
- basename = getCorrectedImageBasename(basename);
+ basename = getCorrectedArtworkBasename(basename);
if (!setup.override_level_graphics)
{
}
/* 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;
if (filename != NULL)
free(filename);
+ basename = getCorrectedArtworkBasename(basename);
+
if (!setup.override_level_sounds)
{
/* 1st try: look for special artwork in current level series directory */
}
/* 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;
}
/* 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;
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);
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);
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);
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);
}
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);
}
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);
}
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());
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,
ARTWORKCLASS_UNDEFINED)
-void setLevelArtworkDir(TreeInfo *);
+char *setLevelArtworkDir(TreeInfo *);
char *getLevelFilename(int);
char *getTapeFilename(int);
char *getScoreFilename(int);
#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
boolean el_dx_boulderdash;
boolean el_chars;
boolean el_custom;
+ boolean el_custom_more;
};
struct SetupShortcutInfo
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);
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();
}
}
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);
}
int getFontWidth(int);
int getFontHeight(int);
+int getTextWidth(char *, int);
+
void getFontCharSource(int, char, Bitmap **, int *, int *);
void DrawInitText(char *, int, int);
"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 */
/* 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
#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"
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
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 */
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
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);
{
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();
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" :
}
game_status = last_game_status; /* restore current game status */
+
+ redraw_mask |= REDRAW_FIELD;
}
static void drawChooseTreeInfo(int entry_pos, TreeInfo *ti)
{ 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 }
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:" },
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)
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);
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);
SetDrawBackgroundMask(REDRAW_FIELD | REDRAW_DOOR_1);
+ SetMouseCursor(CURSOR_DEFAULT);
+
while(result < 0)
{
if (PendingEvent())