rnd-20030808-5-src
authorHolger Schemel <info@artsoft.org>
Fri, 8 Aug 2003 17:59:38 +0000 (19:59 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:43:08 +0000 (10:43 +0200)
24 files changed:
CHANGES
src/conf_chr.c
src/conf_chr.h
src/conf_cus.c
src/conf_cus.h
src/conf_e2g.c
src/conf_e2s.c
src/conf_esg.c
src/conf_fnt.c
src/conf_gfx.c
src/conf_gfx.h
src/conf_snd.h
src/conftime.h
src/editor.c
src/events.c
src/files.c
src/game.c
src/game.h
src/init.c
src/libgame/text.c
src/libgame/text.h
src/main.h
src/screens.c
src/tools.c

diff --git a/CHANGES b/CHANGES
index abd253eb53416b2784b79314692d380cf7d9c86d..10ebc7f0a29e6ba5ef344faba569706f3d456a40 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,8 +1,5 @@
-Release Version 3.0.1 [?? ??? ????]
------------------------------------
-
 Release Version 3.0.0 [05 AUG 2003]
------------------------------------
+------------------------------------------
        - final version bumped to 3.0.0 due to the massive changes
        - graphics and sounds now completely and dynamically customizable
        - custom elements now have lots of configurable properties
index 506c8b27244a0ae6f904d26af269c59e5ecbe5e7..00fe699421f9a0c1b0393bdf9157b31f095bfbba 100644 (file)
@@ -1,15 +1,3 @@
-/***********************************************************
-* Rocks'n'Diamonds -- McDuffin Strikes Back!               *
-*----------------------------------------------------------*
-* (c) 1995-2002 Artsoft Entertainment                      *
-*               Holger Schemel                             *
-*               Detmolder Strasse 189                      *
-*               33604 Bielefeld                            *
-*               Germany                                    *
-*               e-mail: info@artsoft.org                   *
-*----------------------------------------------------------*
-* conf_chr.c                                               *
-***********************************************************/
 
 /* ----- this file was automatically generated -- do not edit by hand ----- */
 
index 8cee272485e9fccebc29661db0e8563857aafa2e..373ef0deed6541198dd59e54858390eef750e516 100644 (file)
@@ -1,15 +1,3 @@
-/***********************************************************
-* Rocks'n'Diamonds -- McDuffin Strikes Back!               *
-*----------------------------------------------------------*
-* (c) 1995-2002 Artsoft Entertainment                      *
-*               Holger Schemel                             *
-*               Detmolder Strasse 189                      *
-*               33604 Bielefeld                            *
-*               Germany                                    *
-*               e-mail: info@artsoft.org                   *
-*----------------------------------------------------------*
-* conf_chr.h                                               *
-***********************************************************/
 
 /* ----- this file was automatically generated -- do not edit by hand ----- */
 
index 82144cd288f1572ca3af5e576c999b3d68898464..7c68e0723f9b1c2f9cddcdc19f0079e507cfb47a 100644 (file)
@@ -1,15 +1,3 @@
-/***********************************************************
-* Rocks'n'Diamonds -- McDuffin Strikes Back!               *
-*----------------------------------------------------------*
-* (c) 1995-2002 Artsoft Entertainment                      *
-*               Holger Schemel                             *
-*               Detmolder Strasse 189                      *
-*               33604 Bielefeld                            *
-*               Germany                                    *
-*               e-mail: info@artsoft.org                   *
-*----------------------------------------------------------*
-* conf_cus.c                                               *
-***********************************************************/
 
 /* ----- this file was automatically generated -- do not edit by hand ----- */
 
index 425334be397f5cf9cf103ed6e186b479a9a542bf..3fa751d63c2a974d76d172ee6fde1cfae7aaa1db 100644 (file)
@@ -1,15 +1,3 @@
-/***********************************************************
-* Rocks'n'Diamonds -- McDuffin Strikes Back!               *
-*----------------------------------------------------------*
-* (c) 1995-2002 Artsoft Entertainment                      *
-*               Holger Schemel                             *
-*               Detmolder Strasse 189                      *
-*               33604 Bielefeld                            *
-*               Germany                                    *
-*               e-mail: info@artsoft.org                   *
-*----------------------------------------------------------*
-* conf_cus.h                                               *
-***********************************************************/
 
 /* ----- this file was automatically generated -- do not edit by hand ----- */
 
index 2b9b2e006738320cda819d746dd954b9d38a1f1d..32c104a025ab207a680cb133f96a7b9c6690eaef 100644 (file)
@@ -1,15 +1,3 @@
-/***********************************************************
-* Rocks'n'Diamonds -- McDuffin Strikes Back!               *
-*----------------------------------------------------------*
-* (c) 1995-2002 Artsoft Entertainment                      *
-*               Holger Schemel                             *
-*               Detmolder Strasse 189                      *
-*               33604 Bielefeld                            *
-*               Germany                                    *
-*               e-mail: info@artsoft.org                   *
-*----------------------------------------------------------*
-* conf_e2g.c                                               *
-***********************************************************/
 
 /* ----- this file was automatically generated -- do not edit by hand ----- */
 
@@ -341,6 +329,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
index 6e229df276c147bd90caf18ae9ba2ef334bdb66e..f17b1b3e05db1a81e7b5114ebacf7ab0c11fb0e3 100644 (file)
@@ -1,15 +1,3 @@
-/***********************************************************
-* Rocks'n'Diamonds -- McDuffin Strikes Back!               *
-*----------------------------------------------------------*
-* (c) 1995-2002 Artsoft Entertainment                      *
-*               Holger Schemel                             *
-*               Detmolder Strasse 189                      *
-*               33604 Bielefeld                            *
-*               Germany                                    *
-*               e-mail: info@artsoft.org                   *
-*----------------------------------------------------------*
-* conf_e2s.c                                               *
-***********************************************************/
 
 /* ----- this file was automatically generated -- do not edit by hand ----- */
 
index b2180fb3a855be56d94e00b015999da407e7a164..ed2369a35ff2119eb74c90f7cbd589217e604b45 100644 (file)
@@ -1,15 +1,3 @@
-/***********************************************************
-* Rocks'n'Diamonds -- McDuffin Strikes Back!               *
-*----------------------------------------------------------*
-* (c) 1995-2002 Artsoft Entertainment                      *
-*               Holger Schemel                             *
-*               Detmolder Strasse 189                      *
-*               33604 Bielefeld                            *
-*               Germany                                    *
-*               e-mail: info@artsoft.org                   *
-*----------------------------------------------------------*
-* conf_esg.c                                               *
-***********************************************************/
 
 /* ----- this file was automatically generated -- do not edit by hand ----- */
 
index 0a191dda15f257a76f19a1f25fb52e882c988d34..0c9256b51ccddd50814a9f7bb19798e8a1bc4686 100644 (file)
@@ -1,15 +1,3 @@
-/***********************************************************
-* Rocks'n'Diamonds -- McDuffin Strikes Back!               *
-*----------------------------------------------------------*
-* (c) 1995-2002 Artsoft Entertainment                      *
-*               Holger Schemel                             *
-*               Detmolder Strasse 189                      *
-*               33604 Bielefeld                            *
-*               Germany                                    *
-*               e-mail: info@artsoft.org                   *
-*----------------------------------------------------------*
-* conf_fnt.c                                               *
-***********************************************************/
 
 /* ----- this file was automatically generated -- do not edit by hand ----- */
 
index 7b692bfa0e394f4ce8ea18d3b337e42590d5b26f..258b7fde0750671b85b9d325a81940bade85311d 100644 (file)
@@ -411,6 +411,10 @@ struct ConfigInfo image_config[] =
   { "sp_disk_red.collecting.xpos",             "8"                     },
   { "sp_disk_red.collecting.ypos",             "5"                     },
   { "sp_disk_red.collecting.frames",           "8"                     },
+  { "sp_disk_red.active",                      "RocksSP.pcx"           },
+  { "sp_disk_red.active.xpos",                 "4"                     },
+  { "sp_disk_red.active.ypos",                 "2"                     },
+  { "sp_disk_red.active.frames",               "1"                     },
 
   { "sp_port_right",                           "RocksSP.pcx"           },
   { "sp_port_right.xpos",                      "1"                     },
index 8b3f18c8cd2507c399fb4fc016d172caf50b0386..528d73d05fbbaac03b9ffc278c62bb425cc47846 100644 (file)
@@ -1,15 +1,3 @@
-/***********************************************************
-* Rocks'n'Diamonds -- McDuffin Strikes Back!               *
-*----------------------------------------------------------*
-* (c) 1995-2002 Artsoft Entertainment                      *
-*               Holger Schemel                             *
-*               Detmolder Strasse 189                      *
-*               33604 Bielefeld                            *
-*               Germany                                    *
-*               e-mail: info@artsoft.org                   *
-*----------------------------------------------------------*
-* conf_gfx.h                                               *
-***********************************************************/
 
 /* ----- this file was automatically generated -- do not edit by hand ----- */
 
 #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_TOON_1                                     927
+#define IMG_TOON_2                                     928
+#define IMG_TOON_3                                     929
+#define IMG_TOON_4                                     930
+#define IMG_TOON_5                                     931
+#define IMG_TOON_6                                     932
+#define IMG_TOON_7                                     933
+#define IMG_TOON_8                                     934
+#define IMG_TOON_9                                     935
+#define IMG_TOON_10                                    936
+#define IMG_TOON_11                                    937
+#define IMG_TOON_12                                    938
+#define IMG_TOON_13                                    939
+#define IMG_TOON_14                                    940
+#define IMG_TOON_15                                    941
+#define IMG_TOON_16                                    942
+#define IMG_TOON_17                                    943
+#define IMG_TOON_18                                    944
+#define IMG_TOON_19                                    945
+#define IMG_TOON_20                                    946
+#define IMG_MENU_CALIBRATE_RED                         947
+#define IMG_MENU_CALIBRATE_BLUE                                948
+#define IMG_MENU_CALIBRATE_YELLOW                      949
+#define IMG_MENU_BUTTON                                        950
+#define IMG_MENU_BUTTON_ACTIVE                         951
+#define IMG_MENU_BUTTON_LEFT                           952
+#define IMG_MENU_BUTTON_RIGHT                          953
+#define IMG_MENU_BUTTON_UP                             954
+#define IMG_MENU_BUTTON_DOWN                           955
+#define IMG_MENU_BUTTON_LEFT_ACTIVE                    956
+#define IMG_MENU_BUTTON_RIGHT_ACTIVE                   957
+#define IMG_MENU_BUTTON_UP_ACTIVE                      958
+#define IMG_MENU_BUTTON_DOWN_ACTIVE                    959
+#define IMG_MENU_SCROLLBAR                             960
+#define IMG_MENU_SCROLLBAR_ACTIVE                      961
+#define IMG_FONT_INITIAL_1                             962
+#define IMG_FONT_INITIAL_2                             963
+#define IMG_FONT_INITIAL_3                             964
+#define IMG_FONT_INITIAL_4                             965
+#define IMG_FONT_TITLE_1                               966
+#define IMG_FONT_TITLE_1_LEVELS                                967
+#define IMG_FONT_TITLE_2                               968
+#define IMG_FONT_MENU_1                                        969
+#define IMG_FONT_MENU_2                                        970
+#define IMG_FONT_TEXT_1                                        971
+#define IMG_FONT_TEXT_1_LEVELS                         972
+#define IMG_FONT_TEXT_1_PREVIEW                                973
+#define IMG_FONT_TEXT_1_SCORES                         974
+#define IMG_FONT_TEXT_1_ACTIVE_SCORES                  975
+#define IMG_FONT_TEXT_2                                        976
+#define IMG_FONT_TEXT_2_LEVELS                         977
+#define IMG_FONT_TEXT_2_PREVIEW                                978
+#define IMG_FONT_TEXT_2_SCORES                         979
+#define IMG_FONT_TEXT_2_ACTIVE_SCORES                  980
+#define IMG_FONT_TEXT_3                                        981
+#define IMG_FONT_TEXT_3_LEVELS                         982
+#define IMG_FONT_TEXT_3_PREVIEW                                983
+#define IMG_FONT_TEXT_3_SCORES                         984
+#define IMG_FONT_TEXT_3_ACTIVE_SCORES                  985
+#define IMG_FONT_TEXT_4                                        986
+#define IMG_FONT_TEXT_4_LEVELS                         987
+#define IMG_FONT_TEXT_4_SCORES                         988
+#define IMG_FONT_TEXT_4_ACTIVE_SCORES                  989
+#define IMG_FONT_INPUT_1                               990
+#define IMG_FONT_INPUT_1_MAIN                          991
+#define IMG_FONT_INPUT_1_ACTIVE                                992
+#define IMG_FONT_INPUT_1_ACTIVE_MAIN                   993
+#define IMG_FONT_INPUT_1_ACTIVE_SETUP                  994
+#define IMG_FONT_INPUT_2                               995
+#define IMG_FONT_INPUT_2_ACTIVE                                996
+#define IMG_FONT_OPTION_OFF                            997
+#define IMG_FONT_OPTION_ON                             998
+#define IMG_FONT_VALUE_1                               999
+#define IMG_FONT_VALUE_2                               1000
+#define IMG_FONT_VALUE_OLD                             1001
+#define IMG_FONT_LEVEL_NUMBER                          1002
+#define IMG_FONT_TAPE_RECORDER                         1003
+#define IMG_FONT_GAME_INFO                             1004
+#define IMG_GLOBAL_BORDER                              1005
+#define IMG_GLOBAL_DOOR                                        1006
+#define IMG_EDITOR_ELEMENT_BORDER                      1007
+#define IMG_EDITOR_ELEMENT_BORDER_INPUT                        1008
+#define IMG_BACKGROUND                                 1009
+#define IMG_BACKGROUND_MAIN                            1010
+#define IMG_BACKGROUND_LEVELS                          1011
+#define IMG_BACKGROUND_SCORES                          1012
+#define IMG_BACKGROUND_EDITOR                          1013
+#define IMG_BACKGROUND_INFO                            1014
+#define IMG_BACKGROUND_SETUP                           1015
+#define IMG_BACKGROUND_DOOR                            1016
 
-#define NUM_IMAGE_FILES                                        1016
+#define NUM_IMAGE_FILES                                        1017
 
 #endif /* CONF_GFX_H */
index 94366024764911dc3940936b0885a65d842fefaa..bfb6db880e9ae94988a40edc21c6a0d1d8be6073 100644 (file)
@@ -1,15 +1,3 @@
-/***********************************************************
-* Rocks'n'Diamonds -- McDuffin Strikes Back!               *
-*----------------------------------------------------------*
-* (c) 1995-2002 Artsoft Entertainment                      *
-*               Holger Schemel                             *
-*               Detmolder Strasse 189                      *
-*               33604 Bielefeld                            *
-*               Germany                                    *
-*               e-mail: info@artsoft.org                   *
-*----------------------------------------------------------*
-* conf_snd.h                                               *
-***********************************************************/
 
 /* ----- this file was automatically generated -- do not edit by hand ----- */
 
index 6c63aef202e3805e763b4050a0ca8d618c132dfc..37e51f60dfd348f8436055f6a6a5842b863a4a02 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "[2003-08-07 01:24]"
+#define COMPILE_DATE_STRING "[2003-08-08 19:58]"
index 87184cd88820a0be03ce083009a8f5b696f79bbe..bd466026306226acc12106ee6af914c4c2fa74f6 100644 (file)
@@ -75,6 +75,8 @@
 
 #define ED_GADGET_DISTANCE             2
 #define ED_GADGET_TEXT_DISTANCE                (2 * ED_GADGET_DISTANCE)
+#define ED_DRAWINGAREA_TEXT_DISTANCE   (ED_GADGET_TEXT_DISTANCE + \
+                                        MINI_TILEX / 2)
 
 /* values for the setting windows */
 #define ED_SETTINGS_XSTART             (3 * MINI_TILEX / 2)
 /* how many steps can be cancelled */
 #define NUM_UNDO_STEPS                 (10 + 1)
 
