rnd-20031116-1-src
authorHolger Schemel <info@artsoft.org>
Sun, 16 Nov 2003 03:25:47 +0000 (04:25 +0100)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:44:33 +0000 (10:44 +0200)
19 files changed:
src/Makefile
src/conf_e2g.c
src/conf_gfx.c
src/conf_gfx.h
src/conf_mus.c [new file with mode: 0644]
src/conf_mus.h [new file with mode: 0644]
src/conf_snd.c
src/conf_snd.h
src/conftime.h
src/game.c
src/game.h
src/init.c
src/libgame/misc.c
src/libgame/setup.c
src/libgame/sound.c
src/libgame/sound.h
src/main.c
src/main.h
src/screens.c

index 46a9ddd29df4b9bc7fbe225afb15fa1913ef2c5e..dd6896bf53b9e7fee6491fe1431495fd3a87f080 100644 (file)
@@ -135,6 +135,7 @@ LDFLAGS = $(SYS_LDFLAGS) $(EXTRA_LDFLAGS) -lm
 SRCS = main.c          \
        conf_gfx.c      \
        conf_snd.c      \
+       conf_mus.c      \
        init.c          \
        config.c        \
        events.c        \
@@ -151,6 +152,7 @@ SRCS =      main.c          \
 OBJS = main.o          \
        conf_gfx.o      \
        conf_snd.o      \
+       conf_mus.o      \
        init.o          \
        config.o        \
        events.o        \
@@ -166,6 +168,7 @@ OBJS =      main.o          \
 
 CNFS = conf_gfx.h      \
        conf_snd.h      \
+       conf_mus.h      \
        conf_chr.c      \
        conf_chr.h      \
        conf_cus.c      \
@@ -215,6 +218,9 @@ conf_gfx.h: conf_gfx.c
 conf_snd.h: conf_snd.c
        @$(MAKE) auto-conf
 
+conf_mus.h: conf_mus.c
+       @$(MAKE) auto-conf
+
 $(TIMESTAMP_FILE): $(SRCS) $(LIBGAME)
        @date '+"[%Y-%m-%d %H:%M]"' \
        | sed -e 's/^/#define COMPILE_DATE_STRING /' \
index 4f989bad88e2d0f399fedaf4f1a54d66185562db..e17b2fac5db6dc1180e757c8c526716e189a3ae2 100644 (file)
@@ -109,74 +109,10 @@ element_to_graphic[] =
     EL_BD_BUTTERFLY,                   -1, -1, FALSE,
     IMG_BD_BUTTERFLY
   },
-  {
-    EL_BD_BUTTERFLY_RIGHT,             -1, -1, FALSE,
-    IMG_BD_BUTTERFLY_RIGHT
-  },
-  {
-    EL_BD_BUTTERFLY,                   -1, MV_BIT_RIGHT, FALSE,
-    IMG_BD_BUTTERFLY_RIGHT
-  },
-  {
-    EL_BD_BUTTERFLY_UP,                        -1, -1, FALSE,
-    IMG_BD_BUTTERFLY_UP
-  },
-  {
-    EL_BD_BUTTERFLY,                   -1, MV_BIT_UP, FALSE,
-    IMG_BD_BUTTERFLY_UP
-  },
-  {
-    EL_BD_BUTTERFLY_LEFT,              -1, -1, FALSE,
-    IMG_BD_BUTTERFLY_LEFT
-  },
-  {
-    EL_BD_BUTTERFLY,                   -1, MV_BIT_LEFT, FALSE,
-    IMG_BD_BUTTERFLY_LEFT
-  },
-  {
-    EL_BD_BUTTERFLY_DOWN,              -1, -1, FALSE,
-    IMG_BD_BUTTERFLY_DOWN
-  },
-  {
-    EL_BD_BUTTERFLY,                   -1, MV_BIT_DOWN, FALSE,
-    IMG_BD_BUTTERFLY_DOWN
-  },
   {
     EL_BD_FIREFLY,                     -1, -1, FALSE,
     IMG_BD_FIREFLY
   },
