From: Holger Schemel Date: Sat, 30 Aug 2014 08:43:20 +0000 (+0200) Subject: Merge branch 'master' into releases X-Git-Tag: 3.0.1 X-Git-Url: https://git.artsoft.org/?a=commitdiff_plain;h=refs%2Ftags%2F3.0.1;hp=931f541075d35124138ddcd63e8aab0d8b0d05bc;p=rocksndiamonds.git Merge branch 'master' into releases --- diff --git a/CHANGES b/CHANGES index 10ebc7f0..59296c15 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,14 @@ +Release Version 3.0.1 [18 AUG 2003] +----------------------------------- + - fixed bug that caused a crash at startup under Solaris + - fixed bug that caused the DOS version not finding its files + - fixed bug with missing graphic for active red disk bomb + - added custom element property for dropping collected elements + - added another 128 custom elements for those who can't get enough + - fixed PCX files in the DOS version ("classic" graphics only) + Release Version 3.0.0 [05 AUG 2003] ------------------------------------------- +----------------------------------- - final version bumped to 3.0.0 due to the massive changes - graphics and sounds now completely and dynamically customizable - custom elements now have lots of configurable properties diff --git a/Makefile b/Makefile index 0c22aefb..bdd285b5 100644 --- a/Makefile +++ b/Makefile @@ -49,8 +49,8 @@ CROSS_PATH_WIN32=/usr/local/cross-tools/i386-mingw32msvc SRC_DIR = src MAKE_CMD = $(MAKE) -C $(SRC_DIR) -# DEFAULT_TARGET = x11 -DEFAULT_TARGET = sdl +DEFAULT_TARGET = x11 +# DEFAULT_TARGET = sdl all: @$(MAKE_CMD) TARGET=$(DEFAULT_TARGET) diff --git a/src/conf_cus.c b/src/conf_cus.c index 82144cd2..dd54ef34 100644 --- a/src/conf_cus.c +++ b/src/conf_cus.c @@ -1042,5 +1042,1029 @@ { "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 */ diff --git a/src/conf_cus.h b/src/conf_cus.h index 425334be..867cd125 100644 --- a/src/conf_cus.h +++ b/src/conf_cus.h @@ -146,5 +146,133 @@ #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 */ diff --git a/src/conf_e2g.c b/src/conf_e2g.c index 2b9b2e00..8e88f2b0 100644 --- a/src/conf_e2g.c +++ b/src/conf_e2g.c @@ -341,6 +341,14 @@ element_to_graphic[] = EL_SP_DISK_RED, ACTION_COLLECTING, -1, FALSE, IMG_SP_DISK_RED_COLLECTING }, + { + EL_SP_DISK_RED_ACTIVE, -1, -1, FALSE, + IMG_SP_DISK_RED_ACTIVE + }, + { + EL_SP_DISK_RED, ACTION_ACTIVE, -1, FALSE, + IMG_SP_DISK_RED_ACTIVE + }, { EL_SP_PORT_RIGHT, -1, -1, FALSE, IMG_SP_PORT_RIGHT @@ -3309,6 +3317,518 @@ element_to_graphic[] = EL_CUSTOM_128, -1, -1, FALSE, IMG_CUSTOM_128 }, + { + EL_CUSTOM_129, -1, -1, FALSE, + IMG_CUSTOM_129 + }, + { + EL_CUSTOM_130, -1, -1, FALSE, + IMG_CUSTOM_130 + }, + { + EL_CUSTOM_131, -1, -1, FALSE, + IMG_CUSTOM_131 + }, + { + EL_CUSTOM_132, -1, -1, FALSE, + IMG_CUSTOM_132 + }, + { + EL_CUSTOM_133, -1, -1, FALSE, + IMG_CUSTOM_133 + }, + { + EL_CUSTOM_134, -1, -1, FALSE, + IMG_CUSTOM_134 + }, + { + EL_CUSTOM_135, -1, -1, FALSE, + IMG_CUSTOM_135 + }, + { + EL_CUSTOM_136, -1, -1, FALSE, + IMG_CUSTOM_136 + }, + { + EL_CUSTOM_137, -1, -1, FALSE, + IMG_CUSTOM_137 + }, + { + EL_CUSTOM_138, -1, -1, FALSE, + IMG_CUSTOM_138 + }, + { + EL_CUSTOM_139, -1, -1, FALSE, + IMG_CUSTOM_139 + }, + { + EL_CUSTOM_140, -1, -1, FALSE, + IMG_CUSTOM_140 + }, + { + EL_CUSTOM_141, -1, -1, FALSE, + IMG_CUSTOM_141 + }, + { + EL_CUSTOM_142, -1, -1, FALSE, + IMG_CUSTOM_142 + }, + { + EL_CUSTOM_143, -1, -1, FALSE, + IMG_CUSTOM_143 + }, + { + EL_CUSTOM_144, -1, -1, FALSE, + IMG_CUSTOM_144 + }, + { + EL_CUSTOM_145, -1, -1, FALSE, + IMG_CUSTOM_145 + }, + { + EL_CUSTOM_146, -1, -1, FALSE, + IMG_CUSTOM_146 + }, + { + EL_CUSTOM_147, -1, -1, FALSE, + IMG_CUSTOM_147 + }, + { + EL_CUSTOM_148, -1, -1, FALSE, + IMG_CUSTOM_148 + }, + { + EL_CUSTOM_149, -1, -1, FALSE, + IMG_CUSTOM_149 + }, + { + EL_CUSTOM_150, -1, -1, FALSE, + IMG_CUSTOM_150 + }, + { + EL_CUSTOM_151, -1, -1, FALSE, + IMG_CUSTOM_151 + }, + { + EL_CUSTOM_152, -1, -1, FALSE, + IMG_CUSTOM_152 + }, + { + EL_CUSTOM_153, -1, -1, FALSE, + IMG_CUSTOM_153 + }, + { + EL_CUSTOM_154, -1, -1, FALSE, + IMG_CUSTOM_154 + }, + { + EL_CUSTOM_155, -1, -1, FALSE, + IMG_CUSTOM_155 + }, + { + EL_CUSTOM_156, -1, -1, FALSE, + IMG_CUSTOM_156 + }, + { + EL_CUSTOM_157, -1, -1, FALSE, + IMG_CUSTOM_157 + }, + { + EL_CUSTOM_158, -1, -1, FALSE, + IMG_CUSTOM_158 + }, + { + EL_CUSTOM_159, -1, -1, FALSE, + IMG_CUSTOM_159 + }, + { + EL_CUSTOM_160, -1, -1, FALSE, + IMG_CUSTOM_160 + }, + { + EL_CUSTOM_161, -1, -1, FALSE, + IMG_CUSTOM_161 + }, + { + EL_CUSTOM_162, -1, -1, FALSE, + IMG_CUSTOM_162 + }, + { + EL_CUSTOM_163, -1, -1, FALSE, + IMG_CUSTOM_163 + }, + { + EL_CUSTOM_164, -1, -1, FALSE, + IMG_CUSTOM_164 + }, + { + EL_CUSTOM_165, -1, -1, FALSE, + IMG_CUSTOM_165 + }, + { + EL_CUSTOM_166, -1, -1, FALSE, + IMG_CUSTOM_166 + }, + { + EL_CUSTOM_167, -1, -1, FALSE, + IMG_CUSTOM_167 + }, + { + EL_CUSTOM_168, -1, -1, FALSE, + IMG_CUSTOM_168 + }, + { + EL_CUSTOM_169, -1, -1, FALSE, + IMG_CUSTOM_169 + }, + { + EL_CUSTOM_170, -1, -1, FALSE, + IMG_CUSTOM_170 + }, + { + EL_CUSTOM_171, -1, -1, FALSE, + IMG_CUSTOM_171 + }, + { + EL_CUSTOM_172, -1, -1, FALSE, + IMG_CUSTOM_172 + }, + { + EL_CUSTOM_173, -1, -1, FALSE, + IMG_CUSTOM_173 + }, + { + EL_CUSTOM_174, -1, -1, FALSE, + IMG_CUSTOM_174 + }, + { + EL_CUSTOM_175, -1, -1, FALSE, + IMG_CUSTOM_175 + }, + { + EL_CUSTOM_176, -1, -1, FALSE, + IMG_CUSTOM_176 + }, + { + EL_CUSTOM_177, -1, -1, FALSE, + IMG_CUSTOM_177 + }, + { + EL_CUSTOM_178, -1, -1, FALSE, + IMG_CUSTOM_178 + }, + { + EL_CUSTOM_179, -1, -1, FALSE, + IMG_CUSTOM_179 + }, + { + EL_CUSTOM_180, -1, -1, FALSE, + IMG_CUSTOM_180 + }, + { + EL_CUSTOM_181, -1, -1, FALSE, + IMG_CUSTOM_181 + }, + { + EL_CUSTOM_182, -1, -1, FALSE, + IMG_CUSTOM_182 + }, + { + EL_CUSTOM_183, -1, -1, FALSE, + IMG_CUSTOM_183 + }, + { + EL_CUSTOM_184, -1, -1, FALSE, + IMG_CUSTOM_184 + }, + { + EL_CUSTOM_185, -1, -1, FALSE, + IMG_CUSTOM_185 + }, + { + EL_CUSTOM_186, -1, -1, FALSE, + IMG_CUSTOM_186 + }, + { + EL_CUSTOM_187, -1, -1, FALSE, + IMG_CUSTOM_187 + }, + { + EL_CUSTOM_188, -1, -1, FALSE, + IMG_CUSTOM_188 + }, + { + EL_CUSTOM_189, -1, -1, FALSE, + IMG_CUSTOM_189 + }, + { + EL_CUSTOM_190, -1, -1, FALSE, + IMG_CUSTOM_190 + }, + { + EL_CUSTOM_191, -1, -1, FALSE, + IMG_CUSTOM_191 + }, + { + EL_CUSTOM_192, -1, -1, FALSE, + IMG_CUSTOM_192 + }, + { + EL_CUSTOM_193, -1, -1, FALSE, + IMG_CUSTOM_193 + }, + { + EL_CUSTOM_194, -1, -1, FALSE, + IMG_CUSTOM_194 + }, + { + EL_CUSTOM_195, -1, -1, FALSE, + IMG_CUSTOM_195 + }, + { + EL_CUSTOM_196, -1, -1, FALSE, + IMG_CUSTOM_196 + }, + { + EL_CUSTOM_197, -1, -1, FALSE, + IMG_CUSTOM_197 + }, + { + EL_CUSTOM_198, -1, -1, FALSE, + IMG_CUSTOM_198 + }, + { + EL_CUSTOM_199, -1, -1, FALSE, + IMG_CUSTOM_199 + }, + { + EL_CUSTOM_200, -1, -1, FALSE, + IMG_CUSTOM_200 + }, + { + EL_CUSTOM_201, -1, -1, FALSE, + IMG_CUSTOM_201 + }, + { + EL_CUSTOM_202, -1, -1, FALSE, + IMG_CUSTOM_202 + }, + { + EL_CUSTOM_203, -1, -1, FALSE, + IMG_CUSTOM_203 + }, + { + EL_CUSTOM_204, -1, -1, FALSE, + IMG_CUSTOM_204 + }, + { + EL_CUSTOM_205, -1, -1, FALSE, + IMG_CUSTOM_205 + }, + { + EL_CUSTOM_206, -1, -1, FALSE, + IMG_CUSTOM_206 + }, + { + EL_CUSTOM_207, -1, -1, FALSE, + IMG_CUSTOM_207 + }, + { + EL_CUSTOM_208, -1, -1, FALSE, + IMG_CUSTOM_208 + }, + { + EL_CUSTOM_209, -1, -1, FALSE, + IMG_CUSTOM_209 + }, + { + EL_CUSTOM_210, -1, -1, FALSE, + IMG_CUSTOM_210 + }, + { + EL_CUSTOM_211, -1, -1, FALSE, + IMG_CUSTOM_211 + }, + { + EL_CUSTOM_212, -1, -1, FALSE, + IMG_CUSTOM_212 + }, + { + EL_CUSTOM_213, -1, -1, FALSE, + IMG_CUSTOM_213 + }, + { + EL_CUSTOM_214, -1, -1, FALSE, + IMG_CUSTOM_214 + }, + { + EL_CUSTOM_215, -1, -1, FALSE, + IMG_CUSTOM_215 + }, + { + EL_CUSTOM_216, -1, -1, FALSE, + IMG_CUSTOM_216 + }, + { + EL_CUSTOM_217, -1, -1, FALSE, + IMG_CUSTOM_217 + }, + { + EL_CUSTOM_218, -1, -1, FALSE, + IMG_CUSTOM_218 + }, + { + EL_CUSTOM_219, -1, -1, FALSE, + IMG_CUSTOM_219 + }, + { + EL_CUSTOM_220, -1, -1, FALSE, + IMG_CUSTOM_220 + }, + { + EL_CUSTOM_221, -1, -1, FALSE, + IMG_CUSTOM_221 + }, + { + EL_CUSTOM_222, -1, -1, FALSE, + IMG_CUSTOM_222 + }, + { + EL_CUSTOM_223, -1, -1, FALSE, + IMG_CUSTOM_223 + }, + { + EL_CUSTOM_224, -1, -1, FALSE, + IMG_CUSTOM_224 + }, + { + EL_CUSTOM_225, -1, -1, FALSE, + IMG_CUSTOM_225 + }, + { + EL_CUSTOM_226, -1, -1, FALSE, + IMG_CUSTOM_226 + }, + { + EL_CUSTOM_227, -1, -1, FALSE, + IMG_CUSTOM_227 + }, + { + EL_CUSTOM_228, -1, -1, FALSE, + IMG_CUSTOM_228 + }, + { + EL_CUSTOM_229, -1, -1, FALSE, + IMG_CUSTOM_229 + }, + { + EL_CUSTOM_230, -1, -1, FALSE, + IMG_CUSTOM_230 + }, + { + EL_CUSTOM_231, -1, -1, FALSE, + IMG_CUSTOM_231 + }, + { + EL_CUSTOM_232, -1, -1, FALSE, + IMG_CUSTOM_232 + }, + { + EL_CUSTOM_233, -1, -1, FALSE, + IMG_CUSTOM_233 + }, + { + EL_CUSTOM_234, -1, -1, FALSE, + IMG_CUSTOM_234 + }, + { + EL_CUSTOM_235, -1, -1, FALSE, + IMG_CUSTOM_235 + }, + { + EL_CUSTOM_236, -1, -1, FALSE, + IMG_CUSTOM_236 + }, + { + EL_CUSTOM_237, -1, -1, FALSE, + IMG_CUSTOM_237 + }, + { + EL_CUSTOM_238, -1, -1, FALSE, + IMG_CUSTOM_238 + }, + { + EL_CUSTOM_239, -1, -1, FALSE, + IMG_CUSTOM_239 + }, + { + EL_CUSTOM_240, -1, -1, FALSE, + IMG_CUSTOM_240 + }, + { + EL_CUSTOM_241, -1, -1, FALSE, + IMG_CUSTOM_241 + }, + { + EL_CUSTOM_242, -1, -1, FALSE, + IMG_CUSTOM_242 + }, + { + EL_CUSTOM_243, -1, -1, FALSE, + IMG_CUSTOM_243 + }, + { + EL_CUSTOM_244, -1, -1, FALSE, + IMG_CUSTOM_244 + }, + { + EL_CUSTOM_245, -1, -1, FALSE, + IMG_CUSTOM_245 + }, + { + EL_CUSTOM_246, -1, -1, FALSE, + IMG_CUSTOM_246 + }, + { + EL_CUSTOM_247, -1, -1, FALSE, + IMG_CUSTOM_247 + }, + { + EL_CUSTOM_248, -1, -1, FALSE, + IMG_CUSTOM_248 + }, + { + EL_CUSTOM_249, -1, -1, FALSE, + IMG_CUSTOM_249 + }, + { + EL_CUSTOM_250, -1, -1, FALSE, + IMG_CUSTOM_250 + }, + { + EL_CUSTOM_251, -1, -1, FALSE, + IMG_CUSTOM_251 + }, + { + EL_CUSTOM_252, -1, -1, FALSE, + IMG_CUSTOM_252 + }, + { + EL_CUSTOM_253, -1, -1, FALSE, + IMG_CUSTOM_253 + }, + { + EL_CUSTOM_254, -1, -1, FALSE, + IMG_CUSTOM_254 + }, + { + EL_CUSTOM_255, -1, -1, FALSE, + IMG_CUSTOM_255 + }, + { + EL_CUSTOM_256, -1, -1, FALSE, + IMG_CUSTOM_256 + }, { -1, -1, -1, FALSE, -1 diff --git a/src/conf_esg.c b/src/conf_esg.c index b2180fb3..233ea9e9 100644 --- a/src/conf_esg.c +++ b/src/conf_esg.c @@ -739,6 +739,518 @@ element_to_special_graphic[] = EL_CUSTOM_128, GFX_SPECIAL_ARG_EDITOR, IMG_CUSTOM_128_EDITOR }, + { + EL_CUSTOM_129, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_129_EDITOR + }, + { + EL_CUSTOM_130, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_130_EDITOR + }, + { + EL_CUSTOM_131, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_131_EDITOR + }, + { + EL_CUSTOM_132, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_132_EDITOR + }, + { + EL_CUSTOM_133, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_133_EDITOR + }, + { + EL_CUSTOM_134, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_134_EDITOR + }, + { + EL_CUSTOM_135, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_135_EDITOR + }, + { + EL_CUSTOM_136, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_136_EDITOR + }, + { + EL_CUSTOM_137, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_137_EDITOR + }, + { + EL_CUSTOM_138, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_138_EDITOR + }, + { + EL_CUSTOM_139, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_139_EDITOR + }, + { + EL_CUSTOM_140, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_140_EDITOR + }, + { + EL_CUSTOM_141, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_141_EDITOR + }, + { + EL_CUSTOM_142, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_142_EDITOR + }, + { + EL_CUSTOM_143, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_143_EDITOR + }, + { + EL_CUSTOM_144, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_144_EDITOR + }, + { + EL_CUSTOM_145, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_145_EDITOR + }, + { + EL_CUSTOM_146, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_146_EDITOR + }, + { + EL_CUSTOM_147, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_147_EDITOR + }, + { + EL_CUSTOM_148, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_148_EDITOR + }, + { + EL_CUSTOM_149, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_149_EDITOR + }, + { + EL_CUSTOM_150, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_150_EDITOR + }, + { + EL_CUSTOM_151, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_151_EDITOR + }, + { + EL_CUSTOM_152, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_152_EDITOR + }, + { + EL_CUSTOM_153, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_153_EDITOR + }, + { + EL_CUSTOM_154, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_154_EDITOR + }, + { + EL_CUSTOM_155, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_155_EDITOR + }, + { + EL_CUSTOM_156, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_156_EDITOR + }, + { + EL_CUSTOM_157, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_157_EDITOR + }, + { + EL_CUSTOM_158, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_158_EDITOR + }, + { + EL_CUSTOM_159, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_159_EDITOR + }, + { + EL_CUSTOM_160, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_160_EDITOR + }, + { + EL_CUSTOM_161, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_161_EDITOR + }, + { + EL_CUSTOM_162, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_162_EDITOR + }, + { + EL_CUSTOM_163, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_163_EDITOR + }, + { + EL_CUSTOM_164, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_164_EDITOR + }, + { + EL_CUSTOM_165, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_165_EDITOR + }, + { + EL_CUSTOM_166, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_166_EDITOR + }, + { + EL_CUSTOM_167, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_167_EDITOR + }, + { + EL_CUSTOM_168, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_168_EDITOR + }, + { + EL_CUSTOM_169, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_169_EDITOR + }, + { + EL_CUSTOM_170, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_170_EDITOR + }, + { + EL_CUSTOM_171, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_171_EDITOR + }, + { + EL_CUSTOM_172, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_172_EDITOR + }, + { + EL_CUSTOM_173, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_173_EDITOR + }, + { + EL_CUSTOM_174, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_174_EDITOR + }, + { + EL_CUSTOM_175, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_175_EDITOR + }, + { + EL_CUSTOM_176, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_176_EDITOR + }, + { + EL_CUSTOM_177, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_177_EDITOR + }, + { + EL_CUSTOM_178, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_178_EDITOR + }, + { + EL_CUSTOM_179, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_179_EDITOR + }, + { + EL_CUSTOM_180, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_180_EDITOR + }, + { + EL_CUSTOM_181, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_181_EDITOR + }, + { + EL_CUSTOM_182, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_182_EDITOR + }, + { + EL_CUSTOM_183, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_183_EDITOR + }, + { + EL_CUSTOM_184, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_184_EDITOR + }, + { + EL_CUSTOM_185, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_185_EDITOR + }, + { + EL_CUSTOM_186, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_186_EDITOR + }, + { + EL_CUSTOM_187, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_187_EDITOR + }, + { + EL_CUSTOM_188, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_188_EDITOR + }, + { + EL_CUSTOM_189, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_189_EDITOR + }, + { + EL_CUSTOM_190, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_190_EDITOR + }, + { + EL_CUSTOM_191, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_191_EDITOR + }, + { + EL_CUSTOM_192, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_192_EDITOR + }, + { + EL_CUSTOM_193, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_193_EDITOR + }, + { + EL_CUSTOM_194, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_194_EDITOR + }, + { + EL_CUSTOM_195, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_195_EDITOR + }, + { + EL_CUSTOM_196, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_196_EDITOR + }, + { + EL_CUSTOM_197, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_197_EDITOR + }, + { + EL_CUSTOM_198, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_198_EDITOR + }, + { + EL_CUSTOM_199, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_199_EDITOR + }, + { + EL_CUSTOM_200, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_200_EDITOR + }, + { + EL_CUSTOM_201, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_201_EDITOR + }, + { + EL_CUSTOM_202, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_202_EDITOR + }, + { + EL_CUSTOM_203, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_203_EDITOR + }, + { + EL_CUSTOM_204, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_204_EDITOR + }, + { + EL_CUSTOM_205, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_205_EDITOR + }, + { + EL_CUSTOM_206, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_206_EDITOR + }, + { + EL_CUSTOM_207, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_207_EDITOR + }, + { + EL_CUSTOM_208, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_208_EDITOR + }, + { + EL_CUSTOM_209, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_209_EDITOR + }, + { + EL_CUSTOM_210, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_210_EDITOR + }, + { + EL_CUSTOM_211, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_211_EDITOR + }, + { + EL_CUSTOM_212, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_212_EDITOR + }, + { + EL_CUSTOM_213, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_213_EDITOR + }, + { + EL_CUSTOM_214, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_214_EDITOR + }, + { + EL_CUSTOM_215, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_215_EDITOR + }, + { + EL_CUSTOM_216, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_216_EDITOR + }, + { + EL_CUSTOM_217, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_217_EDITOR + }, + { + EL_CUSTOM_218, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_218_EDITOR + }, + { + EL_CUSTOM_219, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_219_EDITOR + }, + { + EL_CUSTOM_220, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_220_EDITOR + }, + { + EL_CUSTOM_221, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_221_EDITOR + }, + { + EL_CUSTOM_222, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_222_EDITOR + }, + { + EL_CUSTOM_223, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_223_EDITOR + }, + { + EL_CUSTOM_224, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_224_EDITOR + }, + { + EL_CUSTOM_225, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_225_EDITOR + }, + { + EL_CUSTOM_226, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_226_EDITOR + }, + { + EL_CUSTOM_227, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_227_EDITOR + }, + { + EL_CUSTOM_228, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_228_EDITOR + }, + { + EL_CUSTOM_229, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_229_EDITOR + }, + { + EL_CUSTOM_230, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_230_EDITOR + }, + { + EL_CUSTOM_231, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_231_EDITOR + }, + { + EL_CUSTOM_232, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_232_EDITOR + }, + { + EL_CUSTOM_233, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_233_EDITOR + }, + { + EL_CUSTOM_234, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_234_EDITOR + }, + { + EL_CUSTOM_235, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_235_EDITOR + }, + { + EL_CUSTOM_236, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_236_EDITOR + }, + { + EL_CUSTOM_237, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_237_EDITOR + }, + { + EL_CUSTOM_238, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_238_EDITOR + }, + { + EL_CUSTOM_239, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_239_EDITOR + }, + { + EL_CUSTOM_240, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_240_EDITOR + }, + { + EL_CUSTOM_241, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_241_EDITOR + }, + { + EL_CUSTOM_242, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_242_EDITOR + }, + { + EL_CUSTOM_243, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_243_EDITOR + }, + { + EL_CUSTOM_244, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_244_EDITOR + }, + { + EL_CUSTOM_245, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_245_EDITOR + }, + { + EL_CUSTOM_246, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_246_EDITOR + }, + { + EL_CUSTOM_247, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_247_EDITOR + }, + { + EL_CUSTOM_248, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_248_EDITOR + }, + { + EL_CUSTOM_249, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_249_EDITOR + }, + { + EL_CUSTOM_250, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_250_EDITOR + }, + { + EL_CUSTOM_251, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_251_EDITOR + }, + { + EL_CUSTOM_252, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_252_EDITOR + }, + { + EL_CUSTOM_253, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_253_EDITOR + }, + { + EL_CUSTOM_254, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_254_EDITOR + }, + { + EL_CUSTOM_255, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_255_EDITOR + }, + { + EL_CUSTOM_256, GFX_SPECIAL_ARG_EDITOR, + IMG_CUSTOM_256_EDITOR + }, { -1, -1, -1 diff --git a/src/conf_gfx.c b/src/conf_gfx.c index 7b692bfa..258b7fde 100644 --- a/src/conf_gfx.c +++ b/src/conf_gfx.c @@ -411,6 +411,10 @@ struct ConfigInfo image_config[] = { "sp_disk_red.collecting.xpos", "8" }, { "sp_disk_red.collecting.ypos", "5" }, { "sp_disk_red.collecting.frames", "8" }, + { "sp_disk_red.active", "RocksSP.pcx" }, + { "sp_disk_red.active.xpos", "4" }, + { "sp_disk_red.active.ypos", "2" }, + { "sp_disk_red.active.frames", "1" }, { "sp_port_right", "RocksSP.pcx" }, { "sp_port_right.xpos", "1" }, diff --git a/src/conf_gfx.h b/src/conf_gfx.h index 8b3f18c8..41fe2b22 100644 --- a/src/conf_gfx.h +++ b/src/conf_gfx.h @@ -89,952 +89,1209 @@ #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 */ diff --git a/src/conftime.h b/src/conftime.h index e2c1ccdd..052f4be3 100644 --- a/src/conftime.h +++ b/src/conftime.h @@ -1 +1 @@ -#define COMPILE_DATE_STRING "[2003-08-05 01:57]" +#define COMPILE_DATE_STRING "[2003-08-18 21:51]" diff --git a/src/editor.c b/src/editor.c index 1749fe25..4a47194a 100644 --- a/src/editor.c +++ b/src/editor.c @@ -75,6 +75,8 @@ #define ED_GADGET_DISTANCE 2 #define ED_GADGET_TEXT_DISTANCE (2 * ED_GADGET_DISTANCE) +#define ED_DRAWINGAREA_TEXT_DISTANCE (ED_GADGET_TEXT_DISTANCE + \ + MINI_TILEX / 2) /* values for the setting windows */ #define ED_SETTINGS_XSTART (3 * MINI_TILEX / 2) @@ -664,13 +666,13 @@ /* how many steps can be cancelled */ #define NUM_UNDO_STEPS (10 + 1) -/* values for elements with score */ +/* values for elements with score for certain actions */ #define MIN_SCORE 0 #define MAX_SCORE 255 -/* values for elements with gem count */ -#define MIN_GEM_COUNT 0 -#define MAX_GEM_COUNT 100 +/* values for elements with count for collecting */ +#define MIN_COLLECT_COUNT 0 +#define MAX_COLLECT_COUNT 100 /* values for random placement */ #define RANDOM_USE_PERCENTAGE 0 @@ -822,16 +824,16 @@ static struct MIN_SCORE, MAX_SCORE, GADGET_ID_CUSTOM_SCORE_DOWN, GADGET_ID_CUSTOM_SCORE_UP, GADGET_ID_CUSTOM_SCORE_TEXT, GADGET_ID_NONE, - &custom_element.score, - NULL, "collect score", NULL + &custom_element.collect_score, + NULL, "score", NULL }, { ED_SETTINGS_XPOS(13) + 10, ED_SETTINGS_YPOS(3), - MIN_GEM_COUNT, MAX_GEM_COUNT, + MIN_COLLECT_COUNT, MAX_COLLECT_COUNT, GADGET_ID_CUSTOM_GEMCOUNT_DOWN, GADGET_ID_CUSTOM_GEMCOUNT_UP, GADGET_ID_CUSTOM_GEMCOUNT_TEXT, GADGET_ID_CUSTOM_SCORE_UP, - &custom_element.gem_count, - NULL, "gems", NULL + &custom_element.collect_count, + NULL, "count", NULL }, { ED_SETTINGS_XPOS(1), ED_SETTINGS_YPOS(4), @@ -922,7 +924,7 @@ static struct GADGET_ID_ELEMENT_NAME, MAX_ELEMENT_NAME_LEN - 2, /* currently 2 chars less editable */ custom_element.description, - NULL + "Element name" } }; @@ -944,7 +946,8 @@ static struct ValueTextInfo options_access_layer[] = static struct ValueTextInfo options_walk_to_action[] = { { EP_DIGGABLE, "diggable" }, - { EP_COLLECTIBLE, "collectible" }, + { EP_COLLECTIBLE_ONLY, "collectible" }, + { EP_DROPPABLE, "collectible & droppable" }, { EP_PUSHABLE, "pushable" }, { -1, NULL } }; @@ -1017,7 +1020,8 @@ static struct ValueTextInfo options_deadliness[] = static struct ValueTextInfo options_consistency[] = { - { EP_CAN_EXPLODE, "can explode" }, + { EP_CAN_EXPLODE_3X3, "can explode 3x3" }, + { EP_CAN_EXPLODE_1X1, "can explode 1x1" }, { EP_INDESTRUCTIBLE, "indestructible" }, { -1, NULL } }; @@ -1034,6 +1038,7 @@ static struct ValueTextInfo options_change_player_action[] = { CE_TOUCHED_BY_PLAYER, "touched" }, { CE_PRESSED_BY_PLAYER, "pressed" }, { CE_PUSHED_BY_PLAYER, "pushed" }, + { CE_DROPPED_BY_PLAYER, "dropped" }, { -1, NULL } }; @@ -1047,14 +1052,15 @@ static struct ValueTextInfo options_change_collide_action[] = static struct ValueTextInfo options_change_other_action[] = { - { CE_OTHER_IS_TOUCHING, "touching" }, - { CE_OTHER_IS_CHANGING, "change of" }, - { CE_OTHER_IS_EXPLODING, "explosion of" }, - { CE_OTHER_GETS_TOUCHED, "player touches" }, - { CE_OTHER_GETS_PRESSED, "player presses" }, - { CE_OTHER_GETS_PUSHED, "player pushes" }, - { CE_OTHER_GETS_COLLECTED, "player collects" }, - { -1, NULL } + { CE_OTHER_IS_TOUCHING, "touching" }, + { CE_OTHER_IS_CHANGING, "change of" }, + { CE_OTHER_IS_EXPLODING, "explosion of" }, + { CE_OTHER_GETS_TOUCHED, "player touches" }, + { CE_OTHER_GETS_PRESSED, "player presses" }, + { CE_OTHER_GETS_PUSHED, "player pushes" }, + { CE_OTHER_GETS_COLLECTED, "player collects" }, + { CE_OTHER_GETS_DROPPED, "player drops" }, + { -1, NULL } }; static struct ValueTextInfo options_change_power[] = @@ -1156,7 +1162,7 @@ static struct -1, options_consistency, &custom_element.consistency, - NULL, "explodes to:", "consistency/destructibility" + NULL, NULL, "consistency/destructibility" }, /* ---------- element settings: advanced (custom elements) --------------- */ @@ -1536,7 +1542,7 @@ static struct int area_xsize, area_ysize; int gadget_id; int gadget_id_align; - char *text_left, *text_right; + char *text_left, *text_right, *text_below; } drawingarea_info[ED_NUM_DRAWING_AREAS] = { /* ---------- level playfield content ------------------------------------ */ @@ -1545,7 +1551,7 @@ static struct 0, 0, MAX_ED_FIELDX, MAX_ED_FIELDY, GADGET_ID_DRAWING_LEVEL, GADGET_ID_NONE, - NULL, NULL + NULL, NULL, NULL }, /* ---------- yam yam content -------------------------------------------- */ @@ -1554,49 +1560,49 @@ static struct ED_AREA_YAMYAM_CONTENT_XPOS(0), ED_AREA_YAMYAM_CONTENT_YPOS(0), 3, 3, GADGET_ID_ELEMENT_CONTENT_0, GADGET_ID_NONE, - NULL, NULL + NULL, NULL, "1" }, { ED_AREA_YAMYAM_CONTENT_XPOS(1), ED_AREA_YAMYAM_CONTENT_YPOS(1), 3, 3, GADGET_ID_ELEMENT_CONTENT_1, GADGET_ID_NONE, - NULL, NULL + NULL, NULL, "2" }, { ED_AREA_YAMYAM_CONTENT_XPOS(2), ED_AREA_YAMYAM_CONTENT_YPOS(2), 3, 3, GADGET_ID_ELEMENT_CONTENT_2, GADGET_ID_NONE, - NULL, NULL + NULL, NULL, "3" }, { ED_AREA_YAMYAM_CONTENT_XPOS(3), ED_AREA_YAMYAM_CONTENT_YPOS(3), 3, 3, GADGET_ID_ELEMENT_CONTENT_3, GADGET_ID_NONE, - NULL, NULL + NULL, NULL, "4" }, { ED_AREA_YAMYAM_CONTENT_XPOS(4), ED_AREA_YAMYAM_CONTENT_YPOS(4), 3, 3, GADGET_ID_ELEMENT_CONTENT_4, GADGET_ID_NONE, - NULL, NULL + NULL, NULL, "5" }, { ED_AREA_YAMYAM_CONTENT_XPOS(5), ED_AREA_YAMYAM_CONTENT_YPOS(5), 3, 3, GADGET_ID_ELEMENT_CONTENT_5, GADGET_ID_NONE, - NULL, NULL + NULL, NULL, "6" }, { ED_AREA_YAMYAM_CONTENT_XPOS(6), ED_AREA_YAMYAM_CONTENT_YPOS(6), 3, 3, GADGET_ID_ELEMENT_CONTENT_6, GADGET_ID_NONE, - NULL, NULL + NULL, NULL, "7" }, { ED_AREA_YAMYAM_CONTENT_XPOS(7), ED_AREA_YAMYAM_CONTENT_YPOS(7), 3, 3, GADGET_ID_ELEMENT_CONTENT_7, GADGET_ID_NONE, - NULL, NULL + NULL, NULL, "8" }, /* ---------- amoeba content --------------------------------------------- */ @@ -1605,7 +1611,7 @@ static struct ED_AREA_ELEM_CONTENT_XPOS, ED_AREA_ELEM_CONTENT_YPOS, 1, 1, GADGET_ID_AMOEBA_CONTENT, GADGET_ID_NONE, - NULL, NULL + NULL, "content of amoeba", NULL }, /* ---------- custom graphic --------------------------------------------- */ @@ -1614,7 +1620,7 @@ static struct ED_AREA_ELEM_CONTENT3_XPOS, ED_AREA_ELEM_CONTENT3_YPOS, 1, 1, GADGET_ID_CUSTOM_GRAPHIC, GADGET_ID_CUSTOM_USE_GRAPHIC, - NULL, NULL + NULL, NULL, NULL }, /* ---------- custom content (when exploding) ---------------------------- */ @@ -1623,7 +1629,7 @@ static struct ED_AREA_ELEM_CONTENT4_XPOS, ED_AREA_ELEM_CONTENT4_YPOS, 3, 3, GADGET_ID_CUSTOM_CONTENT, GADGET_ID_NONE, /* align three rows */ - NULL, NULL + "content:", NULL, NULL }, /* ---------- custom change target --------------------------------------- */ @@ -1632,7 +1638,7 @@ static struct ED_AREA_ELEM_CONTENT2_XPOS, ED_AREA_ELEM_CONTENT2_YPOS, 1, 1, GADGET_ID_CUSTOM_CHANGE_TARGET, GADGET_ID_CUSTOM_CAN_CHANGE, - NULL, "after/when:" + NULL, "after/when:", NULL }, /* ---------- custom change content (extended change target) ------------- */ @@ -1641,7 +1647,7 @@ static struct ED_AREA_ELEM_CONTENT6_XPOS, ED_AREA_ELEM_CONTENT6_YPOS, 3, 3, GADGET_ID_CUSTOM_CHANGE_CONTENT, GADGET_ID_NONE, /* align three rows */ - NULL, NULL + NULL, NULL, NULL }, /* ---------- custom change trigger (element causing change) ------------- */ @@ -1650,7 +1656,7 @@ static struct ED_AREA_ELEM_CONTENT5_XPOS, ED_AREA_ELEM_CONTENT5_YPOS, 1, 1, GADGET_ID_CUSTOM_CHANGE_TRIGGER, GADGET_ID_CHANGE_OTHER_ACTION, - NULL, NULL + NULL, NULL, NULL }, /* ---------- random background (for random painting) -------------------- */ @@ -1659,7 +1665,7 @@ static struct ED_AREA_RANDOM_BACKGROUND_XPOS, ED_AREA_RANDOM_BACKGROUND_YPOS, 1, 1, GADGET_ID_RANDOM_BACKGROUND, GADGET_ID_RANDOM_RESTRICTED, - NULL, NULL + NULL, NULL, NULL }, }; @@ -2463,6 +2469,170 @@ static int editor_el_custom[] = }; static int num_editor_el_custom = SIZEOF_ARRAY_INT(editor_el_custom); +static int editor_el_custom_more[] = +{ + EL_CUSTOM_START + 128, + EL_CUSTOM_START + 129, + EL_CUSTOM_START + 130, + EL_CUSTOM_START + 131, + + EL_CUSTOM_START + 132, + EL_CUSTOM_START + 133, + EL_CUSTOM_START + 134, + EL_CUSTOM_START + 135, + + EL_CUSTOM_START + 136, + EL_CUSTOM_START + 137, + EL_CUSTOM_START + 138, + EL_CUSTOM_START + 139, + + EL_CUSTOM_START + 140, + EL_CUSTOM_START + 141, + EL_CUSTOM_START + 142, + EL_CUSTOM_START + 143, + + EL_CUSTOM_START + 144, + EL_CUSTOM_START + 145, + EL_CUSTOM_START + 146, + EL_CUSTOM_START + 147, + + EL_CUSTOM_START + 148, + EL_CUSTOM_START + 149, + EL_CUSTOM_START + 150, + EL_CUSTOM_START + 151, + + EL_CUSTOM_START + 152, + EL_CUSTOM_START + 153, + EL_CUSTOM_START + 154, + EL_CUSTOM_START + 155, + + EL_CUSTOM_START + 156, + EL_CUSTOM_START + 157, + EL_CUSTOM_START + 158, + EL_CUSTOM_START + 159, + + EL_CUSTOM_START + 160, + EL_CUSTOM_START + 161, + EL_CUSTOM_START + 162, + EL_CUSTOM_START + 163, + + EL_CUSTOM_START + 164, + EL_CUSTOM_START + 165, + EL_CUSTOM_START + 166, + EL_CUSTOM_START + 167, + + EL_CUSTOM_START + 168, + EL_CUSTOM_START + 169, + EL_CUSTOM_START + 170, + EL_CUSTOM_START + 171, + + EL_CUSTOM_START + 172, + EL_CUSTOM_START + 173, + EL_CUSTOM_START + 174, + EL_CUSTOM_START + 175, + + EL_CUSTOM_START + 176, + EL_CUSTOM_START + 177, + EL_CUSTOM_START + 178, + EL_CUSTOM_START + 179, + + EL_CUSTOM_START + 180, + EL_CUSTOM_START + 181, + EL_CUSTOM_START + 182, + EL_CUSTOM_START + 183, + + EL_CUSTOM_START + 184, + EL_CUSTOM_START + 185, + EL_CUSTOM_START + 186, + EL_CUSTOM_START + 187, + + EL_CUSTOM_START + 188, + EL_CUSTOM_START + 189, + EL_CUSTOM_START + 190, + EL_CUSTOM_START + 191, + + EL_CUSTOM_START + 192, + EL_CUSTOM_START + 193, + EL_CUSTOM_START + 194, + EL_CUSTOM_START + 195, + + EL_CUSTOM_START + 196, + EL_CUSTOM_START + 197, + EL_CUSTOM_START + 198, + EL_CUSTOM_START + 199, + + EL_CUSTOM_START + 200, + EL_CUSTOM_START + 201, + EL_CUSTOM_START + 202, + EL_CUSTOM_START + 203, + + EL_CUSTOM_START + 204, + EL_CUSTOM_START + 205, + EL_CUSTOM_START + 206, + EL_CUSTOM_START + 207, + + EL_CUSTOM_START + 208, + EL_CUSTOM_START + 209, + EL_CUSTOM_START + 210, + EL_CUSTOM_START + 211, + + EL_CUSTOM_START + 212, + EL_CUSTOM_START + 213, + EL_CUSTOM_START + 214, + EL_CUSTOM_START + 215, + + EL_CUSTOM_START + 216, + EL_CUSTOM_START + 217, + EL_CUSTOM_START + 218, + EL_CUSTOM_START + 219, + + EL_CUSTOM_START + 220, + EL_CUSTOM_START + 221, + EL_CUSTOM_START + 222, + EL_CUSTOM_START + 223, + + EL_CUSTOM_START + 224, + EL_CUSTOM_START + 225, + EL_CUSTOM_START + 226, + EL_CUSTOM_START + 227, + + EL_CUSTOM_START + 228, + EL_CUSTOM_START + 229, + EL_CUSTOM_START + 230, + EL_CUSTOM_START + 231, + + EL_CUSTOM_START + 232, + EL_CUSTOM_START + 233, + EL_CUSTOM_START + 234, + EL_CUSTOM_START + 235, + + EL_CUSTOM_START + 236, + EL_CUSTOM_START + 237, + EL_CUSTOM_START + 238, + EL_CUSTOM_START + 239, + + EL_CUSTOM_START + 240, + EL_CUSTOM_START + 241, + EL_CUSTOM_START + 242, + EL_CUSTOM_START + 243, + + EL_CUSTOM_START + 244, + EL_CUSTOM_START + 245, + EL_CUSTOM_START + 246, + EL_CUSTOM_START + 247, + + EL_CUSTOM_START + 248, + EL_CUSTOM_START + 249, + EL_CUSTOM_START + 250, + EL_CUSTOM_START + 251, + + EL_CUSTOM_START + 252, + EL_CUSTOM_START + 253, + EL_CUSTOM_START + 254, + EL_CUSTOM_START + 255 +}; +static int num_editor_el_custom_more = SIZEOF_ARRAY_INT(editor_el_custom_more); + static int *editor_elements = NULL; /* dynamically allocated */ static int num_editor_elements = 0; /* dynamically determined */ @@ -2494,6 +2664,8 @@ editor_elements_info[] = &num_editor_el_chars }, { &setup.editor.el_custom, editor_el_custom, &num_editor_el_custom }, + { &setup.editor.el_custom_more, editor_el_custom_more, + &num_editor_el_custom_more }, { NULL, NULL, NULL } }; @@ -2536,6 +2708,12 @@ static void ReinitializeElementList() if (*editor_elements_info[i].setup_value) for (j=0; j<*editor_elements_info[i].element_list_size; j++) editor_elements[pos++] = editor_elements_info[i].element_list[j]; + + /* correct position of element list scrollbar */ + if (element_shift < 0) + element_shift = 0; + if (element_shift > num_editor_elements - ED_NUM_ELEMENTLIST_BUTTONS) + element_shift = num_editor_elements - ED_NUM_ELEMENTLIST_BUTTONS; } static void ReinitializeElementListButtons() @@ -2568,17 +2746,25 @@ static int getMaxInfoTextLength() return (SXSIZE / getFontWidth(FONT_TEXT_2)); } -static int getFullTextWidth(char *text) +static int getTextWidthForGadget(char *text) { if (text == NULL) return 0; - return (strlen(text) * getFontWidth(FONT_TEXT_1) + ED_GADGET_TEXT_DISTANCE); + return (getTextWidth(text, FONT_TEXT_1) + ED_GADGET_TEXT_DISTANCE); +} + +static int getTextWidthForDrawingArea(char *text) +{ + if (text == NULL) + return 0; + + return (getTextWidth(text, FONT_TEXT_1) + ED_DRAWINGAREA_TEXT_DISTANCE); } static int getRightGadgetBorder(struct GadgetInfo *gi, char *text) { - return (gi->x + gi->width + getFullTextWidth(text)); + return (gi->x + gi->width + getTextWidthForGadget(text)); } static char *getElementInfoText(int element) @@ -2605,6 +2791,72 @@ static char *getElementInfoText(int element) return info_text; } +static void DrawElementBorder(int dest_x, int dest_y, int width, int height, + boolean input) +{ + int border_graphic = + (input ? IMG_EDITOR_ELEMENT_BORDER_INPUT : IMG_EDITOR_ELEMENT_BORDER); + Bitmap *src_bitmap; + int src_x, src_y; + int num_mini_tilex = width / MINI_TILEX + 1; + int num_mini_tiley = width / MINI_TILEY + 1; + int x, y; + + getMiniGraphicSource(border_graphic, &src_bitmap, &src_x, &src_y); + + for (y=0; y < num_mini_tiley; y++) + for (x=0; x < num_mini_tilex; x++) + BlitBitmap(src_bitmap, drawto, src_x, src_y, MINI_TILEX, MINI_TILEY, + dest_x - MINI_TILEX / 2 + x * MINI_TILEX, + dest_y - MINI_TILEY / 2 + y * MINI_TILEY); + + ClearRectangle(drawto, dest_x - 1, dest_y - 1, width + 2, height + 2); +} + +static void DrawDrawingArea(int id) +{ + struct GadgetInfo *gi = level_editor_gadget[drawingarea_info[id].gadget_id]; + int x, y; + + if (id == ED_DRAWING_ID_RANDOM_BACKGROUND) + DrawMiniGraphicExt(drawto, gi->x, gi->y, + el2edimg(random_placement_background_element)); + else if (id == ED_DRAWING_ID_AMOEBA_CONTENT) + DrawMiniGraphicExt(drawto, gi->x, gi->y, el2edimg(level.amoeba_content)); + else if (id == ED_DRAWING_ID_CUSTOM_GRAPHIC) + DrawMiniGraphicExt(drawto, gi->x, gi->y, + el2edimg(custom_element.gfx_element)); + else if (id == ED_DRAWING_ID_CUSTOM_CONTENT) + for (y=0; y<3; y++) + for (x=0; x<3; x++) + DrawMiniGraphicExt(drawto, + gi->x + x * MINI_TILEX, gi->y + y * MINI_TILEY, + el2edimg(custom_element.content[x][y])); + else if (id == ED_DRAWING_ID_CUSTOM_CHANGE_TARGET) + DrawMiniGraphicExt(drawto, gi->x, gi->y, + el2edimg(custom_element.change.target_element)); + else if (id == ED_DRAWING_ID_CUSTOM_CHANGE_CONTENT) + for (y=0; y < 3; y++) + for (x=0; x < 3; x++) + DrawMiniGraphicExt(drawto, + gi->x + x * MINI_TILEX, gi->y + y * MINI_TILEY, + el2edimg(custom_element.change.content[x][y])); + else if (id == ED_DRAWING_ID_CUSTOM_CHANGE_TRIGGER) + DrawMiniGraphicExt(drawto, gi->x, gi->y, + el2edimg(custom_element.change.trigger_element)); + else if (id >= ED_DRAWING_ID_ELEMENT_CONTENT_0 && + id <= ED_DRAWING_ID_ELEMENT_CONTENT_7) + { + int nr = id - ED_DRAWING_ID_ELEMENT_CONTENT_0; + + for (y=0; y < 3; y++) + for (x=0; x < 3; x++) + DrawMiniGraphicExt(drawto, + gi->x + x * MINI_TILEX, gi->y + y * MINI_TILEY, + el2edimg(level.yamyam_content[nr][x][y])); + } +} + static void ScrollMiniLevel(int from_x, int from_y, int scroll) { int x,y; @@ -2864,8 +3116,7 @@ static void CreateCounterButtons() /* determine horizontal offset for leading text */ if (counterbutton_info[i].text_left != NULL) - x += (getFontWidth(FONT_TEXT_1) * strlen(counterbutton_info[i].text_left) - + ED_GADGET_TEXT_DISTANCE); + x += getTextWidthForGadget(counterbutton_info[i].text_left); for (j=0; j<2; j++) { @@ -3020,12 +3271,11 @@ static void CreateDrawingAreas() /* determine horizontal position to the right of specified gadget */ if (drawingarea_info[i].gadget_id_align != GADGET_ID_NONE) x = (right_gadget_border[drawingarea_info[i].gadget_id_align] + - ED_GADGET_TEXT_DISTANCE + MINI_TILEX / 2); + ED_DRAWINGAREA_TEXT_DISTANCE); /* determine horizontal offset for leading text */ if (drawingarea_info[i].text_left != NULL) - x += (getFontWidth(FONT_TEXT_1) * strlen(drawingarea_info[i].text_left) + - ED_GADGET_TEXT_DISTANCE + MINI_TILEX / 2); + x += getTextWidthForDrawingArea(drawingarea_info[i].text_left); gi = CreateGadget(GDI_CUSTOM_ID, id, GDI_CUSTOM_TYPE_ID, i, @@ -3139,8 +3389,7 @@ static void CreateSelectboxGadgets() /* determine horizontal offset for leading text */ if (selectbox_info[i].text_left != NULL) - x += (getFontWidth(FONT_TEXT_1) * strlen(selectbox_info[i].text_left) + - ED_GADGET_TEXT_DISTANCE); + x += getTextWidthForGadget(selectbox_info[i].text_left); sprintf(infotext, "Select %s", selectbox_info[i].infotext); infotext[max_infotext_len] = '\0'; @@ -3350,8 +3599,7 @@ static void CreateCheckbuttonGadgets() /* determine horizontal offset for leading text */ if (checkbutton_info[i].text_left != NULL) - x += (getFontWidth(FONT_TEXT_1) * strlen(checkbutton_info[i].text_left) + - ED_GADGET_TEXT_DISTANCE); + x += getTextWidthForGadget(checkbutton_info[i].text_left); gi = CreateGadget(GDI_CUSTOM_ID, id, GDI_CUSTOM_TYPE_ID, i, @@ -3412,8 +3660,7 @@ static void CreateRadiobuttonGadgets() /* determine horizontal offset for leading text */ if (radiobutton_info[i].text_left != NULL) - x += (getFontWidth(FONT_TEXT_1) * strlen(radiobutton_info[i].text_left) + - ED_GADGET_TEXT_DISTANCE); + x += getTextWidthForGadget(radiobutton_info[i].text_left); gi = CreateGadget(GDI_CUSTOM_ID, id, GDI_CUSTOM_TYPE_ID, i, @@ -3489,7 +3736,7 @@ static void MapCounterButtons(int id) int xoffset_right = getCounterGadgetWidth(); int yoffset_right = ED_BORDER_SIZE; #else - int xoffset_left = getFullTextWidth(counterbutton_info[id].text_left); + int xoffset_left = getTextWidthForGadget(counterbutton_info[id].text_left); int xoffset_right = ED_GADGET_TEXT_DISTANCE; int yoffset_above = MINI_TILEX + ED_GADGET_DISTANCE; int yoffset = ED_BORDER_SIZE; @@ -3542,11 +3789,40 @@ static void MapControlButtons() static void MapDrawingArea(int id) { - MapGadget(level_editor_gadget[drawingarea_info[id].gadget_id]); + struct GadgetInfo *gi = level_editor_gadget[drawingarea_info[id].gadget_id]; + int area_xsize = gi->drawing.area_xsize; + int area_ysize = gi->drawing.area_ysize; + int xoffset_left= getTextWidthForDrawingArea(drawingarea_info[id].text_left); + int xoffset_below= getTextWidth(drawingarea_info[id].text_below,FONT_TEXT_1); + int x_left = gi->x - xoffset_left; + int x_right = gi->x + gi->width + ED_DRAWINGAREA_TEXT_DISTANCE; + int x_below = gi->x + (gi->width - xoffset_below) / 2; + int y_side = gi->y + (gi->height - getFontHeight(FONT_TEXT_1)) / 2; + int y_below = gi->y + gi->height + ED_DRAWINGAREA_TEXT_DISTANCE; + + if (drawingarea_info[id].text_left) + DrawText(x_left, y_side, drawingarea_info[id].text_left, FONT_TEXT_1); + + if (drawingarea_info[id].text_right) + DrawText(x_right, y_side, drawingarea_info[id].text_right, FONT_TEXT_1); + + if (drawingarea_info[id].text_below) + DrawText(x_below, y_below, drawingarea_info[id].text_below, FONT_TEXT_1); + + if (id != ED_DRAWING_ID_DRAWING_LEVEL) + { + DrawElementBorder(gi->x, gi->y, + area_xsize * MINI_TILEX, area_ysize * MINI_TILEY, TRUE); + + DrawDrawingArea(id); + } + + MapGadget(gi); } static void MapTextInputGadget(int id) { + struct GadgetInfo *gi = level_editor_gadget[textinput_info[id].gadget_id]; char infotext[MAX_OUTPUT_LINESIZE + 1]; int max_infotext_len = getMaxInfoTextLength(); int xoffset_above = 0; @@ -3561,30 +3837,20 @@ static void MapTextInputGadget(int id) DrawTextF(x, y, FONT_TEXT_1, infotext); } - ModifyGadget(level_editor_gadget[textinput_info[id].gadget_id], - GDI_TEXT_VALUE, textinput_info[id].value, GDI_END); + ModifyGadget(gi, GDI_TEXT_VALUE, textinput_info[id].value, GDI_END); - MapGadget(level_editor_gadget[textinput_info[id].gadget_id]); + MapGadget(gi); } static void MapSelectboxGadget(int id) { struct GadgetInfo *gi = level_editor_gadget[selectbox_info[id].gadget_id]; -#if 0 - int xoffset_left = 0; - int yoffset_left = ED_BORDER_SIZE; - int xoffset_right = ED_GADGET_TEXT_DISTANCE; - int yoffset_right = ED_BORDER_SIZE; - int x = selectbox_info[id].x + xoffset_left; - int y = selectbox_info[id].y + yoffset_left; -#else - int xoffset_left = getFullTextWidth(selectbox_info[id].text_left); + int xoffset_left = getTextWidthForGadget(selectbox_info[id].text_left); int xoffset_right = ED_GADGET_TEXT_DISTANCE; int yoffset = ED_BORDER_SIZE; int x_left = gi->x - xoffset_left; int x_right = gi->x + gi->width + xoffset_right; int y = gi->y + yoffset; -#endif if (selectbox_info[id].text_left) DrawText(x_left, y, selectbox_info[id].text_left, FONT_TEXT_1); @@ -3594,12 +3860,14 @@ static void MapSelectboxGadget(int id) ModifyEditorSelectbox(id, *selectbox_info[id].value); - MapGadget(level_editor_gadget[selectbox_info[id].gadget_id]); + MapGadget(gi); } static void MapTextbuttonGadget(int id) { - MapGadget(level_editor_gadget[textbutton_info[id].gadget_id]); + struct GadgetInfo *gi = level_editor_gadget[textbutton_info[id].gadget_id]; + + MapGadget(gi); } static void MapRadiobuttonGadget(int id) @@ -3611,7 +3879,7 @@ static void MapRadiobuttonGadget(int id) int x = radiobutton_info[id].x + xoffset_right; int y = radiobutton_info[id].y + yoffset_right; #else - int xoffset_left = getFullTextWidth(checkbutton_info[id].text_left); + int xoffset_left = getTextWidthForGadget(checkbutton_info[id].text_left); int xoffset_right = ED_GADGET_TEXT_DISTANCE; int yoffset = ED_BORDER_SIZE; int x_left = gi->x - xoffset_left; @@ -3627,10 +3895,9 @@ static void MapRadiobuttonGadget(int id) if (radiobutton_info[id].text_right) DrawText(x_right, y, radiobutton_info[id].text_right, FONT_TEXT_1); - ModifyGadget(level_editor_gadget[radiobutton_info[id].gadget_id], - GDI_CHECKED, checked, GDI_END); + ModifyGadget(gi, GDI_CHECKED, checked, GDI_END); - MapGadget(level_editor_gadget[radiobutton_info[id].gadget_id]); + MapGadget(gi); } static void MapCheckbuttonGadget(int id) @@ -3642,7 +3909,7 @@ static void MapCheckbuttonGadget(int id) int x = checkbutton_info[id].x + xoffset_right; int y = checkbutton_info[id].y + yoffset_right; #else - int xoffset_left = getFullTextWidth(checkbutton_info[id].text_left); + int xoffset_left = getTextWidthForGadget(checkbutton_info[id].text_left); int xoffset_right = ED_GADGET_TEXT_DISTANCE; int yoffset = ED_BORDER_SIZE; int x_left = gi->x - xoffset_left; @@ -3651,8 +3918,7 @@ static void MapCheckbuttonGadget(int id) #endif /* special case needed for "sticky" gadget */ - ModifyGadget(level_editor_gadget[checkbutton_info[id].gadget_id], - GDI_CHECKED, *checkbutton_info[id].value, + ModifyGadget(gi, GDI_CHECKED, *checkbutton_info[id].value, GDI_Y, SY + checkbutton_info[id].y, GDI_END); y = gi->y + yoffset; @@ -3662,7 +3928,7 @@ static void MapCheckbuttonGadget(int id) if (checkbutton_info[id].text_right) DrawText(x_right, y, checkbutton_info[id].text_right, FONT_TEXT_1); - MapGadget(level_editor_gadget[checkbutton_info[id].gadget_id]); + MapGadget(gi); } static void MapMainDrawingArea() @@ -3775,6 +4041,21 @@ static void CopyPlayfield(short src[MAX_LEV_FIELDX][MAX_LEV_FIELDY], dst[x][y] = src[x][y]; } +static int SetSelectboxValue(int selectbox_id, int new_value) +{ + int new_index_value = 0; + int i; + + for(i=0; selectbox_info[selectbox_id].options[i].text != NULL; i++) + if (selectbox_info[selectbox_id].options[i].value == new_value) + new_index_value = i; + + *selectbox_info[selectbox_id].value = + selectbox_info[selectbox_id].options[new_index_value].value; + + return new_index_value; +} + static void CopyCustomElementPropertiesToEditor(int element) { int i; @@ -3784,6 +4065,10 @@ static void CopyCustomElementPropertiesToEditor(int element) custom_element = element_info[element]; + /* needed to initially set selectbox value variables to reliable defaults */ + for (i=0; i < ED_NUM_SELECTBOX; i++) + SetSelectboxValue(i, *selectbox_info[i].value); + for (i=0; i < NUM_ELEMENT_PROPERTIES; i++) custom_element_properties[i] = HAS_PROPERTY(element, i); @@ -3810,12 +4095,14 @@ static void CopyCustomElementPropertiesToEditor(int element) /* set walk-to-object action selectbox help value */ custom_element.walk_to_action = (IS_DIGGABLE(element) ? EP_DIGGABLE : - IS_COLLECTIBLE(element) ? EP_COLLECTIBLE : + IS_COLLECTIBLE_ONLY(element) ? EP_COLLECTIBLE_ONLY : + IS_DROPPABLE(element) ? EP_DROPPABLE : IS_PUSHABLE(element) ? EP_PUSHABLE : custom_element.walk_to_action); custom_element_properties[EP_WALK_TO_OBJECT] = (IS_DIGGABLE(element) || - IS_COLLECTIBLE(element) || + IS_COLLECTIBLE_ONLY(element) || + IS_DROPPABLE(element) || IS_PUSHABLE(element)); /* set smash targets selectbox help value */ @@ -3843,11 +4130,13 @@ static void CopyCustomElementPropertiesToEditor(int element) /* set consistency selectbox help value */ custom_element.consistency = (IS_INDESTRUCTIBLE(element) ? EP_INDESTRUCTIBLE : - CAN_EXPLODE(element) ? EP_CAN_EXPLODE : + CAN_EXPLODE_1X1(element) ? EP_CAN_EXPLODE_1X1 : + CAN_EXPLODE_3X3(element) ? EP_CAN_EXPLODE_3X3 : custom_element.consistency); custom_element_properties[EP_EXPLODE_RESULT] = (IS_INDESTRUCTIBLE(element) || - CAN_EXPLODE(element)); + CAN_EXPLODE_1X1(element) || + CAN_EXPLODE_3X3(element)); /* special case: sub-settings dependent from main setting */ if (CAN_EXPLODE_BY_FIRE(element)) @@ -3861,7 +4150,8 @@ static void CopyCustomElementPropertiesToEditor(int element) /* set change by player selectbox help value */ custom_element.change_player_action = - (HAS_CHANGE_EVENT(element, CE_PUSHED_BY_PLAYER) ? CE_PUSHED_BY_PLAYER : + (HAS_CHANGE_EVENT(element, CE_DROPPED_BY_PLAYER) ? CE_DROPPED_BY_PLAYER : + HAS_CHANGE_EVENT(element, CE_PUSHED_BY_PLAYER) ? CE_PUSHED_BY_PLAYER : HAS_CHANGE_EVENT(element, CE_PRESSED_BY_PLAYER) ? CE_PRESSED_BY_PLAYER : HAS_CHANGE_EVENT(element, CE_TOUCHED_BY_PLAYER) ? CE_TOUCHED_BY_PLAYER : custom_element.change_player_action); @@ -3875,7 +4165,8 @@ static void CopyCustomElementPropertiesToEditor(int element) /* set change by other element action selectbox help value */ custom_element.change_other_action = - (HAS_CHANGE_EVENT(element, CE_OTHER_GETS_COLLECTED) ? CE_OTHER_GETS_COLLECTED : + (HAS_CHANGE_EVENT(element, CE_OTHER_GETS_DROPPED) ? CE_OTHER_GETS_DROPPED : + HAS_CHANGE_EVENT(element, CE_OTHER_GETS_COLLECTED) ? CE_OTHER_GETS_COLLECTED : HAS_CHANGE_EVENT(element, CE_OTHER_GETS_PUSHED) ? CE_OTHER_GETS_PUSHED : HAS_CHANGE_EVENT(element, CE_OTHER_GETS_PRESSED) ? CE_OTHER_GETS_PRESSED : HAS_CHANGE_EVENT(element, CE_OTHER_GETS_TOUCHED) ? CE_OTHER_GETS_TOUCHED : @@ -3890,6 +4181,9 @@ static void CopyCustomElementPropertiesToGame(int element) int i; int access_type_and_layer; + /* mark that this custom element has been modified */ + custom_element.modified_settings = TRUE; + if (level.use_custom_template) { if (Request("Copy and modify level tem- plate ?", REQ_ASK)) @@ -3900,9 +4194,9 @@ static void CopyCustomElementPropertiesToGame(int element) } else { - LoadLevelTemplate(-1); + LoadLevelTemplate(-1); /* this resets all element modifications ... */ - DrawEditModeWindow(); + DrawEditModeWindow(); /* ... and copies them to 'custom_element' */ } } @@ -3925,7 +4219,8 @@ static void CopyCustomElementPropertiesToGame(int element) /* set walk-to-object property from checkbox and selectbox */ custom_element_properties[EP_DIGGABLE] = FALSE; - custom_element_properties[EP_COLLECTIBLE] = FALSE; + custom_element_properties[EP_COLLECTIBLE_ONLY] = FALSE; + custom_element_properties[EP_DROPPABLE] = FALSE; custom_element_properties[EP_PUSHABLE] = FALSE; custom_element_properties[custom_element.walk_to_action] = custom_element_properties[EP_WALK_TO_OBJECT]; @@ -3946,7 +4241,8 @@ static void CopyCustomElementPropertiesToGame(int element) /* set consistency property from checkbox and selectbox */ custom_element_properties[EP_INDESTRUCTIBLE] = FALSE; - custom_element_properties[EP_CAN_EXPLODE] = FALSE; + custom_element_properties[EP_CAN_EXPLODE_1X1] = FALSE; + custom_element_properties[EP_CAN_EXPLODE_3X3] = FALSE; custom_element_properties[EP_CAN_EXPLODE_BY_FIRE] = FALSE; custom_element_properties[EP_CAN_EXPLODE_SMASHED] = FALSE; custom_element_properties[EP_CAN_EXPLODE_IMPACT] = FALSE; @@ -3954,7 +4250,8 @@ static void CopyCustomElementPropertiesToGame(int element) custom_element_properties[EP_EXPLODE_RESULT]; /* special case: sub-settings dependent from main setting */ - if (custom_element_properties[EP_CAN_EXPLODE]) + if (custom_element_properties[EP_CAN_EXPLODE_3X3] || + custom_element_properties[EP_CAN_EXPLODE_1X1]) { custom_element_properties[EP_CAN_EXPLODE_BY_FIRE] = custom_element.can_explode_by_fire; @@ -3970,6 +4267,7 @@ static void CopyCustomElementPropertiesToGame(int element) custom_element_change_events[CE_TOUCHED_BY_PLAYER] = FALSE; custom_element_change_events[CE_PRESSED_BY_PLAYER] = FALSE; custom_element_change_events[CE_PUSHED_BY_PLAYER] = FALSE; + custom_element_change_events[CE_DROPPED_BY_PLAYER] = FALSE; custom_element_change_events[custom_element.change_player_action] = custom_element_change_events[CE_BY_PLAYER]; @@ -3988,6 +4286,7 @@ static void CopyCustomElementPropertiesToGame(int element) custom_element_change_events[CE_OTHER_GETS_PRESSED] = FALSE; custom_element_change_events[CE_OTHER_GETS_PUSHED] = FALSE; custom_element_change_events[CE_OTHER_GETS_COLLECTED] = FALSE; + custom_element_change_events[CE_OTHER_GETS_DROPPED] = FALSE; custom_element_change_events[custom_element.change_other_action] = custom_element_change_events[CE_BY_OTHER]; @@ -4187,15 +4486,7 @@ static void ModifyEditorSelectbox(int selectbox_id, int new_value) { int gadget_id = selectbox_info[selectbox_id].gadget_id; struct GadgetInfo *gi = level_editor_gadget[gadget_id]; - int new_index_value = 0; - int i; - - for(i=0; selectbox_info[selectbox_id].options[i].text != NULL; i++) - if (selectbox_info[selectbox_id].options[i].value == new_value) - new_index_value = i; - - *selectbox_info[selectbox_id].value = - selectbox_info[selectbox_id].options[new_index_value].value; + int new_index_value = SetSelectboxValue(selectbox_id, new_value); ModifyGadget(gi, GDI_SELECTBOX_INDEX, new_index_value, GDI_END); } @@ -4272,44 +4563,6 @@ static void DrawDrawingWindow() MapMainDrawingArea(); } -static void DrawElementBorder(int dest_x, int dest_y, int width, int height, - boolean input) -{ - int border_graphic = - (input ? IMG_EDITOR_ELEMENT_BORDER_INPUT : IMG_EDITOR_ELEMENT_BORDER); - Bitmap *src_bitmap; - int src_x, src_y; - int num_mini_tilex = width / MINI_TILEX + 1; - int num_mini_tiley = width / MINI_TILEY + 1; - int x, y; - - getMiniGraphicSource(border_graphic, &src_bitmap, &src_x, &src_y); - - for (y=0; y < num_mini_tiley; y++) - for (x=0; x < num_mini_tilex; x++) - BlitBitmap(src_bitmap, drawto, src_x, src_y, MINI_TILEX, MINI_TILEY, - dest_x - MINI_TILEX / 2 + x * MINI_TILEX, - dest_y - MINI_TILEY / 2 + y * MINI_TILEY); - - ClearRectangle(drawto, dest_x - 1, dest_y - 1, width + 2, height + 2); -} - -static void DrawRandomPlacementBackgroundArea() -{ - struct GadgetInfo *gi = level_editor_gadget[GADGET_ID_RANDOM_BACKGROUND]; -#if 0 - int area_x = ED_AREA_RANDOM_BACKGROUND_XPOS / MINI_TILEX; - int area_y = ED_AREA_RANDOM_BACKGROUND_YPOS / MINI_TILEY; - int area_sx = SX + ED_AREA_RANDOM_BACKGROUND_XPOS; - int area_sy = SY + ED_AREA_RANDOM_BACKGROUND_YPOS; -#endif - - DrawElementBorder(gi->x, gi->y, MINI_TILEX, MINI_TILEY, TRUE); - DrawMiniElement(gi->x, gi->y, random_placement_background_element); - - MapDrawingArea(ED_DRAWING_ID_RANDOM_BACKGROUND); -} - static void DrawLevelInfoWindow() { int i; @@ -4342,227 +4595,71 @@ static void DrawLevelInfoWindow() MapTextInputGadget(i); /* draw drawing area */ - DrawRandomPlacementBackgroundArea(); -} - -static void DrawAmoebaContentArea() -{ - int area_x = ED_AREA_ELEM_CONTENT_XPOS / MINI_TILEX; - int area_y = ED_AREA_ELEM_CONTENT_YPOS / MINI_TILEY; - int area_sx = SX + ED_AREA_ELEM_CONTENT_XPOS; - int area_sy = SY + ED_AREA_ELEM_CONTENT_YPOS; - - DrawElementBorder(area_sx, area_sy, MINI_TILEX, MINI_TILEY, TRUE); - DrawMiniElement(area_x, area_y, level.amoeba_content); - - DrawText(area_sx + TILEX, area_sy + 1, "Content of amoeba", FONT_TEXT_1); - - MapDrawingArea(ED_DRAWING_ID_AMOEBA_CONTENT); -} - -static void DrawCustomGraphicElementArea() -{ - struct GadgetInfo *gi = level_editor_gadget[GADGET_ID_CUSTOM_GRAPHIC]; -#if 0 - int xpos = ED_AREA_ELEM_CONTENT3_XPOS; - int ypos = ED_AREA_ELEM_CONTENT3_YPOS; - int area_sx = SX + xpos; - int area_sy = SY + ypos; -#endif - - if (!IS_CUSTOM_ELEMENT(properties_element)) - { - /* this should never happen */ - Error(ERR_WARN, "element %d is no custom element", properties_element); - - return; - } - - DrawElementBorder(gi->x, gi->y, MINI_TILEX, MINI_TILEY, TRUE); - DrawMiniGraphicExt(drawto, gi->x, gi->y, - el2edimg(custom_element.gfx_element)); - - MapDrawingArea(ED_DRAWING_ID_CUSTOM_GRAPHIC); + MapDrawingArea(ED_DRAWING_ID_RANDOM_BACKGROUND); } static void DrawCustomContentArea() { - struct GadgetInfo *gi = level_editor_gadget[GADGET_ID_CUSTOM_CONTENT]; -#if 0 - int area_sx = SX + ED_AREA_ELEM_CONTENT4_XPOS; - int area_sy = SY + ED_AREA_ELEM_CONTENT4_YPOS; -#endif + int id = ED_DRAWING_ID_CUSTOM_CONTENT; + struct GadgetInfo *gi = level_editor_gadget[drawingarea_info[id].gadget_id]; int x1 = right_gadget_border[GADGET_ID_CUSTOM_DEADLINESS]; int x2 = right_gadget_border[GADGET_ID_CUSTOM_CONSISTENCY]; int x3 = right_gadget_border[GADGET_ID_CUSTOM_EXPLODE_IMPACT]; - int xoffset = ED_GADGET_TEXT_DISTANCE + MINI_TILEX / 2; - int x, y; - - if (!IS_CUSTOM_ELEMENT(properties_element)) - { - /* this should never happen */ - Error(ERR_WARN, "element %d is no custom element", properties_element); + int xoffset = ED_DRAWINGAREA_TEXT_DISTANCE; - return; - } + /* add distance for potential left text (without drawing area border) */ + x2 += getTextWidthForGadget(drawingarea_info[id].text_left); ModifyGadget(gi, GDI_X, MAX(x1, MAX(x2, x3)) + xoffset, GDI_END); - DrawElementBorder(gi->x, gi->y, 3 * MINI_TILEX, 3 * MINI_TILEY, TRUE); - - for (y=0; y<3; y++) - for (x=0; x<3; x++) - DrawMiniGraphicExt(drawto, gi->x + x * MINI_TILEX,gi->y + y * MINI_TILEY, - el2edimg(custom_element.content[x][y])); - MapDrawingArea(ED_DRAWING_ID_CUSTOM_CONTENT); } -static void DrawCustomChangeTargetArea() -{ - int id = ED_DRAWING_ID_CUSTOM_CHANGE_TARGET; - int gadget_id = drawingarea_info[id].gadget_id; - struct GadgetInfo *gi = level_editor_gadget[gadget_id]; -#if 0 - int xpos = ED_AREA_ELEM_CONTENT2_XPOS; - int ypos = ED_AREA_ELEM_CONTENT2_YPOS; - int area_sx = SX + xpos; - int area_sy = SY + ypos; -#endif - int xoffset_left = 0; - int yoffset_left = ED_BORDER_AREA_YSIZE; - int xoffset_right = ED_GADGET_TEXT_DISTANCE + MINI_TILEX / 2; - int yoffset_right = ED_BORDER_AREA_YSIZE; - int x = drawingarea_info[id].x + xoffset_left; - int y = drawingarea_info[id].y + yoffset_left; - - if (!IS_CUSTOM_ELEMENT(properties_element)) - { - /* this should never happen */ - Error(ERR_WARN, "element %d is no custom element", properties_element); - - return; - } - - DrawElementBorder(gi->x, gi->y, MINI_TILEX, MINI_TILEY, TRUE); - DrawMiniGraphicExt(drawto, gi->x, gi->y, - el2edimg(custom_element.change.target_element)); - - MapDrawingArea(ED_DRAWING_ID_CUSTOM_CHANGE_TARGET); - - if (drawingarea_info[id].text_left) - DrawTextF(x, y, FONT_TEXT_1, drawingarea_info[id].text_left); - - if (drawingarea_info[id].text_right) - { - x = gi->x + gi->width + xoffset_right; - y = SY + drawingarea_info[id].y + yoffset_right; - - DrawText(x, y, drawingarea_info[id].text_right, FONT_TEXT_1); - } -} - static void DrawCustomChangeContentArea() { - struct GadgetInfo *gi = level_editor_gadget[GADGET_ID_CUSTOM_CHANGE_CONTENT]; -#if 0 - int area_sx = SX + ED_AREA_ELEM_CONTENT6_XPOS; - int area_sy = SY + ED_AREA_ELEM_CONTENT6_YPOS; -#endif + int id = ED_DRAWING_ID_CUSTOM_CHANGE_CONTENT; + struct GadgetInfo *gi = level_editor_gadget[drawingarea_info[id].gadget_id]; int x1 = right_gadget_border[GADGET_ID_CHANGE_USE_CONTENT]; int x2 = right_gadget_border[GADGET_ID_CHANGE_POWER]; int x3 = right_gadget_border[GADGET_ID_CHANGE_ONLY_COMPLETE]; - int xoffset = ED_GADGET_TEXT_DISTANCE + MINI_TILEX / 2; - int x, y; - - if (!IS_CUSTOM_ELEMENT(properties_element)) - { - /* this should never happen */ - Error(ERR_WARN, "element %d is no custom element", properties_element); - - return; - } + int xoffset = ED_DRAWINGAREA_TEXT_DISTANCE; ModifyGadget(gi, GDI_X, MAX(x1, MAX(x2, x3)) + xoffset, GDI_END); - DrawElementBorder(gi->x, gi->y, 3 * MINI_TILEX, 3 * MINI_TILEY, TRUE); - - for (y=0; y<3; y++) - for (x=0; x<3; x++) - DrawMiniGraphicExt(drawto, gi->x + x * MINI_TILEX,gi->y + y * MINI_TILEY, - el2edimg(custom_element.change.content[x][y])); - - MapDrawingArea(ED_DRAWING_ID_CUSTOM_CHANGE_CONTENT); -} - -static void DrawCustomChangeTriggerArea() -{ - struct GadgetInfo *gi = level_editor_gadget[GADGET_ID_CUSTOM_CHANGE_TRIGGER]; -#if 0 - int xpos = ED_AREA_ELEM_CONTENT5_XPOS; - int ypos = ED_AREA_ELEM_CONTENT5_YPOS; - int area_sx = SX + xpos; - int area_sy = SY + ypos; -#endif - - if (!IS_CUSTOM_ELEMENT(properties_element)) - { - /* this should never happen */ - Error(ERR_WARN, "element %d is no custom element", properties_element); - - return; - } - - DrawElementBorder(gi->x, gi->y, MINI_TILEX, MINI_TILEY, TRUE); - DrawMiniGraphicExt(drawto, gi->x, gi->y, - el2edimg(custom_element.change.trigger_element)); - - MapDrawingArea(ED_DRAWING_ID_CUSTOM_CHANGE_TRIGGER); + MapDrawingArea(id); } static void DrawElementContentAreas() { - int area_x = ED_AREA_ELEM_CONTENT_XPOS / MINI_TILEX; - int area_y = ED_AREA_ELEM_CONTENT_YPOS / MINI_TILEY; - int area_sx = SX + ED_AREA_ELEM_CONTENT_XPOS; - int area_sy = SY + ED_AREA_ELEM_CONTENT_YPOS; - int i, x, y; - - for (i=0; idynamite = 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 diff --git a/src/files.c b/src/files.c index bd2539b8..358333a4 100644 --- a/src/files.c +++ b/src/files.c @@ -116,8 +116,8 @@ static void setLevelInfoToDefaults(struct LevelInfo *level) element_info[element].use_gfx_element = FALSE; element_info[element].gfx_element = EL_EMPTY_SPACE; - element_info[element].score = 0; - element_info[element].gem_count = 0; + element_info[element].collect_score = 10; /* special default */ + element_info[element].collect_count = 1; /* special default */ element_info[element].push_delay_fixed = 2; /* special default */ element_info[element].push_delay_random = 8; /* special default */ @@ -171,6 +171,8 @@ static void setLevelInfoToDefaults(struct LevelInfo *level) /* start with no properties at all */ for (j=0; j < NUM_EP_BITFIELDS; j++) Properties[element][j] = EP_BITMASK_DEFAULT; + + element_info[element].modified_settings = FALSE; } BorderElement = EL_STEELWALL; @@ -496,8 +498,8 @@ static int LoadLevel_CUS3(FILE *file, int chunk_size, struct LevelInfo *level) element_info[element].gfx_element = checkLevelElement(getFile16BitBE(file)); - element_info[element].score = getFile8Bit(file); - element_info[element].gem_count = getFile8Bit(file); + element_info[element].collect_score = getFile8Bit(file); + element_info[element].collect_count = getFile8Bit(file); element_info[element].push_delay_fixed = getFile16BitBE(file); element_info[element].push_delay_random = getFile16BitBE(file); @@ -542,6 +544,9 @@ static int LoadLevel_CUS3(FILE *file, int chunk_size, struct LevelInfo *level) /* some free bytes for future properties and padding */ ReadUnusedBytesFromFile(file, LEVEL_CPART_CUS3_UNUSED); + + /* mark that this custom element has been modified */ + element_info[element].modified_settings = TRUE; } return chunk_size; @@ -1007,7 +1012,7 @@ static void SaveLevel_CUS3(FILE *file, struct LevelInfo *level, { int element = EL_CUSTOM_START + i; - if (Properties[element][EP_BITFIELD_BASE] != EP_BITMASK_DEFAULT) + if (element_info[element].modified_settings) { if (check < num_changed_custom_elements) { @@ -1024,8 +1029,8 @@ static void SaveLevel_CUS3(FILE *file, struct LevelInfo *level, putFile8Bit(file, element_info[element].use_gfx_element); putFile16BitBE(file, element_info[element].gfx_element); - putFile8Bit(file, element_info[element].score); - putFile8Bit(file, element_info[element].gem_count); + putFile8Bit(file, element_info[element].collect_score); + putFile8Bit(file, element_info[element].collect_count); putFile16BitBE(file, element_info[element].push_delay_fixed); putFile16BitBE(file, element_info[element].push_delay_random); @@ -1119,7 +1124,7 @@ static void SaveLevelFromFilename(struct LevelInfo *level, char *filename) /* check for non-standard custom elements and calculate "CUS3" chunk size */ for (i=0; i < NUM_CUSTOM_ELEMENTS; i++) - if (Properties[EL_CUSTOM_START +i][EP_BITFIELD_BASE] != EP_BITMASK_DEFAULT) + if (element_info[EL_CUSTOM_START + i].modified_settings) num_changed_custom_elements++; level_chunk_CUS3_size = LEVEL_CHUNK_CUS3_SIZE(num_changed_custom_elements); @@ -1886,6 +1891,7 @@ static struct TokenInfo editor_setup_tokens[] = { TYPE_SWITCH, &sei.el_dx_boulderdash,"editor.el_dx_boulderdash" }, { TYPE_SWITCH, &sei.el_chars, "editor.el_chars" }, { TYPE_SWITCH, &sei.el_custom, "editor.el_custom" }, + { TYPE_SWITCH, &sei.el_custom_more, "editor.el_custom_more" }, }; static struct TokenInfo shortcut_setup_tokens[] = @@ -1965,9 +1971,9 @@ static void setSetupInfoToDefaults(struct SetupInfo *si) si->fullscreen = FALSE; si->ask_on_escape = TRUE; - si->graphics_set = getStringCopy(GRAPHICS_SUBDIR); - si->sounds_set = getStringCopy(SOUNDS_SUBDIR); - si->music_set = getStringCopy(MUSIC_SUBDIR); + si->graphics_set = getStringCopy(GFX_CLASSIC_SUBDIR); + si->sounds_set = getStringCopy(SND_CLASSIC_SUBDIR); + si->music_set = getStringCopy(MUS_CLASSIC_SUBDIR); si->override_level_graphics = FALSE; si->override_level_sounds = FALSE; si->override_level_music = FALSE; @@ -1981,6 +1987,7 @@ static void setSetupInfoToDefaults(struct SetupInfo *si) si->editor.el_dx_boulderdash = TRUE; si->editor.el_chars = TRUE; si->editor.el_custom = TRUE; + si->editor.el_custom_more = FALSE; si->shortcut.save_game = DEFAULT_KEY_SAVE_GAME; si->shortcut.load_game = DEFAULT_KEY_LOAD_GAME; diff --git a/src/game.c b/src/game.c index a9256de7..1aef43ab 100644 --- a/src/game.c +++ b/src/game.c @@ -398,9 +398,9 @@ move_stepsize_list[] = struct { int element; - int gem_count; + int count; } -gem_count_list[] = +collect_count_list[] = { { EL_EMERALD, 1 }, { EL_BD_DIAMOND, 1 }, @@ -427,7 +427,7 @@ static unsigned long trigger_events[MAX_NUM_ELEMENTS]; void GetPlayerConfig() { if (!audio.sound_available) - setup.sound = FALSE; + setup.sound_simple = FALSE; if (!audio.loops_available) setup.sound_loops = FALSE; @@ -438,7 +438,7 @@ void GetPlayerConfig() if (!video.fullscreen_available) setup.fullscreen = FALSE; - setup.sound_simple = setup.sound; + setup.sound = (setup.sound_simple || setup.sound_loops || setup.sound_music); SetAudioMode(setup.sound); InitJoysticks(); @@ -495,62 +495,71 @@ static int getBeltDirFromBeltSwitchElement(int element) return belt_move_dir[belt_dir_nr]; } -static void InitField(int x, int y, boolean init_game) +static void InitPlayerField(int x, int y, int element, boolean init_game) { - int element = Feld[x][y]; - - switch (element) + if (element == EL_SP_MURPHY) { - case EL_SP_MURPHY: - if (init_game) + if (init_game) + { + if (stored_player[0].present) { - if (stored_player[0].present) - { - Feld[x][y] = EL_SP_MURPHY_CLONE; - break; - } - else - { - stored_player[0].use_murphy_graphic = TRUE; - } + Feld[x][y] = EL_SP_MURPHY_CLONE; - Feld[x][y] = EL_PLAYER_1; + return; } - /* no break! */ - case EL_PLAYER_1: - case EL_PLAYER_2: - case EL_PLAYER_3: - case EL_PLAYER_4: - if (init_game) + else { - struct PlayerInfo *player = &stored_player[Feld[x][y] - EL_PLAYER_1]; - int jx = player->jx, jy = player->jy; + stored_player[0].use_murphy_graphic = TRUE; + } - player->present = TRUE; + Feld[x][y] = EL_PLAYER_1; + } + } - if (!options.network || player->connected) - { - player->active = TRUE; + if (init_game) + { + struct PlayerInfo *player = &stored_player[Feld[x][y] - EL_PLAYER_1]; + int jx = player->jx, jy = player->jy; - /* remove potentially duplicate players */ - if (StorePlayer[jx][jy] == Feld[x][y]) - StorePlayer[jx][jy] = 0; + player->present = TRUE; - StorePlayer[x][y] = Feld[x][y]; + if (!options.network || player->connected) + { + player->active = TRUE; - if (options.debug) - { - printf("Player %d activated.\n", player->element_nr); - printf("[Local player is %d and currently %s.]\n", - local_player->element_nr, - local_player->active ? "active" : "not active"); - } - } + /* remove potentially duplicate players */ + if (StorePlayer[jx][jy] == Feld[x][y]) + StorePlayer[jx][jy] = 0; - Feld[x][y] = EL_EMPTY; - player->jx = player->last_jx = x; - player->jy = player->last_jy = y; + StorePlayer[x][y] = Feld[x][y]; + + if (options.debug) + { + printf("Player %d activated.\n", player->element_nr); + printf("[Local player is %d and currently %s.]\n", + local_player->element_nr, + local_player->active ? "active" : "not active"); } + } + + Feld[x][y] = EL_EMPTY; + player->jx = player->last_jx = x; + player->jy = player->last_jy = y; + } +} + +static void InitField(int x, int y, boolean init_game) +{ + int element = Feld[x][y]; + + switch (element) + { + case EL_SP_MURPHY: + case EL_PLAYER_1: + case EL_PLAYER_2: + case EL_PLAYER_3: + case EL_PLAYER_4: + InitPlayerField(x, y, element, init_game); break; case EL_STONEBLOCK: @@ -715,7 +724,7 @@ void DrawGameDoorValues() DrawText(DX + XX_EMERALDS, DY + YY_EMERALDS, int2str(local_player->gems_still_needed, 3), FONT_TEXT_2); DrawText(DX + XX_DYNAMITE, DY + YY_DYNAMITE, - int2str(local_player->dynamite, 3), FONT_TEXT_2); + int2str(local_player->inventory_size, 3), FONT_TEXT_2); DrawText(DX + XX_SCORE, DY + YY_SCORE, int2str(local_player->score, 5), FONT_TEXT_2); DrawText(DX + XX_TIME, DY + YY_TIME, @@ -890,12 +899,12 @@ static void InitGameEngine() /* initialize gem count values for each element */ for (i=0; ikey[j] = FALSE; - player->dynamite = 0; player->dynabomb_count = 0; player->dynabomb_size = 1; player->dynabombs_left = 0; @@ -994,6 +1002,8 @@ void InitGame() player->shield_normal_time_left = 0; player->shield_deadly_time_left = 0; + player->inventory_size = 0; + DigField(player, 0, 0, 0, 0, DF_NO_PUSH); SnapField(player, 0, 0); @@ -1206,16 +1216,101 @@ void InitGame() if (lev_fieldy + (SBY_Upper == -1 ? 2 : 0) <= SCR_FIELDY) SBY_Upper = SBY_Lower = -1 * (SCR_FIELDY - lev_fieldy) / 2; - scroll_x = SBX_Left; - scroll_y = SBY_Upper; - if (local_player->jx >= SBX_Left + MIDPOSX) - scroll_x = (local_player->jx <= SBX_Right + MIDPOSX ? - local_player->jx - MIDPOSX : - SBX_Right); - if (local_player->jy >= SBY_Upper + MIDPOSY) - scroll_y = (local_player->jy <= SBY_Lower + MIDPOSY ? - local_player->jy - MIDPOSY : - SBY_Lower); + /* if local player not found, look for custom element that might create + the player (make some assumptions about the right custom element) */ + if (!local_player->present) + { + int start_x = 0, start_y = 0; + int found_rating = 0; + int found_element = EL_UNDEFINED; + + for(y=0; y < lev_fieldy; y++) for(x=0; x < lev_fieldx; x++) + { + int element = Feld[x][y]; + int content; + int xx, yy; + boolean is_player; + + if (!IS_CUSTOM_ELEMENT(element)) + continue; + + if (CAN_CHANGE(element)) + { + content = element_info[element].change.target_element; + is_player = ELEM_IS_PLAYER(content); + + if (is_player && (found_rating < 3 || element < found_element)) + { + start_x = x; + start_y = y; + + found_rating = 3; + found_element = element; + } + } + + for(yy=0; yy < 3; yy++) for(xx=0; xx < 3; xx++) + { + content = element_info[element].content[xx][yy]; + is_player = ELEM_IS_PLAYER(content); + + if (is_player && (found_rating < 2 || element < found_element)) + { + start_x = x + xx - 1; + start_y = y + yy - 1; + + found_rating = 2; + found_element = element; + } + + if (!CAN_CHANGE(element)) + continue; + + content = element_info[element].change.content[xx][yy]; + is_player = ELEM_IS_PLAYER(content); + + if (is_player && (found_rating < 1 || element < found_element)) + { + start_x = x + xx - 1; + start_y = y + yy - 1; + + found_rating = 1; + found_element = element; + } + } + } + + scroll_x = (start_x < SBX_Left + MIDPOSX ? SBX_Left : + start_x > SBX_Right + MIDPOSX ? SBX_Right : + start_x - MIDPOSX); + + scroll_y = (start_y < SBY_Upper + MIDPOSY ? SBY_Upper : + start_y > SBY_Lower + MIDPOSY ? SBY_Lower : + start_y - MIDPOSY); + } + else + { +#if 1 + scroll_x = (local_player->jx < SBX_Left + MIDPOSX ? SBX_Left : + local_player->jx > SBX_Right + MIDPOSX ? SBX_Right : + local_player->jx - MIDPOSX); + + scroll_y = (local_player->jy < SBY_Upper + MIDPOSY ? SBY_Upper : + local_player->jy > SBY_Lower + MIDPOSY ? SBY_Lower : + local_player->jy - MIDPOSY); +#else + scroll_x = SBX_Left; + scroll_y = SBY_Upper; + if (local_player->jx >= SBX_Left + MIDPOSX) + scroll_x = (local_player->jx <= SBX_Right + MIDPOSX ? + local_player->jx - MIDPOSX : + SBX_Right); + if (local_player->jy >= SBY_Upper + MIDPOSY) + scroll_y = (local_player->jy <= SBY_Lower + MIDPOSY ? + local_player->jy - MIDPOSY : + SBY_Lower); +#endif + } CloseDoor(DOOR_CLOSE_1); @@ -1862,6 +1957,68 @@ void CheckDynamite(int x, int y) Bang(x, y); } +void RelocatePlayer(int x, int y, int element) +{ + struct PlayerInfo *player = &stored_player[element - EL_PLAYER_1]; + + if (player->present) + { + while (player->MovPos) + { + ScrollFigure(player, SCROLL_GO_ON); + ScrollScreen(NULL, SCROLL_GO_ON); + FrameCounter++; + DrawAllPlayers(); + BackToFront(); + } + + RemoveField(player->jx, player->jy); + DrawLevelField(player->jx, player->jy); + } + + InitPlayerField(x, y, element, TRUE); + + if (player == local_player) + { + int scroll_xx = -999, scroll_yy = -999; + + while (scroll_xx != scroll_x || scroll_yy != scroll_y) + { + int dx = 0, dy = 0; + int fx = FX, fy = FY; + + scroll_xx = (local_player->jx < SBX_Left + MIDPOSX ? SBX_Left : + local_player->jx > SBX_Right + MIDPOSX ? SBX_Right : + local_player->jx - MIDPOSX); + + scroll_yy = (local_player->jy < SBY_Upper + MIDPOSY ? SBY_Upper : + local_player->jy > SBY_Lower + MIDPOSY ? SBY_Lower : + local_player->jy - MIDPOSY); + + dx = (scroll_xx < scroll_x ? +1 : scroll_xx > scroll_x ? -1 : 0); + dy = (scroll_yy < scroll_y ? +1 : scroll_yy > scroll_y ? -1 : 0); + + scroll_x -= dx; + scroll_y -= dy; + + fx += dx * TILEX / 2; + fy += dy * TILEY / 2; + + ScrollLevel(dx, dy); + DrawAllPlayers(); + + /* scroll in to steps of half tile size to make things smoother */ + BlitBitmap(drawto_field, window, fx, fy, SXSIZE, SYSIZE, SX, SY); + FlushDisplay(); + Delay(GAME_FRAME_DELAY); + + /* scroll second step to align at full tile size */ + BackToFront(); + Delay(GAME_FRAME_DELAY); + } + } +} + void Explode(int ex, int ey, int phase, int mode) { int x, y; @@ -2038,7 +2195,7 @@ void Explode(int ex, int ey, int phase, int mode) Store[x][y] = EL_PEARL; else if (element == EL_WALL_CRYSTAL) Store[x][y] = EL_CRYSTAL; - else if (IS_CUSTOM_ELEMENT(element)) + else if (IS_CUSTOM_ELEMENT(element) && !CAN_EXPLODE(element)) Store[x][y] = element_info[element].content[1][1]; else Store[x][y] = EL_EMPTY; @@ -2141,6 +2298,9 @@ void Explode(int ex, int ey, int phase, int mode) if (IS_PLAYER(x, y) && !PLAYERINFO(x,y)->present) StorePlayer[x][y] = 0; + + if (ELEM_IS_PLAYER(element)) + RelocatePlayer(x, y, element); } else if (phase >= delay && IN_SCR_FIELD(SCREENX(x), SCREENY(y))) { @@ -2289,7 +2449,10 @@ void Bang(int x, int y) Explode(x, y, EX_PHASE_START, EX_CENTER); break; default: - Explode(x, y, EX_PHASE_START, EX_NORMAL); + if (CAN_EXPLODE_1X1(element)) + Explode(x, y, EX_PHASE_START, EX_CENTER); + else + Explode(x, y, EX_PHASE_START, EX_NORMAL); break; } @@ -2683,7 +2846,9 @@ void Impact(int x, int y) return; } - if (impact) + /* only reset graphic animation if graphic really changes after impact */ + if (impact && + el_act_dir2img(element, GfxAction[x][y], MV_DOWN) != el2img(element)) { ResetGfxAnimation(x, y); DrawLevelField(x, y); @@ -5145,11 +5310,13 @@ static void ChangeActiveTrap(int x, int y) static void ChangeElementNowExt(int x, int y, int target_element) { +#if 0 /* !!! let the player exacpe from a suddenly unaccessible element */ if (IS_PLAYER(x, y) && !IS_ACCESSIBLE(target_element)) { Bang(x, y); return; } +#endif RemoveField(x, y); Feld[x][y] = target_element; @@ -5169,6 +5336,9 @@ static void ChangeElementNowExt(int x, int y, int target_element) TestIfBadThingTouchesHero(x, y); TestIfPlayerTouchesCustomElement(x, y); TestIfElementTouchesCustomElement(x, y); + + if (ELEM_IS_PLAYER(target_element)) + RelocatePlayer(x, y, target_element); } static void ChangeElementNow(int x, int y, int element) @@ -5414,7 +5584,7 @@ static void PlayerActions(struct PlayerInfo *player, byte player_action) { static byte stored_player_action[MAX_PLAYERS]; static int num_stored_actions = 0; - boolean moved = FALSE, snapped = FALSE, bombed = FALSE; + boolean moved = FALSE, snapped = FALSE, dropped = FALSE; int left = player_action & JOY_LEFT; int right = player_action & JOY_RIGHT; int up = player_action & JOY_UP; @@ -5437,13 +5607,14 @@ static void PlayerActions(struct PlayerInfo *player, byte player_action) else { if (button2) - bombed = PlaceBomb(player); + dropped = DropElement(player); + moved = MoveFigure(player, dx, dy); } if (tape.single_step && tape.recording && !tape.pausing) { - if (button1 || (bombed && !moved)) + if (button1 || (dropped && !moved)) { TapeTogglePause(TAPE_TOGGLE_AUTOMATIC); SnapField(player, 0, 0); /* stop snapping */ @@ -6061,24 +6232,24 @@ void ScrollLevel(int dx, int dy) int x, y; BlitBitmap(drawto_field, drawto_field, - FX + TILEX*(dx == -1) - softscroll_offset, - FY + TILEY*(dy == -1) - softscroll_offset, - SXSIZE - TILEX*(dx!=0) + 2*softscroll_offset, - SYSIZE - TILEY*(dy!=0) + 2*softscroll_offset, - FX + TILEX*(dx == 1) - softscroll_offset, - FY + TILEY*(dy == 1) - softscroll_offset); + FX + TILEX * (dx == -1) - softscroll_offset, + FY + TILEY * (dy == -1) - softscroll_offset, + SXSIZE - TILEX * (dx!=0) + 2 * softscroll_offset, + SYSIZE - TILEY * (dy!=0) + 2 * softscroll_offset, + FX + TILEX * (dx == 1) - softscroll_offset, + FY + TILEY * (dy == 1) - softscroll_offset); if (dx) { x = (dx == 1 ? BX1 : BX2); - for (y=BY1; y<=BY2; y++) + for (y=BY1; y <= BY2; y++) DrawScreenField(x, y); } if (dy) { y = (dy == 1 ? BY1 : BY2); - for (x=BX1; x<=BX2; x++) + for (x=BX1; x <= BX2; x++) DrawScreenField(x, y); } @@ -6415,6 +6586,7 @@ void ScrollFigure(struct PlayerInfo *player, int mode) if (Feld[jx][jy] == EL_EXIT_OPEN || Feld[jx][jy] == EL_SP_EXIT_OPEN) { + DrawPlayer(player); /* needed here only to cleanup last field */ RemoveHero(player); if (local_player->friends_still_needed == 0 || @@ -6466,11 +6638,9 @@ void TestIfPlayerTouchesCustomElement(int x, int y) { +1, 0 }, { 0, +1 } }; - boolean center_is_player = (IS_PLAYER(x, y)); int i; - /* prevent TestIfPlayerTouchesCustomElement() from looping */ - if (check_changing) + if (check_changing) /* prevent this function from running into a loop */ return; check_changing = TRUE; @@ -6483,7 +6653,7 @@ void TestIfPlayerTouchesCustomElement(int x, int y) if (!IN_LEV_FIELD(xx, yy)) continue; - if (center_is_player) + if (IS_PLAYER(x, y)) { CheckTriggeredElementChange(xx, yy, Feld[xx][yy], CE_OTHER_GETS_TOUCHED); CheckElementChange(xx, yy, Feld[xx][yy], CE_TOUCHED_BY_PLAYER); @@ -6510,11 +6680,11 @@ void TestIfElementTouchesCustomElement(int x, int y) { +1, 0 }, { 0, +1 } }; - boolean center_is_custom = (IS_CUSTOM_ELEMENT(Feld[x][y])); + boolean change_center_element = FALSE; + int center_element = Feld[x][y]; int i; - /* prevent TestIfElementTouchesCustomElement() from looping */ - if (check_changing) + if (check_changing) /* prevent this function from running into a loop */ return; check_changing = TRUE; @@ -6523,23 +6693,27 @@ void TestIfElementTouchesCustomElement(int x, int y) { int xx = x + xy[i][0]; int yy = y + xy[i][1]; + int border_element; if (!IN_LEV_FIELD(xx, yy)) continue; - if (center_is_custom && - Feld[xx][yy] == element_info[Feld[x][y]].change.trigger_element) - { - CheckElementChange(x, y, Feld[x][y], CE_OTHER_IS_TOUCHING); - } + border_element = Feld[xx][yy]; - if (IS_CUSTOM_ELEMENT(Feld[xx][yy]) && - Feld[x][y] == element_info[Feld[xx][yy]].change.trigger_element) - { - CheckElementChange(xx, yy, Feld[xx][yy], CE_OTHER_IS_TOUCHING); - } + /* check for change of center element (but change it only once) */ + if (IS_CUSTOM_ELEMENT(center_element) && + border_element == element_info[center_element].change.trigger_element) + change_center_element = TRUE; + + /* check for change of border element */ + if (IS_CUSTOM_ELEMENT(border_element) && + center_element == element_info[border_element].change.trigger_element) + CheckElementChange(xx, yy, border_element, CE_OTHER_IS_TOUCHING); } + if (change_center_element) + CheckElementChange(x, y, center_element, CE_OTHER_IS_TOUCHING); + check_changing = FALSE; } @@ -7255,11 +7429,13 @@ int DigField(struct PlayerInfo *player, } else if (element == EL_DYNAMITE || element == EL_SP_DISK_RED) { - player->dynamite++; + if (player->inventory_size < MAX_INVENTORY_SIZE) + player->inventory_element[player->inventory_size++] = element; + player->use_disk_red_graphic = (element == EL_SP_DISK_RED); DrawText(DX_DYNAMITE, DY_DYNAMITE, - int2str(local_player->dynamite, 3), FONT_TEXT_2); + int2str(local_player->inventory_size, 3), FONT_TEXT_2); } else if (element == EL_DYNABOMB_INCREASE_NUMBER) { @@ -7286,10 +7462,21 @@ int DigField(struct PlayerInfo *player, el2edimg(EL_KEY_1 + key_nr)); redraw_mask |= REDRAW_DOOR_1; } - else if (element_info[element].gem_count > 0) + else if (IS_DROPPABLE(element)) /* can be collected and dropped */ + { + int i; + + for (i=0; i < element_info[element].collect_count; i++) + if (player->inventory_size < MAX_INVENTORY_SIZE) + player->inventory_element[player->inventory_size++] = element; + + DrawText(DX_DYNAMITE, DY_DYNAMITE, + int2str(local_player->inventory_size, 3), FONT_TEXT_2); + } + else if (element_info[element].collect_count > 0) { local_player->gems_still_needed -= - element_info[element].gem_count; + element_info[element].collect_count; if (local_player->gems_still_needed < 0) local_player->gems_still_needed = 0; @@ -7465,66 +7652,68 @@ boolean SnapField(struct PlayerInfo *player, int dx, int dy) return TRUE; } -boolean PlaceBomb(struct PlayerInfo *player) +boolean DropElement(struct PlayerInfo *player) { int jx = player->jx, jy = player->jy; - int element; + int old_element; if (!player->active || player->MovPos) return FALSE; - element = Feld[jx][jy]; + old_element = Feld[jx][jy]; - if ((player->dynamite == 0 && player->dynabombs_left == 0) || - IS_ACTIVE_BOMB(element) || element == EL_EXPLOSION) + /* check if player has anything that can be dropped */ + if (player->inventory_size == 0 && player->dynabombs_left == 0) return FALSE; -#if 0 - if (element != EL_EMPTY) + /* check if anything can be dropped at the current position */ + if (IS_ACTIVE_BOMB(old_element) || old_element == EL_EXPLOSION) return FALSE; -#endif - if (element != EL_EMPTY) - { -#if 0 - Store[jx][jy] = element; -#else - Back[jx][jy] = element; -#endif - } + /* collected custom elements can only be dropped on empty fields */ + if (player->inventory_size > 0 && + IS_CUSTOM_ELEMENT(player->inventory_element[player->inventory_size - 1]) + && old_element != EL_EMPTY) + return FALSE; + + if (old_element != EL_EMPTY) + Back[jx][jy] = old_element; /* store old element on this field */ MovDelay[jx][jy] = 96; ResetGfxAnimation(jx, jy); ResetRandomAnimationValue(jx, jy); - if (player->dynamite) + if (player->inventory_size > 0) { + int new_element = player->inventory_element[--player->inventory_size]; + +#if 1 + Feld[jx][jy] = (new_element == EL_DYNAMITE ? EL_DYNAMITE_ACTIVE : + new_element == EL_SP_DISK_RED ? EL_SP_DISK_RED_ACTIVE : + new_element); +#else Feld[jx][jy] = (player->use_disk_red_graphic ? EL_SP_DISK_RED_ACTIVE : EL_DYNAMITE_ACTIVE); - player->dynamite--; +#endif + + DrawText(DX_DYNAMITE, DY_DYNAMITE, + int2str(local_player->inventory_size, 3), FONT_TEXT_2); - DrawText(DX_DYNAMITE, DY_DYNAMITE, int2str(local_player->dynamite, 3), - FONT_TEXT_2); if (IN_SCR_FIELD(SCREENX(jx), SCREENY(jy))) - { -#if 1 DrawGraphicThruMask(SCREENX(jx), SCREENY(jy), el2img(Feld[jx][jy]), 0); -#else - if (game.emulation == EMU_SUPAPLEX) - DrawGraphic(SCREENX(jx), SCREENY(jy), IMG_SP_DISK_RED, 0); - else - DrawGraphicThruMask(SCREENX(jx), SCREENY(jy), IMG_DYNAMITE_ACTIVE, 0); -#endif - } PlaySoundLevelAction(jx, jy, ACTION_DROPPING); + + CheckTriggeredElementChange(jx, jy, new_element, CE_OTHER_GETS_DROPPED); + CheckElementChange(jx, jy, new_element, CE_DROPPED_BY_PLAYER); } - else + else /* player is dropping a dyna bomb */ { + player->dynabombs_left--; + Feld[jx][jy] = EL_DYNABOMB_PLAYER_1_ACTIVE + (player->element_nr - EL_PLAYER_1); - player->dynabombs_left--; if (IN_SCR_FIELD(SCREENX(jx), SCREENY(jy))) DrawGraphicThruMask(SCREENX(jx), SCREENY(jy), el2img(Feld[jx][jy]), 0); @@ -7710,7 +7899,7 @@ void RaiseScoreElement(int element) RaiseScore(level.score[SC_KEY]); break; default: - RaiseScore(element_info[element].score); + RaiseScore(element_info[element].collect_score); break; } } diff --git a/src/game.h b/src/game.h index 01209d95..6c6ea57b 100644 --- a/src/game.h +++ b/src/game.h @@ -95,7 +95,7 @@ void BuryHero(struct PlayerInfo *); void RemoveHero(struct PlayerInfo *); int DigField(struct PlayerInfo *, int, int, int, int, int); boolean SnapField(struct PlayerInfo *, int, int); -boolean PlaceBomb(struct PlayerInfo *); +boolean DropElement(struct PlayerInfo *); void InitPlaySoundLevel(); diff --git a/src/init.c b/src/init.c index 79a67d1e..2403d415 100644 --- a/src/init.c +++ b/src/init.c @@ -548,6 +548,34 @@ void InitElementGraphicInfo() } } +#if 1 + /* now set all undefined/invalid graphics to -1 to set to default after it */ + for (i=0; i= 0 && special < NUM_SPECIAL_GFX_ARGS) element_info[element].special_graphic[special] = graphic; } + +#if 1 + /* now set all undefined/invalid graphics to default */ + for (i=0; i < MAX_NUM_ELEMENTS; i++) + for (j=0; j < NUM_SPECIAL_GFX_ARGS; j++) + if (graphic_info[element_info[i].special_graphic[j]].bitmap == NULL) + element_info[i].special_graphic[j] = + element_info[i].graphic[ACTION_DEFAULT]; +#endif } static int get_element_from_token(char *token) @@ -879,7 +916,7 @@ static void InitGraphicInfo() int first_frame, last_frame; #if 0 - printf("::: image: '%s'\n", image->token); + printf("::: image: '%s' [%d]\n", image->token, i); #endif #if 0 @@ -1284,7 +1321,7 @@ void InitElementPropertiesStatic() -1 }; - static int ep_collectible[] = + static int ep_collectible_only[] = { EL_BD_DIAMOND, EL_EMERALD, @@ -1774,6 +1811,7 @@ void InitElementPropertiesStatic() EL_PLAYER_2, EL_PLAYER_3, EL_PLAYER_4, + EL_SP_MURPHY, -1 }; @@ -2495,7 +2533,7 @@ void InitElementPropertiesStatic() } element_properties[] = { { ep_diggable, EP_DIGGABLE }, - { ep_collectible, EP_COLLECTIBLE }, + { ep_collectible_only, EP_COLLECTIBLE_ONLY }, { ep_dont_run_into, EP_DONT_RUN_INTO }, { ep_dont_collide_with, EP_DONT_COLLIDE_WITH }, { ep_dont_touch, EP_DONT_TOUCH }, @@ -2639,7 +2677,7 @@ void InitElementPropertiesEngine(int engine_version) static int no_wall_properties[] = { EP_DIGGABLE, - EP_COLLECTIBLE, + EP_COLLECTIBLE_ONLY, EP_DONT_RUN_INTO, EP_DONT_COLLIDE_WITH, EP_CAN_MOVE, @@ -2705,6 +2743,10 @@ void InitElementPropertiesEngine(int engine_version) SET_PROPERTY(i, EP_ACCESSIBLE, (IS_WALKABLE(i) || IS_PASSABLE(i))); + /* ---------- COLLECTIBLE ---------------------------------------------- */ + SET_PROPERTY(i, EP_COLLECTIBLE, (IS_COLLECTIBLE_ONLY(i) || + IS_DROPPABLE(i))); + /* ---------- SNAPPABLE ------------------------------------------------ */ SET_PROPERTY(i, EP_SNAPPABLE, (IS_DIGGABLE(i) || IS_COLLECTIBLE(i) || @@ -2773,6 +2815,10 @@ void InitElementPropertiesEngine(int engine_version) CAN_EXPLODE_SMASHED(i) || CAN_EXPLODE_IMPACT(i))); + /* ---------- CAN_EXPLODE_3X3 ------------------------------------------ */ + SET_PROPERTY(i, EP_CAN_EXPLODE_3X3, (CAN_EXPLODE(i) && + !CAN_EXPLODE_1X1(i))); + /* ---------- CAN_BE_CRUMBLED ------------------------------------------ */ SET_PROPERTY(i, EP_CAN_BE_CRUMBLED, element_info[i].crumbled[ACTION_DEFAULT] != IMG_EMPTY); @@ -3195,7 +3241,9 @@ void InitLevelArtworkInfo() static void InitImages() { +#if 0 setLevelArtworkDir(artwork.gfx_first); +#endif #if 0 printf("::: InitImages for '%s' ['%s', '%s'] ['%s', '%s']\n", @@ -3219,8 +3267,10 @@ static void InitSound(char *identifier) if (identifier == NULL) identifier = artwork.snd_current->identifier; +#if 0 /* set artwork path to send it to the sound server process */ setLevelArtworkDir(artwork.snd_first); +#endif InitReloadCustomSounds(identifier); ReinitializeSounds(); @@ -3231,8 +3281,10 @@ static void InitMusic(char *identifier) if (identifier == NULL) identifier = artwork.mus_current->identifier; +#if 0 /* set artwork path to send it to the sound server process */ setLevelArtworkDir(artwork.mus_first); +#endif InitReloadCustomMusic(identifier); ReinitializeMusic(); @@ -3271,7 +3323,12 @@ static char *getNewArtworkIdentifier(int type) boolean setup_override_artwork = SETUP_OVERRIDE_ARTWORK(setup, type); char *setup_artwork_set = SETUP_ARTWORK_SET(setup, type); char *leveldir_identifier = leveldir_current->identifier; +#if 1 + /* !!! setLevelArtworkDir() should be moved to an earlier stage !!! */ + char *leveldir_artwork_set = setLevelArtworkDir(artwork_first_node); +#else char *leveldir_artwork_set = LEVELDIR_ARTWORK_SET(leveldir_current, type); +#endif boolean has_level_artwork_set = (leveldir_artwork_set != NULL); char *artwork_current_identifier; char *artwork_new_identifier = NULL; /* default: nothing has changed */ @@ -3280,7 +3337,6 @@ static char *getNewArtworkIdentifier(int type) if (!validLevelSeries(leveldir_current)) return NULL; - /* 1st step: determine artwork set to be activated in descending order: -------------------------------------------------------------------- 1. setup artwork (when configured to override everything else) @@ -3302,6 +3358,16 @@ static char *getNewArtworkIdentifier(int type) /* 2nd step: check if it is really needed to reload artwork set ------------------------------------------------------------ */ +#if 0 + if (type == ARTWORK_TYPE_GRAPHICS) + printf("::: 0: '%s' ['%s', '%s'] ['%s' ('%s')]\n", + artwork_new_identifier, + ARTWORK_CURRENT_IDENTIFIER(artwork, type), + artwork_current_identifier, + leveldir_current->graphics_set, + leveldir_current->identifier); +#endif + /* ---------- reload if level set and also artwork set has changed ------- */ if (leveldir_current_identifier[type] != leveldir_identifier && (last_has_level_artwork_set[type] || has_level_artwork_set)) @@ -3310,12 +3376,22 @@ static char *getNewArtworkIdentifier(int type) leveldir_current_identifier[type] = leveldir_identifier; last_has_level_artwork_set[type] = has_level_artwork_set; +#if 0 + if (type == ARTWORK_TYPE_GRAPHICS) + printf("::: 1: '%s'\n", artwork_new_identifier); +#endif + /* ---------- reload if "override artwork" setting has changed ----------- */ if (last_override_level_artwork[type] != setup_override_artwork) artwork_new_identifier = artwork_current_identifier; last_override_level_artwork[type] = setup_override_artwork; +#if 0 + if (type == ARTWORK_TYPE_GRAPHICS) + printf("::: 2: '%s'\n", artwork_new_identifier); +#endif + /* ---------- reload if current artwork identifier has changed ----------- */ if (strcmp(ARTWORK_CURRENT_IDENTIFIER(artwork, type), artwork_current_identifier) != 0) @@ -3323,6 +3399,11 @@ static char *getNewArtworkIdentifier(int type) *(&(ARTWORK_CURRENT_IDENTIFIER(artwork, type))) = artwork_current_identifier; +#if 0 + if (type == ARTWORK_TYPE_GRAPHICS) + printf("::: 3: '%s'\n", artwork_new_identifier); +#endif + /* ---------- do not reload directly after starting ---------------------- */ if (!initialized[type]) artwork_new_identifier = NULL; @@ -3330,10 +3411,16 @@ static char *getNewArtworkIdentifier(int type) initialized[type] = TRUE; #if 0 - printf("CHECKING OLD/NEW GFX:\n- OLD: %s\n- NEW: %s ['%s', '%s'] ['%s']\n", - artwork.gfx_current_identifier, artwork_current_identifier, - artwork.gfx_current->identifier, leveldir_current->graphics_set, - artwork_new_identifier); + if (type == ARTWORK_TYPE_GRAPHICS) + printf("::: 4: '%s'\n", artwork_new_identifier); +#endif + +#if 0 + if (type == ARTWORK_TYPE_GRAPHICS) + printf("CHECKING OLD/NEW GFX:\n- OLD: %s\n- NEW: %s ['%s', '%s'] ['%s']\n", + artwork.gfx_current_identifier, artwork_current_identifier, + artwork.gfx_current->identifier, leveldir_current->graphics_set, + artwork_new_identifier); #endif return artwork_new_identifier; @@ -3349,16 +3436,22 @@ void ReloadCustomArtwork() if (gfx_new_identifier != NULL) { #if 0 - printf("RELOADING GRAPHICS '%s' -> '%s' ['%s']\n", + printf("RELOADING GRAPHICS '%s' -> '%s' ['%s', '%s']\n", artwork.gfx_current_identifier, gfx_new_identifier, - artwork.gfx_current->identifier); + artwork.gfx_current->identifier, + leveldir_current->graphics_set); #endif ClearRectangle(window, 0, 0, WIN_XSIZE, WIN_YSIZE); InitImages(); +#if 0 + printf("... '%s'\n", + leveldir_current->graphics_set); +#endif + FreeTileClipmasks(); InitTileClipmasks(); @@ -3442,6 +3535,7 @@ void OpenAll() InitEventFilter(FilterMouseMotionEvents); InitElementPropertiesStatic(); + InitElementPropertiesEngine(GAME_VERSION_ACTUAL); InitGfx(); diff --git a/src/libgame/misc.c b/src/libgame/misc.c index f6cc110d..70b2a5d6 100644 --- a/src/libgame/misc.c +++ b/src/libgame/misc.c @@ -2165,8 +2165,7 @@ static void LoadArtworkConfigFromFilename(struct ArtworkListInfo *artwork_info, } END_HASH_ITERATION(extra_file_hash, itr) -#if DEBUG - if (dynamic_tokens_found) + if (options.debug && dynamic_tokens_found) { Error(ERR_RETURN_LINE, "-"); Error(ERR_RETURN, "dynamic token(s) found in config file:"); @@ -2182,7 +2181,6 @@ static void LoadArtworkConfigFromFilename(struct ArtworkListInfo *artwork_info, Error(ERR_RETURN_LINE, "-"); } -#endif if (unknown_tokens_found) { diff --git a/src/libgame/setup.c b/src/libgame/setup.c index a99c7a83..2a5eb1ab 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -270,19 +270,19 @@ static char *getDefaultMusicDir(char *music_subdir) static char *getDefaultArtworkSet(int type) { - return (type == TREE_TYPE_GRAPHICS_DIR ? GRAPHICS_SUBDIR : - type == TREE_TYPE_SOUNDS_DIR ? SOUNDS_SUBDIR : - type == TREE_TYPE_MUSIC_DIR ? MUSIC_SUBDIR : ""); + return (type == TREE_TYPE_GRAPHICS_DIR ? GFX_CLASSIC_SUBDIR : + type == TREE_TYPE_SOUNDS_DIR ? SND_CLASSIC_SUBDIR : + type == TREE_TYPE_MUSIC_DIR ? MUS_CLASSIC_SUBDIR : ""); } static char *getDefaultArtworkDir(int type) { return (type == TREE_TYPE_GRAPHICS_DIR ? - getDefaultGraphicsDir(GRAPHICS_SUBDIR) : + getDefaultGraphicsDir(GFX_CLASSIC_SUBDIR) : type == TREE_TYPE_SOUNDS_DIR ? - getDefaultSoundsDir(SOUNDS_SUBDIR) : + getDefaultSoundsDir(SND_CLASSIC_SUBDIR) : type == TREE_TYPE_MUSIC_DIR ? - getDefaultMusicDir(MUSIC_SUBDIR) : ""); + getDefaultMusicDir(MUS_CLASSIC_SUBDIR) : ""); } static char *getUserGraphicsDir() @@ -327,13 +327,13 @@ static char *getSetupArtworkDir(TreeInfo *ti) return artwork_dir; } -void setLevelArtworkDir(TreeInfo *ti) +char *setLevelArtworkDir(TreeInfo *ti) { char **artwork_path_ptr, **artwork_set_ptr; TreeInfo *level_artwork; if (ti == NULL || leveldir_current == NULL) - return; + return NULL; artwork_path_ptr = &(LEVELDIR_ARTWORK_PATH(leveldir_current, ti->type)); artwork_set_ptr = &(LEVELDIR_ARTWORK_SET( leveldir_current, ti->type)); @@ -370,6 +370,8 @@ void setLevelArtworkDir(TreeInfo *ti) free(dir); } + + return *artwork_set_ptr; } inline static char *getLevelArtworkSet(int type) @@ -446,7 +448,7 @@ char *getSetupFilename() return filename; } -static char *getCorrectedImageBasename(char *basename) +static char *getCorrectedArtworkBasename(char *basename) { char *basename_corrected = basename; @@ -461,7 +463,7 @@ static char *getCorrectedImageBasename(char *basename) /* if corrected filename is still longer than standard MS-DOS filename size (8 characters + 1 dot + 3 characters file extension), shorten filename by writing file extension after 8th basename character */ - if (strlen(basename_corrected) > 8+1+3) + if (strlen(basename_corrected) > 8 + 1 + 3) { static char *msdos_filename = NULL; @@ -469,7 +471,9 @@ static char *getCorrectedImageBasename(char *basename) free(msdos_filename); msdos_filename = getStringCopy(basename_corrected); - strncpy(&msdos_filename[8], &basename[strlen(basename) - 1+3], 1+3 + 1); + strncpy(&msdos_filename[8], &basename[strlen(basename) - (1+3)], 1+3 +1); + + basename_corrected = msdos_filename; } } #endif @@ -485,7 +489,7 @@ char *getCustomImageFilename(char *basename) if (filename != NULL) free(filename); - basename = getCorrectedImageBasename(basename); + basename = getCorrectedArtworkBasename(basename); if (!setup.override_level_graphics) { @@ -522,7 +526,7 @@ char *getCustomImageFilename(char *basename) } /* 4th try: look for default artwork in new default artwork directory */ - filename = getPath2(getDefaultGraphicsDir(GRAPHICS_SUBDIR), basename); + filename = getPath2(getDefaultGraphicsDir(GFX_CLASSIC_SUBDIR), basename); if (fileExists(filename)) return filename; @@ -544,6 +548,8 @@ char *getCustomSoundFilename(char *basename) if (filename != NULL) free(filename); + basename = getCorrectedArtworkBasename(basename); + if (!setup.override_level_sounds) { /* 1st try: look for special artwork in current level series directory */ @@ -579,7 +585,7 @@ char *getCustomSoundFilename(char *basename) } /* 4th try: look for default artwork in new default artwork directory */ - filename = getPath2(getDefaultSoundsDir(SOUNDS_SUBDIR), basename); + filename = getPath2(getDefaultSoundsDir(SND_CLASSIC_SUBDIR), basename); if (fileExists(filename)) return filename; @@ -663,7 +669,7 @@ char *getCustomMusicDirectory(void) } /* 4th try: look for default artwork in new default artwork directory */ - directory = getStringCopy(getDefaultMusicDir(MUSIC_SUBDIR)); + directory = getStringCopy(getDefaultMusicDir(MUS_CLASSIC_SUBDIR)); if (fileExists(directory)) return directory; @@ -2167,7 +2173,7 @@ void LoadArtworkInfo() getTreeInfoFromIdentifier(artwork.gfx_first, setup.graphics_set); if (artwork.gfx_current == NULL) artwork.gfx_current = - getTreeInfoFromIdentifier(artwork.gfx_first, GRAPHICS_SUBDIR); + getTreeInfoFromIdentifier(artwork.gfx_first, GFX_CLASSIC_SUBDIR); if (artwork.gfx_current == NULL) artwork.gfx_current = getFirstValidTreeInfoEntry(artwork.gfx_first); @@ -2175,7 +2181,7 @@ void LoadArtworkInfo() getTreeInfoFromIdentifier(artwork.snd_first, setup.sounds_set); if (artwork.snd_current == NULL) artwork.snd_current = - getTreeInfoFromIdentifier(artwork.snd_first, SOUNDS_SUBDIR); + getTreeInfoFromIdentifier(artwork.snd_first, SND_CLASSIC_SUBDIR); if (artwork.snd_current == NULL) artwork.snd_current = getFirstValidTreeInfoEntry(artwork.snd_first); @@ -2183,7 +2189,7 @@ void LoadArtworkInfo() getTreeInfoFromIdentifier(artwork.mus_first, setup.music_set); if (artwork.mus_current == NULL) artwork.mus_current = - getTreeInfoFromIdentifier(artwork.mus_first, MUSIC_SUBDIR); + getTreeInfoFromIdentifier(artwork.mus_first, MUS_CLASSIC_SUBDIR); if (artwork.mus_current == NULL) artwork.mus_current = getFirstValidTreeInfoEntry(artwork.mus_first); @@ -2270,7 +2276,7 @@ void LoadLevelArtworkInfo() getTreeInfoFromIdentifier(artwork.gfx_first, setup.graphics_set); if (artwork.gfx_current == NULL) artwork.gfx_current = - getTreeInfoFromIdentifier(artwork.gfx_first, GRAPHICS_SUBDIR); + getTreeInfoFromIdentifier(artwork.gfx_first, GFX_CLASSIC_SUBDIR); if (artwork.gfx_current == NULL) artwork.gfx_current = getFirstValidTreeInfoEntry(artwork.gfx_first); } @@ -2281,7 +2287,7 @@ void LoadLevelArtworkInfo() getTreeInfoFromIdentifier(artwork.snd_first, setup.sounds_set); if (artwork.snd_current == NULL) artwork.snd_current = - getTreeInfoFromIdentifier(artwork.snd_first, SOUNDS_SUBDIR); + getTreeInfoFromIdentifier(artwork.snd_first, SND_CLASSIC_SUBDIR); if (artwork.snd_current == NULL) artwork.snd_current = getFirstValidTreeInfoEntry(artwork.snd_first); } @@ -2292,7 +2298,7 @@ void LoadLevelArtworkInfo() getTreeInfoFromIdentifier(artwork.mus_first, setup.music_set); if (artwork.mus_current == NULL) artwork.mus_current = - getTreeInfoFromIdentifier(artwork.mus_first, MUSIC_SUBDIR); + getTreeInfoFromIdentifier(artwork.mus_first, MUS_CLASSIC_SUBDIR); if (artwork.mus_current == NULL) artwork.mus_current = getFirstValidTreeInfoEntry(artwork.mus_first); } @@ -2334,9 +2340,9 @@ static void SaveUserLevelInfo() ldi.first_level = 1; ldi.sort_priority = LEVELCLASS_USER_START; ldi.readonly = FALSE; - setString(&ldi.graphics_set, GRAPHICS_SUBDIR); - setString(&ldi.sounds_set, SOUNDS_SUBDIR); - setString(&ldi.music_set, MUSIC_SUBDIR); + setString(&ldi.graphics_set, GFX_CLASSIC_SUBDIR); + setString(&ldi.sounds_set, SND_CLASSIC_SUBDIR); + setString(&ldi.music_set, MUS_CLASSIC_SUBDIR); #else ldi.name = getStringCopy(getLoginName()); ldi.author = getStringCopy(getRealName()); @@ -2344,9 +2350,9 @@ static void SaveUserLevelInfo() ldi.first_level = 1; ldi.sort_priority = LEVELCLASS_USER_START; ldi.readonly = FALSE; - ldi.graphics_set = getStringCopy(GRAPHICS_SUBDIR); - ldi.sounds_set = getStringCopy(SOUNDS_SUBDIR); - ldi.music_set = getStringCopy(MUSIC_SUBDIR); + ldi.graphics_set = getStringCopy(GFX_CLASSIC_SUBDIR); + ldi.sounds_set = getStringCopy(SND_CLASSIC_SUBDIR); + ldi.music_set = getStringCopy(MUS_CLASSIC_SUBDIR); #endif fprintf(file, "%s\n\n", getFormattedSetupEntry(TOKEN_STR_FILE_IDENTIFIER, diff --git a/src/libgame/setup.h b/src/libgame/setup.h index 30952c65..5ae3bc4b 100644 --- a/src/libgame/setup.h +++ b/src/libgame/setup.h @@ -185,7 +185,7 @@ typedef struct hashtable SetupFileHash; ARTWORKCLASS_UNDEFINED) -void setLevelArtworkDir(TreeInfo *); +char *setLevelArtworkDir(TreeInfo *); char *getLevelFilename(int); char *getTapeFilename(int); char *getScoreFilename(int); diff --git a/src/libgame/system.h b/src/libgame/system.h index eaa71dc0..a9f1efa1 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -207,13 +207,13 @@ #define DOCS_DIRECTORY "docs" #if !defined(PLATFORM_MSDOS) -#define GRAPHICS_SUBDIR "gfx_classic" -#define SOUNDS_SUBDIR "snd_classic" -#define MUSIC_SUBDIR "mus_classic" +#define GFX_CLASSIC_SUBDIR "gfx_classic" +#define SND_CLASSIC_SUBDIR "snd_classic" +#define MUS_CLASSIC_SUBDIR "mus_classic" #else -#define GRAPHICS_SUBDIR "gfx_orig" -#define SOUNDS_SUBDIR "snd_orig" -#define MUSIC_SUBDIR "mus_orig" +#define GFX_CLASSIC_SUBDIR "gfx_orig" +#define SND_CLASSIC_SUBDIR "snd_orig" +#define MUS_CLASSIC_SUBDIR "mus_orig" #endif @@ -484,6 +484,7 @@ struct SetupEditorInfo boolean el_dx_boulderdash; boolean el_chars; boolean el_custom; + boolean el_custom_more; }; struct SetupShortcutInfo diff --git a/src/libgame/text.c b/src/libgame/text.c index 5558fc1c..a4b60302 100644 --- a/src/libgame/text.c +++ b/src/libgame/text.c @@ -144,6 +144,11 @@ int getFontHeight(int font_nr) return gfx.font_bitmap_info[font_bitmap_id].height; } +int getTextWidth(char *text, int font_nr) +{ + return (text != NULL ? strlen(text) * getFontWidth(font_nr) : 0); +} + static char getFontCharPosition(int font_nr, char c) { int font_bitmap_id = gfx.select_font_function(font_nr); @@ -179,11 +184,9 @@ void DrawInitText(char *text, int ypos, int font_nr) gfx.num_fonts > 0 && gfx.font_bitmap_info[font_nr].bitmap != NULL) { - int text_width = strlen(text) * getFontWidth(font_nr); - ClearRectangle(window, 0, ypos, video.width, getFontHeight(font_nr)); - DrawTextExt(window, (video.width - text_width) / 2, ypos, text, font_nr, - BLIT_OPAQUE); + DrawTextExt(window, (video.width - getTextWidth(text, font_nr)) / 2, ypos, + text, font_nr, BLIT_OPAQUE); FlushDisplay(); } } @@ -200,7 +203,7 @@ void DrawTextFCentered(int y, int font_nr, char *format, ...) if (strlen(buffer) > MAX_OUTPUT_LINESIZE) Error(ERR_EXIT, "string too long in DrawTextFCentered() -- aborting"); - DrawText(gfx.sx + (gfx.sxsize - strlen(buffer) * getFontWidth(font_nr)) / 2, + DrawText(gfx.sx + (gfx.sxsize - getTextWidth(buffer, font_nr)) / 2, gfx.sy + y, buffer, font_nr); } diff --git a/src/libgame/text.h b/src/libgame/text.h index 5d701fa7..fd1e8c57 100644 --- a/src/libgame/text.h +++ b/src/libgame/text.h @@ -57,6 +57,8 @@ void FreeFontInfo(struct FontBitmapInfo *); int getFontWidth(int); int getFontHeight(int); +int getTextWidth(char *, int); + void getFontCharSource(int, char, Bitmap **, int *, int *); void DrawInitText(char *, int, int); diff --git a/src/main.c b/src/main.c index ba7ab867..479e0122 100644 --- a/src/main.c +++ b/src/main.c @@ -2543,6 +2543,646 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "custom", "custom element 128" }, + { + "custom_129", + "custom", + "custom element 129" + }, + { + "custom_130", + "custom", + "custom element 130" + }, + { + "custom_131", + "custom", + "custom element 131" + }, + { + "custom_132", + "custom", + "custom element 132" + }, + { + "custom_133", + "custom", + "custom element 133" + }, + { + "custom_134", + "custom", + "custom element 134" + }, + { + "custom_135", + "custom", + "custom element 135" + }, + { + "custom_136", + "custom", + "custom element 136" + }, + { + "custom_137", + "custom", + "custom element 137" + }, + { + "custom_138", + "custom", + "custom element 138" + }, + { + "custom_139", + "custom", + "custom element 139" + }, + { + "custom_140", + "custom", + "custom element 140" + }, + { + "custom_141", + "custom", + "custom element 141" + }, + { + "custom_142", + "custom", + "custom element 142" + }, + { + "custom_143", + "custom", + "custom element 143" + }, + { + "custom_144", + "custom", + "custom element 144" + }, + { + "custom_145", + "custom", + "custom element 145" + }, + { + "custom_146", + "custom", + "custom element 146" + }, + { + "custom_147", + "custom", + "custom element 147" + }, + { + "custom_148", + "custom", + "custom element 148" + }, + { + "custom_149", + "custom", + "custom element 149" + }, + { + "custom_150", + "custom", + "custom element 150" + }, + { + "custom_151", + "custom", + "custom element 151" + }, + { + "custom_152", + "custom", + "custom element 152" + }, + { + "custom_153", + "custom", + "custom element 153" + }, + { + "custom_154", + "custom", + "custom element 154" + }, + { + "custom_155", + "custom", + "custom element 155" + }, + { + "custom_156", + "custom", + "custom element 156" + }, + { + "custom_157", + "custom", + "custom element 157" + }, + { + "custom_158", + "custom", + "custom element 158" + }, + { + "custom_159", + "custom", + "custom element 159" + }, + { + "custom_160", + "custom", + "custom element 160" + }, + { + "custom_161", + "custom", + "custom element 161" + }, + { + "custom_162", + "custom", + "custom element 162" + }, + { + "custom_163", + "custom", + "custom element 163" + }, + { + "custom_164", + "custom", + "custom element 164" + }, + { + "custom_165", + "custom", + "custom element 165" + }, + { + "custom_166", + "custom", + "custom element 166" + }, + { + "custom_167", + "custom", + "custom element 167" + }, + { + "custom_168", + "custom", + "custom element 168" + }, + { + "custom_169", + "custom", + "custom element 169" + }, + { + "custom_170", + "custom", + "custom element 170" + }, + { + "custom_171", + "custom", + "custom element 171" + }, + { + "custom_172", + "custom", + "custom element 172" + }, + { + "custom_173", + "custom", + "custom element 173" + }, + { + "custom_174", + "custom", + "custom element 174" + }, + { + "custom_175", + "custom", + "custom element 175" + }, + { + "custom_176", + "custom", + "custom element 176" + }, + { + "custom_177", + "custom", + "custom element 177" + }, + { + "custom_178", + "custom", + "custom element 178" + }, + { + "custom_179", + "custom", + "custom element 179" + }, + { + "custom_180", + "custom", + "custom element 180" + }, + { + "custom_181", + "custom", + "custom element 181" + }, + { + "custom_182", + "custom", + "custom element 182" + }, + { + "custom_183", + "custom", + "custom element 183" + }, + { + "custom_184", + "custom", + "custom element 184" + }, + { + "custom_185", + "custom", + "custom element 185" + }, + { + "custom_186", + "custom", + "custom element 186" + }, + { + "custom_187", + "custom", + "custom element 187" + }, + { + "custom_188", + "custom", + "custom element 188" + }, + { + "custom_189", + "custom", + "custom element 189" + }, + { + "custom_190", + "custom", + "custom element 190" + }, + { + "custom_191", + "custom", + "custom element 191" + }, + { + "custom_192", + "custom", + "custom element 192" + }, + { + "custom_193", + "custom", + "custom element 193" + }, + { + "custom_194", + "custom", + "custom element 194" + }, + { + "custom_195", + "custom", + "custom element 195" + }, + { + "custom_196", + "custom", + "custom element 196" + }, + { + "custom_197", + "custom", + "custom element 197" + }, + { + "custom_198", + "custom", + "custom element 198" + }, + { + "custom_199", + "custom", + "custom element 199" + }, + { + "custom_200", + "custom", + "custom element 200" + }, + { + "custom_201", + "custom", + "custom element 201" + }, + { + "custom_202", + "custom", + "custom element 202" + }, + { + "custom_203", + "custom", + "custom element 203" + }, + { + "custom_204", + "custom", + "custom element 204" + }, + { + "custom_205", + "custom", + "custom element 205" + }, + { + "custom_206", + "custom", + "custom element 206" + }, + { + "custom_207", + "custom", + "custom element 207" + }, + { + "custom_208", + "custom", + "custom element 208" + }, + { + "custom_209", + "custom", + "custom element 209" + }, + { + "custom_210", + "custom", + "custom element 210" + }, + { + "custom_211", + "custom", + "custom element 211" + }, + { + "custom_212", + "custom", + "custom element 212" + }, + { + "custom_213", + "custom", + "custom element 213" + }, + { + "custom_214", + "custom", + "custom element 214" + }, + { + "custom_215", + "custom", + "custom element 215" + }, + { + "custom_216", + "custom", + "custom element 216" + }, + { + "custom_217", + "custom", + "custom element 217" + }, + { + "custom_218", + "custom", + "custom element 218" + }, + { + "custom_219", + "custom", + "custom element 219" + }, + { + "custom_220", + "custom", + "custom element 220" + }, + { + "custom_221", + "custom", + "custom element 221" + }, + { + "custom_222", + "custom", + "custom element 222" + }, + { + "custom_223", + "custom", + "custom element 223" + }, + { + "custom_224", + "custom", + "custom element 224" + }, + { + "custom_225", + "custom", + "custom element 225" + }, + { + "custom_226", + "custom", + "custom element 226" + }, + { + "custom_227", + "custom", + "custom element 227" + }, + { + "custom_228", + "custom", + "custom element 228" + }, + { + "custom_229", + "custom", + "custom element 229" + }, + { + "custom_230", + "custom", + "custom element 230" + }, + { + "custom_231", + "custom", + "custom element 231" + }, + { + "custom_232", + "custom", + "custom element 232" + }, + { + "custom_233", + "custom", + "custom element 233" + }, + { + "custom_234", + "custom", + "custom element 234" + }, + { + "custom_235", + "custom", + "custom element 235" + }, + { + "custom_236", + "custom", + "custom element 236" + }, + { + "custom_237", + "custom", + "custom element 237" + }, + { + "custom_238", + "custom", + "custom element 238" + }, + { + "custom_239", + "custom", + "custom element 239" + }, + { + "custom_240", + "custom", + "custom element 240" + }, + { + "custom_241", + "custom", + "custom element 241" + }, + { + "custom_242", + "custom", + "custom element 242" + }, + { + "custom_243", + "custom", + "custom element 243" + }, + { + "custom_244", + "custom", + "custom element 244" + }, + { + "custom_245", + "custom", + "custom element 245" + }, + { + "custom_246", + "custom", + "custom element 246" + }, + { + "custom_247", + "custom", + "custom element 247" + }, + { + "custom_248", + "custom", + "custom element 248" + }, + { + "custom_249", + "custom", + "custom element 249" + }, + { + "custom_250", + "custom", + "custom element 250" + }, + { + "custom_251", + "custom", + "custom element 251" + }, + { + "custom_252", + "custom", + "custom element 252" + }, + { + "custom_253", + "custom", + "custom element 253" + }, + { + "custom_254", + "custom", + "custom element 254" + }, + { + "custom_255", + "custom", + "custom element 255" + }, + { + "custom_256", + "custom", + "custom element 256" + }, /* ----------------------------------------------------------------------- */ /* "real" (and therefore drawable) runtime elements */ diff --git a/src/main.h b/src/main.h index 03e98378..7f085896 100644 --- a/src/main.h +++ b/src/main.h @@ -63,7 +63,7 @@ /* values for configurable properties (custom elem's only, else pre-defined) */ #define EP_DIGGABLE 0 -#define EP_COLLECTIBLE 1 +#define EP_COLLECTIBLE_ONLY 1 #define EP_DONT_RUN_INTO 2 #define EP_DONT_COLLIDE_WITH 3 #define EP_DONT_TOUCH 4 @@ -84,8 +84,8 @@ #define EP_PASSABLE_OVER 19 #define EP_PASSABLE_INSIDE 20 #define EP_PASSABLE_UNDER 21 -#define EP_UNUSED_22 22 -#define EP_UNUSED_23 23 +#define EP_DROPPABLE 22 +#define EP_CAN_EXPLODE_1X1 23 #define EP_PUSHABLE 24 /* values for special configurable properties (depending on level settings) */ @@ -126,20 +126,22 @@ #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 @@ -159,23 +161,25 @@ #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 @@ -223,7 +227,7 @@ /* 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) @@ -244,6 +248,8 @@ #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 */ @@ -281,16 +287,18 @@ #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 && \ @@ -351,6 +359,7 @@ #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 @@ -733,10 +742,10 @@ #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 */ @@ -971,9 +980,9 @@ #define PROGRAM_VERSION_MAJOR 3 #define PROGRAM_VERSION_MINOR 0 -#define PROGRAM_VERSION_PATCH 0 +#define PROGRAM_VERSION_PATCH 1 #define PROGRAM_VERSION_RELEASE 0 -#define PROGRAM_VERSION_STRING "3.0.0" +#define PROGRAM_VERSION_STRING "3.0.1" #define PROGRAM_TITLE_STRING "Rocks'n'Diamonds" #define PROGRAM_AUTHOR_STRING "Holger Schemel" @@ -1086,10 +1095,12 @@ struct PlayerInfo int lights_still_needed; int friends_still_needed; int key[4]; - int dynamite; int dynabomb_count, dynabomb_size, dynabombs_left, dynabomb_xl; int shield_normal_time_left; int shield_deadly_time_left; + + int inventory_element[MAX_INVENTORY_SIZE]; + int inventory_size; }; struct LevelInfo @@ -1270,8 +1281,8 @@ struct ElementInfo boolean use_gfx_element; /* use custom graphic element */ short gfx_element; /* optional custom graphic element */ - int score; /* score value for collecting */ - int gem_count; /* gem count value for collecting */ + int collect_score; /* score value for collecting */ + int collect_count; /* count value for collecting */ int push_delay_fixed; /* constant frame delay for pushing */ int push_delay_random; /* additional random frame delay for pushing */ @@ -1303,6 +1314,8 @@ struct ElementInfo boolean can_explode_by_fire; /* element explodes by fire */ boolean can_explode_smashed; /* element explodes when smashed */ boolean can_explode_impact; /* element explodes on impact */ + + boolean modified_settings; /* set for all modified custom elements */ }; struct FontInfo diff --git a/src/screens.c b/src/screens.c index d0b5313d..b158d0db 100644 --- a/src/screens.c +++ b/src/screens.c @@ -155,10 +155,10 @@ static void PlaySound_Menu_Continue(int sound) void DrawHeadline() { - int font1_width = getFontWidth(FONT_TITLE_1); - int font2_width = getFontWidth(FONT_TITLE_2); - int x1 = SX + (SXSIZE - strlen(PROGRAM_TITLE_STRING) * font1_width) / 2; - int x2 = SX + (SXSIZE - strlen(WINDOW_SUBTITLE_STRING) * font2_width) / 2; + int text1_width = getTextWidth(PROGRAM_TITLE_STRING, FONT_TITLE_1); + int text2_width = getTextWidth(WINDOW_SUBTITLE_STRING, FONT_TITLE_2); + int x1 = SX + (SXSIZE - text1_width) / 2; + int x2 = SX + (SXSIZE - text2_width) / 2; DrawText(x1, SY + 8, PROGRAM_TITLE_STRING, FONT_TITLE_1); DrawText(x2, SY + 46, WINDOW_SUBTITLE_STRING, FONT_TITLE_2); @@ -192,9 +192,8 @@ void DrawMainMenu() { static LevelDirTree *leveldir_last_valid = NULL; char *name_text = (!options.network && setup.team_mode ? "Team:" : "Name:"); - int font_width = getFontWidth(FONT_MENU_1); - int name_width = font_width * strlen("Name:"); - int level_width = font_width * strlen("Level:"); + int name_width = getTextWidth("Name:", FONT_MENU_1); + int level_width = getTextWidth("Level:", FONT_MENU_1); int i; UnmapAllGadgets(); @@ -1242,8 +1241,11 @@ static void drawChooseTreeList(int first_entry, int num_page_entries, int yoffset = (ti->type == TREE_TYPE_LEVEL_DIR ? 0 : yoffset_setup); int last_game_status = game_status; /* save current game status */ +#if 1 + DrawBackground(mSX, mSY, SXSIZE - 32 + menu.scrollbar_xoffset, SYSIZE); +#else DrawBackground(SX, SY, SXSIZE - 32, SYSIZE); - redraw_mask |= REDRAW_FIELD; +#endif title_string = (ti->type == TREE_TYPE_LEVEL_DIR ? "Level Directories" : @@ -1279,6 +1281,8 @@ static void drawChooseTreeList(int first_entry, int num_page_entries, } game_status = last_game_status; /* restore current game status */ + + redraw_mask |= REDRAW_FIELD; } static void drawChooseTreeInfo(int entry_pos, TreeInfo *ti) @@ -1808,6 +1812,7 @@ static struct TokenInfo setup_info_editor[] = { TYPE_SWITCH, &setup.editor.el_dx_boulderdash,"DX Boulderd.:" }, { TYPE_SWITCH, &setup.editor.el_chars, "Characters:" }, { TYPE_SWITCH, &setup.editor.el_custom, "Custom:" }, + { TYPE_SWITCH, &setup.editor.el_custom_more, "More Custom:" }, { TYPE_EMPTY, NULL, "" }, { TYPE_LEAVE_MENU, execSetupMain, "Back" }, { 0, NULL, NULL } @@ -1831,8 +1836,6 @@ static struct TokenInfo setup_info_graphics[] = static struct TokenInfo setup_info_sound[] = { - { TYPE_SWITCH, &setup.sound, "Sound:", }, - { TYPE_EMPTY, NULL, "" }, { TYPE_SWITCH, &setup.sound_simple, "Simple Sound:" }, { TYPE_SWITCH, &setup.sound_loops, "Sound Loops:" }, { TYPE_SWITCH, &setup.sound_music, "Game Music:" }, @@ -2041,10 +2044,10 @@ static void DrawSetupScreen_Generic() int font_nr = FONT_MENU_1; /* set some entries to "unchangeable" according to other variables */ - if ((value_ptr == &setup.sound && !audio.sound_available) || - (value_ptr == &setup.sound_loops && !audio.loops_available) || - (value_ptr == &setup.sound_music && !audio.music_available) || - (value_ptr == &setup.fullscreen && !video.fullscreen_available)) + if ((value_ptr == &setup.sound_simple && !audio.sound_available) || + (value_ptr == &setup.sound_loops && !audio.loops_available) || + (value_ptr == &setup.sound_music && !audio.music_available) || + (value_ptr == &setup.fullscreen && !video.fullscreen_available)) setup_info[i].type |= TYPE_GHOSTED; if (setup_info[i].type & TYPE_STRING) diff --git a/src/tools.c b/src/tools.c index 744065cd..45d37436 100644 --- a/src/tools.c +++ b/src/tools.c @@ -1634,8 +1634,7 @@ static void DrawMicroLevelLabelExt(int mode) if (strlen(label_text) > 0) { - int text_width = strlen(label_text) * getFontWidth(font_nr); - int lxpos = SX + (SXSIZE - text_width) / 2; + int lxpos = SX + (SXSIZE - getTextWidth(label_text, font_nr)) / 2; int lypos = MICROLABEL_YPOS; DrawText(lxpos, lypos, label_text, font_nr); @@ -1671,8 +1670,8 @@ void DrawMicroLevel(int xpos, int ypos, boolean restart) if (leveldir_current->name) { - int len = strlen(leveldir_current->name); - int lxpos = SX + (SXSIZE - len * getFontWidth(FONT_TEXT_1)) / 2; + int text_width = getTextWidth(leveldir_current->name, FONT_TEXT_1); + int lxpos = SX + (SXSIZE - text_width) / 2; int lypos = SY + 352; DrawText(lxpos, lypos, leveldir_current->name, FONT_TEXT_1); @@ -1883,6 +1882,8 @@ boolean Request(char *text, unsigned int req_state) SetDrawBackgroundMask(REDRAW_FIELD | REDRAW_DOOR_1); + SetMouseCursor(CURSOR_DEFAULT); + while(result < 0) { if (PendingEvent())