-/* values for elements with score */
+/* values for elements with score for certain actions */
 #define MIN_SCORE                      0
 #define MAX_SCORE                      255
 
-/* values for elements with gem count */
-#define MIN_GEM_COUNT                  0
-#define MAX_GEM_COUNT                  100
+/* values for elements with count for collecting */
+#define MIN_COLLECT_COUNT              0
+#define MAX_COLLECT_COUNT              100
 
 /* values for random placement */
 #define RANDOM_USE_PERCENTAGE          0
@@ -822,16 +824,16 @@ static struct
     MIN_SCORE,                         MAX_SCORE,
     GADGET_ID_CUSTOM_SCORE_DOWN,       GADGET_ID_CUSTOM_SCORE_UP,
     GADGET_ID_CUSTOM_SCORE_TEXT,       GADGET_ID_NONE,
-    &custom_element.score,
-    NULL,                              "collect score", NULL
+    &custom_element.collect_score,
+    NULL,                              "score", NULL
   },
   {
     ED_SETTINGS_XPOS(13) + 10,         ED_SETTINGS_YPOS(3),
-    MIN_GEM_COUNT,                     MAX_GEM_COUNT,
+    MIN_COLLECT_COUNT,                 MAX_COLLECT_COUNT,
     GADGET_ID_CUSTOM_GEMCOUNT_DOWN,    GADGET_ID_CUSTOM_GEMCOUNT_UP,
     GADGET_ID_CUSTOM_GEMCOUNT_TEXT,    GADGET_ID_CUSTOM_SCORE_UP,
-    &custom_element.gem_count,
-    NULL,                              "gems", NULL
+    &custom_element.collect_count,
+    NULL,                              "count", NULL
   },
   {
     ED_SETTINGS_XPOS(1),               ED_SETTINGS_YPOS(4),
@@ -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                            }
 };