-  {
-    EL_BD_FIREFLY_RIGHT,               -1, -1, FALSE,
-    IMG_BD_FIREFLY_RIGHT
-  },
-  {
-    EL_BD_FIREFLY,                     -1, MV_BIT_RIGHT, FALSE,
-    IMG_BD_FIREFLY_RIGHT
-  },
-  {
-    EL_BD_FIREFLY_UP,                  -1, -1, FALSE,
-    IMG_BD_FIREFLY_UP
-  },
-  {
-    EL_BD_FIREFLY,                     -1, MV_BIT_UP, FALSE,
-    IMG_BD_FIREFLY_UP
-  },
-  {
-    EL_BD_FIREFLY_LEFT,                        -1, -1, FALSE,
-    IMG_BD_FIREFLY_LEFT
-  },
-  {
-    EL_BD_FIREFLY,                     -1, MV_BIT_LEFT, FALSE,
-    IMG_BD_FIREFLY_LEFT
-  },
-  {
-    EL_BD_FIREFLY_DOWN,                        -1, -1, FALSE,
-    IMG_BD_FIREFLY_DOWN
-  },
-  {
-    EL_BD_FIREFLY,                     -1, MV_BIT_DOWN, FALSE,
-    IMG_BD_FIREFLY_DOWN
-  },
   {
     EL_SP_DEFAULT,                     ACTION_EXPLODING, -1, FALSE,
     IMG_SP_DEFAULT_EXPLODING
index d0758de8b21bd809e3725e649c6a669b27e1f178..36d9ddbfd2f9696df101577ec8dbfc2137f97770 100644 (file)
@@ -167,50 +167,18 @@ struct ConfigInfo image_config[] =
   { "bd_butterfly.anim_mode",                  "pingpong"              },
   { "bd_butterfly.delay",                      "4"                     },
   { "bd_butterfly.global_sync",                        "true"                  },
-  { "bd_butterfly.right",                      "RocksElements.pcx"     },
-  { "bd_butterfly.right.xpos",                 "4"                     },
-  { "bd_butterfly.right.ypos",                 "12"                    },
-  { "bd_butterfly.right.frames",               "2"                     },
-  { "bd_butterfly.right.anim_mode",            "pingpong"              },
-  { "bd_butterfly.right.delay",                        "4"                     },
-  { "bd_butterfly.right.global_sync",          "true"                  },
   { "bd_butterfly.right.EDITOR",               "RocksElements.pcx"     },
   { "bd_butterfly.right.EDITOR.xpos",          "8"                     },
   { "bd_butterfly.right.EDITOR.ypos",          "12"                    },
-  { "bd_butterfly.right.EDITOR.frames",                "1"                     },
-  { "bd_butterfly.up",                         "RocksElements.pcx"     },
-  { "bd_butterfly.up.xpos",                    "4"                     },
-  { "bd_butterfly.up.ypos",                    "12"                    },
-  { "bd_butterfly.up.frames",                  "2"                     },
-  { "bd_butterfly.up.anim_mode",               "pingpong"              },
-  { "bd_butterfly.up.delay",                   "4"                     },
-  { "bd_butterfly.up.global_sync",             "true"                  },
   { "bd_butterfly.up.EDITOR",                  "RocksElements.pcx"     },
   { "bd_butterfly.up.EDITOR.xpos",             "9"                     },
   { "bd_butterfly.up.EDITOR.ypos",             "12"                    },
-  { "bd_butterfly.up.EDITOR.frames",           "1"                     },
-  { "bd_butterfly.left",                       "RocksElements.pcx"     },
-  { "bd_butterfly.left.xpos",                  "4"                     },
-  { "bd_butterfly.left.ypos",                  "12"                    },
-  { "bd_butterfly.left.frames",                        "2"                     },
-  { "bd_butterfly.left.anim_mode",             "pingpong"              },
-  { "bd_butterfly.left.delay",                 "4"                     },
-  { "bd_butterfly.left.global_sync",           "true"                  },
   { "bd_butterfly.left.EDITOR",                        "RocksElements.pcx"     },
   { "bd_butterfly.left.EDITOR.xpos",           "10"                    },
   { "bd_butterfly.left.EDITOR.ypos",           "12"                    },
-  { "bd_butterfly.left.EDITOR.frames",         "1"                     },
-  { "bd_butterfly.down",                       "RocksElements.pcx"     },
-  { "bd_butterfly.down.xpos",                  "4"                     },
-  { "bd_butterfly.down.ypos",                  "12"                    },
-  { "bd_butterfly.down.frames",                        "2"                     },
-  { "bd_butterfly.down.anim_mode",             "pingpong"              },
-  { "bd_butterfly.down.delay",                 "4"                     },
-  { "bd_butterfly.down.global_sync",           "true"                  },
   { "bd_butterfly.down.EDITOR",                        "RocksElements.pcx"     },
   { "bd_butterfly.down.EDITOR.xpos",           "11"                    },
   { "bd_butterfly.down.EDITOR.ypos",           "12"                    },
-  { "bd_butterfly.down.EDITOR.frames",         "1"                     },
 
   { "bd_firefly",                              "RocksElements.pcx"     },
   { "bd_firefly.xpos",                         "6"                     },
@@ -219,50 +187,18 @@ struct ConfigInfo image_config[] =
   { "bd_firefly.anim_mode",                    "pingpong"              },
   { "bd_firefly.delay",                                "4"                     },
   { "bd_firefly.global_sync",                  "true"                  },
-  { "bd_firefly.right",                                "RocksElements.pcx"     },
-  { "bd_firefly.right.xpos",                   "6"                     },
-  { "bd_firefly.right.ypos",                   "12"                    },
-  { "bd_firefly.right.frames",                 "2"                     },
-  { "bd_firefly.right.anim_mode",              "pingpong"              },
-  { "bd_firefly.right.delay",                  "4"                     },
-  { "bd_firefly.right.global_sync",            "true"                  },
   { "bd_firefly.right.EDITOR",                 "RocksElements.pcx"     },
   { "bd_firefly.right.EDITOR.xpos",            "12"                    },
   { "bd_firefly.right.EDITOR.ypos",            "12"                    },
-  { "bd_firefly.right.EDITOR.frames",          "1"                     },
-  { "bd_firefly.up",                           "RocksElements.pcx"     },
-  { "bd_firefly.up.xpos",                      "6"                     },
-  { "bd_firefly.up.ypos",                      "12"                    },
-  { "bd_firefly.up.frames",                    "2"                     },
-  { "bd_firefly.up.anim_mode",                 "pingpong"              },
-  { "bd_firefly.up.delay",                     "4"                     },
-  { "bd_firefly.up.global_sync",               "true"                  },
   { "bd_firefly.up.EDITOR",                    "RocksElements.pcx"     },
   { "bd_firefly.up.EDITOR.xpos",               "13"                    },
   { "bd_firefly.up.EDITOR.ypos",               "12"                    },
-  { "bd_firefly.up.EDITOR.frames",             "1"                     },
-  { "bd_firefly.left",                         "RocksElements.pcx"     },
-  { "bd_firefly.left.xpos",                    "6"                     },
-  { "bd_firefly.left.ypos",                    "12"                    },
-  { "bd_firefly.left.frames",                  "2"                     },
-  { "bd_firefly.left.anim_mode",               "pingpong"              },
-  { "bd_firefly.left.delay",                   "4"                     },
-  { "bd_firefly.left.global_sync",             "true"                  },
   { "bd_firefly.left.EDITOR",                  "RocksElements.pcx"     },
   { "bd_firefly.left.EDITOR.xpos",             "14"                    },
   { "bd_firefly.left.EDITOR.ypos",             "12"                    },
-  { "bd_firefly.left.EDITOR.frames",           "1"                     },
-  { "bd_firefly.down",                         "RocksElements.pcx"     },
-  { "bd_firefly.down.xpos",                    "6"                     },
-  { "bd_firefly.down.ypos",                    "12"                    },
-  { "bd_firefly.down.frames",                  "2"                     },
-  { "bd_firefly.down.anim_mode",               "pingpong"              },
-  { "bd_firefly.down.delay",                   "4"                     },
-  { "bd_firefly.down.global_sync",             "true"                  },
   { "bd_firefly.down.EDITOR",                  "RocksElements.pcx"     },
   { "bd_firefly.down.EDITOR.xpos",             "15"                    },
   { "bd_firefly.down.EDITOR.ypos",             "12"                    },
-  { "bd_firefly.down.EDITOR.frames",           "1"                     },
 
   /* images for Supaplex style elements and actions */
 
index 5aa17748dfa4cfb74c990ee637c5772951da1584..90ff4a1ae129f4695e902f306b8a9778c3bc0042 100644 (file)
 #define IMG_BD_AMOEBA                                  17
 #define IMG_BD_AMOEBA_EDITOR                           18
 #define IMG_BD_BUTTERFLY                               19
-#define IMG_BD_BUTTERFLY_RIGHT                         20
-#define IMG_BD_BUTTERFLY_RIGHT_EDITOR                  21
-#define IMG_BD_BUTTERFLY_UP                            22
-#define IMG_BD_BUTTERFLY_UP_EDITOR                     23
-#define IMG_BD_BUTTERFLY_LEFT                          24
-#define IMG_BD_BUTTERFLY_LEFT_EDITOR                   25
-#define IMG_BD_BUTTERFLY_DOWN                          26
-#define IMG_BD_BUTTERFLY_DOWN_EDITOR                   27
-#define IMG_BD_FIREFLY                                 28
-#define IMG_BD_FIREFLY_RIGHT                           29
-#define IMG_BD_FIREFLY_RIGHT_EDITOR                    30
-#define IMG_BD_FIREFLY_UP                              31
-#define IMG_BD_FIREFLY_UP_EDITOR                       32
-#define IMG_BD_FIREFLY_LEFT                            33
-#define IMG_BD_FIREFLY_LEFT_EDITOR                     34
-#define IMG_BD_FIREFLY_DOWN                            35
-#define IMG_BD_FIREFLY_DOWN_EDITOR                     36
-#define IMG_SP_DEFAULT_EXPLODING                       37
-#define IMG_SP_ZONK                                    38
-#define IMG_SP_ZONK_MOVING_LEFT                                39
-#define IMG_SP_ZONK_MOVING_RIGHT                       40
-#define IMG_SP_ZONK_PUSHING_LEFT                       41
-#define IMG_SP_ZONK_PUSHING_RIGHT                      42
-#define IMG_SP_BASE                                    43
-#define IMG_SP_MURPHY                                  44
-#define IMG_SP_MURPHY_MOVING_LEFT                      45
-#define IMG_SP_MURPHY_MOVING_RIGHT                     46
-#define IMG_SP_MURPHY_DIGGING_LEFT                     47
-#define IMG_SP_MURPHY_DIGGING_RIGHT                    48
-#define IMG_SP_MURPHY_COLLECTING_LEFT                  49
-#define IMG_SP_MURPHY_COLLECTING_RIGHT                 50
-#define IMG_SP_MURPHY_PUSHING_LEFT                     51
-#define IMG_SP_MURPHY_PUSHING_RIGHT                    52
-#define IMG_SP_MURPHY_SNAPPING_LEFT                    53
-#define IMG_SP_MURPHY_SNAPPING_RIGHT                   54
-#define IMG_SP_MURPHY_SNAPPING_UP                      55
-#define IMG_SP_MURPHY_SNAPPING_DOWN                    56
-#define IMG_SP_MURPHY_CLONE                            57
-#define IMG_SP_INFOTRON                                        58
-#define IMG_SP_INFOTRON_EDITOR                         59
-#define IMG_SP_CHIP_SINGLE                             60
-#define IMG_SP_CHIP_LEFT                               61
-#define IMG_SP_CHIP_RIGHT                              62
-#define IMG_SP_CHIP_TOP                                        63
-#define IMG_SP_CHIP_BOTTOM                             64
-#define IMG_SP_HARDWARE_GRAY                           65
-#define IMG_SP_HARDWARE_GREEN                          66
-#define IMG_SP_HARDWARE_BLUE                           67
-#define IMG_SP_HARDWARE_RED                            68
-#define IMG_SP_HARDWARE_YELLOW                         69
-#define IMG_SP_EXIT_CLOSED                             70
-#define IMG_SP_EXIT_OPENING                            71
-#define IMG_SP_EXIT_OPEN                               72
-#define IMG_SP_EXIT_CLOSING                            73
-#define IMG_SP_DISK_ORANGE                             74
-#define IMG_SP_DISK_YELLOW                             75
-#define IMG_SP_DISK_RED                                        76
-#define IMG_SP_DISK_RED_COLLECTING                     77
-#define IMG_SP_DISK_RED_ACTIVE                         78
-#define IMG_SP_PORT_RIGHT                              79
-#define IMG_SP_PORT_DOWN                               80
-#define IMG_SP_PORT_LEFT                               81
-#define IMG_SP_PORT_UP                                 82
-#define IMG_SP_PORT_HORIZONTAL                         83
-#define IMG_SP_PORT_VERTICAL                           84
-#define IMG_SP_PORT_ANY                                        85
-#define IMG_SP_GRAVITY_PORT_RIGHT                      86
-#define IMG_SP_GRAVITY_PORT_DOWN                       87
-#define IMG_SP_GRAVITY_PORT_LEFT                       88
-#define IMG_SP_GRAVITY_PORT_UP                         89
-#define IMG_SP_SNIKSNAK                                        90
-#define IMG_SP_SNIKSNAK_LEFT                           91
-#define IMG_SP_SNIKSNAK_RIGHT                          92
-#define IMG_SP_SNIKSNAK_UP                             93
-#define IMG_SP_SNIKSNAK_DOWN                           94
-#define IMG_SP_SNIKSNAK_TURNING_FROM_LEFT_UP           95
-#define IMG_SP_SNIKSNAK_TURNING_FROM_LEFT_DOWN         96
-#define IMG_SP_SNIKSNAK_TURNING_FROM_RIGHT_UP          97
-#define IMG_SP_SNIKSNAK_TURNING_FROM_RIGHT_DOWN                98
-#define IMG_SP_SNIKSNAK_TURNING_FROM_UP_LEFT           99
-#define IMG_SP_SNIKSNAK_TURNING_FROM_UP_RIGHT          100
-#define IMG_SP_SNIKSNAK_TURNING_FROM_DOWN_LEFT         101
-#define IMG_SP_SNIKSNAK_TURNING_FROM_DOWN_RIGHT                102
-#define IMG_SP_ELECTRON                                        103
-#define IMG_SP_ELECTRON_EDITOR                         104
-#define IMG_SP_ELECTRON_EXPLODING                      105
-#define IMG_SP_TERMINAL                                        106
-#define IMG_SP_TERMINAL_EDITOR                         107
-#define IMG_SP_TERMINAL_ACTIVE                         108
-#define IMG_SP_BUGGY_BASE                              109
-#define IMG_SP_BUGGY_BASE_EDITOR                       110
-#define IMG_SP_BUGGY_BASE_ACTIVATING                   111
-#define IMG_SP_BUGGY_BASE_ACTIVE                       112
-#define IMG_SP_HARDWARE_BASE_1                         113
-#define IMG_SP_HARDWARE_BASE_2                         114
-#define IMG_SP_HARDWARE_BASE_3                         115
-#define IMG_SP_HARDWARE_BASE_4                         116
-#define IMG_SP_HARDWARE_BASE_5                         117
-#define IMG_SP_HARDWARE_BASE_6                         118
-#define IMG_SOKOBAN_OBJECT                             119
-#define IMG_SOKOBAN_OBJECT_EDITOR                      120
-#define IMG_SOKOBAN_FIELD_EMPTY                                121
-#define IMG_SOKOBAN_FIELD_FULL                         122
-#define IMG_EMPTY_SPACE                                        123
-#define IMG_SAND                                       124
-#define IMG_SAND_CRUMBLED                              125
-#define IMG_SAND_DIGGING_LEFT                          126
-#define IMG_SAND_DIGGING_RIGHT                         127
-#define IMG_SAND_DIGGING_UP                            128
-#define IMG_SAND_DIGGING_DOWN                          129
-#define IMG_SAND_DIGGING_LEFT_CRUMBLED                 130
-#define IMG_SAND_DIGGING_RIGHT_CRUMBLED                        131
-#define IMG_SAND_DIGGING_UP_CRUMBLED                   132
-#define IMG_SAND_DIGGING_DOWN_CRUMBLED                 133
-#define IMG_WALL                                       134
-#define IMG_WALL_SLIPPERY                              135
-#define IMG_STEELWALL                                  136
-#define IMG_ROCK                                       137
-#define IMG_ROCK_MOVING_LEFT                           138
-#define IMG_ROCK_MOVING_RIGHT                          139
-#define IMG_ROCK_PUSHING_LEFT                          140
-#define IMG_ROCK_PUSHING_RIGHT                         141
-#define IMG_EMERALD                                    142
-#define IMG_EMERALD_MOVING                             143
-#define IMG_EMERALD_FALLING                            144
-#define IMG_EMERALD_COLLECTING                         145
-#define IMG_DIAMOND                                    146
-#define IMG_DIAMOND_MOVING                             147
-#define IMG_DIAMOND_FALLING                            148
-#define IMG_DIAMOND_COLLECTING                         149
-#define IMG_BOMB                                       150
-#define IMG_NUT                                                151
-#define IMG_NUT_BREAKING                               152
-#define IMG_DYNAMITE                                   153
-#define IMG_DYNAMITE_EDITOR                            154
-#define IMG_DYNAMITE_ACTIVE                            155
-#define IMG_DYNAMITE_ACTIVE_EDITOR                     156
-#define IMG_WALL_EMERALD                               157
-#define IMG_WALL_DIAMOND                               158
-#define IMG_BUG                                                159
-#define IMG_BUG_RIGHT                                  160
-#define IMG_BUG_UP                                     161
-#define IMG_BUG_LEFT                                   162
-#define IMG_BUG_DOWN                                   163
-#define IMG_BUG_MOVING_RIGHT                           164
-#define IMG_BUG_MOVING_UP                              165
-#define IMG_BUG_MOVING_LEFT                            166
-#define IMG_BUG_MOVING_DOWN                            167
-#define IMG_BUG_TURNING_FROM_RIGHT_UP                  168
-#define IMG_BUG_TURNING_FROM_UP_LEFT                   169
-#define IMG_BUG_TURNING_FROM_LEFT_DOWN                 170
-#define IMG_BUG_TURNING_FROM_DOWN_RIGHT                        171
-#define IMG_BUG_TURNING_FROM_RIGHT_DOWN                        172
-#define IMG_BUG_TURNING_FROM_UP_RIGHT                  173
-#define IMG_BUG_TURNING_FROM_LEFT_UP                   174
-#define IMG_BUG_TURNING_FROM_DOWN_LEFT                 175
-#define IMG_SPACESHIP                                  176
-#define IMG_SPACESHIP_RIGHT                            177
-#define IMG_SPACESHIP_UP                               178
-#define IMG_SPACESHIP_LEFT                             179
-#define IMG_SPACESHIP_DOWN                             180
-#define IMG_SPACESHIP_MOVING_RIGHT                     181
-#define IMG_SPACESHIP_MOVING_UP                                182
-#define IMG_SPACESHIP_MOVING_LEFT                      183
-#define IMG_SPACESHIP_MOVING_DOWN                      184
-#define IMG_SPACESHIP_TURNING_FROM_RIGHT_UP            185
-#define IMG_SPACESHIP_TURNING_FROM_UP_LEFT             186
-#define IMG_SPACESHIP_TURNING_FROM_LEFT_DOWN           187
-#define IMG_SPACESHIP_TURNING_FROM_DOWN_RIGHT          188
-#define IMG_SPACESHIP_TURNING_FROM_RIGHT_DOWN          189
-#define IMG_SPACESHIP_TURNING_FROM_UP_RIGHT            190
-#define IMG_SPACESHIP_TURNING_FROM_LEFT_UP             191
-#define IMG_SPACESHIP_TURNING_FROM_DOWN_LEFT           192
-#define IMG_YAMYAM                                     193
-#define IMG_YAMYAM_MOVING                              194
-#define IMG_ROBOT                                      195
-#define IMG_ROBOT_MOVING                               196
-#define IMG_ROBOT_WHEEL                                        197
-#define IMG_ROBOT_WHEEL_ACTIVE                         198
-#define IMG_MAGIC_WALL                                 199
-#define IMG_MAGIC_WALL_ACTIVE                          200
-#define IMG_MAGIC_WALL_FILLING                         201
-#define IMG_MAGIC_WALL_FULL                            202
-#define IMG_MAGIC_WALL_EMPTYING                                203
-#define IMG_MAGIC_WALL_DEAD                            204
-#define IMG_QUICKSAND_EMPTY                            205
-#define IMG_QUICKSAND_FILLING                          206
-#define IMG_QUICKSAND_FULL                             207
-#define IMG_QUICKSAND_FULL_EDITOR                      208
-#define IMG_QUICKSAND_EMPTYING                         209
-#define IMG_ACID_POOL_TOPLEFT                          210
-#define IMG_ACID_POOL_TOPRIGHT                         211
-#define IMG_ACID_POOL_BOTTOMLEFT                       212
-#define IMG_ACID_POOL_BOTTOM                           213
-#define IMG_ACID_POOL_BOTTOMRIGHT                      214
-#define IMG_ACID                                       215
-#define IMG_ACID_SPLASH_LEFT                           216
-#define IMG_ACID_SPLASH_RIGHT                          217
-#define IMG_AMOEBA_DROP                                        218
-#define IMG_AMOEBA_GROWING                             219
-#define IMG_AMOEBA_SHRINKING                           220
-#define IMG_AMOEBA_WET                                 221
-#define IMG_AMOEBA_WET_EDITOR                          222
-#define IMG_AMOEBA_DROPPING                            223
-#define IMG_AMOEBA_DRY                                 224
-#define IMG_AMOEBA_FULL                                        225
-#define IMG_AMOEBA_FULL_EDITOR                         226
-#define IMG_AMOEBA_DEAD                                        227
-#define IMG_AMOEBA_DEAD_EDITOR                         228
-#define IMG_EM_KEY_1                                   229
-#define IMG_EM_KEY_2                                   230
-#define IMG_EM_KEY_3                                   231
-#define IMG_EM_KEY_4                                   232
-#define IMG_EM_GATE_1                                  233
-#define IMG_EM_GATE_2                                  234
-#define IMG_EM_GATE_3                                  235
-#define IMG_EM_GATE_4                                  236
-#define IMG_EM_GATE_1_GRAY                             237
-#define IMG_EM_GATE_1_GRAY_EDITOR                      238
-#define IMG_EM_GATE_2_GRAY                             239
-#define IMG_EM_GATE_2_GRAY_EDITOR                      240
-#define IMG_EM_GATE_3_GRAY                             241
-#define IMG_EM_GATE_3_GRAY_EDITOR                      242
-#define IMG_EM_GATE_4_GRAY                             243
-#define IMG_EM_GATE_4_GRAY_EDITOR                      244
-#define IMG_EXIT_CLOSED                                        245
-#define IMG_EXIT_OPENING                               246
-#define IMG_EXIT_OPEN                                  247
-#define IMG_EXIT_CLOSING                               248
-#define IMG_BALLOON                                    249
-#define IMG_BALLOON_MOVING                             250
-#define IMG_BALLOON_PUSHING                            251
-#define IMG_BALLOON_SWITCH_LEFT                                252
-#define IMG_BALLOON_SWITCH_RIGHT                       253
-#define IMG_BALLOON_SWITCH_UP                          254
-#define IMG_BALLOON_SWITCH_DOWN                                255
-#define IMG_BALLOON_SWITCH_ANY                         256
-#define IMG_SPRING                                     257
-#define IMG_EMC_STEELWALL_1                            258
-#define IMG_EMC_STEELWALL_2                            259
-#define IMG_EMC_STEELWALL_3                            260
-#define IMG_EMC_STEELWALL_4                            261
-#define IMG_EMC_WALL_1                                 262
-#define IMG_EMC_WALL_2                                 263
-#define IMG_EMC_WALL_3                                 264
-#define IMG_EMC_WALL_4                                 265
-#define IMG_EMC_WALL_5                                 266
-#define IMG_EMC_WALL_6                                 267
-#define IMG_EMC_WALL_7                                 268
-#define IMG_EMC_WALL_8                                 269
-#define IMG_INVISIBLE_STEELWALL                                270
-#define IMG_INVISIBLE_STEELWALL_EDITOR                 271
-#define IMG_INVISIBLE_STEELWALL_ACTIVE                 272
-#define IMG_INVISIBLE_WALL                             273
-#define IMG_INVISIBLE_WALL_EDITOR                      274
-#define IMG_INVISIBLE_WALL_ACTIVE                      275
-#define IMG_INVISIBLE_SAND                             276
-#define IMG_INVISIBLE_SAND_EDITOR                      277
-#define IMG_INVISIBLE_SAND_ACTIVE                      278
-#define IMG_CONVEYOR_BELT_1_MIDDLE                     279
-#define IMG_CONVEYOR_BELT_1_MIDDLE_ACTIVE              280
-#define IMG_CONVEYOR_BELT_1_LEFT                       281
-#define IMG_CONVEYOR_BELT_1_LEFT_ACTIVE                        282
-#define IMG_CONVEYOR_BELT_1_RIGHT                      283
-#define IMG_CONVEYOR_BELT_1_RIGHT_ACTIVE               284
-#define IMG_CONVEYOR_BELT_1_SWITCH_LEFT                        285
-#define IMG_CONVEYOR_BELT_1_SWITCH_MIDDLE              286
-#define IMG_CONVEYOR_BELT_1_SWITCH_RIGHT               287
-#define IMG_CONVEYOR_BELT_2_MIDDLE                     288
-#define IMG_CONVEYOR_BELT_2_MIDDLE_ACTIVE              289
-#define IMG_CONVEYOR_BELT_2_LEFT                       290
-#define IMG_CONVEYOR_BELT_2_LEFT_ACTIVE                        291
-#define IMG_CONVEYOR_BELT_2_RIGHT                      292
-#define IMG_CONVEYOR_BELT_2_RIGHT_ACTIVE               293
-#define IMG_CONVEYOR_BELT_2_SWITCH_LEFT                        294
-#define IMG_CONVEYOR_BELT_2_SWITCH_MIDDLE              295
-#define IMG_CONVEYOR_BELT_2_SWITCH_RIGHT               296
-#define IMG_CONVEYOR_BELT_3_MIDDLE                     297
-#define IMG_CONVEYOR_BELT_3_MIDDLE_ACTIVE              298
-#define IMG_CONVEYOR_BELT_3_LEFT                       299
-#define IMG_CONVEYOR_BELT_3_LEFT_ACTIVE                        300
-#define IMG_CONVEYOR_BELT_3_RIGHT                      301
-#define IMG_CONVEYOR_BELT_3_RIGHT_ACTIVE               302
-#define IMG_CONVEYOR_BELT_3_SWITCH_LEFT                        303
-#define IMG_CONVEYOR_BELT_3_SWITCH_MIDDLE              304
-#define IMG_CONVEYOR_BELT_3_SWITCH_RIGHT               305
-#define IMG_CONVEYOR_BELT_4_MIDDLE                     306
-#define IMG_CONVEYOR_BELT_4_MIDDLE_ACTIVE              307
-#define IMG_CONVEYOR_BELT_4_LEFT                       308
-#define IMG_CONVEYOR_BELT_4_LEFT_ACTIVE                        309
-#define IMG_CONVEYOR_BELT_4_RIGHT                      310
-#define IMG_CONVEYOR_BELT_4_RIGHT_ACTIVE               311
-#define IMG_CONVEYOR_BELT_4_SWITCH_LEFT                        312
-#define IMG_CONVEYOR_BELT_4_SWITCH_MIDDLE              313
-#define IMG_CONVEYOR_BELT_4_SWITCH_RIGHT               314
-#define IMG_SWITCHGATE_SWITCH_UP                       315
-#define IMG_SWITCHGATE_SWITCH_DOWN                     316
-#define IMG_LIGHT_SWITCH                               317
-#define IMG_LIGHT_SWITCH_ACTIVE                                318
-#define IMG_TIMEGATE_SWITCH                            319
-#define IMG_TIMEGATE_SWITCH_ACTIVE                     320
-#define IMG_ENVELOPE_1                                 321
-#define IMG_ENVELOPE_1_COLLECTING                      322
-#define IMG_ENVELOPE_2                                 323
-#define IMG_ENVELOPE_2_COLLECTING                      324
-#define IMG_ENVELOPE_3                                 325
-#define IMG_ENVELOPE_3_COLLECTING                      326
-#define IMG_ENVELOPE_4                                 327
-#define IMG_ENVELOPE_4_COLLECTING                      328
-#define IMG_SIGN_EXCLAMATION                           329
-#define IMG_SIGN_STOP                                  330
-#define IMG_LANDMINE                                   331
-#define IMG_STEELWALL_SLIPPERY                         332
-#define IMG_EXTRA_TIME                                 333
-#define IMG_SHIELD_NORMAL                              334
-#define IMG_SHIELD_NORMAL_ACTIVE                       335
-#define IMG_SHIELD_DEADLY                              336
-#define IMG_SHIELD_DEADLY_ACTIVE                       337
-#define IMG_SWITCHGATE_CLOSED                          338
-#define IMG_SWITCHGATE_OPENING                         339
-#define IMG_SWITCHGATE_OPEN                            340
-#define IMG_SWITCHGATE_CLOSING                         341
-#define IMG_TIMEGATE_CLOSED                            342
-#define IMG_TIMEGATE_OPENING                           343
-#define IMG_TIMEGATE_OPEN                              344
-#define IMG_TIMEGATE_CLOSING                           345
-#define IMG_PEARL                                      346
-#define IMG_PEARL_BREAKING                             347
-#define IMG_CRYSTAL                                    348
-#define IMG_WALL_PEARL                                 349
-#define IMG_WALL_CRYSTAL                               350
-#define IMG_TUBE_RIGHT_DOWN                            351
-#define IMG_TUBE_HORIZONTAL_DOWN                       352
-#define IMG_TUBE_LEFT_DOWN                             353
-#define IMG_TUBE_HORIZONTAL                            354
-#define IMG_TUBE_VERTICAL_RIGHT                                355
-#define IMG_TUBE_ANY                                   356
-#define IMG_TUBE_VERTICAL_LEFT                         357
-#define IMG_TUBE_VERTICAL                              358
-#define IMG_TUBE_RIGHT_UP                              359
-#define IMG_TUBE_HORIZONTAL_UP                         360
-#define IMG_TUBE_LEFT_UP                               361
-#define IMG_TRAP                                       362
-#define IMG_TRAP_ACTIVE                                        363
-#define IMG_DX_SUPABOMB                                        364
-#define IMG_KEY_1                                      365
-#define IMG_KEY_1_EDITOR                               366
-#define IMG_KEY_2                                      367
-#define IMG_KEY_2_EDITOR                               368
-#define IMG_KEY_3                                      369
-#define IMG_KEY_3_EDITOR                               370
-#define IMG_KEY_4                                      371
-#define IMG_KEY_4_EDITOR                               372
-#define IMG_GATE_1                                     373
-#define IMG_GATE_2                                     374
-#define IMG_GATE_3                                     375
-#define IMG_GATE_4                                     376
-#define IMG_GATE_1_GRAY                                        377
-#define IMG_GATE_1_GRAY_EDITOR                         378
-#define IMG_GATE_2_GRAY                                        379
-#define IMG_GATE_2_GRAY_EDITOR                         380
-#define IMG_GATE_3_GRAY                                        381
-#define IMG_GATE_3_GRAY_EDITOR                         382
-#define IMG_GATE_4_GRAY                                        383
-#define IMG_GATE_4_GRAY_EDITOR                         384
-#define IMG_GAME_OF_LIFE                               385
-#define IMG_BIOMAZE                                    386
-#define IMG_PACMAN                                     387
-#define IMG_PACMAN_RIGHT                               388
-#define IMG_PACMAN_UP                                  389
-#define IMG_PACMAN_LEFT                                        390
-#define IMG_PACMAN_DOWN                                        391
-#define IMG_PACMAN_TURNING_FROM_RIGHT                  392
-#define IMG_PACMAN_TURNING_FROM_UP                     393
-#define IMG_PACMAN_TURNING_FROM_LEFT                   394
-#define IMG_PACMAN_TURNING_FROM_DOWN                   395
-#define IMG_LAMP                                       396
-#define IMG_LAMP_EDITOR                                        397
-#define IMG_LAMP_ACTIVE                                        398
-#define IMG_TIME_ORB_FULL                              399
-#define IMG_TIME_ORB_EMPTY                             400
-#define IMG_EMERALD_YELLOW                             401
-#define IMG_EMERALD_YELLOW_MOVING                      402
-#define IMG_EMERALD_YELLOW_FALLING                     403
-#define IMG_EMERALD_RED                                        404
-#define IMG_EMERALD_RED_MOVING                         405
-#define IMG_EMERALD_RED_FALLING                                406
-#define IMG_EMERALD_PURPLE                             407
-#define IMG_EMERALD_PURPLE_MOVING                      408
-#define IMG_EMERALD_PURPLE_FALLING                     409
-#define IMG_WALL_EMERALD_YELLOW                                410
-#define IMG_WALL_EMERALD_RED                           411
-#define IMG_WALL_EMERALD_PURPLE                                412
-#define IMG_WALL_BD_DIAMOND                            413
-#define IMG_EXPANDABLE_WALL                            414
-#define IMG_EXPANDABLE_WALL_HORIZONTAL                 415
-#define IMG_EXPANDABLE_WALL_HORIZONTAL_EDITOR          416
-#define IMG_EXPANDABLE_WALL_VERTICAL                   417
-#define IMG_EXPANDABLE_WALL_VERTICAL_EDITOR            418
-#define IMG_EXPANDABLE_WALL_ANY                                419
-#define IMG_EXPANDABLE_WALL_ANY_EDITOR                 420
-#define IMG_EXPANDABLE_WALL_GROWING_LEFT               421
-#define IMG_EXPANDABLE_WALL_GROWING_RIGHT              422
-#define IMG_EXPANDABLE_WALL_GROWING_UP                 423
-#define IMG_EXPANDABLE_WALL_GROWING_DOWN               424
-#define IMG_BLACK_ORB                                  425
-#define IMG_SPEED_PILL                                 426
-#define IMG_DARK_YAMYAM                                        427
-#define IMG_DYNABOMB                                   428
-#define IMG_DYNABOMB_ACTIVE                            429
-#define IMG_DYNABOMB_PLAYER_1                          430
-#define IMG_DYNABOMB_PLAYER_1_ACTIVE                   431
-#define IMG_DYNABOMB_PLAYER_2                          432
-#define IMG_DYNABOMB_PLAYER_2_ACTIVE                   433
-#define IMG_DYNABOMB_PLAYER_3                          434
-#define IMG_DYNABOMB_PLAYER_3_ACTIVE                   435
-#define IMG_DYNABOMB_PLAYER_4                          436
-#define IMG_DYNABOMB_PLAYER_4_ACTIVE                   437
-#define IMG_DYNABOMB_INCREASE_NUMBER                   438
-#define IMG_DYNABOMB_INCREASE_SIZE                     439
-#define IMG_DYNABOMB_INCREASE_POWER                    440
-#define IMG_PIG                                                441
-#define IMG_PIG_DOWN                                   442
-#define IMG_PIG_UP                                     443
-#define IMG_PIG_LEFT                                   444
-#define IMG_PIG_RIGHT                                  445
-#define IMG_PIG_MOVING_DOWN                            446
-#define IMG_PIG_MOVING_UP                              447
-#define IMG_PIG_MOVING_LEFT                            448
-#define IMG_PIG_MOVING_RIGHT                           449
-#define IMG_PIG_DIGGING_DOWN                           450
-#define IMG_PIG_DIGGING_UP                             451
-#define IMG_PIG_DIGGING_LEFT                           452
-#define IMG_PIG_DIGGING_RIGHT                          453
-#define IMG_DRAGON                                     454
-#define IMG_DRAGON_DOWN                                        455
-#define IMG_DRAGON_UP                                  456
-#define IMG_DRAGON_LEFT                                        457
-#define IMG_DRAGON_RIGHT                               458
-#define IMG_DRAGON_MOVING_DOWN                         459
-#define IMG_DRAGON_MOVING_UP                           460
-#define IMG_DRAGON_MOVING_LEFT                         461
-#define IMG_DRAGON_MOVING_RIGHT                                462
-#define IMG_DRAGON_ATTACKING_DOWN                      463
-#define IMG_DRAGON_ATTACKING_UP                                464
-#define IMG_DRAGON_ATTACKING_LEFT                      465
-#define IMG_DRAGON_ATTACKING_RIGHT                     466
-#define IMG_MOLE                                       467
-#define IMG_MOLE_DOWN                                  468
-#define IMG_MOLE_UP                                    469
-#define IMG_MOLE_LEFT                                  470
-#define IMG_MOLE_RIGHT                                 471
-#define IMG_MOLE_MOVING_DOWN                           472
-#define IMG_MOLE_MOVING_UP                             473
-#define IMG_MOLE_MOVING_LEFT                           474
-#define IMG_MOLE_MOVING_RIGHT                          475
-#define IMG_MOLE_DIGGING_DOWN                          476
-#define IMG_MOLE_DIGGING_UP                            477
-#define IMG_MOLE_DIGGING_LEFT                          478
-#define IMG_MOLE_DIGGING_RIGHT                         479
-#define IMG_PENGUIN                                    480
-#define IMG_PENGUIN_EDITOR                             481
-#define IMG_PENGUIN_DOWN                               482
-#define IMG_PENGUIN_UP                                 483
-#define IMG_PENGUIN_LEFT                               484
-#define IMG_PENGUIN_RIGHT                              485
-#define IMG_PENGUIN_MOVING_DOWN                                486
-#define IMG_PENGUIN_MOVING_UP                          487
-#define IMG_PENGUIN_MOVING_LEFT                                488
-#define IMG_PENGUIN_MOVING_RIGHT                       489
-#define IMG_SATELLITE                                  490
-#define IMG_FLAMES_1_LEFT                              491
-#define IMG_FLAMES_2_LEFT                              492
-#define IMG_FLAMES_3_LEFT                              493
-#define IMG_FLAMES_1_RIGHT                             494
-#define IMG_FLAMES_2_RIGHT                             495
-#define IMG_FLAMES_3_RIGHT                             496
-#define IMG_FLAMES_1_UP                                        497
-#define IMG_FLAMES_2_UP                                        498
-#define IMG_FLAMES_3_UP                                        499
-#define IMG_FLAMES_1_DOWN                              500
-#define IMG_FLAMES_2_DOWN                              501
-#define IMG_FLAMES_3_DOWN                              502
-#define IMG_STONEBLOCK                                 503
-#define IMG_PLAYER_1                                   504
-#define IMG_PLAYER_1_EDITOR                            505
-#define IMG_PLAYER_1_DOWN                              506
-#define IMG_PLAYER_1_UP                                        507
-#define IMG_PLAYER_1_LEFT                              508
-#define IMG_PLAYER_1_RIGHT                             509
-#define IMG_PLAYER_1_MOVING_DOWN                       510
-#define IMG_PLAYER_1_MOVING_UP                         511
-#define IMG_PLAYER_1_MOVING_LEFT                       512
-#define IMG_PLAYER_1_MOVING_RIGHT                      513
-#define IMG_PLAYER_1_DIGGING_DOWN                      514
-#define IMG_PLAYER_1_DIGGING_UP                                515
-#define IMG_PLAYER_1_DIGGING_LEFT                      516
-#define IMG_PLAYER_1_DIGGING_RIGHT                     517
-#define IMG_PLAYER_1_COLLECTING_DOWN                   518
-#define IMG_PLAYER_1_COLLECTING_UP                     519
-#define IMG_PLAYER_1_COLLECTING_LEFT                   520
-#define IMG_PLAYER_1_COLLECTING_RIGHT                  521
-#define IMG_PLAYER_1_PUSHING_DOWN                      522
-#define IMG_PLAYER_1_PUSHING_UP                                523
-#define IMG_PLAYER_1_PUSHING_LEFT                      524
-#define IMG_PLAYER_1_PUSHING_RIGHT                     525
-#define IMG_PLAYER_1_SNAPPING_DOWN                     526
-#define IMG_PLAYER_1_SNAPPING_UP                       527
-#define IMG_PLAYER_1_SNAPPING_LEFT                     528
-#define IMG_PLAYER_1_SNAPPING_RIGHT                    529
-#define IMG_PLAYER_2                                   530
-#define IMG_PLAYER_2_EDITOR                            531
-#define IMG_PLAYER_2_DOWN                              532
-#define IMG_PLAYER_2_UP                                        533
-#define IMG_PLAYER_2_LEFT                              534
-#define IMG_PLAYER_2_RIGHT                             535
-#define IMG_PLAYER_2_MOVING_DOWN                       536
-#define IMG_PLAYER_2_MOVING_UP                         537
-#define IMG_PLAYER_2_MOVING_LEFT                       538
-#define IMG_PLAYER_2_MOVING_RIGHT                      539
-#define IMG_PLAYER_2_DIGGING_DOWN                      540
-#define IMG_PLAYER_2_DIGGING_UP                                541
-#define IMG_PLAYER_2_DIGGING_LEFT                      542
-#define IMG_PLAYER_2_DIGGING_RIGHT                     543
-#define IMG_PLAYER_2_COLLECTING_DOWN                   544
-#define IMG_PLAYER_2_COLLECTING_UP                     545
-#define IMG_PLAYER_2_COLLECTING_LEFT                   546
-#define IMG_PLAYER_2_COLLECTING_RIGHT                  547
-#define IMG_PLAYER_2_PUSHING_DOWN                      548
-#define IMG_PLAYER_2_PUSHING_UP                                549
-#define IMG_PLAYER_2_PUSHING_LEFT                      550
-#define IMG_PLAYER_2_PUSHING_RIGHT                     551
-#define IMG_PLAYER_2_SNAPPING_DOWN                     552
-#define IMG_PLAYER_2_SNAPPING_UP                       553
-#define IMG_PLAYER_2_SNAPPING_LEFT                     554
-#define IMG_PLAYER_2_SNAPPING_RIGHT                    555
-#define IMG_PLAYER_3                                   556
-#define IMG_PLAYER_3_EDITOR                            557
-#define IMG_PLAYER_3_DOWN                              558
-#define IMG_PLAYER_3_UP                                        559
-#define IMG_PLAYER_3_LEFT                              560
-#define IMG_PLAYER_3_RIGHT                             561
-#define IMG_PLAYER_3_MOVING_DOWN                       562
-#define IMG_PLAYER_3_MOVING_UP                         563
-#define IMG_PLAYER_3_MOVING_LEFT                       564
-#define IMG_PLAYER_3_MOVING_RIGHT                      565
-#define IMG_PLAYER_3_DIGGING_DOWN                      566
-#define IMG_PLAYER_3_DIGGING_UP                                567
-#define IMG_PLAYER_3_DIGGING_LEFT                      568
-#define IMG_PLAYER_3_DIGGING_RIGHT                     569
-#define IMG_PLAYER_3_COLLECTING_DOWN                   570
-#define IMG_PLAYER_3_COLLECTING_UP                     571
-#define IMG_PLAYER_3_COLLECTING_LEFT                   572
-#define IMG_PLAYER_3_COLLECTING_RIGHT                  573
-#define IMG_PLAYER_3_PUSHING_DOWN                      574
-#define IMG_PLAYER_3_PUSHING_UP                                575
-#define IMG_PLAYER_3_PUSHING_LEFT                      576
-#define IMG_PLAYER_3_PUSHING_RIGHT                     577
-#define IMG_PLAYER_3_SNAPPING_DOWN                     578
-#define IMG_PLAYER_3_SNAPPING_UP                       579
-#define IMG_PLAYER_3_SNAPPING_LEFT                     580
-#define IMG_PLAYER_3_SNAPPING_RIGHT                    581
-#define IMG_PLAYER_4                                   582
-#define IMG_PLAYER_4_EDITOR                            583
-#define IMG_PLAYER_4_DOWN                              584
-#define IMG_PLAYER_4_UP                                        585
-#define IMG_PLAYER_4_LEFT                              586
-#define IMG_PLAYER_4_RIGHT                             587
-#define IMG_PLAYER_4_MOVING_DOWN                       588
-#define IMG_PLAYER_4_MOVING_UP                         589
-#define IMG_PLAYER_4_MOVING_LEFT                       590
-#define IMG_PLAYER_4_MOVING_RIGHT                      591
-#define IMG_PLAYER_4_DIGGING_DOWN                      592
-#define IMG_PLAYER_4_DIGGING_UP                                593
-#define IMG_PLAYER_4_DIGGING_LEFT                      594
-#define IMG_PLAYER_4_DIGGING_RIGHT                     595
-#define IMG_PLAYER_4_COLLECTING_DOWN                   596
-#define IMG_PLAYER_4_COLLECTING_UP                     597
-#define IMG_PLAYER_4_COLLECTING_LEFT                   598
-#define IMG_PLAYER_4_COLLECTING_RIGHT                  599
-#define IMG_PLAYER_4_PUSHING_DOWN                      600
-#define IMG_PLAYER_4_PUSHING_UP                                601
-#define IMG_PLAYER_4_PUSHING_LEFT                      602
-#define IMG_PLAYER_4_PUSHING_RIGHT                     603
-#define IMG_PLAYER_4_SNAPPING_DOWN                     604
-#define IMG_PLAYER_4_SNAPPING_UP                       605
-#define IMG_PLAYER_4_SNAPPING_LEFT                     606
-#define IMG_PLAYER_4_SNAPPING_RIGHT                    607
-#define IMG_DEFAULT_EXPLODING                          608
-#define IMG_TWINKLE_BLUE                               609
-#define IMG_TWINKLE_WHITE                              610
-#define IMG_STEELWALL_TOPLEFT                          611
-#define IMG_STEELWALL_TOPRIGHT                         612
-#define IMG_STEELWALL_BOTTOMLEFT                       613
-#define IMG_STEELWALL_BOTTOMRIGHT                      614
-#define IMG_STEELWALL_HORIZONTAL                       615
-#define IMG_STEELWALL_VERTICAL                         616
-#define IMG_STEELWALL_TOPLEFT_EDITOR                   617
-#define IMG_STEELWALL_TOPRIGHT_EDITOR                  618
-#define IMG_STEELWALL_BOTTOMLEFT_EDITOR                        619
-#define IMG_STEELWALL_BOTTOMRIGHT_EDITOR               620
-#define IMG_STEELWALL_HORIZONTAL_EDITOR                        621
-#define IMG_STEELWALL_VERTICAL_EDITOR                  622
-#define IMG_INVISIBLE_STEELWALL_TOPLEFT                        623
-#define IMG_INVISIBLE_STEELWALL_TOPRIGHT               624
-#define IMG_INVISIBLE_STEELWALL_BOTTOMLEFT             625
-#define IMG_INVISIBLE_STEELWALL_BOTTOMRIGHT            626
-#define IMG_INVISIBLE_STEELWALL_HORIZONTAL             627
-#define IMG_INVISIBLE_STEELWALL_VERTICAL               628
-#define IMG_INVISIBLE_STEELWALL_TOPLEFT_EDITOR         629
-#define IMG_INVISIBLE_STEELWALL_TOPRIGHT_EDITOR                630
-#define IMG_INVISIBLE_STEELWALL_BOTTOMLEFT_EDITOR      631
-#define IMG_INVISIBLE_STEELWALL_BOTTOMRIGHT_EDITOR     632
-#define IMG_INVISIBLE_STEELWALL_HORIZONTAL_EDITOR      633
-#define IMG_INVISIBLE_STEELWALL_VERTICAL_EDITOR                634
-#define IMG_ARROW_LEFT                                 635
-#define IMG_ARROW_RIGHT                                        636
-#define IMG_ARROW_UP                                   637
-#define IMG_ARROW_DOWN                                 638
-#define IMG_CHAR_SPACE                                 639
-#define IMG_CHAR_EXCLAM                                        640
-#define IMG_CHAR_QUOTEDBL                              641
-#define IMG_CHAR_NUMBERSIGN                            642
-#define IMG_CHAR_DOLLAR                                        643
-#define IMG_CHAR_PROCENT                               644
-#define IMG_CHAR_AMPERSAND                             645
-#define IMG_CHAR_APOSTROPHE                            646
-#define IMG_CHAR_PARENLEFT                             647
-#define IMG_CHAR_PARENRIGHT                            648
-#define IMG_CHAR_ASTERISK                              649
-#define IMG_CHAR_PLUS                                  650
-#define IMG_CHAR_COMMA                                 651
-#define IMG_CHAR_MINUS                                 652
-#define IMG_CHAR_PERIOD                                        653
-#define IMG_CHAR_SLASH                                 654
-#define IMG_CHAR_0                                     655
-#define IMG_CHAR_1                                     656
-#define IMG_CHAR_2                                     657
-#define IMG_CHAR_3                                     658
-#define IMG_CHAR_4                                     659
-#define IMG_CHAR_5                                     660
-#define IMG_CHAR_6                                     661
-#define IMG_CHAR_7                                     662
-#define IMG_CHAR_8                                     663
-#define IMG_CHAR_9                                     664
-#define IMG_CHAR_COLON                                 665
-#define IMG_CHAR_SEMICOLON                             666
-#define IMG_CHAR_LESS                                  667
-#define IMG_CHAR_EQUAL                                 668
-#define IMG_CHAR_GREATER                               669
-#define IMG_CHAR_QUESTION                              670
-#define IMG_CHAR_AT                                    671
-#define IMG_CHAR_A                                     672
-#define IMG_CHAR_B                                     673
-#define IMG_CHAR_C                                     674
-#define IMG_CHAR_D                                     675
-#define IMG_CHAR_E                                     676
-#define IMG_CHAR_F                                     677
-#define IMG_CHAR_G                                     678
-#define IMG_CHAR_H                                     679
-#define IMG_CHAR_I                                     680
-#define IMG_CHAR_J                                     681
-#define IMG_CHAR_K                                     682
-#define IMG_CHAR_L                                     683
-#define IMG_CHAR_M                                     684
-#define IMG_CHAR_N                                     685
-#define IMG_CHAR_O                                     686
-#define IMG_CHAR_P                                     687
-#define IMG_CHAR_Q                                     688
-#define IMG_CHAR_R                                     689
-#define IMG_CHAR_S                                     690
-#define IMG_CHAR_T                                     691
-#define IMG_CHAR_U                                     692
-#define IMG_CHAR_V                                     693
-#define IMG_CHAR_W                                     694
-#define IMG_CHAR_X                                     695
-#define IMG_CHAR_Y                                     696
-#define IMG_CHAR_Z                                     697
-#define IMG_CHAR_BRACKETLEFT                           698
-#define IMG_CHAR_BACKSLASH                             699
-#define IMG_CHAR_BRACKETRIGHT                          700
-#define IMG_CHAR_ASCIICIRCUM                           701
-#define IMG_CHAR_UNDERSCORE                            702
-#define IMG_CHAR_COPYRIGHT                             703
-#define IMG_CHAR_AUMLAUT                               704
-#define IMG_CHAR_OUMLAUT                               705
-#define IMG_CHAR_UUMLAUT                               706
-#define IMG_CHAR_DEGREE                                        707
-#define IMG_CHAR_TRADEMARK                             708
-#define IMG_CHAR_CURSOR                                        709
-#define IMG_CUSTOM_1                                   710
-#define IMG_CUSTOM_1_EDITOR                            711
-#define IMG_CUSTOM_2                                   712
-#define IMG_CUSTOM_2_EDITOR                            713
-#define IMG_CUSTOM_3                                   714
-#define IMG_CUSTOM_3_EDITOR                            715
-#define IMG_CUSTOM_4                                   716
-#define IMG_CUSTOM_4_EDITOR                            717
-#define IMG_CUSTOM_5                                   718
-#define IMG_CUSTOM_5_EDITOR                            719
-#define IMG_CUSTOM_6                                   720
-#define IMG_CUSTOM_6_EDITOR                            721
-#define IMG_CUSTOM_7                                   722
-#define IMG_CUSTOM_7_EDITOR                            723
-#define IMG_CUSTOM_8                                   724
-#define IMG_CUSTOM_8_EDITOR                            725
-#define IMG_CUSTOM_9                                   726
-#define IMG_CUSTOM_9_EDITOR                            727
-#define IMG_CUSTOM_10                                  728
-#define IMG_CUSTOM_10_EDITOR                           729
-#define IMG_CUSTOM_11                                  730
-#define IMG_CUSTOM_11_EDITOR                           731
-#define IMG_CUSTOM_12                                  732
-#define IMG_CUSTOM_12_EDITOR                           733
-#define IMG_CUSTOM_13                                  734
-#define IMG_CUSTOM_13_EDITOR                           735
-#define IMG_CUSTOM_14                                  736
-#define IMG_CUSTOM_14_EDITOR                           737
-#define IMG_CUSTOM_15                                  738
-#define IMG_CUSTOM_15_EDITOR                           739
-#define IMG_CUSTOM_16                                  740
-#define IMG_CUSTOM_16_EDITOR                           741
-#define IMG_CUSTOM_17                                  742
-#define IMG_CUSTOM_17_EDITOR                           743
-#define IMG_CUSTOM_18                                  744
-#define IMG_CUSTOM_18_EDITOR                           745
-#define IMG_CUSTOM_19                                  746
-#define IMG_CUSTOM_19_EDITOR                           747
-#define IMG_CUSTOM_20                                  748
-#define IMG_CUSTOM_20_EDITOR                           749
-#define IMG_CUSTOM_21                                  750
-#define IMG_CUSTOM_21_EDITOR                           751
-#define IMG_CUSTOM_22                                  752
-#define IMG_CUSTOM_22_EDITOR                           753
-#define IMG_CUSTOM_23                                  754
-#define IMG_CUSTOM_23_EDITOR                           755
-#define IMG_CUSTOM_24                                  756
-#define IMG_CUSTOM_24_EDITOR                           757
-#define IMG_CUSTOM_25                                  758
-#define IMG_CUSTOM_25_EDITOR                           759
-#define IMG_CUSTOM_26                                  760
-#define IMG_CUSTOM_26_EDITOR                           761
-#define IMG_CUSTOM_27                                  762
-#define IMG_CUSTOM_27_EDITOR                           763
-#define IMG_CUSTOM_28                                  764
-#define IMG_CUSTOM_28_EDITOR                           765
-#define IMG_CUSTOM_29                                  766
-#define IMG_CUSTOM_29_EDITOR                           767
-#define IMG_CUSTOM_30                                  768
-#define IMG_CUSTOM_30_EDITOR                           769
-#define IMG_CUSTOM_31                                  770
-#define IMG_CUSTOM_31_EDITOR                           771
-#define IMG_CUSTOM_32                                  772
-#define IMG_CUSTOM_32_EDITOR                           773
-#define IMG_CUSTOM_33                                  774
-#define IMG_CUSTOM_33_EDITOR                           775
-#define IMG_CUSTOM_34                                  776
-#define IMG_CUSTOM_34_EDITOR                           777
-#define IMG_CUSTOM_35                                  778
-#define IMG_CUSTOM_35_EDITOR                           779
-#define IMG_CUSTOM_36                                  780
-#define IMG_CUSTOM_36_EDITOR                           781
-#define IMG_CUSTOM_37                                  782
-#define IMG_CUSTOM_37_EDITOR                           783
-#define IMG_CUSTOM_38                                  784
-#define IMG_CUSTOM_38_EDITOR                           785
-#define IMG_CUSTOM_39                                  786
-#define IMG_CUSTOM_39_EDITOR                           787
-#define IMG_CUSTOM_40                                  788
-#define IMG_CUSTOM_40_EDITOR                           789
-#define IMG_CUSTOM_41                                  790
-#define IMG_CUSTOM_41_EDITOR                           791
-#define IMG_CUSTOM_42                                  792
-#define IMG_CUSTOM_42_EDITOR                           793
-#define IMG_CUSTOM_43                                  794
-#define IMG_CUSTOM_43_EDITOR                           795
-#define IMG_CUSTOM_44                                  796
-#define IMG_CUSTOM_44_EDITOR                           797
-#define IMG_CUSTOM_45                                  798
-#define IMG_CUSTOM_45_EDITOR                           799
-#define IMG_CUSTOM_46                                  800
-#define IMG_CUSTOM_46_EDITOR                           801
-#define IMG_CUSTOM_47                                  802
-#define IMG_CUSTOM_47_EDITOR                           803
-#define IMG_CUSTOM_48                                  804
-#define IMG_CUSTOM_48_EDITOR                           805
-#define IMG_CUSTOM_49                                  806
-#define IMG_CUSTOM_49_EDITOR                           807
-#define IMG_CUSTOM_50                                  808
-#define IMG_CUSTOM_50_EDITOR                           809
-#define IMG_CUSTOM_51                                  810
-#define IMG_CUSTOM_51_EDITOR                           811
-#define IMG_CUSTOM_52                                  812
-#define IMG_CUSTOM_52_EDITOR                           813
-#define IMG_CUSTOM_53                                  814
-#define IMG_CUSTOM_53_EDITOR                           815
-#define IMG_CUSTOM_54                                  816
-#define IMG_CUSTOM_54_EDITOR                           817
-#define IMG_CUSTOM_55                                  818
-#define IMG_CUSTOM_55_EDITOR                           819
-#define IMG_CUSTOM_56                                  820
-#define IMG_CUSTOM_56_EDITOR                           821
-#define IMG_CUSTOM_57                                  822
-#define IMG_CUSTOM_57_EDITOR                           823
-#define IMG_CUSTOM_58                                  824
-#define IMG_CUSTOM_58_EDITOR                           825
-#define IMG_CUSTOM_59                                  826
-#define IMG_CUSTOM_59_EDITOR                           827
-#define IMG_CUSTOM_60                                  828
-#define IMG_CUSTOM_60_EDITOR                           829
-#define IMG_CUSTOM_61                                  830
-#define IMG_CUSTOM_61_EDITOR                           831
-#define IMG_CUSTOM_62                                  832
-#define IMG_CUSTOM_62_EDITOR                           833
-#define IMG_CUSTOM_63                                  834
-#define IMG_CUSTOM_63_EDITOR                           835
-#define IMG_CUSTOM_64                                  836
-#define IMG_CUSTOM_64_EDITOR                           837
-#define IMG_CUSTOM_65                                  838
-#define IMG_CUSTOM_65_EDITOR                           839
-#define IMG_CUSTOM_66                                  840
-#define IMG_CUSTOM_66_EDITOR                           841
-#define IMG_CUSTOM_67                                  842
-#define IMG_CUSTOM_67_EDITOR                           843
-#define IMG_CUSTOM_68                                  844
-#define IMG_CUSTOM_68_EDITOR                           845
-#define IMG_CUSTOM_69                                  846
-#define IMG_CUSTOM_69_EDITOR                           847
-#define IMG_CUSTOM_70                                  848
-#define IMG_CUSTOM_70_EDITOR                           849
-#define IMG_CUSTOM_71                                  850
-#define IMG_CUSTOM_71_EDITOR                           851
-#define IMG_CUSTOM_72                                  852
-#define IMG_CUSTOM_72_EDITOR                           853
-#define IMG_CUSTOM_73                                  854
-#define IMG_CUSTOM_73_EDITOR                           855
-#define IMG_CUSTOM_74                                  856
-#define IMG_CUSTOM_74_EDITOR                           857
-#define IMG_CUSTOM_75                                  858
-#define IMG_CUSTOM_75_EDITOR                           859
-#define IMG_CUSTOM_76                                  860
-#define IMG_CUSTOM_76_EDITOR                           861
-#define IMG_CUSTOM_77                                  862
-#define IMG_CUSTOM_77_EDITOR                           863
-#define IMG_CUSTOM_78                                  864
-#define IMG_CUSTOM_78_EDITOR                           865
-#define IMG_CUSTOM_79                                  866
-#define IMG_CUSTOM_79_EDITOR                           867
-#define IMG_CUSTOM_80                                  868
-#define IMG_CUSTOM_80_EDITOR                           869
-#define IMG_CUSTOM_81                                  870
-#define IMG_CUSTOM_81_EDITOR                           871
-#define IMG_CUSTOM_82                                  872
-#define IMG_CUSTOM_82_EDITOR                           873
-#define IMG_CUSTOM_83                                  874
-#define IMG_CUSTOM_83_EDITOR                           875
-#define IMG_CUSTOM_84                                  876
-#define IMG_CUSTOM_84_EDITOR                           877
-#define IMG_CUSTOM_85                                  878
-#define IMG_CUSTOM_85_EDITOR                           879
-#define IMG_CUSTOM_86                                  880
-#define IMG_CUSTOM_86_EDITOR                           881
-#define IMG_CUSTOM_87                                  882
-#define IMG_CUSTOM_87_EDITOR                           883
-#define IMG_CUSTOM_88                                  884
-#define IMG_CUSTOM_88_EDITOR                           885
-#define IMG_CUSTOM_89                                  886
-#define IMG_CUSTOM_89_EDITOR                           887
-#define IMG_CUSTOM_90                                  888
-#define IMG_CUSTOM_90_EDITOR                           889
-#define IMG_CUSTOM_91                                  890
-#define IMG_CUSTOM_91_EDITOR                           891
-#define IMG_CUSTOM_92                                  892
-#define IMG_CUSTOM_92_EDITOR                           893
-#define IMG_CUSTOM_93                                  894
-#define IMG_CUSTOM_93_EDITOR                           895
-#define IMG_CUSTOM_94                                  896
-#define IMG_CUSTOM_94_EDITOR                           897
-#define IMG_CUSTOM_95                                  898
-#define IMG_CUSTOM_95_EDITOR                           899
-#define IMG_CUSTOM_96                                  900
-#define IMG_CUSTOM_96_EDITOR                           901
-#define IMG_CUSTOM_97                                  902
-#define IMG_CUSTOM_97_EDITOR                           903
-#define IMG_CUSTOM_98                                  904
-#define IMG_CUSTOM_98_EDITOR                           905
-#define IMG_CUSTOM_99                                  906
-#define IMG_CUSTOM_99_EDITOR                           907
-#define IMG_CUSTOM_100                                 908
-#define IMG_CUSTOM_100_EDITOR                          909
-#define IMG_CUSTOM_101                                 910
-#define IMG_CUSTOM_101_EDITOR                          911
-#define IMG_CUSTOM_102                                 912
-#define IMG_CUSTOM_102_EDITOR                          913
-#define IMG_CUSTOM_103                                 914
-#define IMG_CUSTOM_103_EDITOR                          915
-#define IMG_CUSTOM_104                                 916
-#define IMG_CUSTOM_104_EDITOR                          917
-#define IMG_CUSTOM_105                                 918
-#define IMG_CUSTOM_105_EDITOR                          919
-#define IMG_CUSTOM_106                                 920
-#define IMG_CUSTOM_106_EDITOR                          921
-#define IMG_CUSTOM_107                                 922
-#define IMG_CUSTOM_107_EDITOR                          923
-#define IMG_CUSTOM_108                                 924
-#define IMG_CUSTOM_108_EDITOR                          925
-#define IMG_CUSTOM_109                                 926
-#define IMG_CUSTOM_109_EDITOR                          927
-#define IMG_CUSTOM_110                                 928
-#define IMG_CUSTOM_110_EDITOR                          929
-#define IMG_CUSTOM_111                                 930
-#define IMG_CUSTOM_111_EDITOR                          931
-#define IMG_CUSTOM_112                                 932
-#define IMG_CUSTOM_112_EDITOR                          933
-#define IMG_CUSTOM_113                                 934
-#define IMG_CUSTOM_113_EDITOR                          935
-#define IMG_CUSTOM_114                                 936
-#define IMG_CUSTOM_114_EDITOR                          937
-#define IMG_CUSTOM_115                                 938
-#define IMG_CUSTOM_115_EDITOR                          939
-#define IMG_CUSTOM_116                                 940
-#define IMG_CUSTOM_116_EDITOR                          941
-#define IMG_CUSTOM_117                                 942
-#define IMG_CUSTOM_117_EDITOR                          943
-#define IMG_CUSTOM_118                                 944
-#define IMG_CUSTOM_118_EDITOR                          945
-#define IMG_CUSTOM_119                                 946
-#define IMG_CUSTOM_119_EDITOR                          947
-#define IMG_CUSTOM_120                                 948
-#define IMG_CUSTOM_120_EDITOR                          949
-#define IMG_CUSTOM_121                                 950
-#define IMG_CUSTOM_121_EDITOR                          951
-#define IMG_CUSTOM_122                                 952
-#define IMG_CUSTOM_122_EDITOR                          953
-#define IMG_CUSTOM_123                                 954
-#define IMG_CUSTOM_123_EDITOR                          955
-#define IMG_CUSTOM_124                                 956
-#define IMG_CUSTOM_124_EDITOR                          957
-#define IMG_CUSTOM_125                                 958
-#define IMG_CUSTOM_125_EDITOR                          959
-#define IMG_CUSTOM_126                                 960
-#define IMG_CUSTOM_126_EDITOR                          961
-#define IMG_CUSTOM_127                                 962
-#define IMG_CUSTOM_127_EDITOR                          963
-#define IMG_CUSTOM_128                                 964
-#define IMG_CUSTOM_128_EDITOR                          965
-#define IMG_CUSTOM_129                                 966
-#define IMG_CUSTOM_129_EDITOR                          967
-#define IMG_CUSTOM_130                                 968
-#define IMG_CUSTOM_130_EDITOR                          969
-#define IMG_CUSTOM_131                                 970
-#define IMG_CUSTOM_131_EDITOR                          971
-#define IMG_CUSTOM_132                                 972
-#define IMG_CUSTOM_132_EDITOR                          973
-#define IMG_CUSTOM_133                                 974
-#define IMG_CUSTOM_133_EDITOR                          975
-#define IMG_CUSTOM_134                                 976
-#define IMG_CUSTOM_134_EDITOR                          977
-#define IMG_CUSTOM_135                                 978
-#define IMG_CUSTOM_135_EDITOR                          979
-#define IMG_CUSTOM_136                                 980
-#define IMG_CUSTOM_136_EDITOR                          981
-#define IMG_CUSTOM_137                                 982
-#define IMG_CUSTOM_137_EDITOR                          983
-#define IMG_CUSTOM_138                                 984
-#define IMG_CUSTOM_138_EDITOR                          985
-#define IMG_CUSTOM_139                                 986
-#define IMG_CUSTOM_139_EDITOR                          987
-#define IMG_CUSTOM_140                                 988
-#define IMG_CUSTOM_140_EDITOR                          989
-#define IMG_CUSTOM_141                                 990
-#define IMG_CUSTOM_141_EDITOR                          991
-#define IMG_CUSTOM_142                                 992
-#define IMG_CUSTOM_142_EDITOR                          993
-#define IMG_CUSTOM_143                                 994
-#define IMG_CUSTOM_143_EDITOR                          995
-#define IMG_CUSTOM_144                                 996
-#define IMG_CUSTOM_144_EDITOR                          997
-#define IMG_CUSTOM_145                                 998
-#define IMG_CUSTOM_145_EDITOR                          999
-#define IMG_CUSTOM_146                                 1000
-#define IMG_CUSTOM_146_EDITOR                          1001
-#define IMG_CUSTOM_147                                 1002
-#define IMG_CUSTOM_147_EDITOR                          1003
-#define IMG_CUSTOM_148                                 1004
-#define IMG_CUSTOM_148_EDITOR                          1005
-#define IMG_CUSTOM_149                                 1006
-#define IMG_CUSTOM_149_EDITOR                          1007
-#define IMG_CUSTOM_150                                 1008
-#define IMG_CUSTOM_150_EDITOR                          1009
-#define IMG_CUSTOM_151                                 1010
-#define IMG_CUSTOM_151_EDITOR                          1011
-#define IMG_CUSTOM_152                                 1012
-#define IMG_CUSTOM_152_EDITOR                          1013
-#define IMG_CUSTOM_153                                 1014
-#define IMG_CUSTOM_153_EDITOR                          1015
-#define IMG_CUSTOM_154                                 1016
-#define IMG_CUSTOM_154_EDITOR                          1017
-#define IMG_CUSTOM_155                                 1018
-#define IMG_CUSTOM_155_EDITOR                          1019
-#define IMG_CUSTOM_156                                 1020
-#define IMG_CUSTOM_156_EDITOR                          1021
-#define IMG_CUSTOM_157                                 1022
-#define IMG_CUSTOM_157_EDITOR                          1023
-#define IMG_CUSTOM_158                                 1024
-#define IMG_CUSTOM_158_EDITOR                          1025
-#define IMG_CUSTOM_159                                 1026
-#define IMG_CUSTOM_159_EDITOR                          1027
-#define IMG_CUSTOM_160                                 1028
-#define IMG_CUSTOM_160_EDITOR                          1029
-#define IMG_CUSTOM_161                                 1030
-#define IMG_CUSTOM_161_EDITOR                          1031
-#define IMG_CUSTOM_162                                 1032
-#define IMG_CUSTOM_162_EDITOR                          1033
-#define IMG_CUSTOM_163                                 1034
-#define IMG_CUSTOM_163_EDITOR                          1035
-#define IMG_CUSTOM_164                                 1036
-#define IMG_CUSTOM_164_EDITOR                          1037
-#define IMG_CUSTOM_165                                 1038
-#define IMG_CUSTOM_165_EDITOR                          1039
-#define IMG_CUSTOM_166                                 1040
-#define IMG_CUSTOM_166_EDITOR                          1041
-#define IMG_CUSTOM_167                                 1042
-#define IMG_CUSTOM_167_EDITOR                          1043
-#define IMG_CUSTOM_168                                 1044
-#define IMG_CUSTOM_168_EDITOR                          1045
-#define IMG_CUSTOM_169                                 1046
-#define IMG_CUSTOM_169_EDITOR                          1047
-#define IMG_CUSTOM_170                                 1048
-#define IMG_CUSTOM_170_EDITOR                          1049
-#define IMG_CUSTOM_171                                 1050
-#define IMG_CUSTOM_171_EDITOR                          1051
-#define IMG_CUSTOM_172                                 1052
-#define IMG_CUSTOM_172_EDITOR                          1053
-#define IMG_CUSTOM_173                                 1054
-#define IMG_CUSTOM_173_EDITOR                          1055
-#define IMG_CUSTOM_174                                 1056
-#define IMG_CUSTOM_174_EDITOR                          1057
-#define IMG_CUSTOM_175                                 1058
-#define IMG_CUSTOM_175_EDITOR                          1059
-#define IMG_CUSTOM_176                                 1060
-#define IMG_CUSTOM_176_EDITOR                          1061
-#define IMG_CUSTOM_177                                 1062
-#define IMG_CUSTOM_177_EDITOR                          1063
-#define IMG_CUSTOM_178                                 1064
-#define IMG_CUSTOM_178_EDITOR                          1065
-#define IMG_CUSTOM_179                                 1066
-#define IMG_CUSTOM_179_EDITOR                          1067
-#define IMG_CUSTOM_180                                 1068
-#define IMG_CUSTOM_180_EDITOR                          1069
-#define IMG_CUSTOM_181                                 1070
-#define IMG_CUSTOM_181_EDITOR                          1071
-#define IMG_CUSTOM_182                                 1072
-#define IMG_CUSTOM_182_EDITOR                          1073
-#define IMG_CUSTOM_183                                 1074
-#define IMG_CUSTOM_183_EDITOR                          1075
-#define IMG_CUSTOM_184                                 1076
-#define IMG_CUSTOM_184_EDITOR                          1077
-#define IMG_CUSTOM_185                                 1078
-#define IMG_CUSTOM_185_EDITOR                          1079
-#define IMG_CUSTOM_186                                 1080
-#define IMG_CUSTOM_186_EDITOR                          1081
-#define IMG_CUSTOM_187                                 1082
-#define IMG_CUSTOM_187_EDITOR                          1083
-#define IMG_CUSTOM_188                                 1084
-#define IMG_CUSTOM_188_EDITOR                          1085
-#define IMG_CUSTOM_189                                 1086
-#define IMG_CUSTOM_189_EDITOR                          1087
-#define IMG_CUSTOM_190                                 1088
-#define IMG_CUSTOM_190_EDITOR                          1089
-#define IMG_CUSTOM_191                                 1090
-#define IMG_CUSTOM_191_EDITOR                          1091
-#define IMG_CUSTOM_192                                 1092
-#define IMG_CUSTOM_192_EDITOR                          1093
-#define IMG_CUSTOM_193                                 1094
-#define IMG_CUSTOM_193_EDITOR                          1095
-#define IMG_CUSTOM_194                                 1096
-#define IMG_CUSTOM_194_EDITOR                          1097
-#define IMG_CUSTOM_195                                 1098
-#define IMG_CUSTOM_195_EDITOR                          1099
-#define IMG_CUSTOM_196                                 1100
-#define IMG_CUSTOM_196_EDITOR                          1101
-#define IMG_CUSTOM_197                                 1102
-#define IMG_CUSTOM_197_EDITOR                          1103
-#define IMG_CUSTOM_198                                 1104
-#define IMG_CUSTOM_198_EDITOR                          1105
-#define IMG_CUSTOM_199                                 1106
-#define IMG_CUSTOM_199_EDITOR                          1107
-#define IMG_CUSTOM_200                                 1108
-#define IMG_CUSTOM_200_EDITOR                          1109
-#define IMG_CUSTOM_201                                 1110
-#define IMG_CUSTOM_201_EDITOR                          1111
-#define IMG_CUSTOM_202                                 1112
-#define IMG_CUSTOM_202_EDITOR                          1113
-#define IMG_CUSTOM_203                                 1114
-#define IMG_CUSTOM_203_EDITOR                          1115
-#define IMG_CUSTOM_204                                 1116
-#define IMG_CUSTOM_204_EDITOR                          1117
-#define IMG_CUSTOM_205                                 1118
-#define IMG_CUSTOM_205_EDITOR                          1119
-#define IMG_CUSTOM_206                                 1120
-#define IMG_CUSTOM_206_EDITOR                          1121
-#define IMG_CUSTOM_207                                 1122
-#define IMG_CUSTOM_207_EDITOR                          1123
-#define IMG_CUSTOM_208                                 1124
-#define IMG_CUSTOM_208_EDITOR                          1125
-#define IMG_CUSTOM_209                                 1126
-#define IMG_CUSTOM_209_EDITOR                          1127
-#define IMG_CUSTOM_210                                 1128
-#define IMG_CUSTOM_210_EDITOR                          1129
-#define IMG_CUSTOM_211                                 1130
-#define IMG_CUSTOM_211_EDITOR                          1131
-#define IMG_CUSTOM_212                                 1132
-#define IMG_CUSTOM_212_EDITOR                          1133
-#define IMG_CUSTOM_213                                 1134
-#define IMG_CUSTOM_213_EDITOR                          1135
-#define IMG_CUSTOM_214                                 1136
-#define IMG_CUSTOM_214_EDITOR                          1137
-#define IMG_CUSTOM_215                                 1138
-#define IMG_CUSTOM_215_EDITOR                          1139
-#define IMG_CUSTOM_216                                 1140
-#define IMG_CUSTOM_216_EDITOR                          1141
-#define IMG_CUSTOM_217                                 1142
-#define IMG_CUSTOM_217_EDITOR                          1143
-#define IMG_CUSTOM_218                                 1144
-#define IMG_CUSTOM_218_EDITOR                          1145
-#define IMG_CUSTOM_219                                 1146
-#define IMG_CUSTOM_219_EDITOR                          1147
-#define IMG_CUSTOM_220                                 1148
-#define IMG_CUSTOM_220_EDITOR                          1149
-#define IMG_CUSTOM_221                                 1150
-#define IMG_CUSTOM_221_EDITOR                          1151
-#define IMG_CUSTOM_222                                 1152
-#define IMG_CUSTOM_222_EDITOR                          1153
-#define IMG_CUSTOM_223                                 1154
-#define IMG_CUSTOM_223_EDITOR                          1155
-#define IMG_CUSTOM_224                                 1156
-#define IMG_CUSTOM_224_EDITOR                          1157
-#define IMG_CUSTOM_225                                 1158
-#define IMG_CUSTOM_225_EDITOR                          1159
-#define IMG_CUSTOM_226                                 1160
-#define IMG_CUSTOM_226_EDITOR                          1161
-#define IMG_CUSTOM_227                                 1162
-#define IMG_CUSTOM_227_EDITOR                          1163
-#define IMG_CUSTOM_228                                 1164
-#define IMG_CUSTOM_228_EDITOR                          1165
-#define IMG_CUSTOM_229                                 1166
-#define IMG_CUSTOM_229_EDITOR                          1167
-#define IMG_CUSTOM_230                                 1168
-#define IMG_CUSTOM_230_EDITOR                          1169
-#define IMG_CUSTOM_231                                 1170
-#define IMG_CUSTOM_231_EDITOR                          1171
-#define IMG_CUSTOM_232                                 1172
-#define IMG_CUSTOM_232_EDITOR                          1173
-#define IMG_CUSTOM_233                                 1174
-#define IMG_CUSTOM_233_EDITOR                          1175
-#define IMG_CUSTOM_234                                 1176
-#define IMG_CUSTOM_234_EDITOR                          1177
-#define IMG_CUSTOM_235                                 1178
-#define IMG_CUSTOM_235_EDITOR                          1179
-#define IMG_CUSTOM_236                                 1180
-#define IMG_CUSTOM_236_EDITOR                          1181
-#define IMG_CUSTOM_237                                 1182
-#define IMG_CUSTOM_237_EDITOR                          1183
-#define IMG_CUSTOM_238                                 1184
-#define IMG_CUSTOM_238_EDITOR                          1185
-#define IMG_CUSTOM_239                                 1186
-#define IMG_CUSTOM_239_EDITOR                          1187
-#define IMG_CUSTOM_240                                 1188
-#define IMG_CUSTOM_240_EDITOR                          1189
-#define IMG_CUSTOM_241                                 1190
-#define IMG_CUSTOM_241_EDITOR                          1191
-#define IMG_CUSTOM_242                                 1192
-#define IMG_CUSTOM_242_EDITOR                          1193
-#define IMG_CUSTOM_243                                 1194
-#define IMG_CUSTOM_243_EDITOR                          1195
-#define IMG_CUSTOM_244                                 1196
-#define IMG_CUSTOM_244_EDITOR                          1197
-#define IMG_CUSTOM_245                                 1198
-#define IMG_CUSTOM_245_EDITOR                          1199
-#define IMG_CUSTOM_246                                 1200
-#define IMG_CUSTOM_246_EDITOR                          1201
-#define IMG_CUSTOM_247                                 1202
-#define IMG_CUSTOM_247_EDITOR                          1203
-#define IMG_CUSTOM_248                                 1204
-#define IMG_CUSTOM_248_EDITOR                          1205
-#define IMG_CUSTOM_249                                 1206
-#define IMG_CUSTOM_249_EDITOR                          1207
-#define IMG_CUSTOM_250                                 1208
-#define IMG_CUSTOM_250_EDITOR                          1209
-#define IMG_CUSTOM_251                                 1210
-#define IMG_CUSTOM_251_EDITOR                          1211
-#define IMG_CUSTOM_252                                 1212
-#define IMG_CUSTOM_252_EDITOR                          1213
-#define IMG_CUSTOM_253                                 1214
-#define IMG_CUSTOM_253_EDITOR                          1215
-#define IMG_CUSTOM_254                                 1216
-#define IMG_CUSTOM_254_EDITOR                          1217
-#define IMG_CUSTOM_255                                 1218
-#define IMG_CUSTOM_255_EDITOR                          1219
-#define IMG_CUSTOM_256                                 1220
-#define IMG_CUSTOM_256_EDITOR                          1221
-#define IMG_TOON_1                                     1222
-#define IMG_TOON_2                                     1223
-#define IMG_TOON_3                                     1224
-#define IMG_TOON_4                                     1225
-#define IMG_TOON_5                                     1226
-#define IMG_TOON_6                                     1227
-#define IMG_TOON_7                                     1228
-#define IMG_TOON_8                                     1229
-#define IMG_TOON_9                                     1230
-#define IMG_TOON_10                                    1231
-#define IMG_TOON_11                                    1232
-#define IMG_TOON_12                                    1233
-#define IMG_TOON_13                                    1234
-#define IMG_TOON_14                                    1235
-#define IMG_TOON_15                                    1236
-#define IMG_TOON_16                                    1237
-#define IMG_TOON_17                                    1238
-#define IMG_TOON_18                                    1239
-#define IMG_TOON_19                                    1240
-#define IMG_TOON_20                                    1241
-#define IMG_MENU_CALIBRATE_RED                         1242
-#define IMG_MENU_CALIBRATE_BLUE                                1243
-#define IMG_MENU_CALIBRATE_YELLOW                      1244
-#define IMG_MENU_BUTTON                                        1245
-#define IMG_MENU_BUTTON_ACTIVE                         1246
-#define IMG_MENU_BUTTON_LEFT                           1247
-#define IMG_MENU_BUTTON_RIGHT                          1248
-#define IMG_MENU_BUTTON_UP                             1249
-#define IMG_MENU_BUTTON_DOWN                           1250
-#define IMG_MENU_BUTTON_LEFT_ACTIVE                    1251
-#define IMG_MENU_BUTTON_RIGHT_ACTIVE                   1252
-#define IMG_MENU_BUTTON_UP_ACTIVE                      1253
-#define IMG_MENU_BUTTON_DOWN_ACTIVE                    1254
-#define IMG_MENU_SCROLLBAR                             1255
-#define IMG_MENU_SCROLLBAR_ACTIVE                      1256
-#define IMG_FONT_INITIAL_1                             1257
-#define IMG_FONT_INITIAL_2                             1258
-#define IMG_FONT_INITIAL_3                             1259
-#define IMG_FONT_INITIAL_4                             1260
-#define IMG_FONT_TITLE_1                               1261
-#define IMG_FONT_TITLE_1_LEVELS                                1262
-#define IMG_FONT_TITLE_2                               1263
-#define IMG_FONT_MENU_1                                        1264
-#define IMG_FONT_MENU_2                                        1265
-#define IMG_FONT_TEXT_1                                        1266
-#define IMG_FONT_TEXT_1_LEVELS                         1267
-#define IMG_FONT_TEXT_1_PREVIEW                                1268
-#define IMG_FONT_TEXT_1_SCORES                         1269
-#define IMG_FONT_TEXT_1_ACTIVE_SCORES                  1270
-#define IMG_FONT_TEXT_2                                        1271
-#define IMG_FONT_TEXT_2_LEVELS                         1272
-#define IMG_FONT_TEXT_2_PREVIEW                                1273
-#define IMG_FONT_TEXT_2_SCORES                         1274
-#define IMG_FONT_TEXT_2_ACTIVE_SCORES                  1275
-#define IMG_FONT_TEXT_3                                        1276
-#define IMG_FONT_TEXT_3_LEVELS                         1277
-#define IMG_FONT_TEXT_3_PREVIEW                                1278
-#define IMG_FONT_TEXT_3_SCORES                         1279
-#define IMG_FONT_TEXT_3_ACTIVE_SCORES                  1280
-#define IMG_FONT_TEXT_4                                        1281
-#define IMG_FONT_TEXT_4_LEVELS                         1282
-#define IMG_FONT_TEXT_4_SCORES                         1283
-#define IMG_FONT_TEXT_4_ACTIVE_SCORES                  1284
-#define IMG_FONT_ENVELOPE_1                            1285
-#define IMG_FONT_ENVELOPE_2                            1286
-#define IMG_FONT_ENVELOPE_3                            1287
-#define IMG_FONT_ENVELOPE_4                            1288
-#define IMG_FONT_INPUT_1                               1289
-#define IMG_FONT_INPUT_1_MAIN                          1290
-#define IMG_FONT_INPUT_1_ACTIVE                                1291
-#define IMG_FONT_INPUT_1_ACTIVE_MAIN                   1292
-#define IMG_FONT_INPUT_1_ACTIVE_SETUP                  1293
-#define IMG_FONT_INPUT_2                               1294
-#define IMG_FONT_INPUT_2_ACTIVE                                1295
-#define IMG_FONT_OPTION_OFF                            1296
-#define IMG_FONT_OPTION_ON                             1297
-#define IMG_FONT_VALUE_1                               1298
-#define IMG_FONT_VALUE_2                               1299
-#define IMG_FONT_VALUE_OLD                             1300
-#define IMG_FONT_LEVEL_NUMBER                          1301
-#define IMG_FONT_TAPE_RECORDER                         1302
-#define IMG_FONT_GAME_INFO                             1303
-#define IMG_GLOBAL_BORDER                              1304
-#define IMG_GLOBAL_DOOR                                        1305
-#define IMG_EDITOR_ELEMENT_BORDER                      1306
-#define IMG_EDITOR_ELEMENT_BORDER_INPUT                        1307
-#define IMG_BACKGROUND_ENVELOPE_1                      1308
-#define IMG_BACKGROUND_ENVELOPE_2                      1309
-#define IMG_BACKGROUND_ENVELOPE_3                      1310
-#define IMG_BACKGROUND_ENVELOPE_4                      1311
-#define IMG_BACKGROUND                                 1312
-#define IMG_BACKGROUND_MAIN                            1313
-#define IMG_BACKGROUND_LEVELS                          1314
-#define IMG_BACKGROUND_SCORES                          1315
-#define IMG_BACKGROUND_EDITOR                          1316
-#define IMG_BACKGROUND_INFO                            1317
-#define IMG_BACKGROUND_SETUP                           1318
-#define IMG_BACKGROUND_DOOR                            1319
+#define IMG_BD_BUTTERFLY_RIGHT_EDITOR                  20
+#define IMG_BD_BUTTERFLY_UP_EDITOR                     21
+#define IMG_BD_BUTTERFLY_LEFT_EDITOR                   22
+#define IMG_BD_BUTTERFLY_DOWN_EDITOR                   23
+#define IMG_BD_FIREFLY                                 24
+#define IMG_BD_FIREFLY_RIGHT_EDITOR                    25
+#define IMG_BD_FIREFLY_UP_EDITOR                       26
+#define IMG_BD_FIREFLY_LEFT_EDITOR                     27
+#define IMG_BD_FIREFLY_DOWN_EDITOR                     28
+#define IMG_SP_DEFAULT_EXPLODING                       29
+#define IMG_SP_ZONK                                    30
+#define IMG_SP_ZONK_MOVING_LEFT                                31
+#define IMG_SP_ZONK_MOVING_RIGHT                       32
+#define IMG_SP_ZONK_PUSHING_LEFT                       33
+#define IMG_SP_ZONK_PUSHING_RIGHT                      34
+#define IMG_SP_BASE                                    35
+#define IMG_SP_MURPHY                                  36
+#define IMG_SP_MURPHY_MOVING_LEFT                      37
+#define IMG_SP_MURPHY_MOVING_RIGHT                     38
+#define IMG_SP_MURPHY_DIGGING_LEFT                     39
+#define IMG_SP_MURPHY_DIGGING_RIGHT                    40
+#define IMG_SP_MURPHY_COLLECTING_LEFT                  41
+#define IMG_SP_MURPHY_COLLECTING_RIGHT                 42
+#define IMG_SP_MURPHY_PUSHING_LEFT                     43
+#define IMG_SP_MURPHY_PUSHING_RIGHT                    44
+#define IMG_SP_MURPHY_SNAPPING_LEFT                    45
+#define IMG_SP_MURPHY_SNAPPING_RIGHT                   46
+#define IMG_SP_MURPHY_SNAPPING_UP                      47
+#define IMG_SP_MURPHY_SNAPPING_DOWN                    48
+#define IMG_SP_MURPHY_CLONE                            49
+#define IMG_SP_INFOTRON                                        50
+#define IMG_SP_INFOTRON_EDITOR                         51
+#define IMG_SP_CHIP_SINGLE                             52
+#define IMG_SP_CHIP_LEFT                               53
+#define IMG_SP_CHIP_RIGHT                              54
+#define IMG_SP_CHIP_TOP                                        55
+#define IMG_SP_CHIP_BOTTOM                             56
+#define IMG_SP_HARDWARE_GRAY                           57
+#define IMG_SP_HARDWARE_GREEN                          58
+#define IMG_SP_HARDWARE_BLUE                           59
+#define IMG_SP_HARDWARE_RED                            60
+#define IMG_SP_HARDWARE_YELLOW                         61
+#define IMG_SP_EXIT_CLOSED                             62
+#define IMG_SP_EXIT_OPENING                            63
+#define IMG_SP_EXIT_OPEN                               64
+#define IMG_SP_EXIT_CLOSING                            65
+#define IMG_SP_DISK_ORANGE                             66
+#define IMG_SP_DISK_YELLOW                             67
+#define IMG_SP_DISK_RED                                        68
+#define IMG_SP_DISK_RED_COLLECTING                     69
+#define IMG_SP_DISK_RED_ACTIVE                         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_SNIKSNAK_TURNING_FROM_LEFT_UP           87
+#define IMG_SP_SNIKSNAK_TURNING_FROM_LEFT_DOWN         88
+#define IMG_SP_SNIKSNAK_TURNING_FROM_RIGHT_UP          89
+#define IMG_SP_SNIKSNAK_TURNING_FROM_RIGHT_DOWN                90
+#define IMG_SP_SNIKSNAK_TURNING_FROM_UP_LEFT           91
+#define IMG_SP_SNIKSNAK_TURNING_FROM_UP_RIGHT          92
+#define IMG_SP_SNIKSNAK_TURNING_FROM_DOWN_LEFT         93
+#define IMG_SP_SNIKSNAK_TURNING_FROM_DOWN_RIGHT                94
+#define IMG_SP_ELECTRON                                        95
+#define IMG_SP_ELECTRON_EDITOR                         96
+#define IMG_SP_ELECTRON_EXPLODING                      97
+#define IMG_SP_TERMINAL                                        98
+#define IMG_SP_TERMINAL_EDITOR                         99
+#define IMG_SP_TERMINAL_ACTIVE                         100
+#define IMG_SP_BUGGY_BASE                              101
+#define IMG_SP_BUGGY_BASE_EDITOR                       102
+#define IMG_SP_BUGGY_BASE_ACTIVATING                   103
+#define IMG_SP_BUGGY_BASE_ACTIVE                       104
+#define IMG_SP_HARDWARE_BASE_1                         105
+#define IMG_SP_HARDWARE_BASE_2                         106
+#define IMG_SP_HARDWARE_BASE_3                         107
+#define IMG_SP_HARDWARE_BASE_4                         108
+#define IMG_SP_HARDWARE_BASE_5                         109
+#define IMG_SP_HARDWARE_BASE_6                         110
+#define IMG_SOKOBAN_OBJECT                             111
+#define IMG_SOKOBAN_OBJECT_EDITOR                      112
+#define IMG_SOKOBAN_FIELD_EMPTY                                113
+#define IMG_SOKOBAN_FIELD_FULL                         114
+#define IMG_EMPTY_SPACE                                        115
+#define IMG_SAND                                       116
+#define IMG_SAND_CRUMBLED                              117
+#define IMG_SAND_DIGGING_LEFT                          118
+#define IMG_SAND_DIGGING_RIGHT                         119
+#define IMG_SAND_DIGGING_UP                            120
+#define IMG_SAND_DIGGING_DOWN                          121
+#define IMG_SAND_DIGGING_LEFT_CRUMBLED                 122
+#define IMG_SAND_DIGGING_RIGHT_CRUMBLED                        123
+#define IMG_SAND_DIGGING_UP_CRUMBLED                   124
+#define IMG_SAND_DIGGING_DOWN_CRUMBLED                 125
+#define IMG_WALL                                       126
+#define IMG_WALL_SLIPPERY                              127
+#define IMG_STEELWALL                                  128
+#define IMG_ROCK                                       129
+#define IMG_ROCK_MOVING_LEFT                           130
+#define IMG_ROCK_MOVING_RIGHT                          131
+#define IMG_ROCK_PUSHING_LEFT                          132
+#define IMG_ROCK_PUSHING_RIGHT                         133
+#define IMG_EMERALD                                    134
+#define IMG_EMERALD_MOVING                             135
+#define IMG_EMERALD_FALLING                            136
+#define IMG_EMERALD_COLLECTING                         137
+#define IMG_DIAMOND                                    138
+#define IMG_DIAMOND_MOVING                             139
+#define IMG_DIAMOND_FALLING                            140
+#define IMG_DIAMOND_COLLECTING                         141
+#define IMG_BOMB                                       142
+#define IMG_NUT                                                143
+#define IMG_NUT_BREAKING                               144
+#define IMG_DYNAMITE                                   145
+#define IMG_DYNAMITE_EDITOR                            146
+#define IMG_DYNAMITE_ACTIVE                            147
+#define IMG_DYNAMITE_ACTIVE_EDITOR                     148
+#define IMG_WALL_EMERALD                               149
+#define IMG_WALL_DIAMOND                               150
+#define IMG_BUG                                                151
+#define IMG_BUG_RIGHT                                  152
+#define IMG_BUG_UP                                     153
+#define IMG_BUG_LEFT                                   154
+#define IMG_BUG_DOWN                                   155
+#define IMG_BUG_MOVING_RIGHT                           156
+#define IMG_BUG_MOVING_UP                              157
+#define IMG_BUG_MOVING_LEFT                            158
+#define IMG_BUG_MOVING_DOWN                            159
+#define IMG_BUG_TURNING_FROM_RIGHT_UP                  160
+#define IMG_BUG_TURNING_FROM_UP_LEFT                   161
+#define IMG_BUG_TURNING_FROM_LEFT_DOWN                 162
+#define IMG_BUG_TURNING_FROM_DOWN_RIGHT                        163
+#define IMG_BUG_TURNING_FROM_RIGHT_DOWN                        164
+#define IMG_BUG_TURNING_FROM_UP_RIGHT                  165
+#define IMG_BUG_TURNING_FROM_LEFT_UP                   166
+#define IMG_BUG_TURNING_FROM_DOWN_LEFT                 167
+#define IMG_SPACESHIP                                  168
+#define IMG_SPACESHIP_RIGHT                            169
+#define IMG_SPACESHIP_UP                               170
+#define IMG_SPACESHIP_LEFT                             171
+#define IMG_SPACESHIP_DOWN                             172
+#define IMG_SPACESHIP_MOVING_RIGHT                     173
+#define IMG_SPACESHIP_MOVING_UP                                174
+#define IMG_SPACESHIP_MOVING_LEFT                      175
+#define IMG_SPACESHIP_MOVING_DOWN                      176
+#define IMG_SPACESHIP_TURNING_FROM_RIGHT_UP            177
+#define IMG_SPACESHIP_TURNING_FROM_UP_LEFT             178
+#define IMG_SPACESHIP_TURNING_FROM_LEFT_DOWN           179
+#define IMG_SPACESHIP_TURNING_FROM_DOWN_RIGHT          180
+#define IMG_SPACESHIP_TURNING_FROM_RIGHT_DOWN          181
+#define IMG_SPACESHIP_TURNING_FROM_UP_RIGHT            182
+#define IMG_SPACESHIP_TURNING_FROM_LEFT_UP             183
+#define IMG_SPACESHIP_TURNING_FROM_DOWN_LEFT           184
+#define IMG_YAMYAM                                     185
+#define IMG_YAMYAM_MOVING                              186
+#define IMG_ROBOT                                      187
+#define IMG_ROBOT_MOVING                               188
+#define IMG_ROBOT_WHEEL                                        189
+#define IMG_ROBOT_WHEEL_ACTIVE                         190
+#define IMG_MAGIC_WALL                                 191
+#define IMG_MAGIC_WALL_ACTIVE                          192
+#define IMG_MAGIC_WALL_FILLING                         193
+#define IMG_MAGIC_WALL_FULL                            194
+#define IMG_MAGIC_WALL_EMPTYING                                195
+#define IMG_MAGIC_WALL_DEAD                            196
+#define IMG_QUICKSAND_EMPTY                            197
+#define IMG_QUICKSAND_FILLING                          198
+#define IMG_QUICKSAND_FULL                             199
+#define IMG_QUICKSAND_FULL_EDITOR                      200
+#define IMG_QUICKSAND_EMPTYING                         201
+#define IMG_ACID_POOL_TOPLEFT                          202
+#define IMG_ACID_POOL_TOPRIGHT                         203
+#define IMG_ACID_POOL_BOTTOMLEFT                       204
+#define IMG_ACID_POOL_BOTTOM                           205
+#define IMG_ACID_POOL_BOTTOMRIGHT                      206
+#define IMG_ACID                                       207
+#define IMG_ACID_SPLASH_LEFT                           208
+#define IMG_ACID_SPLASH_RIGHT                          209
+#define IMG_AMOEBA_DROP                                        210
+#define IMG_AMOEBA_GROWING                             211
+#define IMG_AMOEBA_SHRINKING                           212
+#define IMG_AMOEBA_WET                                 213
+#define IMG_AMOEBA_WET_EDITOR                          214
+#define IMG_AMOEBA_DROPPING                            215
+#define IMG_AMOEBA_DRY                                 216
+#define IMG_AMOEBA_FULL                                        217
+#define IMG_AMOEBA_FULL_EDITOR                         218
+#define IMG_AMOEBA_DEAD                                        219
+#define IMG_AMOEBA_DEAD_EDITOR                         220
+#define IMG_EM_KEY_1                                   221
+#define IMG_EM_KEY_2                                   222
+#define IMG_EM_KEY_3                                   223
+#define IMG_EM_KEY_4                                   224
+#define IMG_EM_GATE_1                                  225
+#define IMG_EM_GATE_2                                  226
+#define IMG_EM_GATE_3                                  227
+#define IMG_EM_GATE_4                                  228
+#define IMG_EM_GATE_1_GRAY                             229
+#define IMG_EM_GATE_1_GRAY_EDITOR                      230
+#define IMG_EM_GATE_2_GRAY                             231
+#define IMG_EM_GATE_2_GRAY_EDITOR                      232
+#define IMG_EM_GATE_3_GRAY                             233
+#define IMG_EM_GATE_3_GRAY_EDITOR                      234
+#define IMG_EM_GATE_4_GRAY                             235
+#define IMG_EM_GATE_4_GRAY_EDITOR                      236
+#define IMG_EXIT_CLOSED                                        237
+#define IMG_EXIT_OPENING                               238
+#define IMG_EXIT_OPEN                                  239
+#define IMG_EXIT_CLOSING                               240
+#define IMG_BALLOON                                    241
+#define IMG_BALLOON_MOVING                             242
+#define IMG_BALLOON_PUSHING                            243
+#define IMG_BALLOON_SWITCH_LEFT                                244
+#define IMG_BALLOON_SWITCH_RIGHT                       245
+#define IMG_BALLOON_SWITCH_UP                          246
+#define IMG_BALLOON_SWITCH_DOWN                                247
+#define IMG_BALLOON_SWITCH_ANY                         248
+#define IMG_SPRING                                     249
+#define IMG_EMC_STEELWALL_1                            250
+#define IMG_EMC_STEELWALL_2                            251
+#define IMG_EMC_STEELWALL_3                            252
+#define IMG_EMC_STEELWALL_4                            253
+#define IMG_EMC_WALL_1                                 254
+#define IMG_EMC_WALL_2                                 255
+#define IMG_EMC_WALL_3                                 256
+#define IMG_EMC_WALL_4                                 257
+#define IMG_EMC_WALL_5                                 258
+#define IMG_EMC_WALL_6                                 259
+#define IMG_EMC_WALL_7                                 260
+#define IMG_EMC_WALL_8                                 261
+#define IMG_INVISIBLE_STEELWALL                                262
+#define IMG_INVISIBLE_STEELWALL_EDITOR                 263
+#define IMG_INVISIBLE_STEELWALL_ACTIVE                 264
+#define IMG_INVISIBLE_WALL                             265
+#define IMG_INVISIBLE_WALL_EDITOR                      266
+#define IMG_INVISIBLE_WALL_ACTIVE                      267
+#define IMG_INVISIBLE_SAND                             268
+#define IMG_INVISIBLE_SAND_EDITOR                      269
+#define IMG_INVISIBLE_SAND_ACTIVE                      270
+#define IMG_CONVEYOR_BELT_1_MIDDLE                     271
+#define IMG_CONVEYOR_BELT_1_MIDDLE_ACTIVE              272
+#define IMG_CONVEYOR_BELT_1_LEFT                       273
+#define IMG_CONVEYOR_BELT_1_LEFT_ACTIVE                        274
+#define IMG_CONVEYOR_BELT_1_RIGHT                      275
+#define IMG_CONVEYOR_BELT_1_RIGHT_ACTIVE               276
+#define IMG_CONVEYOR_BELT_1_SWITCH_LEFT                        277
+#define IMG_CONVEYOR_BELT_1_SWITCH_MIDDLE              278
+#define IMG_CONVEYOR_BELT_1_SWITCH_RIGHT               279
+#define IMG_CONVEYOR_BELT_2_MIDDLE                     280
+#define IMG_CONVEYOR_BELT_2_MIDDLE_ACTIVE              281
+#define IMG_CONVEYOR_BELT_2_LEFT                       282
+#define IMG_CONVEYOR_BELT_2_LEFT_ACTIVE                        283
+#define IMG_CONVEYOR_BELT_2_RIGHT                      284
+#define IMG_CONVEYOR_BELT_2_RIGHT_ACTIVE               285
+#define IMG_CONVEYOR_BELT_2_SWITCH_LEFT                        286
+#define IMG_CONVEYOR_BELT_2_SWITCH_MIDDLE              287
+#define IMG_CONVEYOR_BELT_2_SWITCH_RIGHT               288
+#define IMG_CONVEYOR_BELT_3_MIDDLE                     289
+#define IMG_CONVEYOR_BELT_3_MIDDLE_ACTIVE              290
+#define IMG_CONVEYOR_BELT_3_LEFT                       291
+#define IMG_CONVEYOR_BELT_3_LEFT_ACTIVE                        292
+#define IMG_CONVEYOR_BELT_3_RIGHT                      293
+#define IMG_CONVEYOR_BELT_3_RIGHT_ACTIVE               294
+#define IMG_CONVEYOR_BELT_3_SWITCH_LEFT                        295
+#define IMG_CONVEYOR_BELT_3_SWITCH_MIDDLE              296
+#define IMG_CONVEYOR_BELT_3_SWITCH_RIGHT               297
+#define IMG_CONVEYOR_BELT_4_MIDDLE                     298
+#define IMG_CONVEYOR_BELT_4_MIDDLE_ACTIVE              299
+#define IMG_CONVEYOR_BELT_4_LEFT                       300
+#define IMG_CONVEYOR_BELT_4_LEFT_ACTIVE                        301
+#define IMG_CONVEYOR_BELT_4_RIGHT                      302
+#define IMG_CONVEYOR_BELT_4_RIGHT_ACTIVE               303
+#define IMG_CONVEYOR_BELT_4_SWITCH_LEFT                        304
+#define IMG_CONVEYOR_BELT_4_SWITCH_MIDDLE              305
+#define IMG_CONVEYOR_BELT_4_SWITCH_RIGHT               306
+#define IMG_SWITCHGATE_SWITCH_UP                       307
+#define IMG_SWITCHGATE_SWITCH_DOWN                     308
+#define IMG_LIGHT_SWITCH                               309
+#define IMG_LIGHT_SWITCH_ACTIVE                                310
+#define IMG_TIMEGATE_SWITCH                            311
+#define IMG_TIMEGATE_SWITCH_ACTIVE                     312
+#define IMG_ENVELOPE_1                                 313
+#define IMG_ENVELOPE_1_COLLECTING                      314
+#define IMG_ENVELOPE_2                                 315
+#define IMG_ENVELOPE_2_COLLECTING                      316
+#define IMG_ENVELOPE_3                                 317
+#define IMG_ENVELOPE_3_COLLECTING                      318
+#define IMG_ENVELOPE_4                                 319
+#define IMG_ENVELOPE_4_COLLECTING                      320
+#define IMG_SIGN_EXCLAMATION                           321
+#define IMG_SIGN_STOP                                  322
+#define IMG_LANDMINE                                   323
+#define IMG_STEELWALL_SLIPPERY                         324
+#define IMG_EXTRA_TIME                                 325
+#define IMG_SHIELD_NORMAL                              326
+#define IMG_SHIELD_NORMAL_ACTIVE                       327
+#define IMG_SHIELD_DEADLY                              328
+#define IMG_SHIELD_DEADLY_ACTIVE                       329
+#define IMG_SWITCHGATE_CLOSED                          330
+#define IMG_SWITCHGATE_OPENING                         331
+#define IMG_SWITCHGATE_OPEN                            332
+#define IMG_SWITCHGATE_CLOSING                         333
+#define IMG_TIMEGATE_CLOSED                            334
+#define IMG_TIMEGATE_OPENING                           335
+#define IMG_TIMEGATE_OPEN                              336
+#define IMG_TIMEGATE_CLOSING                           337
+#define IMG_PEARL                                      338
+#define IMG_PEARL_BREAKING                             339
+#define IMG_CRYSTAL                                    340
+#define IMG_WALL_PEARL                                 341
+#define IMG_WALL_CRYSTAL                               342
+#define IMG_TUBE_RIGHT_DOWN                            343
+#define IMG_TUBE_HORIZONTAL_DOWN                       344
+#define IMG_TUBE_LEFT_DOWN                             345
+#define IMG_TUBE_HORIZONTAL                            346
+#define IMG_TUBE_VERTICAL_RIGHT                                347
+#define IMG_TUBE_ANY                                   348
+#define IMG_TUBE_VERTICAL_LEFT                         349
+#define IMG_TUBE_VERTICAL                              350
+#define IMG_TUBE_RIGHT_UP                              351
+#define IMG_TUBE_HORIZONTAL_UP                         352
+#define IMG_TUBE_LEFT_UP                               353
+#define IMG_TRAP                                       354
+#define IMG_TRAP_ACTIVE                                        355
+#define IMG_DX_SUPABOMB                                        356
+#define IMG_KEY_1                                      357
+#define IMG_KEY_1_EDITOR                               358
+#define IMG_KEY_2                                      359
+#define IMG_KEY_2_EDITOR                               360
+#define IMG_KEY_3                                      361
+#define IMG_KEY_3_EDITOR                               362
+#define IMG_KEY_4                                      363
+#define IMG_KEY_4_EDITOR                               364
+#define IMG_GATE_1                                     365
+#define IMG_GATE_2                                     366
+#define IMG_GATE_3                                     367
+#define IMG_GATE_4                                     368
+#define IMG_GATE_1_GRAY                                        369
+#define IMG_GATE_1_GRAY_EDITOR                         370
+#define IMG_GATE_2_GRAY                                        371
+#define IMG_GATE_2_GRAY_EDITOR                         372
+#define IMG_GATE_3_GRAY                                        373
+#define IMG_GATE_3_GRAY_EDITOR                         374
+#define IMG_GATE_4_GRAY                                        375
+#define IMG_GATE_4_GRAY_EDITOR                         376
+#define IMG_GAME_OF_LIFE                               377
+#define IMG_BIOMAZE                                    378
+#define IMG_PACMAN                                     379
+#define IMG_PACMAN_RIGHT                               380
+#define IMG_PACMAN_UP                                  381
+#define IMG_PACMAN_LEFT                                        382
+#define IMG_PACMAN_DOWN                                        383
+#define IMG_PACMAN_TURNING_FROM_RIGHT                  384
+#define IMG_PACMAN_TURNING_FROM_UP                     385
+#define IMG_PACMAN_TURNING_FROM_LEFT                   386
+#define IMG_PACMAN_TURNING_FROM_DOWN                   387
+#define IMG_LAMP                                       388
+#define IMG_LAMP_EDITOR                                        389
+#define IMG_LAMP_ACTIVE                                        390
+#define IMG_TIME_ORB_FULL                              391
+#define IMG_TIME_ORB_EMPTY                             392
+#define IMG_EMERALD_YELLOW                             393
+#define IMG_EMERALD_YELLOW_MOVING                      394
+#define IMG_EMERALD_YELLOW_FALLING                     395
+#define IMG_EMERALD_RED                                        396
+#define IMG_EMERALD_RED_MOVING                         397
+#define IMG_EMERALD_RED_FALLING                                398
+#define IMG_EMERALD_PURPLE                             399
+#define IMG_EMERALD_PURPLE_MOVING                      400
+#define IMG_EMERALD_PURPLE_FALLING                     401
+#define IMG_WALL_EMERALD_YELLOW                                402
+#define IMG_WALL_EMERALD_RED                           403
+#define IMG_WALL_EMERALD_PURPLE                                404
+#define IMG_WALL_BD_DIAMOND                            405
+#define IMG_EXPANDABLE_WALL                            406
+#define IMG_EXPANDABLE_WALL_HORIZONTAL                 407
+#define IMG_EXPANDABLE_WALL_HORIZONTAL_EDITOR          408
+#define IMG_EXPANDABLE_WALL_VERTICAL                   409
+#define IMG_EXPANDABLE_WALL_VERTICAL_EDITOR            410
+#define IMG_EXPANDABLE_WALL_ANY                                411
+#define IMG_EXPANDABLE_WALL_ANY_EDITOR                 412
+#define IMG_EXPANDABLE_WALL_GROWING_LEFT               413
+#define IMG_EXPANDABLE_WALL_GROWING_RIGHT              414
+#define IMG_EXPANDABLE_WALL_GROWING_UP                 415
+#define IMG_EXPANDABLE_WALL_GROWING_DOWN               416
+#define IMG_BLACK_ORB                                  417
+#define IMG_SPEED_PILL                                 418
+#define IMG_DARK_YAMYAM                                        419
+#define IMG_DYNABOMB                                   420
+#define IMG_DYNABOMB_ACTIVE                            421
+#define IMG_DYNABOMB_PLAYER_1                          422
+#define IMG_DYNABOMB_PLAYER_1_ACTIVE                   423
+#define IMG_DYNABOMB_PLAYER_2                          424
+#define IMG_DYNABOMB_PLAYER_2_ACTIVE                   425
+#define IMG_DYNABOMB_PLAYER_3                          426
+#define IMG_DYNABOMB_PLAYER_3_ACTIVE                   427
+#define IMG_DYNABOMB_PLAYER_4                          428
+#define IMG_DYNABOMB_PLAYER_4_ACTIVE                   429
+#define IMG_DYNABOMB_INCREASE_NUMBER                   430
+#define IMG_DYNABOMB_INCREASE_SIZE                     431
+#define IMG_DYNABOMB_INCREASE_POWER                    432
+#define IMG_PIG                                                433
+#define IMG_PIG_DOWN                                   434
+#define IMG_PIG_UP                                     435
+#define IMG_PIG_LEFT                                   436
+#define IMG_PIG_RIGHT                                  437
+#define IMG_PIG_MOVING_DOWN                            438
+#define IMG_PIG_MOVING_UP                              439
+#define IMG_PIG_MOVING_LEFT                            440
+#define IMG_PIG_MOVING_RIGHT                           441
+#define IMG_PIG_DIGGING_DOWN                           442
+#define IMG_PIG_DIGGING_UP                             443
+#define IMG_PIG_DIGGING_LEFT                           444
+#define IMG_PIG_DIGGING_RIGHT                          445
+#define IMG_DRAGON                                     446
+#define IMG_DRAGON_DOWN                                        447
+#define IMG_DRAGON_UP                                  448
+#define IMG_DRAGON_LEFT                                        449
+#define IMG_DRAGON_RIGHT                               450
+#define IMG_DRAGON_MOVING_DOWN                         451
+#define IMG_DRAGON_MOVING_UP                           452
+#define IMG_DRAGON_MOVING_LEFT                         453
+#define IMG_DRAGON_MOVING_RIGHT                                454
+#define IMG_DRAGON_ATTACKING_DOWN                      455
+#define IMG_DRAGON_ATTACKING_UP                                456
+#define IMG_DRAGON_ATTACKING_LEFT                      457
+#define IMG_DRAGON_ATTACKING_RIGHT                     458
+#define IMG_MOLE                                       459
+#define IMG_MOLE_DOWN                                  460
+#define IMG_MOLE_UP                                    461
+#define IMG_MOLE_LEFT                                  462
+#define IMG_MOLE_RIGHT                                 463
+#define IMG_MOLE_MOVING_DOWN                           464
+#define IMG_MOLE_MOVING_UP                             465
+#define IMG_MOLE_MOVING_LEFT                           466
+#define IMG_MOLE_MOVING_RIGHT                          467
+#define IMG_MOLE_DIGGING_DOWN                          468
+#define IMG_MOLE_DIGGING_UP                            469
+#define IMG_MOLE_DIGGING_LEFT                          470
+#define IMG_MOLE_DIGGING_RIGHT                         471
+#define IMG_PENGUIN                                    472
+#define IMG_PENGUIN_EDITOR                             473
+#define IMG_PENGUIN_DOWN                               474
+#define IMG_PENGUIN_UP                                 475
+#define IMG_PENGUIN_LEFT                               476
+#define IMG_PENGUIN_RIGHT                              477
+#define IMG_PENGUIN_MOVING_DOWN                                478
+#define IMG_PENGUIN_MOVING_UP                          479
+#define IMG_PENGUIN_MOVING_LEFT                                480
+#define IMG_PENGUIN_MOVING_RIGHT                       481
+#define IMG_SATELLITE                                  482
+#define IMG_FLAMES_1_LEFT                              483
+#define IMG_FLAMES_2_LEFT                              484
+#define IMG_FLAMES_3_LEFT                              485
+#define IMG_FLAMES_1_RIGHT                             486
+#define IMG_FLAMES_2_RIGHT                             487
+#define IMG_FLAMES_3_RIGHT                             488
+#define IMG_FLAMES_1_UP                                        489
+#define IMG_FLAMES_2_UP                                        490
+#define IMG_FLAMES_3_UP                                        491
+#define IMG_FLAMES_1_DOWN                              492
+#define IMG_FLAMES_2_DOWN                              493
+#define IMG_FLAMES_3_DOWN                              494
+#define IMG_STONEBLOCK                                 495
+#define IMG_PLAYER_1                                   496
+#define IMG_PLAYER_1_EDITOR                            497
+#define IMG_PLAYER_1_DOWN                              498
+#define IMG_PLAYER_1_UP                                        499
+#define IMG_PLAYER_1_LEFT                              500
+#define IMG_PLAYER_1_RIGHT                             501
+#define IMG_PLAYER_1_MOVING_DOWN                       502
+#define IMG_PLAYER_1_MOVING_UP                         503
+#define IMG_PLAYER_1_MOVING_LEFT                       504
+#define IMG_PLAYER_1_MOVING_RIGHT                      505
+#define IMG_PLAYER_1_DIGGING_DOWN                      506
+#define IMG_PLAYER_1_DIGGING_UP                                507
+#define IMG_PLAYER_1_DIGGING_LEFT                      508
+#define IMG_PLAYER_1_DIGGING_RIGHT                     509
+#define IMG_PLAYER_1_COLLECTING_DOWN                   510
+#define IMG_PLAYER_1_COLLECTING_UP                     511
+#define IMG_PLAYER_1_COLLECTING_LEFT                   512
+#define IMG_PLAYER_1_COLLECTING_RIGHT                  513
+#define IMG_PLAYER_1_PUSHING_DOWN                      514
+#define IMG_PLAYER_1_PUSHING_UP                                515
+#define IMG_PLAYER_1_PUSHING_LEFT                      516
+#define IMG_PLAYER_1_PUSHING_RIGHT                     517
+#define IMG_PLAYER_1_SNAPPING_DOWN                     518
+#define IMG_PLAYER_1_SNAPPING_UP                       519
+#define IMG_PLAYER_1_SNAPPING_LEFT                     520
+#define IMG_PLAYER_1_SNAPPING_RIGHT                    521
+#define IMG_PLAYER_2                                   522
+#define IMG_PLAYER_2_EDITOR                            523
+#define IMG_PLAYER_2_DOWN                              524
+#define IMG_PLAYER_2_UP                                        525
+#define IMG_PLAYER_2_LEFT                              526
+#define IMG_PLAYER_2_RIGHT                             527
+#define IMG_PLAYER_2_MOVING_DOWN                       528
+#define IMG_PLAYER_2_MOVING_UP                         529
+#define IMG_PLAYER_2_MOVING_LEFT                       530
+#define IMG_PLAYER_2_MOVING_RIGHT                      531
+#define IMG_PLAYER_2_DIGGING_DOWN                      532
+#define IMG_PLAYER_2_DIGGING_UP                                533
+#define IMG_PLAYER_2_DIGGING_LEFT                      534
+#define IMG_PLAYER_2_DIGGING_RIGHT                     535
+#define IMG_PLAYER_2_COLLECTING_DOWN                   536
+#define IMG_PLAYER_2_COLLECTING_UP                     537
+#define IMG_PLAYER_2_COLLECTING_LEFT                   538
+#define IMG_PLAYER_2_COLLECTING_RIGHT                  539
+#define IMG_PLAYER_2_PUSHING_DOWN                      540
+#define IMG_PLAYER_2_PUSHING_UP                                541
+#define IMG_PLAYER_2_PUSHING_LEFT                      542
+#define IMG_PLAYER_2_PUSHING_RIGHT                     543
+#define IMG_PLAYER_2_SNAPPING_DOWN                     544
+#define IMG_PLAYER_2_SNAPPING_UP                       545
+#define IMG_PLAYER_2_SNAPPING_LEFT                     546
+#define IMG_PLAYER_2_SNAPPING_RIGHT                    547
+#define IMG_PLAYER_3                                   548
+#define IMG_PLAYER_3_EDITOR                            549
+#define IMG_PLAYER_3_DOWN                              550
+#define IMG_PLAYER_3_UP                                        551
+#define IMG_PLAYER_3_LEFT                              552
+#define IMG_PLAYER_3_RIGHT                             553
+#define IMG_PLAYER_3_MOVING_DOWN                       554
+#define IMG_PLAYER_3_MOVING_UP                         555
+#define IMG_PLAYER_3_MOVING_LEFT                       556
+#define IMG_PLAYER_3_MOVING_RIGHT                      557
+#define IMG_PLAYER_3_DIGGING_DOWN                      558
+#define IMG_PLAYER_3_DIGGING_UP                                559
+#define IMG_PLAYER_3_DIGGING_LEFT                      560
+#define IMG_PLAYER_3_DIGGING_RIGHT                     561
+#define IMG_PLAYER_3_COLLECTING_DOWN                   562
+#define IMG_PLAYER_3_COLLECTING_UP                     563
+#define IMG_PLAYER_3_COLLECTING_LEFT                   564
+#define IMG_PLAYER_3_COLLECTING_RIGHT                  565
+#define IMG_PLAYER_3_PUSHING_DOWN                      566
+#define IMG_PLAYER_3_PUSHING_UP                                567
+#define IMG_PLAYER_3_PUSHING_LEFT                      568
+#define IMG_PLAYER_3_PUSHING_RIGHT                     569
+#define IMG_PLAYER_3_SNAPPING_DOWN                     570
+#define IMG_PLAYER_3_SNAPPING_UP                       571
+#define IMG_PLAYER_3_SNAPPING_LEFT                     572
+#define IMG_PLAYER_3_SNAPPING_RIGHT                    573
+#define IMG_PLAYER_4                                   574
+#define IMG_PLAYER_4_EDITOR                            575
+#define IMG_PLAYER_4_DOWN                              576
+#define IMG_PLAYER_4_UP                                        577
+#define IMG_PLAYER_4_LEFT                              578
+#define IMG_PLAYER_4_RIGHT                             579
+#define IMG_PLAYER_4_MOVING_DOWN                       580
+#define IMG_PLAYER_4_MOVING_UP                         581
+#define IMG_PLAYER_4_MOVING_LEFT                       582
+#define IMG_PLAYER_4_MOVING_RIGHT                      583
+#define IMG_PLAYER_4_DIGGING_DOWN                      584
+#define IMG_PLAYER_4_DIGGING_UP                                585
+#define IMG_PLAYER_4_DIGGING_LEFT                      586
+#define IMG_PLAYER_4_DIGGING_RIGHT                     587
+#define IMG_PLAYER_4_COLLECTING_DOWN                   588
+#define IMG_PLAYER_4_COLLECTING_UP                     589
+#define IMG_PLAYER_4_COLLECTING_LEFT                   590
+#define IMG_PLAYER_4_COLLECTING_RIGHT                  591
+#define IMG_PLAYER_4_PUSHING_DOWN                      592
+#define IMG_PLAYER_4_PUSHING_UP                                593
+#define IMG_PLAYER_4_PUSHING_LEFT                      594
+#define IMG_PLAYER_4_PUSHING_RIGHT                     595
+#define IMG_PLAYER_4_SNAPPING_DOWN                     596
+#define IMG_PLAYER_4_SNAPPING_UP                       597
+#define IMG_PLAYER_4_SNAPPING_LEFT                     598
+#define IMG_PLAYER_4_SNAPPING_RIGHT                    599
+#define IMG_DEFAULT_EXPLODING                          600
+#define IMG_TWINKLE_BLUE                               601
+#define IMG_TWINKLE_WHITE                              602
+#define IMG_STEELWALL_TOPLEFT                          603
+#define IMG_STEELWALL_TOPRIGHT                         604
+#define IMG_STEELWALL_BOTTOMLEFT                       605
+#define IMG_STEELWALL_BOTTOMRIGHT                      606
+#define IMG_STEELWALL_HORIZONTAL                       607
+#define IMG_STEELWALL_VERTICAL                         608
+#define IMG_STEELWALL_TOPLEFT_EDITOR                   609
+#define IMG_STEELWALL_TOPRIGHT_EDITOR                  610
+#define IMG_STEELWALL_BOTTOMLEFT_EDITOR                        611
+#define IMG_STEELWALL_BOTTOMRIGHT_EDITOR               612
+#define IMG_STEELWALL_HORIZONTAL_EDITOR                        613
+#define IMG_STEELWALL_VERTICAL_EDITOR                  614
+#define IMG_INVISIBLE_STEELWALL_TOPLEFT                        615
+#define IMG_INVISIBLE_STEELWALL_TOPRIGHT               616
+#define IMG_INVISIBLE_STEELWALL_BOTTOMLEFT             617
+#define IMG_INVISIBLE_STEELWALL_BOTTOMRIGHT            618
+#define IMG_INVISIBLE_STEELWALL_HORIZONTAL             619
+#define IMG_INVISIBLE_STEELWALL_VERTICAL               620
+#define IMG_INVISIBLE_STEELWALL_TOPLEFT_EDITOR         621
+#define IMG_INVISIBLE_STEELWALL_TOPRIGHT_EDITOR                622
+#define IMG_INVISIBLE_STEELWALL_BOTTOMLEFT_EDITOR      623
+#define IMG_INVISIBLE_STEELWALL_BOTTOMRIGHT_EDITOR     624
+#define IMG_INVISIBLE_STEELWALL_HORIZONTAL_EDITOR      625
+#define IMG_INVISIBLE_STEELWALL_VERTICAL_EDITOR                626
+#define IMG_ARROW_LEFT                                 627
+#define IMG_ARROW_RIGHT                                        628
+#define IMG_ARROW_UP                                   629
+#define IMG_ARROW_DOWN                                 630
+#define IMG_CHAR_SPACE                                 631
+#define IMG_CHAR_EXCLAM                                        632
+#define IMG_CHAR_QUOTEDBL                              633
+#define IMG_CHAR_NUMBERSIGN                            634
+#define IMG_CHAR_DOLLAR                                        635
+#define IMG_CHAR_PROCENT                               636
+#define IMG_CHAR_AMPERSAND                             637
+#define IMG_CHAR_APOSTROPHE                            638
+#define IMG_CHAR_PARENLEFT                             639
+#define IMG_CHAR_PARENRIGHT                            640
+#define IMG_CHAR_ASTERISK                              641
+#define IMG_CHAR_PLUS                                  642
+#define IMG_CHAR_COMMA                                 643
+#define IMG_CHAR_MINUS                                 644
+#define IMG_CHAR_PERIOD                                        645
+#define IMG_CHAR_SLASH                                 646
+#define IMG_CHAR_0                                     647
+#define IMG_CHAR_1                                     648
+#define IMG_CHAR_2                                     649
+#define IMG_CHAR_3                                     650
+#define IMG_CHAR_4                                     651
+#define IMG_CHAR_5                                     652
+#define IMG_CHAR_6                                     653
+#define IMG_CHAR_7                                     654
+#define IMG_CHAR_8                                     655
+#define IMG_CHAR_9                                     656
+#define IMG_CHAR_COLON                                 657
+#define IMG_CHAR_SEMICOLON                             658
+#define IMG_CHAR_LESS                                  659
+#define IMG_CHAR_EQUAL                                 660
+#define IMG_CHAR_GREATER                               661
+#define IMG_CHAR_QUESTION                              662
+#define IMG_CHAR_AT                                    663
+#define IMG_CHAR_A                                     664
+#define IMG_CHAR_B                                     665
+#define IMG_CHAR_C                                     666
+#define IMG_CHAR_D                                     667
+#define IMG_CHAR_E                                     668
+#define IMG_CHAR_F                                     669
+#define IMG_CHAR_G                                     670
+#define IMG_CHAR_H                                     671
+#define IMG_CHAR_I                                     672
+#define IMG_CHAR_J                                     673
+#define IMG_CHAR_K                                     674
+#define IMG_CHAR_L                                     675
+#define IMG_CHAR_M                                     676
+#define IMG_CHAR_N                                     677
+#define IMG_CHAR_O                                     678
+#define IMG_CHAR_P                                     679
+#define IMG_CHAR_Q                                     680
+#define IMG_CHAR_R                                     681
+#define IMG_CHAR_S                                     682
+#define IMG_CHAR_T                                     683
+#define IMG_CHAR_U                                     684
+#define IMG_CHAR_V                                     685
+#define IMG_CHAR_W                                     686
+#define IMG_CHAR_X                                     687
+#define IMG_CHAR_Y                                     688
+#define IMG_CHAR_Z                                     689
+#define IMG_CHAR_BRACKETLEFT                           690
+#define IMG_CHAR_BACKSLASH                             691
+#define IMG_CHAR_BRACKETRIGHT                          692
+#define IMG_CHAR_ASCIICIRCUM                           693
+#define IMG_CHAR_UNDERSCORE                            694
+#define IMG_CHAR_COPYRIGHT                             695
+#define IMG_CHAR_AUMLAUT                               696
+#define IMG_CHAR_OUMLAUT                               697
+#define IMG_CHAR_UUMLAUT                               698
+#define IMG_CHAR_DEGREE                                        699
+#define IMG_CHAR_TRADEMARK                             700
+#define IMG_CHAR_CURSOR                                        701
+#define IMG_CUSTOM_1                                   702
+#define IMG_CUSTOM_1_EDITOR                            703
+#define IMG_CUSTOM_2                                   704
+#define IMG_CUSTOM_2_EDITOR                            705
+#define IMG_CUSTOM_3                                   706
+#define IMG_CUSTOM_3_EDITOR                            707
+#define IMG_CUSTOM_4                                   708
+#define IMG_CUSTOM_4_EDITOR                            709
+#define IMG_CUSTOM_5                                   710
+#define IMG_CUSTOM_5_EDITOR                            711
+#define IMG_CUSTOM_6                                   712
+#define IMG_CUSTOM_6_EDITOR                            713
+#define IMG_CUSTOM_7                                   714
+#define IMG_CUSTOM_7_EDITOR                            715
+#define IMG_CUSTOM_8                                   716
+#define IMG_CUSTOM_8_EDITOR                            717
+#define IMG_CUSTOM_9                                   718
+#define IMG_CUSTOM_9_EDITOR                            719
+#define IMG_CUSTOM_10                                  720
+#define IMG_CUSTOM_10_EDITOR                           721
+#define IMG_CUSTOM_11                                  722
+#define IMG_CUSTOM_11_EDITOR                           723
+#define IMG_CUSTOM_12                                  724
+#define IMG_CUSTOM_12_EDITOR                           725
+#define IMG_CUSTOM_13                                  726
+#define IMG_CUSTOM_13_EDITOR                           727
+#define IMG_CUSTOM_14                                  728
+#define IMG_CUSTOM_14_EDITOR                           729
+#define IMG_CUSTOM_15                                  730
+#define IMG_CUSTOM_15_EDITOR                           731
+#define IMG_CUSTOM_16                                  732
+#define IMG_CUSTOM_16_EDITOR                           733
+#define IMG_CUSTOM_17                                  734
+#define IMG_CUSTOM_17_EDITOR                           735
+#define IMG_CUSTOM_18                                  736
+#define IMG_CUSTOM_18_EDITOR                           737
+#define IMG_CUSTOM_19                                  738
+#define IMG_CUSTOM_19_EDITOR                           739
+#define IMG_CUSTOM_20                                  740
+#define IMG_CUSTOM_20_EDITOR                           741
+#define IMG_CUSTOM_21                                  742
+#define IMG_CUSTOM_21_EDITOR                           743
+#define IMG_CUSTOM_22                                  744
+#define IMG_CUSTOM_22_EDITOR                           745
+#define IMG_CUSTOM_23                                  746
+#define IMG_CUSTOM_23_EDITOR                           747
+#define IMG_CUSTOM_24                                  748
+#define IMG_CUSTOM_24_EDITOR                           749
+#define IMG_CUSTOM_25                                  750
+#define IMG_CUSTOM_25_EDITOR                           751
+#define IMG_CUSTOM_26                                  752
+#define IMG_CUSTOM_26_EDITOR                           753
+#define IMG_CUSTOM_27                                  754
+#define IMG_CUSTOM_27_EDITOR                           755
+#define IMG_CUSTOM_28                                  756
+#define IMG_CUSTOM_28_EDITOR                           757
+#define IMG_CUSTOM_29                                  758
+#define IMG_CUSTOM_29_EDITOR                           759
+#define IMG_CUSTOM_30                                  760
+#define IMG_CUSTOM_30_EDITOR                           761
+#define IMG_CUSTOM_31                                  762
+#define IMG_CUSTOM_31_EDITOR                           763
+#define IMG_CUSTOM_32                                  764
+#define IMG_CUSTOM_32_EDITOR                           765
+#define IMG_CUSTOM_33                                  766
+#define IMG_CUSTOM_33_EDITOR                           767
+#define IMG_CUSTOM_34                                  768
+#define IMG_CUSTOM_34_EDITOR                           769
+#define IMG_CUSTOM_35                                  770
+#define IMG_CUSTOM_35_EDITOR                           771
+#define IMG_CUSTOM_36                                  772
+#define IMG_CUSTOM_36_EDITOR                           773
+#define IMG_CUSTOM_37                                  774
+#define IMG_CUSTOM_37_EDITOR                           775
+#define IMG_CUSTOM_38                                  776
+#define IMG_CUSTOM_38_EDITOR                           777
+#define IMG_CUSTOM_39                                  778
+#define IMG_CUSTOM_39_EDITOR                           779
+#define IMG_CUSTOM_40                                  780
+#define IMG_CUSTOM_40_EDITOR                           781
+#define IMG_CUSTOM_41                                  782
+#define IMG_CUSTOM_41_EDITOR                           783
+#define IMG_CUSTOM_42                                  784
+#define IMG_CUSTOM_42_EDITOR                           785
+#define IMG_CUSTOM_43                                  786
+#define IMG_CUSTOM_43_EDITOR                           787
+#define IMG_CUSTOM_44                                  788
+#define IMG_CUSTOM_44_EDITOR                           789
+#define IMG_CUSTOM_45                                  790
+#define IMG_CUSTOM_45_EDITOR                           791
+#define IMG_CUSTOM_46                                  792
+#define IMG_CUSTOM_46_EDITOR                           793
+#define IMG_CUSTOM_47                                  794
+#define IMG_CUSTOM_47_EDITOR                           795
+#define IMG_CUSTOM_48                                  796
+#define IMG_CUSTOM_48_EDITOR                           797
+#define IMG_CUSTOM_49                                  798
+#define IMG_CUSTOM_49_EDITOR                           799
+#define IMG_CUSTOM_50                                  800
+#define IMG_CUSTOM_50_EDITOR                           801
+#define IMG_CUSTOM_51                                  802
+#define IMG_CUSTOM_51_EDITOR                           803
+#define IMG_CUSTOM_52                                  804
+#define IMG_CUSTOM_52_EDITOR                           805
+#define IMG_CUSTOM_53                                  806
+#define IMG_CUSTOM_53_EDITOR                           807
+#define IMG_CUSTOM_54                                  808
+#define IMG_CUSTOM_54_EDITOR                           809
+#define IMG_CUSTOM_55                                  810
+#define IMG_CUSTOM_55_EDITOR                           811
+#define IMG_CUSTOM_56                                  812
+#define IMG_CUSTOM_56_EDITOR                           813
+#define IMG_CUSTOM_57                                  814
+#define IMG_CUSTOM_57_EDITOR                           815
+#define IMG_CUSTOM_58                                  816
+#define IMG_CUSTOM_58_EDITOR                           817
+#define IMG_CUSTOM_59                                  818
+#define IMG_CUSTOM_59_EDITOR                           819
+#define IMG_CUSTOM_60                                  820
+#define IMG_CUSTOM_60_EDITOR                           821
+#define IMG_CUSTOM_61                                  822
+#define IMG_CUSTOM_61_EDITOR                           823
+#define IMG_CUSTOM_62                                  824
+#define IMG_CUSTOM_62_EDITOR                           825
+#define IMG_CUSTOM_63                                  826
+#define IMG_CUSTOM_63_EDITOR                           827
+#define IMG_CUSTOM_64                                  828
+#define IMG_CUSTOM_64_EDITOR                           829
+#define IMG_CUSTOM_65                                  830
+#define IMG_CUSTOM_65_EDITOR                           831
+#define IMG_CUSTOM_66                                  832
+#define IMG_CUSTOM_66_EDITOR                           833
+#define IMG_CUSTOM_67                                  834
+#define IMG_CUSTOM_67_EDITOR                           835
+#define IMG_CUSTOM_68                                  836
+#define IMG_CUSTOM_68_EDITOR                           837
+#define IMG_CUSTOM_69                                  838
+#define IMG_CUSTOM_69_EDITOR                           839
+#define IMG_CUSTOM_70                                  840
+#define IMG_CUSTOM_70_EDITOR                           841
+#define IMG_CUSTOM_71                                  842
+#define IMG_CUSTOM_71_EDITOR                           843
+#define IMG_CUSTOM_72                                  844
+#define IMG_CUSTOM_72_EDITOR                           845
+#define IMG_CUSTOM_73                                  846
+#define IMG_CUSTOM_73_EDITOR                           847
+#define IMG_CUSTOM_74                                  848
+#define IMG_CUSTOM_74_EDITOR                           849
+#define IMG_CUSTOM_75                                  850
+#define IMG_CUSTOM_75_EDITOR                           851
+#define IMG_CUSTOM_76                                  852
+#define IMG_CUSTOM_76_EDITOR                           853
+#define IMG_CUSTOM_77                                  854
+#define IMG_CUSTOM_77_EDITOR                           855
+#define IMG_CUSTOM_78                                  856
+#define IMG_CUSTOM_78_EDITOR                           857
+#define IMG_CUSTOM_79                                  858
+#define IMG_CUSTOM_79_EDITOR                           859
+#define IMG_CUSTOM_80                                  860
+#define IMG_CUSTOM_80_EDITOR                           861
+#define IMG_CUSTOM_81                                  862
+#define IMG_CUSTOM_81_EDITOR                           863
+#define IMG_CUSTOM_82                                  864
+#define IMG_CUSTOM_82_EDITOR                           865
+#define IMG_CUSTOM_83                                  866
+#define IMG_CUSTOM_83_EDITOR                           867
+#define IMG_CUSTOM_84                                  868
+#define IMG_CUSTOM_84_EDITOR                           869
+#define IMG_CUSTOM_85                                  870
+#define IMG_CUSTOM_85_EDITOR                           871
+#define IMG_CUSTOM_86                                  872
+#define IMG_CUSTOM_86_EDITOR                           873
+#define IMG_CUSTOM_87                                  874
+#define IMG_CUSTOM_87_EDITOR                           875
+#define IMG_CUSTOM_88                                  876
+#define IMG_CUSTOM_88_EDITOR                           877
+#define IMG_CUSTOM_89                                  878
+#define IMG_CUSTOM_89_EDITOR                           879
+#define IMG_CUSTOM_90                                  880
+#define IMG_CUSTOM_90_EDITOR                           881
+#define IMG_CUSTOM_91                                  882
+#define IMG_CUSTOM_91_EDITOR                           883
+#define IMG_CUSTOM_92                                  884
+#define IMG_CUSTOM_92_EDITOR                           885
+#define IMG_CUSTOM_93                                  886
+#define IMG_CUSTOM_93_EDITOR                           887
+#define IMG_CUSTOM_94                                  888
+#define IMG_CUSTOM_94_EDITOR                           889
+#define IMG_CUSTOM_95                                  890
+#define IMG_CUSTOM_95_EDITOR                           891
+#define IMG_CUSTOM_96                                  892
+#define IMG_CUSTOM_96_EDITOR                           893
+#define IMG_CUSTOM_97                                  894
+#define IMG_CUSTOM_97_EDITOR                           895
+#define IMG_CUSTOM_98                                  896
+#define IMG_CUSTOM_98_EDITOR                           897
+#define IMG_CUSTOM_99                                  898
+#define IMG_CUSTOM_99_EDITOR                           899
+#define IMG_CUSTOM_100                                 900
+#define IMG_CUSTOM_100_EDITOR                          901
+#define IMG_CUSTOM_101                                 902
+#define IMG_CUSTOM_101_EDITOR                          903
+#define IMG_CUSTOM_102                                 904
+#define IMG_CUSTOM_102_EDITOR                          905
+#define IMG_CUSTOM_103                                 906
+#define IMG_CUSTOM_103_EDITOR                          907
+#define IMG_CUSTOM_104                                 908
+#define IMG_CUSTOM_104_EDITOR                          909
+#define IMG_CUSTOM_105                                 910
+#define IMG_CUSTOM_105_EDITOR                          911
+#define IMG_CUSTOM_106                                 912
+#define IMG_CUSTOM_106_EDITOR                          913
+#define IMG_CUSTOM_107                                 914
+#define IMG_CUSTOM_107_EDITOR                          915
+#define IMG_CUSTOM_108                                 916
+#define IMG_CUSTOM_108_EDITOR                          917
+#define IMG_CUSTOM_109                                 918
+#define IMG_CUSTOM_109_EDITOR                          919
+#define IMG_CUSTOM_110                                 920
+#define IMG_CUSTOM_110_EDITOR                          921
+#define IMG_CUSTOM_111                                 922
+#define IMG_CUSTOM_111_EDITOR                          923
+#define IMG_CUSTOM_112                                 924
+#define IMG_CUSTOM_112_EDITOR                          925
+#define IMG_CUSTOM_113                                 926
+#define IMG_CUSTOM_113_EDITOR                          927
+#define IMG_CUSTOM_114                                 928
+#define IMG_CUSTOM_114_EDITOR                          929
+#define IMG_CUSTOM_115                                 930
+#define IMG_CUSTOM_115_EDITOR                          931
+#define IMG_CUSTOM_116                                 932
+#define IMG_CUSTOM_116_EDITOR                          933
+#define IMG_CUSTOM_117                                 934
+#define IMG_CUSTOM_117_EDITOR                          935
+#define IMG_CUSTOM_118                                 936
+#define IMG_CUSTOM_118_EDITOR                          937
+#define IMG_CUSTOM_119                                 938
+#define IMG_CUSTOM_119_EDITOR                          939
+#define IMG_CUSTOM_120                                 940
+#define IMG_CUSTOM_120_EDITOR                          941
+#define IMG_CUSTOM_121                                 942
+#define IMG_CUSTOM_121_EDITOR                          943
+#define IMG_CUSTOM_122                                 944
+#define IMG_CUSTOM_122_EDITOR                          945
+#define IMG_CUSTOM_123                                 946
+#define IMG_CUSTOM_123_EDITOR                          947
+#define IMG_CUSTOM_124                                 948
+#define IMG_CUSTOM_124_EDITOR                          949
+#define IMG_CUSTOM_125                                 950
+#define IMG_CUSTOM_125_EDITOR                          951
+#define IMG_CUSTOM_126                                 952
+#define IMG_CUSTOM_126_EDITOR                          953
+#define IMG_CUSTOM_127                                 954
+#define IMG_CUSTOM_127_EDITOR                          955
+#define IMG_CUSTOM_128                                 956
+#define IMG_CUSTOM_128_EDITOR                          957
+#define IMG_CUSTOM_129                                 958
+#define IMG_CUSTOM_129_EDITOR                          959
+#define IMG_CUSTOM_130                                 960
+#define IMG_CUSTOM_130_EDITOR                          961
+#define IMG_CUSTOM_131                                 962
+#define IMG_CUSTOM_131_EDITOR                          963
+#define IMG_CUSTOM_132                                 964
+#define IMG_CUSTOM_132_EDITOR                          965
+#define IMG_CUSTOM_133                                 966
+#define IMG_CUSTOM_133_EDITOR                          967
+#define IMG_CUSTOM_134                                 968
+#define IMG_CUSTOM_134_EDITOR                          969
+#define IMG_CUSTOM_135                                 970
+#define IMG_CUSTOM_135_EDITOR                          971
+#define IMG_CUSTOM_136                                 972
+#define IMG_CUSTOM_136_EDITOR                          973
+#define IMG_CUSTOM_137                                 974
+#define IMG_CUSTOM_137_EDITOR                          975
+#define IMG_CUSTOM_138                                 976
+#define IMG_CUSTOM_138_EDITOR                          977
+#define IMG_CUSTOM_139                                 978
+#define IMG_CUSTOM_139_EDITOR                          979
+#define IMG_CUSTOM_140                                 980
+#define IMG_CUSTOM_140_EDITOR                          981
+#define IMG_CUSTOM_141                                 982
+#define IMG_CUSTOM_141_EDITOR                          983
+#define IMG_CUSTOM_142                                 984
+#define IMG_CUSTOM_142_EDITOR                          985
+#define IMG_CUSTOM_143                                 986
+#define IMG_CUSTOM_143_EDITOR                          987
+#define IMG_CUSTOM_144                                 988
+#define IMG_CUSTOM_144_EDITOR                          989
+#define IMG_CUSTOM_145                                 990
+#define IMG_CUSTOM_145_EDITOR                          991
+#define IMG_CUSTOM_146                                 992
+#define IMG_CUSTOM_146_EDITOR                          993
+#define IMG_CUSTOM_147                                 994
+#define IMG_CUSTOM_147_EDITOR                          995
+#define IMG_CUSTOM_148                                 996
+#define IMG_CUSTOM_148_EDITOR                          997
+#define IMG_CUSTOM_149                                 998
+#define IMG_CUSTOM_149_EDITOR                          999
+#define IMG_CUSTOM_150                                 1000
+#define IMG_CUSTOM_150_EDITOR                          1001
+#define IMG_CUSTOM_151                                 1002
+#define IMG_CUSTOM_151_EDITOR                          1003
+#define IMG_CUSTOM_152                                 1004
+#define IMG_CUSTOM_152_EDITOR                          1005
+#define IMG_CUSTOM_153                                 1006
+#define IMG_CUSTOM_153_EDITOR                          1007
+#define IMG_CUSTOM_154                                 1008
+#define IMG_CUSTOM_154_EDITOR                          1009
+#define IMG_CUSTOM_155                                 1010
+#define IMG_CUSTOM_155_EDITOR                          1011
+#define IMG_CUSTOM_156                                 1012
+#define IMG_CUSTOM_156_EDITOR                          1013
+#define IMG_CUSTOM_157                                 1014
+#define IMG_CUSTOM_157_EDITOR                          1015
+#define IMG_CUSTOM_158                                 1016
+#define IMG_CUSTOM_158_EDITOR                          1017
+#define IMG_CUSTOM_159                                 1018
+#define IMG_CUSTOM_159_EDITOR                          1019
+#define IMG_CUSTOM_160                                 1020
+#define IMG_CUSTOM_160_EDITOR                          1021
+#define IMG_CUSTOM_161                                 1022
+#define IMG_CUSTOM_161_EDITOR                          1023
+#define IMG_CUSTOM_162                                 1024
+#define IMG_CUSTOM_162_EDITOR                          1025
+#define IMG_CUSTOM_163                                 1026
+#define IMG_CUSTOM_163_EDITOR                          1027
+#define IMG_CUSTOM_164                                 1028
+#define IMG_CUSTOM_164_EDITOR                          1029
+#define IMG_CUSTOM_165                                 1030
+#define IMG_CUSTOM_165_EDITOR                          1031
+#define IMG_CUSTOM_166                                 1032
+#define IMG_CUSTOM_166_EDITOR                          1033
+#define IMG_CUSTOM_167                                 1034
+#define IMG_CUSTOM_167_EDITOR                          1035
+#define IMG_CUSTOM_168                                 1036
+#define IMG_CUSTOM_168_EDITOR                          1037
+#define IMG_CUSTOM_169                                 1038
+#define IMG_CUSTOM_169_EDITOR                          1039
+#define IMG_CUSTOM_170                                 1040
+#define IMG_CUSTOM_170_EDITOR                          1041
+#define IMG_CUSTOM_171                                 1042
+#define IMG_CUSTOM_171_EDITOR                          1043
+#define IMG_CUSTOM_172                                 1044
+#define IMG_CUSTOM_172_EDITOR                          1045
+#define IMG_CUSTOM_173                                 1046
+#define IMG_CUSTOM_173_EDITOR                          1047
+#define IMG_CUSTOM_174                                 1048
+#define IMG_CUSTOM_174_EDITOR                          1049
+#define IMG_CUSTOM_175                                 1050
+#define IMG_CUSTOM_175_EDITOR                          1051
+#define IMG_CUSTOM_176                                 1052
+#define IMG_CUSTOM_176_EDITOR                          1053
+#define IMG_CUSTOM_177                                 1054
+#define IMG_CUSTOM_177_EDITOR                          1055
+#define IMG_CUSTOM_178                                 1056
+#define IMG_CUSTOM_178_EDITOR                          1057
+#define IMG_CUSTOM_179                                 1058
+#define IMG_CUSTOM_179_EDITOR                          1059
+#define IMG_CUSTOM_180                                 1060
+#define IMG_CUSTOM_180_EDITOR                          1061
+#define IMG_CUSTOM_181                                 1062
+#define IMG_CUSTOM_181_EDITOR                          1063
+#define IMG_CUSTOM_182                                 1064
+#define IMG_CUSTOM_182_EDITOR                          1065
+#define IMG_CUSTOM_183                                 1066
+#define IMG_CUSTOM_183_EDITOR                          1067
+#define IMG_CUSTOM_184                                 1068
+#define IMG_CUSTOM_184_EDITOR                          1069
+#define IMG_CUSTOM_185                                 1070
+#define IMG_CUSTOM_185_EDITOR                          1071
+#define IMG_CUSTOM_186                                 1072
+#define IMG_CUSTOM_186_EDITOR                          1073
+#define IMG_CUSTOM_187                                 1074
+#define IMG_CUSTOM_187_EDITOR                          1075
+#define IMG_CUSTOM_188                                 1076
+#define IMG_CUSTOM_188_EDITOR                          1077
+#define IMG_CUSTOM_189                                 1078
+#define IMG_CUSTOM_189_EDITOR                          1079
+#define IMG_CUSTOM_190                                 1080
+#define IMG_CUSTOM_190_EDITOR                          1081
+#define IMG_CUSTOM_191                                 1082
+#define IMG_CUSTOM_191_EDITOR                          1083
+#define IMG_CUSTOM_192                                 1084
+#define IMG_CUSTOM_192_EDITOR                          1085
+#define IMG_CUSTOM_193                                 1086
+#define IMG_CUSTOM_193_EDITOR                          1087
+#define IMG_CUSTOM_194                                 1088
+#define IMG_CUSTOM_194_EDITOR                          1089
+#define IMG_CUSTOM_195                                 1090
+#define IMG_CUSTOM_195_EDITOR                          1091
+#define IMG_CUSTOM_196                                 1092
+#define IMG_CUSTOM_196_EDITOR                          1093
+#define IMG_CUSTOM_197                                 1094
+#define IMG_CUSTOM_197_EDITOR                          1095
+#define IMG_CUSTOM_198                                 1096
+#define IMG_CUSTOM_198_EDITOR                          1097
+#define IMG_CUSTOM_199                                 1098
+#define IMG_CUSTOM_199_EDITOR                          1099
+#define IMG_CUSTOM_200                                 1100
+#define IMG_CUSTOM_200_EDITOR                          1101
+#define IMG_CUSTOM_201                                 1102
+#define IMG_CUSTOM_201_EDITOR                          1103
+#define IMG_CUSTOM_202                                 1104
+#define IMG_CUSTOM_202_EDITOR                          1105
+#define IMG_CUSTOM_203                                 1106
+#define IMG_CUSTOM_203_EDITOR                          1107
+#define IMG_CUSTOM_204                                 1108
+#define IMG_CUSTOM_204_EDITOR                          1109
+#define IMG_CUSTOM_205                                 1110
+#define IMG_CUSTOM_205_EDITOR                          1111
+#define IMG_CUSTOM_206                                 1112
+#define IMG_CUSTOM_206_EDITOR                          1113
+#define IMG_CUSTOM_207                                 1114
+#define IMG_CUSTOM_207_EDITOR                          1115
+#define IMG_CUSTOM_208                                 1116
+#define IMG_CUSTOM_208_EDITOR                          1117
+#define IMG_CUSTOM_209                                 1118
+#define IMG_CUSTOM_209_EDITOR                          1119
+#define IMG_CUSTOM_210                                 1120
+#define IMG_CUSTOM_210_EDITOR                          1121
+#define IMG_CUSTOM_211                                 1122
+#define IMG_CUSTOM_211_EDITOR                          1123
+#define IMG_CUSTOM_212                                 1124
+#define IMG_CUSTOM_212_EDITOR                          1125
+#define IMG_CUSTOM_213                                 1126
+#define IMG_CUSTOM_213_EDITOR                          1127
+#define IMG_CUSTOM_214                                 1128
+#define IMG_CUSTOM_214_EDITOR                          1129
+#define IMG_CUSTOM_215                                 1130
+#define IMG_CUSTOM_215_EDITOR                          1131
+#define IMG_CUSTOM_216                                 1132
+#define IMG_CUSTOM_216_EDITOR                          1133
+#define IMG_CUSTOM_217                                 1134
+#define IMG_CUSTOM_217_EDITOR                          1135
+#define IMG_CUSTOM_218                                 1136
+#define IMG_CUSTOM_218_EDITOR                          1137
+#define IMG_CUSTOM_219                                 1138
+#define IMG_CUSTOM_219_EDITOR                          1139
+#define IMG_CUSTOM_220                                 1140
+#define IMG_CUSTOM_220_EDITOR                          1141
+#define IMG_CUSTOM_221                                 1142
+#define IMG_CUSTOM_221_EDITOR                          1143
+#define IMG_CUSTOM_222                                 1144
+#define IMG_CUSTOM_222_EDITOR                          1145
+#define IMG_CUSTOM_223                                 1146
+#define IMG_CUSTOM_223_EDITOR                          1147
+#define IMG_CUSTOM_224                                 1148
+#define IMG_CUSTOM_224_EDITOR                          1149
+#define IMG_CUSTOM_225                                 1150
+#define IMG_CUSTOM_225_EDITOR                          1151
+#define IMG_CUSTOM_226                                 1152
+#define IMG_CUSTOM_226_EDITOR                          1153
+#define IMG_CUSTOM_227                                 1154
+#define IMG_CUSTOM_227_EDITOR                          1155
+#define IMG_CUSTOM_228                                 1156
+#define IMG_CUSTOM_228_EDITOR                          1157
+#define IMG_CUSTOM_229                                 1158
+#define IMG_CUSTOM_229_EDITOR                          1159
+#define IMG_CUSTOM_230                                 1160
+#define IMG_CUSTOM_230_EDITOR                          1161
+#define IMG_CUSTOM_231                                 1162
+#define IMG_CUSTOM_231_EDITOR                          1163
+#define IMG_CUSTOM_232                                 1164
+#define IMG_CUSTOM_232_EDITOR                          1165
+#define IMG_CUSTOM_233                                 1166
+#define IMG_CUSTOM_233_EDITOR                          1167
+#define IMG_CUSTOM_234                                 1168
+#define IMG_CUSTOM_234_EDITOR                          1169
+#define IMG_CUSTOM_235                                 1170
+#define IMG_CUSTOM_235_EDITOR                          1171
+#define IMG_CUSTOM_236                                 1172
+#define IMG_CUSTOM_236_EDITOR                          1173
+#define IMG_CUSTOM_237                                 1174
+#define IMG_CUSTOM_237_EDITOR                          1175
+#define IMG_CUSTOM_238                                 1176
+#define IMG_CUSTOM_238_EDITOR                          1177
+#define IMG_CUSTOM_239                                 1178
+#define IMG_CUSTOM_239_EDITOR                          1179
+#define IMG_CUSTOM_240                                 1180
+#define IMG_CUSTOM_240_EDITOR                          1181
+#define IMG_CUSTOM_241                                 1182
+#define IMG_CUSTOM_241_EDITOR                          1183
+#define IMG_CUSTOM_242                                 1184
+#define IMG_CUSTOM_242_EDITOR                          1185
+#define IMG_CUSTOM_243                                 1186
+#define IMG_CUSTOM_243_EDITOR                          1187
+#define IMG_CUSTOM_244                                 1188
+#define IMG_CUSTOM_244_EDITOR                          1189
+#define IMG_CUSTOM_245                                 1190
+#define IMG_CUSTOM_245_EDITOR                          1191
+#define IMG_CUSTOM_246                                 1192
+#define IMG_CUSTOM_246_EDITOR                          1193
+#define IMG_CUSTOM_247                                 1194
+#define IMG_CUSTOM_247_EDITOR                          1195
+#define IMG_CUSTOM_248                                 1196
+#define IMG_CUSTOM_248_EDITOR                          1197
+#define IMG_CUSTOM_249                                 1198
+#define IMG_CUSTOM_249_EDITOR                          1199
+#define IMG_CUSTOM_250                                 1200
+#define IMG_CUSTOM_250_EDITOR                          1201
+#define IMG_CUSTOM_251                                 1202
+#define IMG_CUSTOM_251_EDITOR                          1203
+#define IMG_CUSTOM_252                                 1204
+#define IMG_CUSTOM_252_EDITOR                          1205
+#define IMG_CUSTOM_253                                 1206
+#define IMG_CUSTOM_253_EDITOR                          1207
+#define IMG_CUSTOM_254                                 1208
+#define IMG_CUSTOM_254_EDITOR                          1209
+#define IMG_CUSTOM_255                                 1210
+#define IMG_CUSTOM_255_EDITOR                          1211
+#define IMG_CUSTOM_256                                 1212
+#define IMG_CUSTOM_256_EDITOR                          1213
+#define IMG_TOON_1                                     1214
+#define IMG_TOON_2                                     1215
+#define IMG_TOON_3                                     1216
+#define IMG_TOON_4                                     1217
+#define IMG_TOON_5                                     1218
+#define IMG_TOON_6                                     1219
+#define IMG_TOON_7                                     1220
+#define IMG_TOON_8                                     1221
+#define IMG_TOON_9                                     1222
+#define IMG_TOON_10                                    1223
+#define IMG_TOON_11                                    1224
+#define IMG_TOON_12                                    1225
+#define IMG_TOON_13                                    1226
+#define IMG_TOON_14                                    1227
+#define IMG_TOON_15                                    1228
+#define IMG_TOON_16                                    1229
+#define IMG_TOON_17                                    1230
+#define IMG_TOON_18                                    1231
+#define IMG_TOON_19                                    1232
+#define IMG_TOON_20                                    1233
+#define IMG_MENU_CALIBRATE_RED                         1234
+#define IMG_MENU_CALIBRATE_BLUE                                1235
+#define IMG_MENU_CALIBRATE_YELLOW                      1236
+#define IMG_MENU_BUTTON                                        1237
+#define IMG_MENU_BUTTON_ACTIVE                         1238
+#define IMG_MENU_BUTTON_LEFT                           1239
+#define IMG_MENU_BUTTON_RIGHT                          1240
+#define IMG_MENU_BUTTON_UP                             1241
+#define IMG_MENU_BUTTON_DOWN                           1242
+#define IMG_MENU_BUTTON_LEFT_ACTIVE                    1243
+#define IMG_MENU_BUTTON_RIGHT_ACTIVE                   1244
+#define IMG_MENU_BUTTON_UP_ACTIVE                      1245
+#define IMG_MENU_BUTTON_DOWN_ACTIVE                    1246
+#define IMG_MENU_SCROLLBAR                             1247
+#define IMG_MENU_SCROLLBAR_ACTIVE                      1248
+#define IMG_FONT_INITIAL_1                             1249
+#define IMG_FONT_INITIAL_2                             1250
+#define IMG_FONT_INITIAL_3                             1251
+#define IMG_FONT_INITIAL_4                             1252
+#define IMG_FONT_TITLE_1                               1253
+#define IMG_FONT_TITLE_1_LEVELS                                1254
+#define IMG_FONT_TITLE_2                               1255
+#define IMG_FONT_MENU_1                                        1256
+#define IMG_FONT_MENU_2                                        1257
+#define IMG_FONT_TEXT_1                                        1258
+#define IMG_FONT_TEXT_1_LEVELS                         1259
+#define IMG_FONT_TEXT_1_PREVIEW                                1260
+#define IMG_FONT_TEXT_1_SCORES                         1261
+#define IMG_FONT_TEXT_1_ACTIVE_SCORES                  1262
+#define IMG_FONT_TEXT_2                                        1263
+#define IMG_FONT_TEXT_2_LEVELS                         1264
+#define IMG_FONT_TEXT_2_PREVIEW                                1265
+#define IMG_FONT_TEXT_2_SCORES                         1266
+#define IMG_FONT_TEXT_2_ACTIVE_SCORES                  1267
+#define IMG_FONT_TEXT_3                                        1268
+#define IMG_FONT_TEXT_3_LEVELS                         1269
+#define IMG_FONT_TEXT_3_PREVIEW                                1270
+#define IMG_FONT_TEXT_3_SCORES                         1271
+#define IMG_FONT_TEXT_3_ACTIVE_SCORES                  1272
+#define IMG_FONT_TEXT_4                                        1273
+#define IMG_FONT_TEXT_4_LEVELS                         1274
+#define IMG_FONT_TEXT_4_SCORES                         1275
+#define IMG_FONT_TEXT_4_ACTIVE_SCORES                  1276
+#define IMG_FONT_ENVELOPE_1                            1277
+#define IMG_FONT_ENVELOPE_2                            1278
+#define IMG_FONT_ENVELOPE_3                            1279
+#define IMG_FONT_ENVELOPE_4                            1280
+#define IMG_FONT_INPUT_1                               1281
+#define IMG_FONT_INPUT_1_MAIN                          1282
+#define IMG_FONT_INPUT_1_ACTIVE                                1283
+#define IMG_FONT_INPUT_1_ACTIVE_MAIN                   1284
+#define IMG_FONT_INPUT_1_ACTIVE_SETUP                  1285
+#define IMG_FONT_INPUT_2                               1286
+#define IMG_FONT_INPUT_2_ACTIVE                                1287
+#define IMG_FONT_OPTION_OFF                            1288
+#define IMG_FONT_OPTION_ON                             1289
+#define IMG_FONT_VALUE_1                               1290
+#define IMG_FONT_VALUE_2                               1291
+#define IMG_FONT_VALUE_OLD                             1292
+#define IMG_FONT_LEVEL_NUMBER                          1293
+#define IMG_FONT_TAPE_RECORDER                         1294
+#define IMG_FONT_GAME_INFO                             1295
+#define IMG_GLOBAL_BORDER                              1296
+#define IMG_GLOBAL_DOOR                                        1297
+#define IMG_EDITOR_ELEMENT_BORDER                      1298
+#define IMG_EDITOR_ELEMENT_BORDER_INPUT                        1299
+#define IMG_BACKGROUND_ENVELOPE_1                      1300
+#define IMG_BACKGROUND_ENVELOPE_2                      1301
+#define IMG_BACKGROUND_ENVELOPE_3                      1302
+#define IMG_BACKGROUND_ENVELOPE_4                      1303
+#define IMG_BACKGROUND                                 1304
+#define IMG_BACKGROUND_MAIN                            1305
+#define IMG_BACKGROUND_LEVELS                          1306
+#define IMG_BACKGROUND_SCORES                          1307
+#define IMG_BACKGROUND_EDITOR                          1308
+#define IMG_BACKGROUND_INFO                            1309
+#define IMG_BACKGROUND_SETUP                           1310
+#define IMG_BACKGROUND_DOOR                            1311
 
-#define NUM_IMAGE_FILES                                        1320
+#define NUM_IMAGE_FILES                                        1312
 
 #endif /* CONF_GFX_H */
diff --git a/src/conf_mus.c b/src/conf_mus.c
new file mode 100644 (file)
index 0000000..6fe7f9d
--- /dev/null
@@ -0,0 +1,41 @@
+/***********************************************************
+* 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_mus.c                                               *
+***********************************************************/
+
+#include "libgame/libgame.h"
+#include "main.h"
+
+
+/* List values that are not defined in the configuration file are set to
+   reliable default values. If that value is MUS_ARG_UNDEFINED, it will
+   be dynamically determined, using some of the other list values. */
+
+struct ConfigInfo music_config_suffix[] =
+{
+  { ".mode_loop",                      ARG_UNDEFINED,  TYPE_BOOLEAN },
+
+  { NULL,                              NULL,           0            }
+};
+
+struct ConfigInfo music_config[] =
+{
+  { "background",                      UNDEFINED_FILENAME      },
+  { "background.MAIN",                 UNDEFINED_FILENAME      },
+  { "background.LEVELS",               UNDEFINED_FILENAME      },
+  { "background.SCORES",               UNDEFINED_FILENAME      },
+  { "background.EDITOR",               UNDEFINED_FILENAME      },
+  { "background.INFO",                 "rhythmloop.wav"        },
+  { "background.SETUP",                        UNDEFINED_FILENAME      },
+  { "background.PLAYING",              UNDEFINED_FILENAME      },
+
+  { NULL,                              NULL                    }
+};
diff --git a/src/conf_mus.h b/src/conf_mus.h
new file mode 100644 (file)
index 0000000..ea12090
--- /dev/null
@@ -0,0 +1,32 @@
+/***********************************************************
+* 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_mus.h                                               *
+***********************************************************/
+
+/* ----- this file was automatically generated -- do not edit by hand ----- */
+
+#ifndef CONF_MUS_H
+#define CONF_MUS_H
+
+/* values for music configuration */
+
+#define MUS_BACKGROUND                                 0
+#define MUS_BACKGROUND_MAIN                            1
+#define MUS_BACKGROUND_LEVELS                          2
+#define MUS_BACKGROUND_SCORES                          3
+#define MUS_BACKGROUND_EDITOR                          4
+#define MUS_BACKGROUND_INFO                            5
+#define MUS_BACKGROUND_SETUP                           6
+#define MUS_BACKGROUND_PLAYING                         7
+
+#define NUM_MUSIC_FILES                                        8
+
+#endif /* CONF_MUS_H */
index 27b664b0f2c46306b288aa37685930342834cc35..2a2d65af68b5a616b0b1ffcae77c0c940a9fee1a 100644 (file)
@@ -16,7 +16,7 @@
 
 
 /* List values that are not defined in the configuration file are set to
-   reliable default values. If that value is GFX_ARG_UNDEFINED, it will
+   reliable default values. If that value is SND_ARG_UNDEFINED, it will
    be dynamically determined, using some of the other list values. */
 
 struct ConfigInfo sound_config_suffix[] =
index 9d89363f840f1d4ed2ffeb15ce6a667ce7dbde90..7cf2f25eb9742e23cf1747aefafd3f11a10fee28 100644 (file)
 
 /* values for sounds configuration */
 
-#define SND_CLASS_DEFAULT_DIGGING                              0
-#define SND_CLASS_DEFAULT_COLLECTING                           1
-#define SND_CLASS_DEFAULT_SNAPPING                             2
-#define SND_CLASS_DEFAULT_PUSHING                              3
-#define SND_CLASS_DEFAULT_IMPACT                               4
-#define SND_CLASS_DEFAULT_WALKING                              5
-#define SND_CLASS_DEFAULT_PASSING                              6
-#define SND_CLASS_DEFAULT_DYING                                        7
-#define SND_CLASS_DEFAULT_EXPLODING                            8
-#define SND_CLASS_SP_DEFAULT_EXPLODING                         9
-#define SND_BD_DIAMOND_COLLECTING                              10
+#define SND_CLASS_DEFAULT_DIGGING                      0
+#define SND_CLASS_DEFAULT_COLLECTING                   1
+#define SND_CLASS_DEFAULT_SNAPPING                     2
+#define SND_CLASS_DEFAULT_PUSHING                      3
+#define SND_CLASS_DEFAULT_IMPACT                       4
+#define SND_CLASS_DEFAULT_WALKING                      5
+#define SND_CLASS_DEFAULT_PASSING                      6
+#define SND_CLASS_DEFAULT_DYING                                7
+#define SND_CLASS_DEFAULT_EXPLODING                    8
+#define SND_CLASS_SP_DEFAULT_EXPLODING                 9
+#define SND_BD_DIAMOND_COLLECTING                      10
 #define SND_BD_DIAMOND_IMPACT                          11
-#define SND_BD_ROCK_PUSHING                                    12
-#define SND_BD_ROCK_IMPACT                                     13
+#define SND_BD_ROCK_PUSHING                            12
+#define SND_BD_ROCK_IMPACT                             13
 #define SND_BD_MAGIC_WALL_ACTIVATING                   14
-#define SND_BD_MAGIC_WALL_ACTIVE                               15
-#define SND_BD_MAGIC_WALL_FILLING                              16
+#define SND_BD_MAGIC_WALL_ACTIVE                       15
+#define SND_BD_MAGIC_WALL_FILLING                      16
 #define SND_BD_AMOEBA_WAITING                          17
 #define SND_BD_AMOEBA_GROWING                          18
 #define SND_BD_AMOEBA_TURNING_TO_GEM                   19
 #define SND_BD_AMOEBA_TURNING_TO_ROCK                  20
 #define SND_BD_BUTTERFLY_MOVING                                21
-#define SND_BD_BUTTERFLY_WAITING                               22
+#define SND_BD_BUTTERFLY_WAITING                       22
 #define SND_BD_FIREFLY_MOVING                          23
 #define SND_BD_FIREFLY_WAITING                         24
-#define SND_SP_BASE_DIGGING                                    25
-#define SND_SP_BUGGY_BASE_DIGGING                              26
-#define SND_SP_BUGGY_BASE_ACTIVE                               27
-#define SND_SP_INFOTRON_COLLECTING                             28
+#define SND_SP_BASE_DIGGING                            25
+#define SND_SP_BUGGY_BASE_DIGGING                      26
+#define SND_SP_BUGGY_BASE_ACTIVE                       27
+#define SND_SP_INFOTRON_COLLECTING                     28
 #define SND_SP_INFOTRON_IMPACT                         29
-#define SND_SP_ZONK_PUSHING                                    30
-#define SND_SP_ZONK_IMPACT                                     31
-#define SND_SP_DISK_RED_COLLECTING                             32
-#define SND_SP_DISK_ORANGE_PUSHING                             33
-#define SND_SP_DISK_YELLOW_PUSHING                             34
-#define SND_CLASS_SP_PORT_PASSING                              35
-#define SND_CLASS_SP_EXIT_PASSING                              36
-#define SND_CLASS_SP_EXIT_OPENING                              37
-#define SND_CLASS_SP_EXIT_CLOSING                              38
+#define SND_SP_ZONK_PUSHING                            30
+#define SND_SP_ZONK_IMPACT                             31
+#define SND_SP_DISK_RED_COLLECTING                     32
+#define SND_SP_DISK_ORANGE_PUSHING                     33
+#define SND_SP_DISK_YELLOW_PUSHING                     34
+#define SND_CLASS_SP_PORT_PASSING                      35
+#define SND_CLASS_SP_EXIT_PASSING                      36
+#define SND_CLASS_SP_EXIT_OPENING                      37
+#define SND_CLASS_SP_EXIT_CLOSING                      38
 #define SND_SP_SNIKSNAK_MOVING                         39
 #define SND_SP_SNIKSNAK_WAITING                                40
 #define SND_SP_ELECTRON_MOVING                         41
 #define SND_SP_ELECTRON_WAITING                                42
-#define SND_SP_TERMINAL_ACTIVATING                             43
+#define SND_SP_TERMINAL_ACTIVATING                     43
 #define SND_SP_TERMINAL_ACTIVE                         44
-#define SND_CLASS_SOKOBAN_PUSHING                              45
-#define SND_CLASS_SOKOBAN_FILLING                              46
-#define SND_CLASS_SOKOBAN_EMPTYING                             47
-#define SND_CLASS_PLAYER_MOVING                                        48
-#define SND_SAND_DIGGING                                       49
+#define SND_CLASS_SOKOBAN_PUSHING                      45
+#define SND_CLASS_SOKOBAN_FILLING                      46
+#define SND_CLASS_SOKOBAN_EMPTYING                     47
+#define SND_CLASS_PLAYER_MOVING                                48
+#define SND_SAND_DIGGING                               49
 #define SND_EMERALD_COLLECTING                         50
-#define SND_EMERALD_IMPACT                                     51
+#define SND_EMERALD_IMPACT                             51
 #define SND_DIAMOND_COLLECTING                         52
-#define SND_DIAMOND_IMPACT                                     53
+#define SND_DIAMOND_IMPACT                             53
 #define SND_DIAMOND_BREAKING                           54
-#define SND_ROCK_PUSHING                                       55
+#define SND_ROCK_PUSHING                               55
 #define SND_ROCK_IMPACT                                        56
-#define SND_BOMB_PUSHING                                       57
+#define SND_BOMB_PUSHING                               57
 #define SND_NUT_PUSHING                                        58
-#define SND_NUT_BREAKING                                       59
+#define SND_NUT_BREAKING                               59
 #define SND_NUT_IMPACT                                 60
-#define SND_CLASS_DYNAMITE_COLLECTING                          61
-#define SND_CLASS_DYNAMITE_DROPPING                            62
-#define SND_CLASS_DYNAMITE_ACTIVE                              63
-#define SND_CLASS_KEY_COLLECTING                               64
-#define SND_CLASS_GATE_PASSING                                 65
+#define SND_CLASS_DYNAMITE_COLLECTING                  61
+#define SND_CLASS_DYNAMITE_DROPPING                    62
+#define SND_CLASS_DYNAMITE_ACTIVE                      63
+#define SND_CLASS_KEY_COLLECTING                       64
+#define SND_CLASS_GATE_PASSING                         65
 #define SND_BUG_MOVING                                 66
 #define SND_BUG_WAITING                                        67
 #define SND_SPACESHIP_MOVING                           68
 #define SND_SPACESHIP_WAITING                          69
-#define SND_YAMYAM_MOVING                                      70
-#define SND_YAMYAM_WAITING                                     71
-#define SND_YAMYAM_DIGGING                                     72
-#define SND_ROBOT_MOVING                                       73
-#define SND_ROBOT_WAITING                                      74
-#define SND_ROBOT_WHEEL_ACTIVATING                             75
+#define SND_YAMYAM_MOVING                              70
+#define SND_YAMYAM_WAITING                             71
+#define SND_YAMYAM_DIGGING                             72
+#define SND_ROBOT_MOVING                               73
+#define SND_ROBOT_WAITING                              74
+#define SND_ROBOT_WHEEL_ACTIVATING                     75
 #define SND_ROBOT_WHEEL_ACTIVE                         76
-#define SND_MAGIC_WALL_ACTIVATING                              77
+#define SND_MAGIC_WALL_ACTIVATING                      77
 #define SND_MAGIC_WALL_ACTIVE                          78
 #define SND_MAGIC_WALL_FILLING                         79
-#define SND_CLASS_AMOEBA_WAITING                               80
-#define SND_CLASS_AMOEBA_GROWING                               81
-#define SND_CLASS_AMOEBA_DROPPING                              82
-#define SND_ACID_SPLASHING                                     83
-#define SND_CLASS_QUICKSAND_FILLING                            84
-#define SND_CLASS_QUICKSAND_EMPTYING                           85
-#define SND_CLASS_EXIT_OPENING                                 86
-#define SND_CLASS_EXIT_CLOSING                                 87
-#define SND_CLASS_EXIT_PASSING                                 88
-#define SND_PENGUIN_PASSING                                    89
-#define SND_BALLOON_MOVING                                     90
-#define SND_BALLOON_WAITING                                    91
-#define SND_BALLOON_PUSHING                                    92
-#define SND_CLASS_BALLOON_SWITCH_ACTIVATING                    93
-#define SND_SPRING_MOVING                                      94
-#define SND_SPRING_PUSHING                                     95
-#define SND_SPRING_IMPACT                                      96
-#define SND_CLASS_WALL_GROWING                                 97
+#define SND_CLASS_AMOEBA_WAITING                       80
+#define SND_CLASS_AMOEBA_GROWING                       81
+#define SND_CLASS_AMOEBA_DROPPING                      82
+#define SND_ACID_SPLASHING                             83
+#define SND_CLASS_QUICKSAND_FILLING                    84
+#define SND_CLASS_QUICKSAND_EMPTYING                   85
+#define SND_CLASS_EXIT_OPENING                         86
+#define SND_CLASS_EXIT_CLOSING                         87
+#define SND_CLASS_EXIT_PASSING                         88
+#define SND_PENGUIN_PASSING                            89
+#define SND_BALLOON_MOVING                             90
+#define SND_BALLOON_WAITING                            91
+#define SND_BALLOON_PUSHING                            92
+#define SND_CLASS_BALLOON_SWITCH_ACTIVATING            93
+#define SND_SPRING_MOVING                              94
+#define SND_SPRING_PUSHING                             95
+#define SND_SPRING_IMPACT                              96
+#define SND_CLASS_WALL_GROWING                         97
 #define SND_PEARL_COLLECTING                           98
-#define SND_PEARL_BREAKING                                     99
-#define SND_PEARL_IMPACT                                       100
+#define SND_PEARL_BREAKING                             99
+#define SND_PEARL_IMPACT                               100
 #define SND_CRYSTAL_COLLECTING                         101
-#define SND_CRYSTAL_IMPACT                                     102
-#define SND_CLASS_ENVELOPE_COLLECTING                          103
-#define SND_CLASS_ENVELOPE_OPENING                             104
-#define SND_CLASS_ENVELOPE_CLOSING                             105
-#define SND_INVISIBLE_SAND_DIGGING                             106
+#define SND_CRYSTAL_IMPACT                             102
+#define SND_CLASS_ENVELOPE_COLLECTING                  103
+#define SND_CLASS_ENVELOPE_OPENING                     104
+#define SND_CLASS_ENVELOPE_CLOSING                     105
+#define SND_INVISIBLE_SAND_DIGGING                     106
 #define SND_SHIELD_NORMAL_COLLECTING                   107
-#define SND_SHIELD_NORMAL_ACTIVE                               108
+#define SND_SHIELD_NORMAL_ACTIVE                       108
 #define SND_SHIELD_DEADLY_COLLECTING                   109
-#define SND_SHIELD_DEADLY_ACTIVE                               110
-#define SND_EXTRA_TIME_COLLECTING                              111
+#define SND_SHIELD_DEADLY_ACTIVE                       110
+#define SND_EXTRA_TIME_COLLECTING                      111
 #define SND_MOLE_MOVING                                        112
-#define SND_MOLE_WAITING                                       113
-#define SND_MOLE_DIGGING                                       114
-#define SND_CLASS_SWITCHGATE_SWITCH_ACTIVATING                 115
-#define SND_CLASS_SWITCHGATE_OPENING                           116
-#define SND_CLASS_SWITCHGATE_CLOSING                           117
-#define SND_CLASS_SWITCHGATE_PASSING                           118
+#define SND_MOLE_WAITING                               113
+#define SND_MOLE_DIGGING                               114
+#define SND_CLASS_SWITCHGATE_SWITCH_ACTIVATING         115
+#define SND_CLASS_SWITCHGATE_OPENING                   116
+#define SND_CLASS_SWITCHGATE_CLOSING                   117
+#define SND_CLASS_SWITCHGATE_PASSING                   118
 #define SND_TIMEGATE_SWITCH_ACTIVATING                 119
-#define SND_TIMEGATE_SWITCH_ACTIVE                             120
-#define SND_TIMEGATE_SWITCH_DEACTIVATING                       121
+#define SND_TIMEGATE_SWITCH_ACTIVE                     120
+#define SND_TIMEGATE_SWITCH_DEACTIVATING               121
 #define SND_TIMEGATE_OPENING                           122
-#define SND_CLASS_TIMEGATE_CLOSING                             123
-#define SND_CLASS_TIMEGATE_PASSING                             124
-#define SND_CLASS_CONVEYOR_BELT_SWITCH_ACTIVATING              125
-#define SND_CLASS_CONVEYOR_BELT_ACTIVE                         126
-#define SND_CLASS_CONVEYOR_BELT_SWITCH_DEACTIVATING            127
-#define SND_LIGHT_SWITCH_ACTIVATING                            128
+#define SND_CLASS_TIMEGATE_CLOSING                     123
+#define SND_CLASS_TIMEGATE_PASSING                     124
+#define SND_CLASS_CONVEYOR_BELT_SWITCH_ACTIVATING      125
+#define SND_CLASS_CONVEYOR_BELT_ACTIVE                 126
+#define SND_CLASS_CONVEYOR_BELT_SWITCH_DEACTIVATING    127
+#define SND_LIGHT_SWITCH_ACTIVATING                    128
 #define SND_LIGHT_SWITCH_DEACTIVATING                  129
 #define SND_DX_SUPABOMB_PUSHING                                130
-#define SND_TRAP_DIGGING                                       131
-#define SND_TRAP_ACTIVATING                                    132
-#define SND_CLASS_TUBE_WALKING                                 133
-#define SND_AMOEBA_TURNING_TO_GEM                              134
-#define SND_AMOEBA_TURNING_TO_ROCK                             135
-#define SND_SPEED_PILL_COLLECTING                              136
+#define SND_TRAP_DIGGING                               131
+#define SND_TRAP_ACTIVATING                            132
+#define SND_CLASS_TUBE_WALKING                         133
+#define SND_AMOEBA_TURNING_TO_GEM                      134
+#define SND_AMOEBA_TURNING_TO_ROCK                     135
+#define SND_SPEED_PILL_COLLECTING                      136
 #define SND_DYNABOMB_INCREASE_NUMBER_COLLECTING                137
 #define SND_DYNABOMB_INCREASE_SIZE_COLLECTING          138
 #define SND_DYNABOMB_INCREASE_POWER_COLLECTING         139
-#define SND_CLASS_DYNABOMB_DROPPING                            140
-#define SND_CLASS_DYNABOMB_ACTIVE                              141
+#define SND_CLASS_DYNABOMB_DROPPING                    140
+#define SND_CLASS_DYNABOMB_ACTIVE                      141
 #define SND_SATELLITE_MOVING                           142
 #define SND_SATELLITE_WAITING                          143
 #define SND_SATELLITE_PUSHING                          144
-#define SND_LAMP_ACTIVATING                                    145
+#define SND_LAMP_ACTIVATING                            145
 #define SND_LAMP_DEACTIVATING                          146
 #define SND_TIME_ORB_FULL_COLLECTING                   147
-#define SND_TIME_ORB_FULL_IMPACT                               148
-#define SND_TIME_ORB_EMPTY_PUSHING                             149
-#define SND_TIME_ORB_EMPTY_IMPACT                              150
-#define SND_GAME_OF_LIFE_WAITING                               151
-#define SND_GAME_OF_LIFE_GROWING                               152
-#define SND_BIOMAZE_WAITING                                    153
-#define SND_BIOMAZE_GROWING                                    154
-#define SND_PACMAN_MOVING                                      155
-#define SND_PACMAN_WAITING                                     156
-#define SND_PACMAN_DIGGING                                     157
+#define SND_TIME_ORB_FULL_IMPACT                       148
+#define SND_TIME_ORB_EMPTY_PUSHING                     149
+#define SND_TIME_ORB_EMPTY_IMPACT                      150
+#define SND_GAME_OF_LIFE_WAITING                       151
+#define SND_GAME_OF_LIFE_GROWING                       152
+#define SND_BIOMAZE_WAITING                            153
+#define SND_BIOMAZE_GROWING                            154
+#define SND_PACMAN_MOVING                              155
+#define SND_PACMAN_WAITING                             156
+#define SND_PACMAN_DIGGING                             157
 #define SND_DARK_YAMYAM_MOVING                         158
 #define SND_DARK_YAMYAM_WAITING                                159
 #define SND_DARK_YAMYAM_DIGGING                                160
-#define SND_PENGUIN_MOVING                                     161
-#define SND_PENGUIN_WAITING                                    162
+#define SND_PENGUIN_MOVING                             161
+#define SND_PENGUIN_WAITING                            162
 #define SND_PIG_MOVING                                 163
 #define SND_PIG_WAITING                                        164
 #define SND_PIG_DIGGING                                        165
-#define SND_DRAGON_MOVING                                      166
-#define SND_DRAGON_WAITING                                     167
+#define SND_DRAGON_MOVING                              166
+#define SND_DRAGON_WAITING                             167
 #define SND_DRAGON_ATTACKING                           168
-#define SND_GAME_STARTING                                      169
+#define SND_GAME_STARTING                              169
 #define SND_GAME_RUNNING_OUT_OF_TIME                   170
-#define SND_GAME_LEVELTIME_BONUS                               171
+#define SND_GAME_LEVELTIME_BONUS                       171
 #define SND_GAME_LOSING                                        172
-#define SND_GAME_WINNING                                       173
-#define SND_GAME_SOKOBAN_SOLVING                               174
-#define SND_DOOR_OPENING                                       175
-#define SND_DOOR_CLOSING                                       176
+#define SND_GAME_WINNING                               173
+#define SND_GAME_SOKOBAN_SOLVING                       174
+#define SND_DOOR_OPENING                               175
+#define SND_DOOR_CLOSING                               176
 #define SND_BACKGROUND_SCORES                          177
-#define SND_BACKGROUND_INFO                                    178
+#define SND_BACKGROUND_INFO                            178
 
-#define NUM_SOUND_FILES                                179
+#define NUM_SOUND_FILES                                        179
 
 #endif /* CONF_SND_H */
index b3dbda7e50581498f56045e6a18d2e839f0482e5..a2246cbf8762f065d515d3be161ebec5bf6d8354 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "[2003-11-14 23:13]"
+#define COMPILE_DATE_STRING "[2003-11-16 04:25]"
index f5c787f6d07a37fc606f0426e3877f04cea1f626..27aa2b4074d6446d47c63875bd3f630e1268a93f 100644 (file)
@@ -182,12 +182,13 @@ static boolean CheckTriggeredElementChange(int, int, int, int);
 static boolean CheckElementSideChange(int, int, int, int, int, int);
 static boolean CheckElementChange(int, int, int, int);
 
-static void PlaySoundLevel(int, int, int);
-static void PlaySoundLevelNearest(int, int, int);
-static void PlaySoundLevelAction(int, int, int);
-static void PlaySoundLevelElementAction(int, int, int, int);
-static void PlaySoundLevelActionIfLoop(int, int, int);
-static void StopSoundLevelActionIfLoop(int, int, int);
+static void PlayLevelSound(int, int, int);
+static void PlayLevelSoundNearest(int, int, int);
+static void PlayLevelSoundAction(int, int, int);
+static void PlayLevelSoundElementAction(int, int, int, int);
+static void PlayLevelSoundActionIfLoop(int, int, int);
+static void StopLevelSoundActionIfLoop(int, int, int);
+static void PlayLevelMusic();
 
 static void MapGameButtons();
 static void HandleGameButtons(struct GadgetInfo *);
@@ -1449,8 +1450,9 @@ void InitGame()
   OpenDoor(DOOR_OPEN_ALL);
 
   PlaySoundStereo(SND_GAME_STARTING, SOUND_MIDDLE);
+
   if (setup.sound_music)
-    PlayMusic(level_nr);
+    PlayLevelMusic();
 
   KeyboardAutoRepeatOffUnlessAutoplay();
 
@@ -1717,7 +1719,7 @@ void GameWon()
     Feld[ExitX][ExitY] = (element == EL_EXIT_OPEN ? EL_EXIT_CLOSING :
                          EL_SP_EXIT_CLOSING);
 
-    PlaySoundLevelElementAction(ExitX, ExitY, element, ACTION_CLOSING);
+    PlayLevelSoundElementAction(ExitX, ExitY, element, ACTION_CLOSING);
   }
 
   /* Hero disappears */