@@ -1034,6 +1037,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 +1051,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 +1161,7 @@ static struct
     -1,
     options_consistency,
     &custom_element.consistency,
-    NULL, "explodes to:", "consistency/destructibility"
+    NULL, NULL, "consistency/destructibility"
   },
 
   /* ---------- element settings: advanced (custom elements) --------------- */
@@ -1363,7 +1368,7 @@ static struct
   {
     ED_SETTINGS_XPOS(0) + 340,         ED_COUNTER_YPOS(6) - MINI_TILEY,
     GADGET_ID_GRAVITY,                 GADGET_ID_DOUBLE_SPEED,
-    &level.initial_gravity,
+    &level.gravity,
     " ", "gravity",                    "set level gravity"
   },
   {
@@ -1536,7 +1541,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 +1550,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 +1559,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 +1610,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 +1619,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 +1628,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 +1637,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 +1646,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 +1655,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 +1664,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
   },
 };
 
@@ -2568,17 +2573,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 (getTextWidth(text, FONT_TEXT_1) + ED_GADGET_TEXT_DISTANCE);
+}
+
+static int getTextWidthForDrawingArea(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_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 +2618,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 +2943,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 +3098,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 +3216,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 +3426,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 +3487,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 +3563,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 +3616,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 +3664,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 +3687,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 +3706,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 +3722,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 +3736,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 +3745,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 +3755,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()
@@ -3810,12 +3903,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 */
@@ -3861,7 +3956,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 +3971,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 +3987,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 +4000,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 +4025,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];
@@ -3970,6 +4071,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 +4090,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];
 
@@ -4272,44 +4375,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 +4407,71 @@ static void DrawLevelInfoWindow()
     MapTextInputGadget(i);
 
   /* draw drawing area */