@@ -2054,14 +2056,14 @@ void CheckDynamite(int x, int y)
     if (MovDelay[x][y] != 0)
     {
       DrawDynamite(x, y);
-      PlaySoundLevelActionIfLoop(x, y, ACTION_ACTIVE);
+      PlayLevelSoundActionIfLoop(x, y, ACTION_ACTIVE);
 
       return;
     }
   }
 
 #if 1
-  StopSoundLevelActionIfLoop(x, y, ACTION_ACTIVE);
+  StopLevelSoundActionIfLoop(x, y, ACTION_ACTIVE);
 #else
   if (Feld[x][y] == EL_DYNAMITE_ACTIVE ||
       Feld[x][y] == EL_SP_DISK_RED_ACTIVE)
@@ -2174,7 +2176,7 @@ void Explode(int ex, int ey, int phase, int mode)
 #endif
 
     if (mode == EX_NORMAL || mode == EX_CENTER)
-      PlaySoundLevelAction(ex, ey, ACTION_EXPLODING);
+      PlayLevelSoundAction(ex, ey, ACTION_EXPLODING);
 
     /* remove things displayed in background while burning dynamite */
     if (Back[ex][ey] != EL_EMPTY && !IS_INDESTRUCTIBLE(Back[ex][ey]))
@@ -2559,12 +2561,12 @@ void Bang(int x, int y)
 
 #if 0
 #if 1