-  DrawRandomPlacementBackgroundArea();
-}
-
-static void DrawAmoebaContentArea()
-{
-  int area_x = ED_AREA_ELEM_CONTENT_XPOS / MINI_TILEX;
-  int area_y = ED_AREA_ELEM_CONTENT_YPOS / MINI_TILEY;
-  int area_sx = SX + ED_AREA_ELEM_CONTENT_XPOS;
-  int area_sy = SY + ED_AREA_ELEM_CONTENT_YPOS;
-
-  DrawElementBorder(area_sx, area_sy, MINI_TILEX, MINI_TILEY, TRUE);
-  DrawMiniElement(area_x, area_y, level.amoeba_content);
-
-  DrawText(area_sx + TILEX, area_sy + 1, "Content of amoeba", FONT_TEXT_1);
-
-  MapDrawingArea(ED_DRAWING_ID_AMOEBA_CONTENT);
-}
-
-static void DrawCustomGraphicElementArea()
-{
-  struct GadgetInfo *gi = level_editor_gadget[GADGET_ID_CUSTOM_GRAPHIC];
-#if 0
-  int xpos = ED_AREA_ELEM_CONTENT3_XPOS;
-  int ypos = ED_AREA_ELEM_CONTENT3_YPOS;
-  int area_sx = SX + xpos;
-  int area_sy = SY + ypos;
-#endif
-
-  if (!IS_CUSTOM_ELEMENT(properties_element))
-  {
-    /* this should never happen */
-    Error(ERR_WARN, "element %d is no custom element", properties_element);
-
-    return;
-  }
-
-  DrawElementBorder(gi->x, gi->y, MINI_TILEX, MINI_TILEY, TRUE);
-  DrawMiniGraphicExt(drawto, gi->x, gi->y,
-                    el2edimg(custom_element.gfx_element));
-
-  MapDrawingArea(ED_DRAWING_ID_CUSTOM_GRAPHIC);
+  MapDrawingArea(ED_DRAWING_ID_RANDOM_BACKGROUND);
 }
 
 static void DrawCustomContentArea()
 {
-  struct GadgetInfo *gi = level_editor_gadget[GADGET_ID_CUSTOM_CONTENT];
-#if 0
-  int area_sx = SX + ED_AREA_ELEM_CONTENT4_XPOS;
-  int area_sy = SY + ED_AREA_ELEM_CONTENT4_YPOS;
-#endif
+  int id = ED_DRAWING_ID_CUSTOM_CONTENT;
+  struct GadgetInfo *gi = level_editor_gadget[drawingarea_info[id].gadget_id];
   int x1 = right_gadget_border[GADGET_ID_CUSTOM_DEADLINESS];
   int x2 = right_gadget_border[GADGET_ID_CUSTOM_CONSISTENCY];
   int x3 = right_gadget_border[GADGET_ID_CUSTOM_EXPLODE_IMPACT];
-  int xoffset = ED_GADGET_TEXT_DISTANCE + MINI_TILEX / 2;
-  int x, y;
-
-  if (!IS_CUSTOM_ELEMENT(properties_element))
-  {
-    /* this should never happen */
-    Error(ERR_WARN, "element %d is no custom element", properties_element);
+  int xoffset = ED_DRAWINGAREA_TEXT_DISTANCE;
 
-    return;
-  }
+  /* add distance for potential left text (without drawing area border) */
+  x2 += getTextWidthForGadget(drawingarea_info[id].text_left);
 
   ModifyGadget(gi, GDI_X, MAX(x1, MAX(x2, x3)) + xoffset, GDI_END);
 
-  DrawElementBorder(gi->x, gi->y, 3 * MINI_TILEX, 3 * MINI_TILEY, TRUE);
-
-  for (y=0; y<3; y++)
-    for (x=0; x<3; x++)
-      DrawMiniGraphicExt(drawto, gi->x + x * MINI_TILEX,gi->y + y * MINI_TILEY,
-                        el2edimg(custom_element.content[x][y]));
-
   MapDrawingArea(ED_DRAWING_ID_CUSTOM_CONTENT);
 }
 
-static void DrawCustomChangeTargetArea()
-{
-  int id = ED_DRAWING_ID_CUSTOM_CHANGE_TARGET;
-  int gadget_id = drawingarea_info[id].gadget_id;
-  struct GadgetInfo *gi = level_editor_gadget[gadget_id];
-#if 0
-  int xpos = ED_AREA_ELEM_CONTENT2_XPOS;
-  int ypos = ED_AREA_ELEM_CONTENT2_YPOS;
-  int area_sx = SX + xpos;
-  int area_sy = SY + ypos;
-#endif
-  int xoffset_left = 0;
-  int yoffset_left = ED_BORDER_AREA_YSIZE;
-  int xoffset_right = ED_GADGET_TEXT_DISTANCE + MINI_TILEX / 2;
-  int yoffset_right = ED_BORDER_AREA_YSIZE;
-  int x = drawingarea_info[id].x + xoffset_left;
-  int y = drawingarea_info[id].y + yoffset_left;
-
-  if (!IS_CUSTOM_ELEMENT(properties_element))
-  {
-    /* this should never happen */
-    Error(ERR_WARN, "element %d is no custom element", properties_element);
-
-    return;
-  }
-
-  DrawElementBorder(gi->x, gi->y, MINI_TILEX, MINI_TILEY, TRUE);
-  DrawMiniGraphicExt(drawto, gi->x, gi->y,
-                    el2edimg(custom_element.change.target_element));
-
-  MapDrawingArea(ED_DRAWING_ID_CUSTOM_CHANGE_TARGET);
-
-  if (drawingarea_info[id].text_left)
-    DrawTextF(x, y, FONT_TEXT_1, drawingarea_info[id].text_left);
-
-  if (drawingarea_info[id].text_right)
-  {
-    x = gi->x + gi->width + xoffset_right;
-    y = SY + drawingarea_info[id].y + yoffset_right;
-
-    DrawText(x, y, drawingarea_info[id].text_right, FONT_TEXT_1);
-  }
-}
-
 static void DrawCustomChangeContentArea()
 {
-  struct GadgetInfo *gi = level_editor_gadget[GADGET_ID_CUSTOM_CHANGE_CONTENT];
-#if 0
-  int area_sx = SX + ED_AREA_ELEM_CONTENT6_XPOS;
-  int area_sy = SY + ED_AREA_ELEM_CONTENT6_YPOS;
-#endif
+  int id = ED_DRAWING_ID_CUSTOM_CHANGE_CONTENT;
+  struct GadgetInfo *gi = level_editor_gadget[drawingarea_info[id].gadget_id];
   int x1 = right_gadget_border[GADGET_ID_CHANGE_USE_CONTENT];
   int x2 = right_gadget_border[GADGET_ID_CHANGE_POWER];
   int x3 = right_gadget_border[GADGET_ID_CHANGE_ONLY_COMPLETE];
-  int xoffset = ED_GADGET_TEXT_DISTANCE + MINI_TILEX / 2;
-  int x, y;
-
-  if (!IS_CUSTOM_ELEMENT(properties_element))
-  {
-    /* this should never happen */
-    Error(ERR_WARN, "element %d is no custom element", properties_element);
-
-    return;
-  }
+  int xoffset = ED_DRAWINGAREA_TEXT_DISTANCE;
 
   ModifyGadget(gi, GDI_X, MAX(x1, MAX(x2, x3)) + xoffset, GDI_END);
 
-  DrawElementBorder(gi->x, gi->y, 3 * MINI_TILEX, 3 * MINI_TILEY, TRUE);
-
-  for (y=0; y<3; y++)
-    for (x=0; x<3; x++)
-      DrawMiniGraphicExt(drawto, gi->x + x * MINI_TILEX,gi->y + y * MINI_TILEY,
-                        el2edimg(custom_element.change.content[x][y]));
-
-  MapDrawingArea(ED_DRAWING_ID_CUSTOM_CHANGE_CONTENT);
-}
-
-static void DrawCustomChangeTriggerArea()
-{
-  struct GadgetInfo *gi = level_editor_gadget[GADGET_ID_CUSTOM_CHANGE_TRIGGER];
-#if 0
-  int xpos = ED_AREA_ELEM_CONTENT5_XPOS;
-  int ypos = ED_AREA_ELEM_CONTENT5_YPOS;
-  int area_sx = SX + xpos;
-  int area_sy = SY + ypos;
-#endif
-
-  if (!IS_CUSTOM_ELEMENT(properties_element))
-  {
-    /* this should never happen */
-    Error(ERR_WARN, "element %d is no custom element", properties_element);
-
-    return;
-  }
-
-  DrawElementBorder(gi->x, gi->y, MINI_TILEX, MINI_TILEY, TRUE);
-  DrawMiniGraphicExt(drawto, gi->x, gi->y,
-                    el2edimg(custom_element.change.trigger_element));
-
-  MapDrawingArea(ED_DRAWING_ID_CUSTOM_CHANGE_TRIGGER);
+  MapDrawingArea(id);
 }
 
 static void DrawElementContentAreas()
 {
-  int area_x = ED_AREA_ELEM_CONTENT_XPOS / MINI_TILEX;
-  int area_y = ED_AREA_ELEM_CONTENT_YPOS / MINI_TILEY;
-  int area_sx = SX + ED_AREA_ELEM_CONTENT_XPOS;
-  int area_sy = SY + ED_AREA_ELEM_CONTENT_YPOS;
-  int i, x, y;
-
-  for (i=0; i<MAX_ELEMENT_CONTENTS; i++)
-    UnmapDrawingArea(GADGET_ID_ELEMENT_CONTENT_0 + i);
+  int x = SX + ED_AREA_YAMYAM_CONTENT_XPOS(3) + 4 * MINI_TILEX;
+  int y = SY + ED_AREA_YAMYAM_CONTENT_YPOS(0) + ED_BORDER_AREA_YSIZE;
+  int i;
 
   /* display counter to choose number of element content areas */
   MapCounterButtons(ED_COUNTER_ID_ELEMENT_CONTENT);
 
-  /* delete content areas in case of reducing number of them */
-  DrawBackground(SX, area_sy - MINI_TILEX, SXSIZE, 12 * MINI_TILEY);
-
-  for (i=0; i<level.num_yamyam_contents; i++)
-    DrawElementBorder(area_sx + 5 * (i % 4) * MINI_TILEX,
-                     area_sy + 6 * (i / 4) * MINI_TILEY,
-                     3 * MINI_TILEX, 3 * MINI_TILEY, TRUE);
-
-  DrawText(area_sx + (5 * 4 - 1) * MINI_TILEX, area_sy + 0 * MINI_TILEY + 1,
-          "Content", FONT_TEXT_1);
-  DrawText(area_sx + (5 * 4 - 1) * MINI_TILEX, area_sy + 1 * MINI_TILEY + 1,
-          "when",    FONT_TEXT_1);
-  DrawText(area_sx + (5 * 4 - 1) * MINI_TILEX, area_sy + 2 * MINI_TILEY + 1,
-          "smashed", FONT_TEXT_1);
-
-  for (i=0; i<level.num_yamyam_contents; i++)
+  for (i=0; i < MAX_ELEMENT_CONTENTS; i++)
   {
-    for (y=0; y<3; y++)
-      for (x=0; x<3; x++)
-       DrawMiniElement(area_x + 5 * (i % 4) + x, area_y + 6 * (i / 4) + y,
-                       level.yamyam_content[i][x][y]);
+    int id = ED_DRAWING_ID_ELEMENT_CONTENT_0 + i;
+    int font_height = getFontHeight(FONT_TEXT_1);
+
+    if (i < level.num_yamyam_contents)
+      MapDrawingArea(id);
+    else
+    {
+      UnmapDrawingArea(id);
 
-    DrawTextF(area_sx - SX + 5 * (i % 4) * MINI_TILEX + MINI_TILEX + 1,
-             area_sy - SY + 6 * (i / 4) * MINI_TILEY + 4 * MINI_TILEY - 4,
-             FONT_TEXT_1, "%d", i + 1);
+      /* delete content areas in case of reducing number of them */
+      DrawBackground(SX + drawingarea_info[id].x - MINI_TILEX / 2,
+                    SY + drawingarea_info[id].y - MINI_TILEY / 2,
+                    4 * MINI_TILEX,
+                    4 * MINI_TILEX + ED_GADGET_TEXT_DISTANCE + font_height);
+    }
   }
 
-  for (i=0; i<level.num_yamyam_contents; i++)
-    MapDrawingArea(ED_DRAWING_ID_ELEMENT_CONTENT_0 + i);
+  DrawText(x, y + 0 * MINI_TILEY, "content", FONT_TEXT_1);
+  DrawText(x, y + 1 * MINI_TILEY, "when",    FONT_TEXT_1);
+  DrawText(x, y + 2 * MINI_TILEY, "smashed", FONT_TEXT_1);
 }
 
 char *getElementDescriptionFilename(int element)
@@ -4799,9 +4708,10 @@ static void DrawPropertiesInfo()
     { EP_PASSABLE_INSIDE,      "- player can pass through it"          },
     { EP_PASSABLE_UNDER,       "- player can pass under it"            },
 
-    { EP_DIGGABLE,             "- diggable"                            },
-    { EP_COLLECTIBLE,          "- collectible"                         },
-    { EP_PUSHABLE,             "- pushable"                            },
+    { EP_DIGGABLE,             "- can be digged away"                  },
+    { EP_COLLECTIBLE,          "- can be collected"                    },
+    { EP_DROPPABLE,            "- can be dropped after collecting"     },
+    { EP_PUSHABLE,             "- can be pushed"                       },
 
     { EP_CAN_MOVE,             "- can move"                            },
     { EP_CAN_FALL,             "- can fall"                            },
@@ -5015,7 +4925,7 @@ static void DrawPropertiesConfig()
     MapCheckbuttonGadget(i);
 
     if (IS_AMOEBOID(properties_element))
-      DrawAmoebaContentArea();
+      MapDrawingArea(ED_DRAWING_ID_AMOEBA_CONTENT);
     else
       DrawElementContentAreas();
   }