-  PlaySoundLevelAction(x, y, ACTION_EXPLODING);
+  PlayLevelSoundAction(x, y, ACTION_EXPLODING);
 #else
   if (game.emulation == EMU_SUPAPLEX)
-    PlaySoundLevel(x, y, SND_SP_ELEMENT_EXPLODING);
+    PlayLevelSound(x, y, SND_SP_ELEMENT_EXPLODING);
   else
-    PlaySoundLevel(x, y, SND_ELEMENT_EXPLODING);
+    PlayLevelSound(x, y, SND_ELEMENT_EXPLODING);
 #endif
 #endif
 
@@ -2622,7 +2624,7 @@ void SplashAcid(int x, int y)
   if (element != EL_ACID_SPLASH_LEFT &&
       element != EL_ACID_SPLASH_RIGHT)
   {
-    PlaySoundLevel(x, y, SND_ACID_SPLASHING);
+    PlayLevelSound(x, y, SND_ACID_SPLASHING);
 
     if (IN_LEV_FIELD(x-1, y) && IS_FREE(x-1, y) &&
        (!IN_LEV_FIELD(x-1, y-1) ||
@@ -2822,9 +2824,9 @@ static void ToggleSwitchgateSwitch(int x, int y)
       {
        Feld[xx][yy] = EL_SWITCHGATE_CLOSING;
 #if 1
-       PlaySoundLevelAction(xx, yy, ACTION_CLOSING);
+       PlayLevelSoundAction(xx, yy, ACTION_CLOSING);
 #else
-       PlaySoundLevel(xx, yy, SND_SWITCHGATE_CLOSING);
+       PlayLevelSound(xx, yy, SND_SWITCHGATE_CLOSING);
 #endif
       }
       else if (element == EL_SWITCHGATE_CLOSED ||
@@ -2832,9 +2834,9 @@ static void ToggleSwitchgateSwitch(int x, int y)
       {
        Feld[xx][yy] = EL_SWITCHGATE_OPENING;
 #if 1
-       PlaySoundLevelAction(xx, yy, ACTION_OPENING);
+       PlayLevelSoundAction(xx, yy, ACTION_OPENING);
 #else
-       PlaySoundLevel(xx, yy, SND_SWITCHGATE_OPENING);
+       PlayLevelSound(xx, yy, SND_SWITCHGATE_OPENING);
 #endif
       }
     }
@@ -2928,7 +2930,7 @@ static void ActivateTimegateSwitch(int x, int y)
          element == EL_TIMEGATE_CLOSING)
       {
        Feld[xx][yy] = EL_TIMEGATE_OPENING;
-       PlaySoundLevel(xx, yy, SND_TIMEGATE_OPENING);
+       PlayLevelSound(xx, yy, SND_TIMEGATE_OPENING);
       }
 
       /*
@@ -3018,12 +3020,12 @@ void Impact(int x, int y)
   else if (impact && element == EL_PEARL)
   {
     Feld[x][y] = EL_PEARL_BREAKING;
-    PlaySoundLevel(x, y, SND_PEARL_BREAKING);
+    PlayLevelSound(x, y, SND_PEARL_BREAKING);
     return;
   }
   else if (impact && CheckElementChange(x, y, element, CE_IMPACT))
   {
-    PlaySoundLevelElementAction(x, y, element, ACTION_IMPACT);
+    PlayLevelSoundElementAction(x, y, element, ACTION_IMPACT);
 
     return;
   }
@@ -3064,7 +3066,7 @@ void Impact(int x, int y)
       game.magic_wall_time_left = level.time_magic_wall * FRAMES_PER_SECOND;
       game.magic_wall_active = TRUE;
 
-      PlaySoundLevel(x, y, (smashed == EL_MAGIC_WALL ?
+      PlayLevelSound(x, y, (smashed == EL_MAGIC_WALL ?
                            SND_MAGIC_WALL_ACTIVATING :
                            SND_BD_MAGIC_WALL_ACTIVATING));
     }
@@ -3128,20 +3130,20 @@ void Impact(int x, int y)
        else if (smashed == EL_NUT)
        {
          Feld[x][y + 1] = EL_NUT_BREAKING;
-         PlaySoundLevel(x, y, SND_NUT_BREAKING);
+         PlayLevelSound(x, y, SND_NUT_BREAKING);
          RaiseScoreElement(EL_NUT);
          return;
        }
        else if (smashed == EL_PEARL)
        {
          Feld[x][y + 1] = EL_PEARL_BREAKING;
-         PlaySoundLevel(x, y, SND_PEARL_BREAKING);
+         PlayLevelSound(x, y, SND_PEARL_BREAKING);
          return;
        }
        else if (smashed == EL_DIAMOND)
        {
          Feld[x][y + 1] = EL_DIAMOND_BREAKING;
-         PlaySoundLevel(x, y, SND_DIAMOND_BREAKING);
+         PlayLevelSound(x, y, SND_DIAMOND_BREAKING);
          return;
        }
        else if (IS_BELT_SWITCH(smashed))
@@ -3181,16 +3183,16 @@ void Impact(int x, int y)
        Feld[x][y + 1] == EL_BD_MAGIC_WALL_ACTIVE))
   {
     if (Feld[x][y + 1] == EL_MAGIC_WALL_ACTIVE)
-      PlaySoundLevel(x, y, SND_MAGIC_WALL_FILLING);
+      PlayLevelSound(x, y, SND_MAGIC_WALL_FILLING);
     else if (Feld[x][y + 1] == EL_BD_MAGIC_WALL_ACTIVE)
-      PlaySoundLevel(x, y, SND_BD_MAGIC_WALL_FILLING);
+      PlayLevelSound(x, y, SND_BD_MAGIC_WALL_FILLING);
 
     return;
   }
 
   /* play sound of object that hits the ground */
   if (lastline || object_hit)
-    PlaySoundLevelElementAction(x, y, element, ACTION_IMPACT);
+    PlayLevelSoundElementAction(x, y, element, ACTION_IMPACT);
 }
 
 inline static void TurnRoundExt(int x, int y)
@@ -3837,9 +3839,9 @@ void StartMoving(int x, int y)
        Feld[x][y] = EL_QUICKSAND_EMPTYING;
        Store[x][y] = EL_ROCK;
 #if 1
-       PlaySoundLevelAction(x, y, ACTION_EMPTYING);
+       PlayLevelSoundAction(x, y, ACTION_EMPTYING);
 #else
-       PlaySoundLevel(x, y, SND_QUICKSAND_EMPTYING);
+       PlayLevelSound(x, y, SND_QUICKSAND_EMPTYING);
 #endif
       }
       else if (Feld[x][y + 1] == EL_QUICKSAND_EMPTY)