@@ -5053,9 +4963,10 @@ static void DrawPropertiesConfig()
 
 static void DrawPropertiesAdvancedDrawingAreas()
 {
-  DrawCustomGraphicElementArea();
-  DrawCustomChangeTargetArea();
-  DrawCustomChangeTriggerArea();
+  MapDrawingArea(ED_DRAWING_ID_CUSTOM_GRAPHIC);
+  MapDrawingArea(ED_DRAWING_ID_CUSTOM_CHANGE_TARGET);
+  MapDrawingArea(ED_DRAWING_ID_CUSTOM_CHANGE_TRIGGER);
+
   DrawCustomChangeContentArea();
 
   redraw_mask |= REDRAW_FIELD;
index 0dec9df9a52d62b89705f83f9ac61f39f4c560c6..f060c0ff1d9ec1aa11df94b283fa994788efcb6e 100644 (file)
@@ -793,9 +793,16 @@ void HandleKey(Key key, int key_status)
 
        case KSYM_Q:
        case KSYM_q:
-         local_player->dynamite = 1000;
-         break;
+         {
+           int i;
 
+           for (i=0; i < MAX_INVENTORY_SIZE; i++)
+             if (local_player->inventory_size < MAX_INVENTORY_SIZE)
+               local_player->inventory_element[local_player->inventory_size++] =
+                 EL_DYNAMITE;
+         }
+
+         break;
 
 
 #if 0
index 4f24ebbe1aae5d87fe10b68901aeb4a49ad8227c..67eee3a7155346b8ed98d81b6d5a66fbb7add709 100644 (file)
@@ -74,7 +74,7 @@ static void setLevelInfoToDefaults(struct LevelInfo *level)
   level->time_timegate = 10;
   level->amoeba_content = EL_DIAMOND;
   level->double_speed = FALSE;
-  level->initial_gravity = FALSE;
+  level->gravity = FALSE;
   level->em_slippery_gems = FALSE;
 
   level->use_custom_template = FALSE;
@@ -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;
@@ -276,7 +278,7 @@ static int LoadLevel_HEAD(FILE *file, int chunk_size, struct LevelInfo *level)
   level->time_wheel            = getFile8Bit(file);
   level->amoeba_content                = checkLevelElement(getFile8Bit(file));
   level->double_speed          = (getFile8Bit(file) == 1 ? TRUE : FALSE);
-  level->initial_gravity       = (getFile8Bit(file) == 1 ? TRUE : FALSE);
+  level->gravity               = (getFile8Bit(file) == 1 ? TRUE : FALSE);
   level->encoding_16bit_field  = (getFile8Bit(file) == 1 ? TRUE : FALSE);
   level->em_slippery_gems      = (getFile8Bit(file) == 1 ? TRUE : FALSE);
 
@@ -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;
@@ -838,7 +843,7 @@ static void SaveLevel_HEAD(FILE *file, struct LevelInfo *level)
   putFile8Bit(file, (level->encoding_16bit_amoeba ? EL_EMPTY :
                     level->amoeba_content));
   putFile8Bit(file, (level->double_speed ? 1 : 0));
-  putFile8Bit(file, (level->initial_gravity ? 1 : 0));
+  putFile8Bit(file, (level->gravity ? 1 : 0));
   putFile8Bit(file, (level->encoding_16bit_field ? 1 : 0));
   putFile8Bit(file, (level->em_slippery_gems ? 1 : 0));
 
@@ -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);
 
@@ -1198,7 +1203,7 @@ void DumpLevel(struct LevelInfo *level)
   printf("\n");
   printf("Amoeba Speed: %d\n", level->amoeba_speed);
   printf("\n");
-  printf("Gravity:                %s\n", (level->initial_gravity ?"yes":"no"));
+  printf("Gravity:                %s\n", (level->gravity ? "yes" : "no"));
   printf("Double Speed Movement:  %s\n", (level->double_speed ? "yes" : "no"));
   printf("EM style slippery gems: %s\n", (level->em_slippery_gems ? "yes" : "no"));
 
index f5b3ab7b883d783c088bd11a20379611c4fc3a75..32311aa5f492bdf4c5e4d5a540faf6a6130c3345 100644 (file)
@@ -398,9 +398,9 @@ move_stepsize_list[] =
 struct
 {
   int element;
-  int gem_count;
+  int count;
 }
-gem_count_list[] =
+collect_count_list[] =
 {
   { EL_EMERALD,                        1 },
   { EL_BD_DIAMOND,             1 },
@@ -715,7 +715,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 +890,12 @@ static void InitGameEngine()
   /* initialize gem count values for each element */
   for (i=0; i<MAX_NUM_ELEMENTS; i++)
     if (!IS_CUSTOM_ELEMENT(i))
-      element_info[i].gem_count = 0;
+      element_info[i].collect_count = 0;
 
   /* add gem count values for all elements from pre-defined list */
-  for (i=0; gem_count_list[i].element != EL_UNDEFINED; i++)
-    element_info[gem_count_list[i].element].gem_count =
-      gem_count_list[i].gem_count;
+  for (i=0; collect_count_list[i].element != EL_UNDEFINED; i++)
+    element_info[collect_count_list[i].element].collect_count =
+      collect_count_list[i].count;
 }
 
 
@@ -952,7 +952,6 @@ void InitGame()
     for (j=0; j<4; j++)
       player->key[j] = FALSE;
 
-    player->dynamite = 0;
     player->dynabomb_count = 0;
     player->dynabomb_size = 1;
     player->dynabombs_left = 0;
@@ -994,6 +993,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);
 
@@ -1032,7 +1033,6 @@ void InitGame()
   game.switchgate_pos = 0;
   game.balloon_dir = MV_NO_MOVING;
   game.explosions_delayed = TRUE;
-  game.current_gravity = level.initial_gravity;
 
   for (i=0; i<4; i++)
   {
@@ -2039,7 +2039,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;
@@ -2684,7 +2684,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);
@@ -5146,11 +5148,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;
@@ -5415,7 +5419,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;
@@ -5438,13 +5442,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 */
@@ -6088,7 +6093,7 @@ void ScrollLevel(int dx, int dy)
 
 static void CheckGravityMovement(struct PlayerInfo *player)
 {
-  if (game.current_gravity && !player->programmed_action)
+  if (level.gravity && !player->programmed_action)
   {
     int move_dir_vertical = player->action & (MV_UP | MV_DOWN);
     int move_dir_horizontal = player->action & (MV_LEFT | MV_RIGHT);
@@ -6467,11 +6472,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;
@@ -6484,7 +6487,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);
@@ -6511,11 +6514,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;
@@ -6524,23 +6527,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;
 }
 
@@ -7086,7 +7093,7 @@ int DigField(struct PlayerInfo *player,
          element == EL_SP_GRAVITY_PORT_RIGHT ||
          element == EL_SP_GRAVITY_PORT_UP ||
          element == EL_SP_GRAVITY_PORT_DOWN)
-       game.current_gravity = !game.current_gravity;
+       level.gravity = !level.gravity;
 
       /* automatically move to the next field with double speed */
       player->programmed_action = move_direction;
@@ -7256,11 +7263,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)
        {
@@ -7287,10 +7296,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;
 
@@ -7466,66 +7486,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);
@@ -7711,7 +7733,7 @@ void RaiseScoreElement(int element)
       RaiseScore(level.score[SC_KEY]);
       break;
     default:
-      RaiseScore(element_info[element].score);
+      RaiseScore(element_info[element].collect_score);
       break;
   }
 }
index 01209d95e53d733ace1fc96e2070d4a10b789f4b..6c6ea57bf46c6cf36fb6d1b791ecd60f26af5d9a 100644 (file)
@@ -95,7 +95,7 @@ void BuryHero(struct PlayerInfo *);
 void RemoveHero(struct PlayerInfo *);
 int DigField(struct PlayerInfo *, int, int, int, int, int);
 boolean SnapField(struct PlayerInfo *, int, int);