@@ -3859,9 +3861,9 @@ void StartMoving(int x, int y)
        Store[x][y + 1] = Store[x][y];
        Store[x][y] = 0;
 #if 1
-       PlaySoundLevelAction(x, y, ACTION_FILLING);
+       PlayLevelSoundAction(x, y, ACTION_FILLING);
 #else
-       PlaySoundLevel(x, y, SND_QUICKSAND_FILLING);
+       PlayLevelSound(x, y, SND_QUICKSAND_FILLING);
 #endif
       }
     }
@@ -3874,9 +3876,9 @@ void StartMoving(int x, int y)
       Feld[x][y] = EL_QUICKSAND_FILLING;
       Store[x][y] = element;
 #if 1
-      PlaySoundLevelAction(x, y, ACTION_FILLING);
+      PlayLevelSoundAction(x, y, ACTION_FILLING);
 #else
-      PlaySoundLevel(x, y, SND_QUICKSAND_FILLING);
+      PlayLevelSound(x, y, SND_QUICKSAND_FILLING);
 #endif
     }
     else if (element == EL_MAGIC_WALL_FULL)
@@ -4193,7 +4195,7 @@ void StartMoving(int x, int y)
 #else
        DrawLevelElementAnimationIfNeeded(x, y, element);
 #endif
-       PlaySoundLevelAction(x, y, ACTION_WAITING);
+       PlayLevelSoundAction(x, y, ACTION_WAITING);
       }
       else if (element == EL_SP_ELECTRON)
        DrawLevelElementAnimationIfNeeded(x, y, element);
@@ -4220,7 +4222,7 @@ void StartMoving(int x, int y)
        else
          DrawLevelField(x, y);
 
-       PlaySoundLevelActionIfLoop(x, y, ACTION_ATTACKING);
+       PlayLevelSoundActionIfLoop(x, y, ACTION_ATTACKING);
 
        for (i=1; i <= 3; i++)
        {
@@ -4260,7 +4262,7 @@ void StartMoving(int x, int y)
 
       if (MovDelay[x][y])      /* element still has to wait some time */
       {
-       PlaySoundLevelAction(x, y, ACTION_WAITING);
+       PlayLevelSoundAction(x, y, ACTION_WAITING);
 
        return;
       }
@@ -4310,7 +4312,7 @@ void StartMoving(int x, int y)
        Feld[x][y] = EL_EMPTY;
        DrawLevelField(x, y);
 
-       PlaySoundLevel(newx, newy, SND_PENGUIN_PASSING);
+       PlayLevelSound(newx, newy, SND_PENGUIN_PASSING);
        if (IN_SCR_FIELD(SCREENX(newx), SCREENY(newy)))
          DrawGraphicThruMask(SCREENX(newx),SCREENY(newy), el2img(element), 0);
 
@@ -4351,7 +4353,7 @@ void StartMoving(int x, int y)
          DrawLevelField(newx, newy);
        }
 
-       PlaySoundLevel(x, y, SND_PIG_DIGGING);
+       PlayLevelSound(x, y, SND_PIG_DIGGING);
       }
       else if (!IS_FREE(newx, newy))
       {
@@ -4400,7 +4402,7 @@ void StartMoving(int x, int y)
          else
            DrawLevelField(x, y);
 
-         PlaySoundLevel(x, y, SND_DRAGON_ATTACKING);
+         PlayLevelSound(x, y, SND_DRAGON_ATTACKING);
 
          MovDelay[x][y] = 50;
 
@@ -4425,7 +4427,7 @@ void StartMoving(int x, int y)
        DrawLevelField(newx, newy);
       }
 
-      PlaySoundLevel(x, y, SND_YAMYAM_DIGGING);
+      PlayLevelSound(x, y, SND_YAMYAM_DIGGING);
     }
     else if (element == EL_DARK_YAMYAM && IN_LEV_FIELD(newx, newy) &&
             IS_FOOD_DARK_YAMYAM(Feld[newx][newy]))
@@ -4446,7 +4448,7 @@ void StartMoving(int x, int y)
        DrawLevelField(newx, newy);
       }
 
-      PlaySoundLevel(x, y, SND_DARK_YAMYAM_DIGGING);
+      PlayLevelSound(x, y, SND_DARK_YAMYAM_DIGGING);
     }
     else if ((element == EL_PACMAN || element == EL_MOLE)
             && IN_LEV_FIELD(newx, newy) && IS_AMOEBOID(Feld[newx][newy]))