-boolean PlaceBomb(struct PlayerInfo *);
+boolean DropElement(struct PlayerInfo *);
 
 void InitPlaySoundLevel();
 
index 79a67d1eb066eec2842660ddf6b26a633d2d62b2..7132ab78c99a89f07aad6e8ee759c55c1436194d 100644 (file)
@@ -1284,7 +1284,7 @@ void InitElementPropertiesStatic()
     -1
   };
 
-  static int ep_collectible[] =
+  static int ep_collectible_only[] =
   {
     EL_BD_DIAMOND,
     EL_EMERALD,
@@ -2495,7 +2495,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 +2639,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 +2705,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) ||
index 5558fc1c2b8efb471a4f994dfdc050fead8b6118..a4b60302110914df7d3b35640470c9b9ddbc95e3 100644 (file)
@@ -144,6 +144,11 @@ int getFontHeight(int font_nr)
   return gfx.font_bitmap_info[font_bitmap_id].height;
 }
 
+int getTextWidth(char *text, int font_nr)
+{
+  return (text != NULL ? strlen(text) * getFontWidth(font_nr) : 0);
+}
+
 static char getFontCharPosition(int font_nr, char c)
 {
   int font_bitmap_id = gfx.select_font_function(font_nr);
@@ -179,11 +184,9 @@ void DrawInitText(char *text, int ypos, int font_nr)
       gfx.num_fonts > 0 &&
       gfx.font_bitmap_info[font_nr].bitmap != NULL)
   {
-    int text_width = strlen(text) * getFontWidth(font_nr);
-
     ClearRectangle(window, 0, ypos, video.width, getFontHeight(font_nr));
-    DrawTextExt(window, (video.width - text_width) / 2, ypos, text, font_nr,
-               BLIT_OPAQUE);
+    DrawTextExt(window, (video.width - getTextWidth(text, font_nr)) / 2, ypos,
+               text, font_nr, BLIT_OPAQUE);
     FlushDisplay();
   }
 }
@@ -200,7 +203,7 @@ void DrawTextFCentered(int y, int font_nr, char *format, ...)
   if (strlen(buffer) > MAX_OUTPUT_LINESIZE)
     Error(ERR_EXIT, "string too long in DrawTextFCentered() -- aborting");
 
-  DrawText(gfx.sx + (gfx.sxsize - strlen(buffer) * getFontWidth(font_nr)) / 2,
+  DrawText(gfx.sx + (gfx.sxsize - getTextWidth(buffer, font_nr)) / 2,
           gfx.sy + y, buffer, font_nr);
 }
 
index 5d701fa714e4cf4073a8eb3f104324d70f8ce86a..fd1e8c57d558a1efa501c4b3470183e666930fde 100644 (file)
@@ -57,6 +57,8 @@ void FreeFontInfo(struct FontBitmapInfo *);
 
 int getFontWidth(int);
 int getFontHeight(int);
+int getTextWidth(char *, int);
+
 void getFontCharSource(int, char, Bitmap **, int *, int *);
 
 void DrawInitText(char *, int, int);
index 24ecedf4673ee89a14b0090a0cc2fe78b30b7912..601b0a71e6612bd549eac2b84e92f78e726d082c 100644 (file)
@@ -63,7 +63,7 @@
 
 /* values for configurable properties (custom elem's only, else pre-defined) */
 #define EP_DIGGABLE            0
-#define EP_COLLECTIBLE         1
+#define EP_COLLECTIBLE_ONLY    1
 #define EP_DONT_RUN_INTO       2
 #define EP_DONT_COLLIDE_WITH   3
 #define EP_DONT_TOUCH          4
@@ -84,7 +84,7 @@
 #define EP_PASSABLE_OVER       19
 #define EP_PASSABLE_INSIDE     20
 #define EP_PASSABLE_UNDER      21
-#define EP_UNUSED_22           22
+#define EP_DROPPABLE           22
 #define EP_UNUSED_23           23
 #define EP_PUSHABLE            24
 
 #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
 
 /* 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      71
+#define EP_WALK_TO_OBJECT      72
+#define EP_DEADLY              73
 
-#define NUM_ELEMENT_PROPERTIES 73
+#define NUM_ELEMENT_PROPERTIES 74
 
 #define NUM_EP_BITFIELDS       ((NUM_ELEMENT_PROPERTIES + 31) / 32)
 #define EP_BITFIELD_BASE       0
 #define CE_TOUCHED_BY_PLAYER   1
 #define CE_PRESSED_BY_PLAYER   2
 #define CE_PUSHED_BY_PLAYER    3
-#define CE_COLLISION           4
-#define CE_IMPACT              5
-#define CE_SMASHED             6
-#define CE_OTHER_IS_TOUCHING   7
-#define CE_OTHER_IS_CHANGING   8
-#define CE_OTHER_IS_EXPLODING  9
-#define CE_OTHER_GETS_TOUCHED  10
-#define CE_OTHER_GETS_PRESSED  11
-#define CE_OTHER_GETS_PUSHED   12
-#define CE_OTHER_GETS_COLLECTED        13
+#define CE_DROPPED_BY_PLAYER   4
+#define CE_COLLISION           5
+#define CE_IMPACT              6
+#define CE_SMASHED             7
+#define CE_OTHER_IS_TOUCHING   8
+#define CE_OTHER_IS_CHANGING   9
+#define CE_OTHER_IS_EXPLODING  10
+#define CE_OTHER_GETS_TOUCHED  11
+#define CE_OTHER_GETS_PRESSED  12
+#define CE_OTHER_GETS_PUSHED   13
+#define CE_OTHER_GETS_COLLECTED        14
+#define CE_OTHER_GETS_DROPPED  15
 
 /* values for internal purpose only (level editor) */
-#define CE_BY_PLAYER           14
-#define CE_BY_COLLISION                15
-#define CE_BY_OTHER            16
+#define CE_BY_PLAYER           16
+#define CE_BY_COLLISION                17
+#define CE_BY_OTHER            18
 
-#define NUM_CHANGE_EVENTS      17
+#define NUM_CHANGE_EVENTS      19
 
 #define CE_BITMASK_DEFAULT     0
 
 
 /* macros for configurable properties */
 #define IS_DIGGABLE(e)         HAS_PROPERTY(e, EP_DIGGABLE)
-#define IS_COLLECTIBLE(e)      HAS_PROPERTY(e, EP_COLLECTIBLE)
+#define IS_COLLECTIBLE_ONLY(e) HAS_PROPERTY(e, EP_COLLECTIBLE_ONLY)
 #define DONT_RUN_INTO(e)       HAS_PROPERTY(e, EP_DONT_RUN_INTO)
 #define DONT_COLLIDE_WITH(e)   HAS_PROPERTY(e, EP_DONT_COLLIDE_WITH)
 #define DONT_TOUCH(e)          HAS_PROPERTY(e, EP_DONT_TOUCH)
 #define IS_PASSABLE_OVER(e)    HAS_PROPERTY(e, EP_PASSABLE_OVER)
 #define IS_PASSABLE_INSIDE(e)  HAS_PROPERTY(e, EP_PASSABLE_INSIDE)
 #define IS_PASSABLE_UNDER(e)   HAS_PROPERTY(e, EP_PASSABLE_UNDER)