@@ -4462,7 +4464,7 @@ void StartMoving(int x, int y)
       if (element == EL_MOLE)
       {
        Feld[newx][newy] = EL_AMOEBA_SHRINKING;
-       PlaySoundLevel(x, y, SND_MOLE_DIGGING);
+       PlayLevelSound(x, y, SND_MOLE_DIGGING);
 
        ResetGfxAnimation(x, y);
        GfxAction[x][y] = ACTION_DIGGING;
@@ -4475,7 +4477,7 @@ void StartMoving(int x, int y)
       {
        Feld[newx][newy] = EL_EMPTY;
        DrawLevelField(newx, newy);
-       PlaySoundLevel(x, y, SND_PACMAN_DIGGING);
+       PlayLevelSound(x, y, SND_PACMAN_DIGGING);
       }
     }
     else if (element == EL_MOLE && IN_LEV_FIELD(newx, newy) &&
@@ -4514,7 +4516,7 @@ void StartMoving(int x, int y)
        TestIfBadThingTouchesHero(x, y);
 
 #if 0
-      PlaySoundLevelAction(x, y, ACTION_WAITING);
+      PlayLevelSoundAction(x, y, ACTION_WAITING);
 #endif
 
       return;
@@ -4522,7 +4524,7 @@ void StartMoving(int x, int y)
 
     InitMovingField(x, y, MovDir[x][y]);
 
-    PlaySoundLevelAction(x, y, ACTION_MOVING);
+    PlayLevelSoundAction(x, y, ACTION_MOVING);
   }
 
   if (MovDir[x][y])
@@ -4827,7 +4829,7 @@ void AmoebeUmwandeln(int ax, int ay)
        }
       }
     }
-    PlaySoundLevel(ax, ay, (IS_GEM(level.amoeba_content) ?
+    PlayLevelSound(ax, ay, (IS_GEM(level.amoeba_content) ?
                            SND_AMOEBA_TURNING_TO_GEM :
                            SND_AMOEBA_TURNING_TO_ROCK));
     Bang(ax, ay);
@@ -4852,7 +4854,7 @@ void AmoebeUmwandeln(int ax, int ay)
 
       if (Feld[x][y] == EL_AMOEBA_TO_DIAMOND)
       {
-       PlaySoundLevel(x, y, (IS_GEM(level.amoeba_content) ?
+       PlayLevelSound(x, y, (IS_GEM(level.amoeba_content) ?
                              SND_AMOEBA_TURNING_TO_GEM :
                              SND_AMOEBA_TURNING_TO_ROCK));
        Bang(x, y);
@@ -4895,7 +4897,7 @@ void AmoebeUmwandelnBD(int ax, int ay, int new_element)
   }
 
   if (done)
-    PlaySoundLevel(ax, ay, (new_element == EL_BD_ROCK ?
+    PlayLevelSound(ax, ay, (new_element == EL_BD_ROCK ?
                            SND_BD_AMOEBA_TURNING_TO_ROCK :
                            SND_BD_AMOEBA_TURNING_TO_GEM));
 }
@@ -4912,12 +4914,12 @@ void AmoebeWaechst(int x, int y)
     if (DelayReached(&sound_delay, sound_delay_value))
     {
 #if 1
-      PlaySoundLevelElementAction(x, y, Store[x][y], ACTION_GROWING);
+      PlayLevelSoundElementAction(x, y, Store[x][y], ACTION_GROWING);
 #else
       if (Store[x][y] == EL_BD_AMOEBA)
-       PlaySoundLevel(x, y, SND_BD_AMOEBA_GROWING);
+       PlayLevelSound(x, y, SND_BD_AMOEBA_GROWING);
       else
-       PlaySoundLevel(x, y, SND_AMOEBA_GROWING);
+       PlayLevelSound(x, y, SND_AMOEBA_GROWING);
 #endif
       sound_delay_value = 30;
     }
@@ -5117,9 +5119,9 @@ void AmoebeAbleger(int ax, int ay)
   {
     Feld[newax][neway] = EL_AMOEBA_DROP;       /* drop left/right of amoeba */
 #if 1
-    PlaySoundLevelAction(newax, neway, ACTION_GROWING);
+    PlayLevelSoundAction(newax, neway, ACTION_GROWING);
 #else
-    PlaySoundLevel(newax, neway, SND_AMOEBA_GROWING);
+    PlayLevelSound(newax, neway, SND_AMOEBA_GROWING);
 #endif
   }
   else
@@ -5208,7 +5210,7 @@ void Life(int ax, int ay)
   }
 
   if (changed)
-    PlaySoundLevel(ax, ay, element == EL_BIOMAZE ? SND_BIOMAZE_GROWING :
+    PlayLevelSound(ax, ay, element == EL_BIOMAZE ? SND_BIOMAZE_GROWING :
                   SND_GAME_OF_LIFE_GROWING);
 }
 
@@ -5219,7 +5221,7 @@ static void InitRobotWheel(int x, int y)
 
 static void RunRobotWheel(int x, int y)
 {
-  PlaySoundLevel(x, y, SND_ROBOT_WHEEL_ACTIVE);
+  PlayLevelSound(x, y, SND_ROBOT_WHEEL_ACTIVE);
 }
 
 static void StopRobotWheel(int x, int y)
@@ -5235,7 +5237,7 @@ static void InitTimegateWheel(int x, int y)
 
 static void RunTimegateWheel(int x, int y)
 {
-  PlaySoundLevel(x, y, SND_TIMEGATE_SWITCH_ACTIVE);
+  PlayLevelSound(x, y, SND_TIMEGATE_SWITCH_ACTIVE);
 }
 
 void CheckExit(int x, int y)
@@ -5258,7 +5260,7 @@ void CheckExit(int x, int y)
 
   Feld[x][y] = EL_EXIT_OPENING;
 
-  PlaySoundLevelNearest(x, y, SND_CLASS_EXIT_OPENING);
+  PlayLevelSoundNearest(x, y, SND_CLASS_EXIT_OPENING);
 }
 
 void CheckExitSP(int x, int y)
@@ -5279,7 +5281,7 @@ void CheckExitSP(int x, int y)
 
   Feld[x][y] = EL_SP_EXIT_OPENING;
 
-  PlaySoundLevelNearest(x, y, SND_CLASS_SP_EXIT_OPENING);
+  PlayLevelSoundNearest(x, y, SND_CLASS_SP_EXIT_OPENING);
 }
 
 static void CloseAllOpenTimegates()
@@ -5296,9 +5298,9 @@ static void CloseAllOpenTimegates()
       {
        Feld[x][y] = EL_TIMEGATE_CLOSING;
 #if 1
-       PlaySoundLevelAction(x, y, ACTION_CLOSING);
+       PlayLevelSoundAction(x, y, ACTION_CLOSING);
 #else
-       PlaySoundLevel(x, y, SND_TIMEGATE_CLOSING);
+       PlayLevelSound(x, y, SND_TIMEGATE_CLOSING);
 #endif
       }
     }
@@ -5502,9 +5504,9 @@ void MauerAbleger(int ax, int ay)
 
   if (new_wall)
 #if 1
-    PlaySoundLevelAction(ax, ay, ACTION_GROWING);
+    PlayLevelSoundAction(ax, ay, ACTION_GROWING);
 #else
-    PlaySoundLevel(ax, ay, SND_EXPANDABLE_WALL_GROWING);
+    PlayLevelSound(ax, ay, SND_EXPANDABLE_WALL_GROWING);
 #endif
 }
 
@@ -5588,7 +5590,7 @@ static void WarnBuggyBase(int x, int y)
 
     if (IS_PLAYER(xx, yy))
     {
-      PlaySoundLevel(x, y, SND_SP_BUGGY_BASE_ACTIVE);
+      PlayLevelSound(x, y, SND_SP_BUGGY_BASE_ACTIVE);
 
       break;
     }
@@ -5602,7 +5604,7 @@ static void InitTrap(int x, int y)
 
 static void ActivateTrap(int x, int y)
 {
-  PlaySoundLevel(x, y, SND_TRAP_ACTIVATING);
+  PlayLevelSound(x, y, SND_TRAP_ACTIVATING);
 }
 
 static void ChangeActiveTrap(int x, int y)
@@ -5759,14 +5761,14 @@ static boolean ChangeElementNow(int x, int y, int element, int page)
       }
 
       if (something_has_changed)
-       PlaySoundLevelElementAction(x, y, element, ACTION_CHANGING);
+       PlayLevelSoundElementAction(x, y, element, ACTION_CHANGING);
     }
   }
   else
   {
     ChangeElementNowExt(x, y, change->target_element);
 
-    PlaySoundLevelElementAction(x, y, element, ACTION_CHANGING);
+    PlayLevelSoundElementAction(x, y, element, ACTION_CHANGING);
   }
 
   return TRUE;
@@ -6321,7 +6323,7 @@ void GameActions()
     SetRandomAnimationValue(x, y);
 
 #if 1
-    PlaySoundLevelActionIfLoop(x, y, GfxAction[x][y]);
+    PlayLevelSoundActionIfLoop(x, y, GfxAction[x][y]);
 #endif
 
     if (IS_INACTIVE(element))
@@ -6451,7 +6453,7 @@ void GameActions()
 #endif
 
     if (IS_BELT_ACTIVE(element))
-      PlaySoundLevelAction(x, y, ACTION_ACTIVE);
+      PlayLevelSoundAction(x, y, ACTION_ACTIVE);
 
     if (game.magic_wall_active)
     {
@@ -6541,9 +6543,9 @@ void GameActions()
       if (element == EL_BD_MAGIC_WALL_FULL ||
          element == EL_BD_MAGIC_WALL_ACTIVE ||
          element == EL_BD_MAGIC_WALL_EMPTYING)
-       PlaySoundLevel(magic_wall_x, magic_wall_y, SND_BD_MAGIC_WALL_ACTIVE);
+       PlayLevelSound(magic_wall_x, magic_wall_y, SND_BD_MAGIC_WALL_ACTIVE);
       else
-       PlaySoundLevel(magic_wall_x, magic_wall_y, SND_MAGIC_WALL_ACTIVE);
+       PlayLevelSound(magic_wall_x, magic_wall_y, SND_MAGIC_WALL_ACTIVE);
     }
 
     if (game.magic_wall_time_left > 0)
@@ -6597,9 +6599,9 @@ void GameActions()
     if (SHIELD_ON(player))
     {
       if (player->shield_deadly_time_left)
-       PlaySoundLevel(player->jx, player->jy, SND_SHIELD_DEADLY_ACTIVE);
+       PlayLevelSound(player->jx, player->jy, SND_SHIELD_DEADLY_ACTIVE);
       else if (player->shield_normal_time_left)
-       PlaySoundLevel(player->jx, player->jy, SND_SHIELD_NORMAL_ACTIVE);
+       PlayLevelSound(player->jx, player->jy, SND_SHIELD_NORMAL_ACTIVE);
     }
   }
 
@@ -7664,11 +7666,11 @@ void BuryHero(struct PlayerInfo *player)
     return;
 
 #if 1
-  PlaySoundLevelElementAction(jx, jy, player->element_nr, ACTION_DYING);
+  PlayLevelSoundElementAction(jx, jy, player->element_nr, ACTION_DYING);
 #else
-  PlaySoundLevel(jx, jy, SND_CLASS_PLAYER_DYING);
+  PlayLevelSound(jx, jy, SND_CLASS_PLAYER_DYING);
 #endif
-  PlaySoundLevel(jx, jy, SND_GAME_LOSING);
+  PlayLevelSound(jx, jy, SND_GAME_LOSING);
 
   player->GameOver = TRUE;
   RemoveHero(player);
@@ -7863,7 +7865,7 @@ int DigField(struct PlayerInfo *player,
       player->programmed_action = move_direction;
       DOUBLE_PLAYER_SPEED(player);
 
-      PlaySoundLevel(x, y, SND_CLASS_SP_PORT_PASSING);
+      PlayLevelSound(x, y, SND_CLASS_SP_PORT_PASSING);
       break;
 
     case EL_TUBE_ANY:
@@ -7905,7 +7907,7 @@ int DigField(struct PlayerInfo *player,
        if (!(tube_enter_directions[i][1] & move_direction))
          return MF_NO_ACTION;  /* tube has no opening in this direction */
 
-       PlaySoundLevel(x, y, SND_CLASS_TUBE_WALKING);
+       PlayLevelSound(x, y, SND_CLASS_TUBE_WALKING);
       }
       break;
 
@@ -7938,9 +7940,9 @@ int DigField(struct PlayerInfo *player,
 
        /* play sound from background or player, whatever is available */
        if (element_info[element].sound[sound_action] != SND_UNDEFINED)
-         PlaySoundLevelElementAction(x, y, element, sound_action);
+         PlayLevelSoundElementAction(x, y, element, sound_action);
        else
-         PlaySoundLevelElementAction(x, y, player->element_nr, sound_action);
+         PlayLevelSoundElementAction(x, y, player->element_nr, sound_action);
 
        break;
       }
@@ -7969,7 +7971,7 @@ int DigField(struct PlayerInfo *player,
        player->programmed_action = move_direction;
        DOUBLE_PLAYER_SPEED(player);
 
-       PlaySoundLevelAction(x, y, ACTION_PASSING);
+       PlayLevelSoundAction(x, y, ACTION_PASSING);
 
        break;
       }
@@ -7988,7 +7990,7 @@ int DigField(struct PlayerInfo *player,
          player->is_digging = TRUE;
        }
 
-       PlaySoundLevelElementAction(x, y, element, ACTION_DIGGING);
+       PlayLevelSoundElementAction(x, y, element, ACTION_DIGGING);
 
        CheckTriggeredElementChange(x, y, element, CE_OTHER_GETS_DIGGED);
 
@@ -8086,7 +8088,7 @@ int DigField(struct PlayerInfo *player,
        }
 
        RaiseScoreElement(element);
-       PlaySoundLevelElementAction(x, y, element, ACTION_COLLECTING);
+       PlayLevelSoundElementAction(x, y, element, ACTION_COLLECTING);
 
        CheckTriggeredElementChange(x, y, element, CE_OTHER_GETS_COLLECTED);
 
@@ -8210,23 +8212,23 @@ int DigField(struct PlayerInfo *player,
          Feld[x][y] = EL_SOKOBAN_OBJECT;
 
          if (Back[x][y] == Back[nextx][nexty])
-           PlaySoundLevelAction(x, y, ACTION_PUSHING);
+           PlayLevelSoundAction(x, y, ACTION_PUSHING);
          else if (Back[x][y] != 0)
-           PlaySoundLevelElementAction(x, y, EL_SOKOBAN_FIELD_FULL,
+           PlayLevelSoundElementAction(x, y, EL_SOKOBAN_FIELD_FULL,
                                        ACTION_EMPTYING);
          else
-           PlaySoundLevelElementAction(nextx, nexty, EL_SOKOBAN_FIELD_EMPTY,
+           PlayLevelSoundElementAction(nextx, nexty, EL_SOKOBAN_FIELD_EMPTY,
                                        ACTION_FILLING);
 
          if (local_player->sokobanfields_still_needed == 0 &&
              game.emulation == EMU_SOKOBAN)
          {
            player->LevelSolved = player->GameOver = TRUE;
-           PlaySoundLevel(x, y, SND_GAME_SOKOBAN_SOLVING);
+           PlayLevelSound(x, y, SND_GAME_SOKOBAN_SOLVING);
          }
        }
        else
-         PlaySoundLevelElementAction(x, y, element, ACTION_PUSHING);
+         PlayLevelSoundElementAction(x, y, element, ACTION_PUSHING);
 
        InitMovingField(x, y, move_direction);
        GfxAction[x][y] = ACTION_PUSHING;
@@ -8260,7 +8262,7 @@ int DigField(struct PlayerInfo *player,
        player->switch_x = x;
        player->switch_y = y;
 
-       PlaySoundLevelElementAction(x, y, element, ACTION_ACTIVATING);
+       PlayLevelSoundElementAction(x, y, element, ACTION_ACTIVATING);
 
        if (element == EL_ROBOT_WHEEL)
        {
@@ -8297,7 +8299,7 @@ int DigField(struct PlayerInfo *player,
          ToggleLightSwitch(x, y);
 
 #if 0
-         PlaySoundLevel(x, y, element == EL_LIGHT_SWITCH ?
+         PlayLevelSound(x, y, element == EL_LIGHT_SWITCH ?
                         SND_LIGHT_SWITCH_ACTIVATING :
                         SND_LIGHT_SWITCH_DEACTIVATING);
 #endif
@@ -8478,7 +8480,7 @@ boolean DropElement(struct PlayerInfo *player)
     if (IN_SCR_FIELD(SCREENX(jx), SCREENY(jy)))
       DrawGraphicThruMask(SCREENX(jx), SCREENY(jy), el2img(Feld[jx][jy]), 0);
 
-    PlaySoundLevelAction(jx, jy, ACTION_DROPPING);
+    PlayLevelSoundAction(jx, jy, ACTION_DROPPING);
 
     CheckTriggeredElementChange(jx, jy, new_element, CE_OTHER_GETS_DROPPED);
     CheckElementChange(jx, jy, new_element, CE_DROPPED_BY_PLAYER);
@@ -8495,7 +8497,7 @@ boolean DropElement(struct PlayerInfo *player)
     if (IN_SCR_FIELD(SCREENX(jx), SCREENY(jy)))
       DrawGraphicThruMask(SCREENX(jx), SCREENY(jy), el2img(Feld[jx][jy]), 0);
 
-    PlaySoundLevelAction(jx, jy, ACTION_DROPPING);
+    PlayLevelSoundAction(jx, jy, ACTION_DROPPING);
   }
 
   return TRUE;
@@ -8508,7 +8510,7 @@ boolean DropElement(struct PlayerInfo *player)
 static int *loop_sound_frame = NULL;
 static int *loop_sound_volume = NULL;
 
-void InitPlaySoundLevel()
+void InitPlayLevelSound()
 {
   int num_sounds = getSoundListSize();
 
@@ -8522,7 +8524,7 @@ void InitPlaySoundLevel()
   loop_sound_volume = checked_calloc(num_sounds * sizeof(int));
 }
 
-static void PlaySoundLevel(int x, int y, int nr)
+static void PlayLevelSound(int x, int y, int nr)
 {
   int sx = SCREENX(x), sy = SCREENY(y);
   int volume, stereo_position;
@@ -8567,37 +8569,37 @@ static void PlaySoundLevel(int x, int y, int nr)
   PlaySoundExt(nr, volume, stereo_position, type);
 }
 
-static void PlaySoundLevelNearest(int x, int y, int sound_action)
+static void PlayLevelSoundNearest(int x, int y, int sound_action)
 {
-  PlaySoundLevel(x < LEVELX(BX1) ? LEVELX(BX1) :
+  PlayLevelSound(x < LEVELX(BX1) ? LEVELX(BX1) :
                 x > LEVELX(BX2) ? LEVELX(BX2) : x,
                 y < LEVELY(BY1) ? LEVELY(BY1) :
                 y > LEVELY(BY2) ? LEVELY(BY2) : y,
                 sound_action);
 }
 
-static void PlaySoundLevelAction(int x, int y, int action)
+static void PlayLevelSoundAction(int x, int y, int action)
 {
-  PlaySoundLevelElementAction(x, y, Feld[x][y], action);
+  PlayLevelSoundElementAction(x, y, Feld[x][y], action);
 }
 
-static void PlaySoundLevelElementAction(int x, int y, int element, int action)
+static void PlayLevelSoundElementAction(int x, int y, int element, int action)
 {
   int sound_effect = element_info[element].sound[action];
 
   if (sound_effect != SND_UNDEFINED)
-    PlaySoundLevel(x, y, sound_effect);
+    PlayLevelSound(x, y, sound_effect);
 }
 
-static void PlaySoundLevelActionIfLoop(int x, int y, int action)
+static void PlayLevelSoundActionIfLoop(int x, int y, int action)
 {
   int sound_effect = element_info[Feld[x][y]].sound[action];
 
   if (sound_effect != SND_UNDEFINED && IS_LOOP_SOUND(sound_effect))
-    PlaySoundLevel(x, y, sound_effect);
+    PlayLevelSound(x, y, sound_effect);
 }
 
-static void StopSoundLevelActionIfLoop(int x, int y, int action)
+static void StopLevelSoundActionIfLoop(int x, int y, int action)
 {
   int sound_effect = element_info[Feld[x][y]].sound[action];
 
@@ -8605,6 +8607,18 @@ static void StopSoundLevelActionIfLoop(int x, int y, int action)
     StopSoundExt(sound_effect, SND_CTRL_STOP_SOUND);
 }
 
+static void PlayLevelMusic()
+{
+#if 1
+  if (levelset.music[game_status][level_nr] != MUS_UNDEFINED)
+    PlayMusic(levelset.music[game_status][level_nr]);
+  else
+    PlayMusic(-(level_nr + 1));
+#else
+  PlayMusic(level_nr);
+#endif
+}
+
 void RaiseScore(int value)
 {
   local_player->score += value;
@@ -8905,7 +8919,8 @@ static void HandleGameButtons(struct GadgetInfo *gi)
        setup.sound = setup.sound_music = TRUE;
 
        SetAudioMode(setup.sound);
-       PlayMusic(level_nr);
+
+       PlayLevelMusic();
       }
       break;
 
index 1821310253c4588e13e8ed7bfc57077ea30c221f..519c6fc3d3692ae33d9965a342eb529b3fbd142b 100644 (file)
@@ -91,7 +91,7 @@ int DigField(struct PlayerInfo *, int, int, int, int, int);
 boolean SnapField(struct PlayerInfo *, int, int);
 boolean DropElement(struct PlayerInfo *);
 
-void InitPlaySoundLevel();
+void InitPlayLevelSound();
 
 void RaiseScore(int);
 void RaiseScoreElement(int);
index 6db9d2463deae2799248ff3d5cc1058540cf8da5..301f0022ad53f499e762dc15bd04eec51a22984b 100644 (file)
@@ -1216,17 +1216,17 @@ static void InitSoundInfo()
   sound_info = checked_calloc(num_sounds * sizeof(struct SoundInfo));
 
   /* initialize sound effect for all elements to "no sound" */
-  for (i=0; i<MAX_NUM_ELEMENTS; i++)
-    for (j=0; j<NUM_ACTIONS; j++)
+  for (i=0; i < MAX_NUM_ELEMENTS; i++)
+    for (j=0; j < NUM_ACTIONS; j++)
       element_info[i].sound[j] = SND_UNDEFINED;
 
-  for (i=0; i<num_sounds; i++)
+  for (i=0; i < num_sounds; i++)
   {
     struct FileInfo *sound = getSoundListEntry(i);
     int len_effect_text = strlen(sound->token);
 
     sound_effect_properties[i] = ACTION_OTHER;
-    sound_info[i].loop = FALSE;
+    sound_info[i].loop = FALSE;                /* default: play sound only once */
 
 #if 0
     printf("::: sound %d: '%s'\n", i, sound->token);
@@ -1256,7 +1256,7 @@ static void InitSoundInfo()
 
     /* associate elements and some selected sound actions */
 
-    for (j=0; j<MAX_NUM_ELEMENTS; j++)
+    for (j=0; j < MAX_NUM_ELEMENTS; j++)
     {
       if (element_info[j].class_name)
       {
@@ -1335,6 +1335,132 @@ static void InitSoundInfo()
 #endif
 }
 
+static void InitLevelsetMusicInfo()
+{
+  struct PropertyMapping *property_mapping = getMusicListPropertyMapping();
+  int num_property_mappings = getMusicListPropertyMappingSize();
+  int i, j;
+
+  /* set values to -1 to identify later as "uninitialized" values */
+  for (i=0; i < NUM_SPECIAL_GFX_ARGS; i++)
+    for (j=0; j < MAX_LEVELS; j++)
+      levelset.music[i][j] = -1;
+
+#if 0
+  /* initialize gamemode/music mapping from static configuration */
+  for (i=0; gamemode_to_music[i].element > -1; i++)
+  {
+    int gamemode = gamemode_to_music[i].gamemode;
+    int level    = gamemode_to_music[i].level;
+    int music    = gamemode_to_music[i].music;
+
+    if (gamemode < 0)
+      gamemode = 0;
+
+    if (level < 0)
+      level = 0;
+
+    levelset.music[gamemode][level] = music;
+  }
+#endif
+
+  /* initialize gamemode/music mapping from dynamic configuration */
+  for (i=0; i < num_property_mappings; i++)
+  {
+    int prefix   = property_mapping[i].base_index;
+    int gamemode = property_mapping[i].ext1_index;
+    int level    = property_mapping[i].ext2_index;
+    int music    = property_mapping[i].artwork_index;
+
+    if (prefix < 0 || prefix >= NUM_MUSIC_PREFIXES)
+      continue;
+
+    if (gamemode < 0)
+      gamemode = 0;
+
+    if (level < 0)
+      level = 0;
+
+    levelset.music[gamemode][level] = music;
+  }
+
+  /* now set all '-1' values to levelset specific default values */
+  for (i=0; i < NUM_SPECIAL_GFX_ARGS; i++)
+  {
+    for (j=0; j < MAX_LEVELS; j++)
+    {
+      /* generic default music */
+      int default_music = levelset.music[i][0];                /* may still be -1 */
+
+      /* no music for this specific game mode and level -- use default music */
+      if (levelset.music[i][j] == -1)
+       levelset.music[i][j] = default_music;
+    }
+  }
+
+#if 0
+  /* TEST ONLY */
+  for (i=0; i < NUM_SPECIAL_GFX_ARGS; i++)
+    for (j=0; j < MAX_LEVELS; j++)
+      if (levelset.music[i][j] != -1)
+       printf("::: levelset.music[%d][%d] == %d\n",
+              i, j, levelset.music[i][j]);
+#endif
+}
+
+static void set_music_parameters(int music, char **parameter_raw)
+{
+  int parameter[NUM_MUS_ARGS];
+  int i;
+
+  /* get integer values from string parameters */
+  for (i=0; i < NUM_MUS_ARGS; i++)
+    parameter[i] =
+      get_parameter_value(music_config_suffix[i].token, parameter_raw[i],
+                         music_config_suffix[i].type);
+
+  /* explicit loop mode setting in configuration overrides default value */
+  if (parameter[MUS_ARG_MODE_LOOP] != ARG_UNDEFINED_VALUE)
+    music_info[music].loop = parameter[MUS_ARG_MODE_LOOP];
+}
+
+static void InitMusicInfo()
+{
+  int num_music = getMusicListSize();
+  int i, j;
+
+  if (music_info != NULL)
+    free(music_info);
+
+  music_info = checked_calloc(num_music * sizeof(struct MusicInfo));
+
+  for (i=0; i < num_music; i++)
+  {
+    struct FileInfo *music = getMusicListEntry(i);
+    int len_music_text = strlen(music->token);
+
+    music_info[i].loop = TRUE;         /* default: play music in loop mode */
+
+    /* determine all loop music */
+
+    for (j=0; music_prefix_info[j].prefix; j++)
+    {
+      int len_prefix_text = strlen(music_prefix_info[j].prefix);
+
+      if (len_prefix_text < len_music_text &&
+         strncmp(music->token,
+                 music_prefix_info[j].prefix, len_prefix_text) == 0)
+      {
+       music_info[i].loop = music_prefix_info[j].is_loop_music;
+
+       break;
+      }
+    }
+
+    set_music_parameters(i, music->parameter);
+  }
+}
+
 static void ReinitializeGraphics()
 {
   InitGraphicInfo();                   /* graphic properties mapping */
@@ -1356,12 +1482,13 @@ static void ReinitializeSounds()
   InitSoundInfo();             /* sound properties mapping */
   InitElementSoundInfo();      /* element game sound mapping */
 
-  InitPlaySoundLevel();                /* internal game sound settings */
+  InitPlayLevelSound();                /* internal game sound settings */
 }
 
 static void ReinitializeMusic()
 {
-  /* currently nothing to do */
+  InitMusicInfo();             /* music properties mapping */
+  InitLevelsetMusicInfo();     /* levelset music mapping */
 }
 
 void InitElementPropertiesStatic()
@@ -3128,6 +3255,18 @@ static char *get_string_in_brackets(char *string)
   return string_in_brackets;
 }
 
+static char *get_level_id_suffix(int id_nr)
+{
+  char *id_suffix = checked_malloc(1 + 3 + 1);
+
+  if (id_nr < 0 || id_nr > 999)
+    id_nr = 0;
+
+  sprintf(id_suffix, ".%03d", id_nr);
+
+  return id_suffix;
+}
+
 #if 0
 static char *get_element_class_token(int element)
 {
@@ -3154,9 +3293,11 @@ static void InitArtworkConfig()
 {
   static char *image_id_prefix[MAX_NUM_ELEMENTS + NUM_FONTS + 1];
   static char *sound_id_prefix[2 * MAX_NUM_ELEMENTS + 1];
+  static char *music_id_prefix[NUM_MUSIC_PREFIXES + 1];
   static char *action_id_suffix[NUM_ACTIONS + 1];
   static char *direction_id_suffix[NUM_DIRECTIONS + 1];
   static char *special_id_suffix[NUM_SPECIAL_GFX_ARGS + 1];
+  static char *level_id_suffix[MAX_LEVELS + 1];
   static char *dummy[1] = { NULL };
   static char *ignore_generic_tokens[] =
   {
@@ -3164,9 +3305,13 @@ static void InitArtworkConfig()
     "sort_priority",
     NULL
   };
-  static char **ignore_image_tokens, **ignore_sound_tokens;
+  static char **ignore_image_tokens;
+  static char **ignore_sound_tokens;
+  static char **ignore_music_tokens;
   int num_ignore_generic_tokens;
-  int num_ignore_image_tokens, num_ignore_sound_tokens;
+  int num_ignore_image_tokens;
+  int num_ignore_sound_tokens;
+  int num_ignore_music_tokens;
   int i;
 
   /* dynamically determine list of generic tokens to be ignored */
@@ -3195,37 +3340,56 @@ static void InitArtworkConfig()
     ignore_sound_tokens[i] = ignore_generic_tokens[i];
   ignore_sound_tokens[num_ignore_sound_tokens] = NULL;
 
-  for (i=0; i<MAX_NUM_ELEMENTS; i++)
+  /* dynamically determine list of music tokens to be ignored */
+  num_ignore_music_tokens = num_ignore_generic_tokens;
+  ignore_music_tokens =
+    checked_malloc((num_ignore_music_tokens + 1) * sizeof(char *));
+  for (i=0; i < num_ignore_generic_tokens; i++)
+    ignore_music_tokens[i] = ignore_generic_tokens[i];
+  ignore_music_tokens[num_ignore_music_tokens] = NULL;
+
+  for (i=0; i < MAX_NUM_ELEMENTS; i++)
     image_id_prefix[i] = element_info[i].token_name;
-  for (i=0; i<NUM_FONTS; i++)
+  for (i=0; i < NUM_FONTS; i++)
     image_id_prefix[MAX_NUM_ELEMENTS + i] = font_info[i].token_name;
   image_id_prefix[MAX_NUM_ELEMENTS + NUM_FONTS] = NULL;
 
-  for (i=0; i<MAX_NUM_ELEMENTS; i++)
+  for (i=0; i < MAX_NUM_ELEMENTS; i++)
     sound_id_prefix[i] = element_info[i].token_name;
-  for (i=0; i<MAX_NUM_ELEMENTS; i++)
+  for (i=0; i < MAX_NUM_ELEMENTS; i++)
     sound_id_prefix[MAX_NUM_ELEMENTS + i] =
       get_string_in_brackets(element_info[i].class_name);
   sound_id_prefix[2 * MAX_NUM_ELEMENTS] = NULL;
 
-  for (i=0; i<NUM_ACTIONS; i++)
+  for (i=0; i < NUM_MUSIC_PREFIXES; i++)
+    music_id_prefix[i] = music_prefix_info[i].prefix;
+  music_id_prefix[MAX_LEVELS] = NULL;
+
+  for (i=0; i < NUM_ACTIONS; i++)
     action_id_suffix[i] = element_action_info[i].suffix;
   action_id_suffix[NUM_ACTIONS] = NULL;
 
-  for (i=0; i<NUM_DIRECTIONS; i++)
+  for (i=0; i < NUM_DIRECTIONS; i++)
     direction_id_suffix[i] = element_direction_info[i].suffix;
   direction_id_suffix[NUM_DIRECTIONS] = NULL;
 
-  for (i=0; i<NUM_SPECIAL_GFX_ARGS; i++)
+  for (i=0; i < NUM_SPECIAL_GFX_ARGS; i++)
     special_id_suffix[i] = special_suffix_info[i].suffix;
   special_id_suffix[NUM_SPECIAL_GFX_ARGS] = NULL;
 
+  for (i=0; i < MAX_LEVELS; i++)
+    level_id_suffix[i] = get_level_id_suffix(i);
+  level_id_suffix[MAX_LEVELS] = NULL;
+
   InitImageList(image_config, NUM_IMAGE_FILES, image_config_suffix,
                image_id_prefix, action_id_suffix, direction_id_suffix,
                special_id_suffix, ignore_image_tokens);
   InitSoundList(sound_config, NUM_SOUND_FILES, sound_config_suffix,
                sound_id_prefix, action_id_suffix, dummy,
                special_id_suffix, ignore_sound_tokens);
+  InitMusicList(music_config, NUM_MUSIC_FILES, music_config_suffix,
+               music_id_prefix, special_id_suffix, level_id_suffix,
+               dummy, ignore_music_tokens);
 }
 
 static void InitMixer()
index 54a77ca176eada8cb4d960d596cd8cd825132d1d..948304ceabed40fbe7e355689d231d3ddb777302 100644 (file)
@@ -2058,7 +2058,7 @@ static void LoadArtworkConfigFromFilename(struct ArtworkListInfo *artwork_info,
     /* ---------- step 0: search for matching base prefix ---------- */
 
     start_pos = 0;
-    for (i=0; i<num_base_prefixes && !base_prefix_found; i++)
+    for (i=0; i < num_base_prefixes && !base_prefix_found; i++)
     {
       char *base_prefix = base_prefixes[i];
       int len_base_prefix = strlen(base_prefix);
@@ -2103,7 +2103,7 @@ static void LoadArtworkConfigFromFilename(struct ArtworkListInfo *artwork_info,
       /* ---------- step 1: search for matching first suffix ---------- */
 
       start_pos += len_base_prefix;
-      for (j=0; j<num_ext1_suffixes && !ext1_suffix_found; j++)
+      for (j=0; j < num_ext1_suffixes && !ext1_suffix_found; j++)
       {
        char *ext1_suffix = ext1_suffixes[j];
        int len_ext1_suffix = strlen(ext1_suffix);
@@ -2145,12 +2145,12 @@ static void LoadArtworkConfigFromFilename(struct ArtworkListInfo *artwork_info,
 
       /* ---------- step 2: search for matching second suffix ---------- */
 
-      for (k=0; k<num_ext2_suffixes && !ext2_suffix_found; k++)
+      for (k=0; k < num_ext2_suffixes && !ext2_suffix_found; k++)
       {
        char *ext2_suffix = ext2_suffixes[k];
        int len_ext2_suffix = strlen(ext2_suffix);
 
-       ext2_suffix_found = token_suffix_match(token, ext2_suffix,start_pos);
+       ext2_suffix_found = token_suffix_match(token, ext2_suffix, start_pos);
 
        if (!ext2_suffix_found)
          continue;
@@ -2187,12 +2187,12 @@ static void LoadArtworkConfigFromFilename(struct ArtworkListInfo *artwork_info,
 
       /* ---------- step 3: search for matching third suffix ---------- */
 
-      for (l=0; l<num_ext3_suffixes && !ext3_suffix_found; l++)
+      for (l=0; l < num_ext3_suffixes && !ext3_suffix_found; l++)
       {
        char *ext3_suffix = ext3_suffixes[l];
        int len_ext3_suffix = strlen(ext3_suffix);
 
-       ext3_suffix_found =token_suffix_match(token,ext3_suffix,start_pos);
+       ext3_suffix_found = token_suffix_match(token, ext3_suffix, start_pos);
 
        if (!ext3_suffix_found)
          continue;
index 3eb935c9b2df572e5ee1ad51bcfebe5b47f58c1e..8ba46e0be7e7a4772f5f90f78ab6cd424d2757d8 100644 (file)
@@ -556,12 +556,73 @@ char *getCustomSoundFilename(char *basename)
   return NULL;         /* cannot find specified artwork file anywhere */
 }
 
+char *getCustomMusicFilename(char *basename)
+{
+  static char *filename = NULL;
+  boolean skip_setup_artwork = FALSE;
+
+  if (filename != NULL)
+    free(filename);
+
+  basename = getCorrectedArtworkBasename(basename);
+
+  if (!setup.override_level_music)
+  {
+    /* 1st try: look for special artwork in current level series directory */
+    filename = getPath3(getCurrentLevelDir(), MUSIC_DIRECTORY, basename);
+    if (fileExists(filename))
+      return filename;
+
+    free(filename);
+
+    /* check if there is special artwork configured in level series config */
+    if (getLevelArtworkSet(ARTWORK_TYPE_MUSIC) != NULL)
+    {
+      /* 2nd try: look for special artwork configured in level series config */
+      filename = getPath2(getLevelArtworkDir(TREE_TYPE_MUSIC_DIR), basename);
+      if (fileExists(filename))
+       return filename;
+
+      free(filename);
+
+      /* take missing artwork configured in level set config from default */
+      skip_setup_artwork = TRUE;
+    }
+  }
+
+  if (!skip_setup_artwork)
+  {
+    /* 3rd try: look for special artwork in configured artwork directory */
+    filename = getPath2(getSetupArtworkDir(artwork.mus_current), basename);
+    if (fileExists(filename))
+      return filename;
+
+    free(filename);
+  }
+
+  /* 4th try: look for default artwork in new default artwork directory */
+  filename = getPath2(getDefaultMusicDir(MUS_CLASSIC_SUBDIR), basename);
+  if (fileExists(filename))
+    return filename;
+
+  free(filename);
+
+  /* 5th try: look for default artwork in old default artwork directory */
+  filename = getPath2(options.music_directory, basename);
+  if (fileExists(filename))
+    return filename;
+
+  return NULL;         /* cannot find specified artwork file anywhere */
+}
+
 char *getCustomArtworkFilename(char *basename, int type)
 {
   if (type == ARTWORK_TYPE_GRAPHICS)
     return getCustomImageFilename(basename);
   else if (type == ARTWORK_TYPE_SOUNDS)
     return getCustomSoundFilename(basename);
+  else if (type == ARTWORK_TYPE_MUSIC)
+    return getCustomMusicFilename(basename);
   else
     return UNDEFINED_FILENAME;
 }
index 72681647ed847bbfeba8edf3ea3172408532e22a..8b01135fea198c280f2a42e600ce668bbdf12b20 100644 (file)
@@ -149,14 +149,19 @@ struct SoundControl
 typedef struct SoundControl SoundControl;
 
 static struct ArtworkListInfo *sound_info = NULL;
+static struct ArtworkListInfo *music_info = NULL;
+
 #if 0
 static SoundInfo **Sound = NULL;
 #endif
-static MusicInfo **Music = NULL;
+
+static MusicInfo **Music_NoConf = NULL;
+
 #if 0
 static int num_sounds = 0;
 #endif
-static int num_music = 0;
+
+static int num_music_noconf = 0;
 static int stereo_volume[SOUND_MAX_LEFT2RIGHT + 1];
 
 
@@ -179,8 +184,11 @@ static int ulaw_to_linear(unsigned char);
 static void ReloadCustomSounds();
 static void ReloadCustomMusic();
 static void FreeSound(void *);
+static void FreeMusic(void *);
+static void FreeAllMusic_NoConf();
 
 static SoundInfo *getSoundInfoEntryFromSoundID(int);
+static MusicInfo *getMusicInfoEntryFromMusicID(int);
 
 
 /* ------------------------------------------------------------------------- */
@@ -826,27 +834,72 @@ static void Mixer_InsertSound(SoundControl snd_ctrl)
   SoundInfo *snd_info;
   int i, k;
   int num_sounds = getSoundListSize();
+  int num_music  = getMusicListSize();
+
+#if 0
+  if (IS_MUSIC(snd_ctrl))
+    printf("NEW MUSIC %d ARRIVED [%d/%d] [%d ACTIVE CHANNELS]\n",
+          snd_ctrl.nr, num_music, num_music_noconf, mixer_active_channels);
+  else
+    printf("NEW SOUND %d ARRIVED [%d] [%d ACTIVE CHANNELS]\n",
+          snd_ctrl.nr, num_sounds, mixer_active_channels);
+#endif
 
 #if 0
-  printf("NEW SOUND %d ARRIVED [%d] [%d ACTIVE CHANNELS]\n",
-        snd_ctrl.nr, num_sounds, mixer_active_channels);
+  /* !!! TEST ONLY !!! */
+  if (IS_MUSIC(snd_ctrl))
+    snd_ctrl.nr = 0;
 #endif
 
+#if 1
+  if (IS_MUSIC(snd_ctrl))
+  {
+    if (snd_ctrl.nr >= num_music)      /* invalid music */
+      return;
+
+    if (snd_ctrl.nr < 0)               /* undefined music */
+    {
+      if (num_music_noconf == 0)       /* no fallback music available */
+       return;
+
+      snd_ctrl.nr = (-(snd_ctrl.nr + 1)) % num_music_noconf;
+      snd_info = Music_NoConf[snd_ctrl.nr];
+    }
+    else
+      snd_info = getMusicInfoEntryFromMusicID(snd_ctrl.nr);
+  }
+  else
+  {
+    if (snd_ctrl.nr >= num_sounds)
+      return;
+
+    snd_info = getSoundInfoEntryFromSoundID(snd_ctrl.nr);
+  }
+
+  /*
+  if (snd_ctrl.nr >= (IS_MUSIC(snd_ctrl) ? num_music : num_sounds))
+    return;
+  */
+#else
   if (IS_MUSIC(snd_ctrl))
   {
-    if (num_music == 0)
+    if (num_music_noconf == 0)
       return;
 
-    snd_ctrl.nr = snd_ctrl.nr % num_music;
+    snd_ctrl.nr = snd_ctrl.nr % num_music_noconf;
   }
   else if (snd_ctrl.nr >= num_sounds)
     return;
+#endif
 
 #if 0
-  snd_info = (IS_MUSIC(snd_ctrl) ? Music[snd_ctrl.nr] : Sound[snd_ctrl.nr]);
+#if 1
+  snd_info = (IS_MUSIC(snd_ctrl) ? getMusicInfoEntryFromMusicID(snd_ctrl.nr) :
+             getSoundInfoEntryFromSoundID(snd_ctrl.nr));
 #else
-  snd_info = (IS_MUSIC(snd_ctrl) ? Music[snd_ctrl.nr] :
+  snd_info = (IS_MUSIC(snd_ctrl) ? Music_NoConf[snd_ctrl.nr] :
              getSoundInfoEntryFromSoundID(snd_ctrl.nr));
+#endif
 #endif
 
   if (snd_info == NULL)
@@ -862,6 +915,10 @@ static void Mixer_InsertSound(SoundControl snd_ctrl)
   /* play music samples on a dedicated music channel */
   if (IS_MUSIC(snd_ctrl))
   {
+#if 0
+    printf("::: slot %d, ptr 0x%08x\n", snd_ctrl.nr, snd_ctrl.data_ptr);
+#endif
+
     Mixer_StopMusicChannel();
 
     mixer[audio.music_channel] = snd_ctrl;
@@ -1783,12 +1840,138 @@ static void *Load_WAV(char *filename)
   return snd_info;
 }
 
+static void *Load_MOD(char *filename)
+{
+#if defined(TARGET_SDL)
+  MusicInfo *mod_info;
+
+  if (!audio.sound_available)
+    return NULL;
+
+  mod_info = checked_calloc(sizeof(MusicInfo));
+
+  if ((mod_info->data_ptr = Mix_LoadMUS(filename)) == NULL)
+  {
+    Error(ERR_WARN, "cannot read music file '%s'", filename);
+    free(mod_info);
+    return NULL;
+  }
+
+  mod_info->type = MUS_TYPE_MOD;
+  mod_info->source_filename = getStringCopy(filename);
+
+  return mod_info;
+#else
+  return NULL;
+#endif
+}
+
+void LoadCustomMusic_NoConf(void)
+{
+  static boolean draw_init_text = TRUE;                /* only draw at startup */
+  static char *last_music_directory = NULL;
+  char *music_directory = getCustomMusicDirectory();
+  DIR *dir;
+  struct dirent *dir_entry;
+  int num_music = getMusicListSize();
+
+  if (!audio.sound_available)
+    return;
+
+  if (last_music_directory != NULL &&
+      strcmp(last_music_directory, music_directory) == 0)
+    return;    /* old and new music directory are the same */
+
+  if (last_music_directory != NULL)
+    free(last_music_directory);
+  last_music_directory = getStringCopy(music_directory);
+
+  FreeAllMusic_NoConf();
+
+  if ((dir = opendir(music_directory)) == NULL)
+  {
+    Error(ERR_WARN, "cannot read music directory '%s'", music_directory);
+    audio.music_available = FALSE;
+    return;
+  }
+
+  if (draw_init_text)
+    DrawInitText("Loading music:", 120, FC_GREEN);
+
+  while ((dir_entry = readdir(dir)) != NULL)   /* loop until last dir entry */
+  {
+    char *basename = dir_entry->d_name;
+    char *filename = NULL;
+    MusicInfo *mus_info = NULL;
+    boolean music_already_used = FALSE;
+    int i;
+
+    for (i=0; i < num_music; i++)
+    {
+      struct FileInfo *music = getMusicListEntry(i);
+
+#if 0
+      printf("::: -> '%s'\n", music->filename);
+#endif
+
+      if (strcmp(basename, music->filename) == 0)
+      {
+       music_already_used = TRUE;
+       break;
+      }
+    }
+
+    if (music_already_used)
+      continue;
+
+#if 0
+    if (FileIsSound(basename) || FileIsMusic(basename))
+      printf("DEBUG: loading music '%s' ... [%d]\n",
+            basename, music_already_used);
+#endif
+
+    if (draw_init_text)
+      DrawInitText(basename, 150, FC_YELLOW);
+
+    filename = getPath2(music_directory, basename);
+
+    if (FileIsSound(basename))
+      mus_info = Load_WAV(filename);
+    else if (FileIsMusic(basename))
+      mus_info = Load_MOD(filename);
+
+    free(filename);
+
+    if (mus_info)
+    {
+      num_music_noconf++;
+      Music_NoConf = checked_realloc(Music_NoConf,
+                                    num_music_noconf * sizeof(MusicInfo *));
+      Music_NoConf[num_music_noconf - 1] = mus_info;
+    }
+  }
+
+  closedir(dir);
+
+  draw_init_text = FALSE;
+
+  if (num_music_noconf == 0)
+    Error(ERR_WARN, "cannot find any valid music files in directory '%s'",
+         music_directory);
+}
+
 int getSoundListSize()
 {
   return (sound_info->num_file_list_entries +
          sound_info->num_dynamic_file_list_entries);
 }
 
+int getMusicListSize()
+{
+  return (music_info->num_file_list_entries +
+         music_info->num_dynamic_file_list_entries);
+}
+
 struct FileInfo *getSoundListEntry(int pos)
 {
   int num_list_entries = sound_info->num_file_list_entries;
@@ -1798,6 +1981,15 @@ struct FileInfo *getSoundListEntry(int pos)
          &sound_info->dynamic_file_list[list_pos]);
 }
 
+struct FileInfo *getMusicListEntry(int pos)
+{
+  int num_list_entries = music_info->num_file_list_entries;
+  int list_pos = (pos < num_list_entries ? pos : pos - num_list_entries);
+
+  return (pos < num_list_entries ? &music_info->file_list[list_pos] :
+         &music_info->dynamic_file_list[list_pos]);
+}
+
 static SoundInfo *getSoundInfoEntryFromSoundID(int pos)
 {
   int num_list_entries = sound_info->num_file_list_entries;
@@ -1809,16 +2001,37 @@ static SoundInfo *getSoundInfoEntryFromSoundID(int pos)
   return snd_info[list_pos];
 }
 
+static MusicInfo *getMusicInfoEntryFromMusicID(int pos)
+{
+  int num_list_entries = music_info->num_file_list_entries;
+  int list_pos = (pos < num_list_entries ? pos : pos - num_list_entries);
+  MusicInfo **mus_info =
+    (MusicInfo **)(pos < num_list_entries ? music_info->artwork_list :
+                  music_info->dynamic_artwork_list);
+
+  return mus_info[list_pos];
+}
+
 int getSoundListPropertyMappingSize()
 {
   return sound_info->num_property_mapping_entries;
 }
 
+int getMusicListPropertyMappingSize()
+{
+  return music_info->num_property_mapping_entries;
+}
+
 struct PropertyMapping *getSoundListPropertyMapping()
 {
   return sound_info->property_mapping;
 }
 
+struct PropertyMapping *getMusicListPropertyMapping()
+{
+  return music_info->property_mapping;
+}
+
 void InitSoundList(struct ConfigInfo *config_list, int num_file_list_entries,
                   struct ConfigInfo *config_suffix_list,
                   char **base_prefixes, char **ext1_suffixes,
@@ -1899,98 +2112,79 @@ void InitSoundList(struct ConfigInfo *config_list, int num_file_list_entries,
 #endif
 }
 
-static MusicInfo *Load_MOD(char *filename)
+void InitMusicList(struct ConfigInfo *config_list, int num_file_list_entries,
+                  struct ConfigInfo *config_suffix_list,
+                  char **base_prefixes, char **ext1_suffixes,
+                  char **ext2_suffixes, char **ext3_suffixes,
+                  char **ignore_tokens)
 {
-#if defined(TARGET_SDL)
-  MusicInfo *mod_info;
+  int i;
 
-  if (!audio.sound_available)
-    return NULL;
+  music_info = checked_calloc(sizeof(struct ArtworkListInfo));
+  music_info->type = ARTWORK_TYPE_MUSIC;
 
-  mod_info = checked_calloc(sizeof(MusicInfo));
+  /* ---------- initialize file list and suffix lists ---------- */
 
-  if ((mod_info->data_ptr = Mix_LoadMUS(filename)) == NULL)
-  {
-    Error(ERR_WARN, "cannot read music file '%s'", filename);
-    free(mod_info);
-    return NULL;
-  }
+  music_info->num_file_list_entries = num_file_list_entries;
+  music_info->num_dynamic_file_list_entries = 0;
 
-  mod_info->type = MUS_TYPE_MOD;
-  mod_info->source_filename = getStringCopy(filename);
+  music_info->file_list =
+    getFileListFromConfigList(config_list, config_suffix_list, ignore_tokens,
+                             num_file_list_entries);
+  music_info->dynamic_file_list = NULL;
 
-  return mod_info;
-#else
-  return NULL;
-#endif
-}
+  music_info->num_suffix_list_entries = 0;
+  for (i=0; config_suffix_list[i].token != NULL; i++)
+    music_info->num_suffix_list_entries++;
 
-void LoadCustomMusic(void)
-{
-  static boolean draw_init_text = TRUE;                /* only draw at startup */
-  static char *last_music_directory = NULL;
-  char *music_directory = getCustomMusicDirectory();
-  DIR *dir;
-  struct dirent *dir_entry;
+  music_info->suffix_list = config_suffix_list;
 
-  if (!audio.sound_available)
-    return;
+  /* ---------- initialize base prefix and suffixes lists ---------- */
 
-  if (last_music_directory != NULL &&
-      strcmp(last_music_directory, music_directory) == 0)
-    return;    /* old and new music directory are the same */
+  music_info->num_base_prefixes = 0;
+  for (i=0; base_prefixes[i] != NULL; i++)
+    music_info->num_base_prefixes++;
 
-  if (last_music_directory != NULL)
-    free(last_music_directory);
-  last_music_directory = getStringCopy(music_directory);
+  music_info->num_ext1_suffixes = 0;
+  for (i=0; ext1_suffixes[i] != NULL; i++)
+    music_info->num_ext1_suffixes++;
 
-  FreeAllMusic();
+  music_info->num_ext2_suffixes = 0;
+  for (i=0; ext2_suffixes[i] != NULL; i++)
+    music_info->num_ext2_suffixes++;
 
-  if ((dir = opendir(music_directory)) == NULL)
-  {
-    Error(ERR_WARN, "cannot read music directory '%s'", music_directory);
-    audio.music_available = FALSE;
-    return;
-  }
+  music_info->num_ext3_suffixes = 0;
+  for (i=0; ext3_suffixes[i] != NULL; i++)
+    music_info->num_ext3_suffixes++;
 
-  if (draw_init_text)
-    DrawInitText("Loading music:", 120, FC_GREEN);
+  music_info->num_ignore_tokens = 0;
+  for (i=0; ignore_tokens[i] != NULL; i++)
+    music_info->num_ignore_tokens++;
 
-  while ((dir_entry = readdir(dir)) != NULL)   /* loop until last dir entry */
-  {
-    char *basename = dir_entry->d_name;
-    char *filename = getPath2(music_directory, basename);
-    MusicInfo *mus_info = NULL;
+  music_info->base_prefixes = base_prefixes;
+  music_info->ext1_suffixes = ext1_suffixes;
+  music_info->ext2_suffixes = ext2_suffixes;
+  music_info->ext3_suffixes = ext3_suffixes;
+  music_info->ignore_tokens = ignore_tokens;
 
-#if 0
-    printf("DEBUG: loading music '%s' ...\n", basename);
-#endif
+  music_info->num_property_mapping_entries = 0;
 
-    if (draw_init_text)
-      DrawInitText(basename, 150, FC_YELLOW);
+  music_info->property_mapping = NULL;
 
-    if (FileIsSound(basename))
-      mus_info = Load_WAV(filename);
-    else if (FileIsMusic(basename))
-      mus_info = Load_MOD(filename);
+  /* ---------- initialize artwork reference and content lists ---------- */
 
-    free(filename);
+  music_info->sizeof_artwork_list_entry = sizeof(MusicInfo *);
 
-    if (mus_info)
-    {
-      num_music++;
-      Music = checked_realloc(Music, num_music * sizeof(MusicInfo *));
-      Music[num_music - 1] = mus_info;
-    }
-  }
+  music_info->artwork_list =
+    checked_calloc(num_file_list_entries * sizeof(MusicInfo *));
+  music_info->dynamic_artwork_list = NULL;
 
-  closedir(dir);
+  music_info->content_list = NULL;
 
-  draw_init_text = FALSE;
+  /* ---------- initialize artwork loading/freeing functions ---------- */
 
-  if (num_music == 0)
-    Error(ERR_WARN, "cannot find any valid music files in directory '%s'",
-         music_directory);
+  music_info->load_artwork = Load_MOD;
+  music_info->free_artwork = FreeMusic;
 }
 
 void PlayMusic(int nr)
@@ -2066,10 +2260,15 @@ void FadeSound(int nr)
 
 void FadeSounds()
 {
-  FadeMusic();
   StopSoundExt(-1, SND_CTRL_FADE_ALL);
 }
 
+void FadeSoundsAndMusic()
+{
+  FadeSounds();
+  FadeMusic();
+}
+
 void StopMusic(void)
 {
   if (!audio.music_available)
@@ -2125,7 +2324,13 @@ static void ReloadCustomMusic()
   printf("DEBUG: reloading music '%s' ...\n", artwork.mus_current_identifier);
 #endif
 
-  LoadCustomMusic();
+  LoadArtworkConfig(music_info);
+  ReloadCustomArtworkList(music_info);
+
+#if 1
+  /* load all music files from directory not defined in "musicinfo.conf" */
+  LoadCustomMusic_NoConf();
+#endif
 }
 
 void InitReloadCustomSounds(char *set_identifier)
@@ -2147,6 +2352,7 @@ void InitReloadCustomMusic(char *set_identifier)
     return;
 
 #if defined(AUDIO_UNIX_NATIVE)
+  LoadArtworkConfig(music_info);       /* also load config on sound client */
   WriteReloadInfoToPipe(set_identifier, SND_CTRL_RELOAD_MUSIC);
 #else
   ReloadCustomMusic();
@@ -2177,8 +2383,10 @@ void FreeSound(void *ptr)
   free(sound);
 }
 
-void FreeMusic(MusicInfo *music)
+void FreeMusic(void *ptr)
 {
+  MusicInfo *music = (MusicInfo *)ptr;
+
   if (music == NULL)
     return;
 
@@ -2199,25 +2407,31 @@ void FreeMusic(MusicInfo *music)
   free(music);
 }
 
-void FreeAllSounds()
-{
-  FreeCustomArtworkLists(sound_info);
-}
-
-void FreeAllMusic()
+static void FreeAllMusic_NoConf()
 {
   int i;
 
-  if (Music == NULL)
+  if (Music_NoConf == NULL)
     return;
 
-  for(i=0; i<num_music; i++)
-    FreeMusic(Music[i]);
+  for(i=0; i < num_music_noconf; i++)
+    FreeMusic(Music_NoConf[i]);
 
-  free(Music);
+  free(Music_NoConf);
+
+  Music_NoConf = NULL;
+  num_music_noconf = 0;
+}
 
-  Music = NULL;
-  num_music = 0;
+void FreeAllSounds()
+{
+  FreeCustomArtworkLists(sound_info);
+}
+
+void FreeAllMusic()
+{
+  FreeCustomArtworkLists(music_info);
+  FreeAllMusic_NoConf();
 }
 
 /* THE STUFF ABOVE IS ONLY USED BY THE MAIN PROCESS                          */
index 3b5270b9ae13f043d27be5c096134659302e4d33..b4bcafcf81921f0c354cb0424c1e972affccf956 100644 (file)
@@ -135,17 +135,24 @@ void PlaySoundExt(int, int, int, int);
 void FadeMusic(void);
 void FadeSound(int);
 void FadeSounds(void);
+void FadeSoundsAndMusic(void);
 void StopMusic(void);
 void StopSound(int);
 void StopSounds(void);
 void StopSoundExt(int, int);
 
 int getSoundListSize();
+int getMusicListSize();
 struct FileInfo *getSoundListEntry(int);
+struct FileInfo *getMusicListEntry(int);
 int getSoundListPropertyMappingSize();
+int getMusicListPropertyMappingSize();
 struct PropertyMapping *getSoundListPropertyMapping();
+struct PropertyMapping *getMusicListPropertyMapping();
 void InitSoundList(struct ConfigInfo *, int, struct ConfigInfo *,
                   char **, char **, char **, char **, char **);
+void InitMusicList(struct ConfigInfo *, int, struct ConfigInfo *,
+                  char **, char **, char **, char **, char **);
 void InitReloadCustomSounds(char *);
 void InitReloadCustomMusic(char *);
 void FreeAllSounds(void);
index 00fea82a12c3abc7aeda0ff43dd34f5143c74a8d..076c334f0c655eb4b4767c7bd3456bfdc89d55c0 100644 (file)
@@ -91,6 +91,7 @@ int                   TimeFrames, TimePlayed, TimeLeft;
 
 boolean                        network_player_action_received = FALSE;
 
+struct LevelSetInfo    levelset;
 struct LevelInfo       level, level_template;
 struct PlayerInfo      stored_player[MAX_PLAYERS], *local_player = NULL;
 struct HiScore         highscore[MAX_SCORE_ENTRIES];
@@ -102,6 +103,7 @@ struct MenuInfo             menu;
 struct DoorInfo                door_1, door_2;
 struct GraphicInfo     *graphic_info = NULL;
 struct SoundInfo       *sound_info = NULL;
+struct MusicInfo       *music_info = NULL;
 
 
 /* ------------------------------------------------------------------------- */
@@ -3822,6 +3824,18 @@ struct FontInfo font_info[NUM_FONTS + 1] =
 };
 
 
+/* ------------------------------------------------------------------------- */
+/* music token prefix definitions                                            */
+/* ------------------------------------------------------------------------- */
+
+struct MusicPrefixInfo music_prefix_info[NUM_MUSIC_PREFIXES + 1] =
+{
+  { "background",              TRUE    },
+
+  { NULL,                      0       }
+};
+
+
 /* ========================================================================= */
 /* main()                                                                    */
 /* ========================================================================= */
index cbfbf67fc893ef3eceb67154b95f816196f5b996..801fec4b57aaae774b4af7f54e13793b23eb19a0 100644 (file)
@@ -26,6 +26,7 @@
 
 #include "conf_gfx.h"  /* include auto-generated data structure definitions */
 #include "conf_snd.h"  /* include auto-generated data structure definitions */
+#include "conf_mus.h"  /* include auto-generated data structure definitions */
 
 #define IMG_UNDEFINED          (-1)
 #define IMG_EMPTY              IMG_EMPTY_SPACE
@@ -35,6 +36,7 @@
 #define IMG_CUSTOM_START       IMG_CUSTOM_1
 
 #define SND_UNDEFINED          (-1)
+#define MUS_UNDEFINED          (-1)
 
 #define WIN_XSIZE              672
 #define WIN_YSIZE              560
 #define NUM_SND_ARGS                           1
 
 
-/* values for font configuration */
+/* values for music configuration suffixes */
+#define MUS_ARG_MODE_LOOP                      0
+
+#define NUM_MUS_ARGS                           1
 
+
+/* values for font configuration */
 #define FONT_INITIAL_1                         0
 #define FONT_INITIAL_2                         1
 #define FONT_INITIAL_3                         2
 #define GAME_MODE_PSEUDO_TYPENAME              10
 #define GAME_MODE_QUIT                         11
 
+/* special definitions currently only used for custom artwork configuration */
+#define NUM_MUSIC_PREFIXES                     1
+#define MAX_LEVELS                             1000
+
+
 #define PROGRAM_VERSION_MAJOR  3
 #define PROGRAM_VERSION_MINOR  0
 #define PROGRAM_VERSION_PATCH  8
@@ -1184,6 +1196,11 @@ struct PlayerInfo
   int inventory_size;
 };
 
+struct LevelSetInfo
+{
+  int music[NUM_SPECIAL_GFX_ARGS][MAX_LEVELS];
+};
+
 struct LevelInfo
 {
   int file_version;    /* file format version the level is stored with    */
@@ -1449,6 +1466,17 @@ struct SoundInfo
   boolean loop;
 };
 
+struct MusicInfo
+{
+  boolean loop;
+};
+
+struct MusicPrefixInfo
+{
+  char *prefix;
+  boolean is_loop_music;
+};
+
 struct ElementActionInfo
 {
   char *suffix;
@@ -1542,6 +1570,7 @@ extern boolean                    network_player_action_received;
 
 extern int                     graphics_action_mapping[];
 
+extern struct LevelSetInfo     levelset;
 extern struct LevelInfo                level, level_template;
 extern struct PlayerInfo       stored_player[], *local_player;
 extern struct HiScore          highscore[];
@@ -1556,9 +1585,15 @@ extern struct ElementDirectionInfo element_direction_info[];
 extern struct SpecialSuffixInfo special_suffix_info[];
 extern struct TokenIntPtrInfo  image_config_vars[];
 extern struct FontInfo         font_info[];
+extern struct MusicPrefixInfo  music_prefix_info[];
 extern struct GraphicInfo      *graphic_info;
 extern struct SoundInfo               *sound_info;
-extern struct ConfigInfo       image_config[], sound_config[];
-extern struct ConfigInfo       image_config_suffix[], sound_config_suffix[];
+extern struct MusicInfo               *music_info;
+extern struct ConfigInfo       image_config[];
+extern struct ConfigInfo       sound_config[];
+extern struct ConfigInfo       music_config[];
+extern struct ConfigInfo       image_config_suffix[];
+extern struct ConfigInfo       sound_config_suffix[];
+extern struct ConfigInfo       music_config_suffix[];
 
 #endif /* MAIN_H */
index 8e66c8c9ed7831cc55f2c2b163dab62f8d2a1812..97eabb96539c21c9390ff67fbe21acff3c85f68c 100644 (file)
@@ -197,7 +197,7 @@ void DrawMainMenu()
   int i;
 
   UnmapAllGadgets();
-  FadeSounds();
+  FadeSoundsAndMusic();
 
   KeyboardAutoRepeatOn();
   ActivateJoystick();
@@ -961,7 +961,7 @@ void DrawHelpScreenMusicText(int num)
   int ystart = 150, ystep = 30;
   int ybottom = SYSIZE - 20;
 
-  FadeSounds();
+  FadeSoundsAndMusic();
   ClearWindow();
   DrawHeadline();
 
@@ -990,7 +990,7 @@ void DrawHelpScreenCreditsText()
   int ystart = 150, ystep = 30;
   int ybottom = SYSIZE - 20;
 
-  FadeSounds();
+  FadeSoundsAndMusic();
   ClearWindow();
   DrawHeadline();
 
@@ -1063,11 +1063,16 @@ void DrawHelpScreen()
   FadeToFront();
   InitAnimation();
 
+#if 1
+  PlaySound(SND_BACKGROUND_INFO);
+  PlayMusic(MUS_BACKGROUND_INFO);
+#else
 #if 0
   PlaySoundLoop(SND_BACKGROUND_INFO);
 #else
   PlaySound_Menu_Start(SND_BACKGROUND_INFO);
 #endif
+#endif
 }
 
 void HandleHelpScreen(int button)
@@ -1110,7 +1115,7 @@ void HandleHelpScreen(int button)
     }
     else
     {
-      FadeSounds();
+      FadeSoundsAndMusic();
 
       game_status = GAME_MODE_MAIN;
       DrawMainMenu();
@@ -1127,10 +1132,12 @@ void HandleHelpScreen(int button)
     /* !!! workaround for playing "music" that is really a sound loop (and
        must therefore periodically be reactivated with the current sound
        engine !!! */
+#if 0
 #if 0
     PlaySoundLoop(SND_BACKGROUND_INFO);
 #else
     PlaySound_Menu_Continue(SND_BACKGROUND_INFO);
+#endif
 #endif
   }
 
@@ -1562,7 +1569,7 @@ void HandleChooseLevel(int mx, int my, int dx, int dy, int button)
 void DrawHallOfFame(int highlight_position)
 {
   UnmapAllGadgets();
-  FadeSounds();
+  FadeSoundsAndMusic();
   CloseDoor(DOOR_CLOSE_2);
 
   if (highlight_position < 0) 
@@ -1573,11 +1580,16 @@ void DrawHallOfFame(int highlight_position)
 
   HandleHallOfFame(highlight_position,0, 0,0, MB_MENU_INITIALIZE);
 
+#if 1
+  PlaySound(SND_BACKGROUND_SCORES);
+  PlayMusic(MUS_BACKGROUND_SCORES);
+#else
 #if 0
   PlaySound(SND_BACKGROUND_SCORES);
 #else
   PlaySound_Menu_Start(SND_BACKGROUND_SCORES);
 #endif
+#endif
 }
 
 static void drawHallOfFameList(int first_entry, int highlight_position)
@@ -1662,9 +1674,11 @@ void HandleHallOfFame(int mx, int my, int dx, int dy, int button)
     DrawMainMenu();
   }
 
+#if 0
 #if 1
   if (game_status == GAME_MODE_SCORES)
     PlaySound_Menu_Continue(SND_BACKGROUND_SCORES);
+#endif
 #endif
 
   DoAnimation();