+#define IS_DROPPABLE(e)                HAS_PROPERTY(e, EP_DROPPABLE)
 #define IS_PUSHABLE(e)         HAS_PROPERTY(e, EP_PUSHABLE)
 
 /* macros for special configurable properties */
 #define IS_ACCESSIBLE_OVER(e)  HAS_PROPERTY(e, EP_ACCESSIBLE_OVER)
 #define IS_ACCESSIBLE_INSIDE(e)        HAS_PROPERTY(e, EP_ACCESSIBLE_INSIDE)
 #define IS_ACCESSIBLE_UNDER(e) HAS_PROPERTY(e, EP_ACCESSIBLE_UNDER)
-#define IS_SNAPPABLE(e)                HAS_PROPERTY(e, EP_SNAPPABLE)
 #define IS_WALKABLE(e)         HAS_PROPERTY(e, EP_WALKABLE)
 #define IS_PASSABLE(e)         HAS_PROPERTY(e, EP_PASSABLE)
 #define IS_ACCESSIBLE(e)       HAS_PROPERTY(e, EP_ACCESSIBLE)
+#define IS_COLLECTIBLE(e)      HAS_PROPERTY(e, EP_COLLECTIBLE)
+#define IS_SNAPPABLE(e)                HAS_PROPERTY(e, EP_SNAPPABLE)
 #define IS_WALL(e)             HAS_PROPERTY(e, EP_WALL)
 #define IS_SOLID_FOR_PUSHING(e)        HAS_PROPERTY(e, EP_SOLID_FOR_PUSHING)
 #define IS_DRAGONFIRE_PROOF(e) HAS_PROPERTY(e, EP_DRAGONFIRE_PROOF)
 #define 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
 
 #define PROGRAM_VERSION_MAJOR  3
 #define PROGRAM_VERSION_MINOR  0
-#define PROGRAM_VERSION_PATCH  1
+#define PROGRAM_VERSION_PATCH  0
 #define PROGRAM_VERSION_RELEASE        0
-#define PROGRAM_VERSION_STRING "3.0.1"
+#define PROGRAM_VERSION_STRING "3.0.0"
 
 #define PROGRAM_TITLE_STRING   "Rocks'n'Diamonds"
 #define PROGRAM_AUTHOR_STRING  "Holger Schemel"
@@ -1086,10 +1092,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
@@ -1117,7 +1125,7 @@ struct LevelInfo
   int time_light;
   int time_timegate;
   boolean double_speed;
-  boolean initial_gravity;
+  boolean gravity;
   boolean em_slippery_gems;    /* EM style "gems slip from wall" behaviour */
 
   short field[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
@@ -1179,7 +1187,6 @@ struct GameInfo
   int switchgate_pos;
   int balloon_dir;
   boolean explosions_delayed;
-  boolean current_gravity;
 };
 
 struct GlobalInfo
@@ -1271,8 +1278,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 */
@@ -1304,6 +1311,8 @@ struct ElementInfo
   boolean can_explode_by_fire; /* element explodes by fire */
   boolean can_explode_smashed; /* element explodes when smashed */
   boolean can_explode_impact;  /* element explodes on impact */
+
+  boolean modified_settings;   /* set for all modified custom elements */
 };
 
 struct FontInfo
index d0b5313d735b27fcf89b67157aa58f3c38974e1f..c3b75a318bc81cf494c839d925f33a5f5f1ad09f 100644 (file)
@@ -155,10 +155,10 @@ static void PlaySound_Menu_Continue(int sound)
 
 void DrawHeadline()
 {
-  int font1_width = getFontWidth(FONT_TITLE_1);
-  int font2_width = getFontWidth(FONT_TITLE_2);
-  int x1 = SX + (SXSIZE - strlen(PROGRAM_TITLE_STRING)   * font1_width) / 2;
-  int x2 = SX + (SXSIZE - strlen(WINDOW_SUBTITLE_STRING) * font2_width) / 2;
+  int text1_width = getTextWidth(PROGRAM_TITLE_STRING,   FONT_TITLE_1);
+  int text2_width = getTextWidth(WINDOW_SUBTITLE_STRING, FONT_TITLE_2);
+  int x1 = SX + (SXSIZE - text1_width) / 2;
+  int x2 = SX + (SXSIZE - text2_width) / 2;
 
   DrawText(x1, SY + 8,  PROGRAM_TITLE_STRING,   FONT_TITLE_1);
   DrawText(x2, SY + 46, WINDOW_SUBTITLE_STRING, FONT_TITLE_2);
@@ -192,9 +192,8 @@ void DrawMainMenu()
 {
   static LevelDirTree *leveldir_last_valid = NULL;
   char *name_text = (!options.network && setup.team_mode ? "Team:" : "Name:");
-  int font_width = getFontWidth(FONT_MENU_1);
-  int name_width = font_width * strlen("Name:");
-  int level_width = font_width * strlen("Level:");
+  int name_width  = getTextWidth("Name:",  FONT_MENU_1);
+  int level_width = getTextWidth("Level:", FONT_MENU_1);
   int i;
 
   UnmapAllGadgets();
index d37a7b0e991b821c3979602a3689758ccdf3504d..9b5873b5cc3a920c636bb21ec8bab50e7b76fec6 100644 (file)
@@ -666,14 +666,13 @@ void DrawPlayer(struct PlayerInfo *player)
     if (player_is_moving && GfxElement[jx][jy] != EL_UNDEFINED)
     {
 #if 1
-      /* !!! insert DrawLevelFieldCrumbledSandDigging code here !!! */
-      if (player->is_digging && CAN_BE_CRUMBLED(GfxElement[jx][jy]))
+      if (CAN_BE_CRUMBLED(GfxElement[jx][jy]))
        DrawLevelFieldCrumbledSandDigging(jx, jy, move_dir, player->StepFrame);
 #else
       if (GfxElement[jx][jy] == EL_SAND)
        DrawLevelFieldCrumbledSandDigging(jx, jy, move_dir, player->StepFrame);
 #endif
-      else     /* player->is_collecting */
+      else
       {
        int old_element = GfxElement[jx][jy];
        int old_graphic = el_act_dir2img(old_element, action, move_dir);
@@ -1323,9 +1322,7 @@ void DrawLevelFieldCrumbledSandDigging(int x, int y, int direction,
   int sx = SCREENX(x), sy = SCREENY(y);
 
   DrawGraphic(sx, sy, graphic1, frame1);
-
-  if (graphic1 != IMG_EMPTY_SPACE)
-    DrawLevelFieldCrumbledSandExt(x, y, graphic2, frame2);
+  DrawLevelFieldCrumbledSandExt(x, y, graphic2, frame2);
 }
 
 void DrawLevelFieldCrumbledSandNeighbours(int x, int y)
@@ -1637,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);
@@ -1674,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);