#include "conf_e2g.c" /* include auto-generated data structure definitions */
#include "conf_esg.c" /* include auto-generated data structure definitions */
+#include "conf_e2s.c" /* include auto-generated data structure definitions */
+#include "conf_fnt.c" /* include auto-generated data structure definitions */
#define CONFIG_TOKEN_FONT_INITIAL "font.initial"
-struct FontInfo font_info_initial[NUM_INITIAL_FONTS];
+struct FontBitmapInfo font_initial[NUM_INITIAL_FONTS];
static void InitGlobal();
static void InitSetup();
return;
}
+ game_status = MAINMENU;
+
DrawMainMenu();
InitNetworkServer();
LoadArtworkInfo();
}
+static char *get_element_class_token(int element)
+{
+ char *element_class_name = element_info[element].class_name;
+ char *element_class_token = checked_malloc(strlen(element_class_name) + 3);
+
+ sprintf(element_class_token, "[%s]", element_class_name);
+
+ return element_class_token;
+}
+
static void InitArtworkConfig()
{
- static char *element_prefix[MAX_NUM_ELEMENTS + 1];
- static char *sound_class_prefix[MAX_NUM_ELEMENTS + 1];
- static char *action_suffix[NUM_ACTIONS + 1];
- static char *direction_suffix[NUM_DIRECTIONS + 1];
- static char *special_suffix[NUM_SPECIAL_GFX_ARGS + 1];
+ static char *image_id_prefix[MAX_NUM_ELEMENTS + NUM_FONTS + 1];
+ static char *sound_id_prefix[MAX_NUM_ELEMENTS + MAX_NUM_ELEMENTS + 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 *dummy[1] = { NULL };
static char *ignore_image_tokens[] =
{
"name",
"sort_priority",
- "menu.main.hide_static_text",
"global.num_toons",
NULL
};
};
int i;
- for (i=0; i<MAX_NUM_ELEMENTS + 1; i++)
- element_prefix[i] = element_info[i].token_name;
- for (i=0; i<MAX_NUM_ELEMENTS + 1; i++)
- sound_class_prefix[i] = element_info[i].sound_class_name;
- for (i=0; i<NUM_ACTIONS + 1; i++)
- action_suffix[i] = element_action_info[i].suffix;
- for (i=0; i<NUM_DIRECTIONS + 1; i++)
- direction_suffix[i] = element_direction_info[i].suffix;
- for (i=0; i<NUM_SPECIAL_GFX_ARGS + 1; i++)
- special_suffix[i] = special_suffix_info[i].suffix;
+ for (i=0; i<MAX_NUM_ELEMENTS; i++)
+ image_id_prefix[i] = element_info[i].token_name;
+ 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++)
+ sound_id_prefix[i] = element_info[i].token_name;
+ for (i=0; i<MAX_NUM_ELEMENTS; i++)
+ sound_id_prefix[MAX_NUM_ELEMENTS + i] = get_element_class_token(i);
+ sound_id_prefix[MAX_NUM_ELEMENTS + MAX_NUM_ELEMENTS] = 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++)
+ direction_id_suffix[i] = element_direction_info[i].suffix;
+ direction_id_suffix[NUM_DIRECTIONS] = NULL;
+
+ 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;
InitImageList(image_config, NUM_IMAGE_FILES, image_config_suffix,
- element_prefix, action_suffix, direction_suffix,
- special_suffix, ignore_image_tokens);
+ 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_class_prefix, action_suffix, dummy,
+ sound_id_prefix, action_id_suffix, dummy,
dummy, ignore_sound_tokens);
}
InitElementSoundInfo(); /* element game sound mapping */
InitSoundInfo(); /* sound properties mapping */
+#if 1
+ InitElementSoundInfo(); /* element game sound mapping */
+#endif
+
InitPlaySoundLevel(); /* internal game sound settings */
}
strncmp(image_config[i].token, font_token, len_font_token) == 0)
{
if (strcmp(&image_config[i].token[len_font_token], ".x") == 0)
- font_info_initial[j].src_x = atoi(image_config[i].value);
+ font_initial[j].src_x = atoi(image_config[i].value);
else if (strcmp(&image_config[i].token[len_font_token], ".y") == 0)
- font_info_initial[j].src_y = atoi(image_config[i].value);
+ font_initial[j].src_y = atoi(image_config[i].value);
else if (strcmp(&image_config[i].token[len_font_token], ".width") == 0)
- font_info_initial[j].width = atoi(image_config[i].value);
+ font_initial[j].width = atoi(image_config[i].value);
else if (strcmp(&image_config[i].token[len_font_token],".height") == 0)
- font_info_initial[j].height = atoi(image_config[i].value);
+ font_initial[j].height = atoi(image_config[i].value);
}
}
}
bitmap_font_initial = LoadCustomImage(filename_font_initial);
for (j=0; j < NUM_INITIAL_FONTS; j++)
- font_info_initial[j].bitmap = bitmap_font_initial;
+ font_initial[j].bitmap = bitmap_font_initial;
InitFontGraphicInfo();
for (i=0; element_to_special_graphic[i].element > -1; i++)
CreateImageWithSmallImages(element_to_special_graphic[i].graphic);
- /* !!! CHECK FOR ELEMENT-ONLY GRAPHICS !!! */
/* initialize images from dynamic configuration */
for (i=0; i < num_property_mappings; i++)
- CreateImageWithSmallImages(property_mapping[i].artwork_index);
+ if (property_mapping[i].artwork_index < MAX_NUM_ELEMENTS)
+ CreateImageWithSmallImages(property_mapping[i].artwork_index);
+}
+
+static int getFontBitmapID(int font_nr)
+{
+ int special = -1;
+
+ if (game_status == MAINMENU || game_status == TYPENAME)
+ special = GFX_SPECIAL_ARG_MAIN;
+ else if (game_status == CHOOSELEVEL)
+ special = GFX_SPECIAL_ARG_LEVELS;
+ else if (game_status == HALLOFFAME)
+ special = GFX_SPECIAL_ARG_SCORES;
+ else if (game_status == LEVELED)
+ special = GFX_SPECIAL_ARG_EDITOR;
+ else if (game_status == HELPSCREEN)
+ special = GFX_SPECIAL_ARG_INFO;
+ else if (game_status == SETUP)
+ special = GFX_SPECIAL_ARG_SETUP;
+ else if (game_status == PSEUDO_PREVIEW)
+ special = GFX_SPECIAL_ARG_PREVIEW;
+ else if (game_status == PLAYING || game_status == PSEUDO_DOOR)
+ special = GFX_SPECIAL_ARG_DOOR;
+
+ if (special != -1)
+ return font_info[font_nr].special_bitmap_id[special];
+ else
+ return font_nr;
}
void InitFontGraphicInfo()
{
- static struct FontInfo font_info[NUM_IMG_FONTS];
- int num_fonts = NUM_IMG_FONTS;
- int i;
+ static struct FontBitmapInfo *font_bitmap_info = NULL;
+ struct PropertyMapping *property_mapping = getImageListPropertyMapping();
+ int num_property_mappings = getImageListPropertyMappingSize();
+ int num_font_bitmaps = NUM_FONTS;
+ int i, j;
if (graphic_info == NULL) /* still at startup phase */
- num_fonts = NUM_INITIAL_FONTS;
+ {
+ InitFontInfo(font_initial, NUM_INITIAL_FONTS, getFontBitmapID);
+
+ return;
+ }
+
+ /* ---------- initialize font graphic definitions ---------- */
+
+ /* always start with reliable default values (normal font graphics) */
+ for (i=0; i < NUM_FONTS; i++)
+ font_info[i].graphic = FONT_INITIAL_1;
+
+ /* initialize normal font/graphic mapping from static configuration */
+ for (i=0; font_to_graphic[i].font_nr > -1; i++)
+ {
+ int font_nr = font_to_graphic[i].font_nr;
+ int special = font_to_graphic[i].special;
+ int graphic = font_to_graphic[i].graphic;
+
+ if (special != -1)
+ continue;
- for (i=0; i < num_fonts; i++)
+ font_info[font_nr].graphic = graphic;
+ }
+
+ /* always start with reliable default values (special font graphics) */
+ for (i=0; i < NUM_FONTS; i++)
+ {
+ for (j=0; j < NUM_SPECIAL_GFX_ARGS; j++)
+ {
+ font_info[i].special_graphic[j] = font_info[i].graphic;
+ font_info[i].special_bitmap_id[j] = i;
+ }
+ }
+
+ /* initialize special font/graphic mapping from static configuration */
+ for (i=0; font_to_graphic[i].font_nr > -1; i++)
+ {
+ int font_nr = font_to_graphic[i].font_nr;
+ int special = font_to_graphic[i].special;
+ int graphic = font_to_graphic[i].graphic;
+
+ if (special >= 0 && special < NUM_SPECIAL_GFX_ARGS)
+ {
+ font_info[font_nr].special_graphic[special] = graphic;
+ font_info[font_nr].special_bitmap_id[special] = num_font_bitmaps;
+ num_font_bitmaps++;
+ }
+ }
+
+ /* initialize special element/graphic mapping from dynamic configuration */
+ for (i=0; i < num_property_mappings; i++)
+ {
+ int font_nr = property_mapping[i].base_index - MAX_NUM_ELEMENTS;
+ int special = property_mapping[i].ext3_index;
+ int graphic = property_mapping[i].artwork_index;
+
+ if (font_nr < 0)
+ continue;
+
+ if (special >= 0 && special < NUM_SPECIAL_GFX_ARGS)
+ {
+ font_info[font_nr].special_graphic[special] = graphic;
+ font_info[font_nr].special_bitmap_id[special] = num_font_bitmaps;
+ num_font_bitmaps++;
+ }
+ }
+
+ /* ---------- initialize font bitmap array ---------- */
+
+ if (font_bitmap_info != NULL)
+ free(font_bitmap_info);
+
+ font_bitmap_info =
+ checked_calloc(num_font_bitmaps * sizeof(struct FontBitmapInfo));
+
+ /* ---------- initialize font bitmap definitions ---------- */
+
+ for (i=0; i < NUM_FONTS; i++)
{
if (i < NUM_INITIAL_FONTS)
- font_info[i] = font_info_initial[i];
- else
{
+ font_bitmap_info[i] = font_initial[i];
+ continue;
+ }
+
+ for (j=0; j < NUM_SPECIAL_GFX_ARGS; j++)
+ {
+ int font_bitmap_id = font_info[i].special_bitmap_id[j];
+ int graphic = font_info[i].special_graphic[j];
+
/* copy font relevant information from graphics information */
- font_info[i].bitmap = graphic_info[FIRST_IMG_FONT + i].bitmap;
- font_info[i].src_x = graphic_info[FIRST_IMG_FONT + i].src_x;
- font_info[i].src_y = graphic_info[FIRST_IMG_FONT + i].src_y;
- font_info[i].width = graphic_info[FIRST_IMG_FONT + i].width;
- font_info[i].height = graphic_info[FIRST_IMG_FONT + i].height;
- font_info[i].draw_x = graphic_info[FIRST_IMG_FONT + i].draw_x;
- font_info[i].draw_y = graphic_info[FIRST_IMG_FONT + i].draw_y;
+ font_bitmap_info[font_bitmap_id].bitmap = graphic_info[graphic].bitmap;
+ font_bitmap_info[font_bitmap_id].src_x = graphic_info[graphic].src_x;
+ font_bitmap_info[font_bitmap_id].src_y = graphic_info[graphic].src_y;
+ font_bitmap_info[font_bitmap_id].width = graphic_info[graphic].width;
+ font_bitmap_info[font_bitmap_id].height = graphic_info[graphic].height;
+ font_bitmap_info[font_bitmap_id].draw_x = graphic_info[graphic].draw_x;
+ font_bitmap_info[font_bitmap_id].draw_y = graphic_info[graphic].draw_y;
}
}
- InitFontInfo(font_info, num_fonts);
+ InitFontInfo(font_bitmap_info, num_font_bitmaps, getFontBitmapID);
}
void InitElementGraphicInfo()
}
}
-#if 0
- for (i=EL_CHAR_START; i<=EL_CHAR_END; i++)
- element_info[i].graphic[ACTION_DEFAULT] =
- IMG_CHAR_START + (i - EL_CHAR_START);
-
- for (i=EL_CUSTOM_START; i<=EL_CUSTOM_END; i++)
- element_info[i].graphic[ACTION_DEFAULT] =
- IMG_CUSTOM_START + (i - EL_CUSTOM_START);
-#endif
-
/* initialize normal element/graphic mapping from static configuration */
for (i=0; element_to_graphic[i].element > -1; i++)
{
int special = property_mapping[i].ext3_index;
int graphic = property_mapping[i].artwork_index;
- if (special != -1)
+ if (element >= MAX_NUM_ELEMENTS || special != -1)
continue;
if (action < 0)
int special = property_mapping[i].ext3_index;
int graphic = property_mapping[i].artwork_index;
+ if (element >= MAX_NUM_ELEMENTS)
+ continue;
+
if (special >= 0 && special < NUM_SPECIAL_GFX_ARGS)
element_info[element].special_graphic[special] = graphic;
}
/* get integer values from string parameters */
for (i=0; i < NUM_GFX_ARGS; i++)
parameter[i] =
- get_parameter_value(image_config_suffix[i].type, parameter_raw[i]);
+ get_parameter_value(image_config_suffix[i].token, parameter_raw[i],
+ image_config_suffix[i].type);
graphic_info[graphic].bitmap = src_bitmap;
if (graphic_info[graphic].anim_delay == 0) /* delay must be at least 1 */
graphic_info[graphic].anim_delay = 1;
- /* set mode for animation frame order */
- if (parameter[GFX_ARG_MODE_LOOP])
- graphic_info[graphic].anim_mode = ANIM_LOOP;
- else if (parameter[GFX_ARG_MODE_LINEAR])
- graphic_info[graphic].anim_mode = ANIM_LINEAR;
- else if (parameter[GFX_ARG_MODE_PINGPONG])
- graphic_info[graphic].anim_mode = ANIM_PINGPONG;
- else if (parameter[GFX_ARG_MODE_PINGPONG2])
- graphic_info[graphic].anim_mode = ANIM_PINGPONG2;
- else if (parameter[GFX_ARG_MODE_RANDOM])
- graphic_info[graphic].anim_mode = ANIM_RANDOM;
+ if (parameter[GFX_ARG_ANIM_MODE] != ANIM_NONE)
+ graphic_info[graphic].anim_mode = parameter[GFX_ARG_ANIM_MODE];
else if (graphic_info[graphic].anim_frames > 1)
graphic_info[graphic].anim_mode = ANIM_LOOP;
- else
- graphic_info[graphic].anim_mode = ANIM_NONE;
-
- /* set additional flag to play animation frames in reverse order */
- if (parameter[GFX_ARG_MODE_REVERSE])
- graphic_info[graphic].anim_mode |= ANIM_REVERSE;
/* automatically determine correct start frame, if not defined */
if (parameter[GFX_ARG_START_FRAME] == ARG_UNDEFINED_VALUE)
static void InitElementSoundInfo()
{
- /* !!! soon to come !!! */
+ struct PropertyMapping *property_mapping = getSoundListPropertyMapping();
+ int num_property_mappings = getSoundListPropertyMappingSize();
+ int i, j, act;
+
+ /* set values to -1 to identify later as "uninitialized" values */
+ for (i=0; i < MAX_NUM_ELEMENTS; i++)
+ for (act=0; act < NUM_ACTIONS; act++)
+ element_info[i].sound[act] = -1;
+
+ /* initialize element/sound mapping from static configuration */
+ for (i=0; element_to_sound[i].element > -1; i++)
+ {
+ int element = element_to_sound[i].element;
+ int action = element_to_sound[i].action;
+ int sound = element_to_sound[i].sound;
+ boolean is_class = element_to_sound[i].is_class;
+
+ if (action < 0)
+ action = ACTION_DEFAULT;
+
+ if (!is_class)
+ element_info[element].sound[action] = sound;
+ else
+ for (j=0; j < MAX_NUM_ELEMENTS; j++)
+ if (strcmp(element_info[j].class_name,
+ element_info[element].class_name) == 0)
+ element_info[j].sound[action] = sound;
+ }
+
+ /* initialize element/sound mapping from dynamic configuration */
+ for (i=0; i < num_property_mappings; i++)
+ {
+ int element = property_mapping[i].base_index;
+ int action = property_mapping[i].ext1_index;
+ int sound = property_mapping[i].artwork_index;
+
+ if (element >= MAX_NUM_ELEMENTS)
+ continue;
+
+ if (action < 0)
+ action = ACTION_DEFAULT;
+
+ element_info[element].sound[action] = sound;
+ }
+
+ /* initialize element class/sound mapping from dynamic configuration */
+ for (i=0; i < num_property_mappings; i++)
+ {
+ int element_class = property_mapping[i].base_index - MAX_NUM_ELEMENTS;
+ int action = property_mapping[i].ext1_index;
+ int sound = property_mapping[i].artwork_index;
+
+ if (element_class < 0 || element_class >= MAX_NUM_ELEMENTS)
+ continue;
+
+ if (action < 0)
+ action = ACTION_DEFAULT;
+
+ for (j=0; j < MAX_NUM_ELEMENTS; j++)
+ if (strcmp(element_info[j].class_name,
+ element_info[element_class].class_name) == 0)
+ element_info[j].sound[action] = sound;
+ }
+
+ /* now set all '-1' values to element specific default values */
+ for (i=0; i<MAX_NUM_ELEMENTS; i++)
+ {
+ int default_action_sound = element_info[i].sound[ACTION_DEFAULT];
+
+ for (act=0; act < NUM_ACTIONS; act++)
+ {
+ /* no sound for this specific action -- use default action sound */
+ if (element_info[i].sound[act] == -1)
+ element_info[i].sound[act] = default_action_sound;
+ }
+ }
}
static void set_sound_parameters(int sound, char **parameter_raw)
/* get integer values from string parameters */
for (i=0; i < NUM_SND_ARGS; i++)
parameter[i] =
- get_parameter_value(sound_config_suffix[i].type, parameter_raw[i]);
+ get_parameter_value(sound_config_suffix[i].token, parameter_raw[i],
+ sound_config_suffix[i].type);
/* explicit loop mode setting in configuration overrides default value */
if (parameter[SND_ARG_MODE_LOOP] != ARG_UNDEFINED_VALUE)
for (j=0; j<MAX_NUM_ELEMENTS; j++)
{
- if (element_info[j].sound_class_name)
+ if (element_info[j].class_name)
{
- int len_class_text = strlen(element_info[j].sound_class_name);
+ int len_class_text = strlen(element_info[j].class_name);
if (len_class_text + 1 < len_effect_text &&
strncmp(sound->token,
- element_info[j].sound_class_name, len_class_text) == 0 &&
+ element_info[j].class_name, len_class_text) == 0 &&
sound->token[len_class_text] == '.')
{
int sound_action_value = sound_effect_properties[i];
static int ep_schluessel[] =
{
- EL_KEY1,
- EL_KEY2,
- EL_KEY3,
- EL_KEY4,
- EL_EM_KEY1,
- EL_EM_KEY2,
- EL_EM_KEY3,
- EL_EM_KEY4
+ EL_KEY_1,
+ EL_KEY_2,
+ EL_KEY_3,
+ EL_KEY_4,
+ EL_EM_KEY_1,
+ EL_EM_KEY_2,
+ EL_EM_KEY_3,
+ EL_EM_KEY_4
};
static int ep_schluessel_num = SIZEOF_ARRAY_INT(ep_schluessel);
static int ep_pforte[] =
{
- EL_GATE1,
- EL_GATE2,
- EL_GATE3,
- EL_GATE4,
- EL_GATE1_GRAY,
- EL_GATE2_GRAY,
- EL_GATE3_GRAY,
- EL_GATE4_GRAY,
- EL_EM_GATE1,
- EL_EM_GATE2,
- EL_EM_GATE3,
- EL_EM_GATE4,
- EL_EM_GATE1_GRAY,
- EL_EM_GATE2_GRAY,
- EL_EM_GATE3_GRAY,
- EL_EM_GATE4_GRAY,
+ EL_GATE_1,
+ EL_GATE_2,
+ EL_GATE_3,
+ EL_GATE_4,
+ EL_GATE_1_GRAY,
+ EL_GATE_2_GRAY,
+ EL_GATE_3_GRAY,
+ EL_GATE_4_GRAY,
+ EL_EM_GATE_1,
+ EL_EM_GATE_2,
+ EL_EM_GATE_3,
+ EL_EM_GATE_4,
+ EL_EM_GATE_1_GRAY,
+ EL_EM_GATE_2_GRAY,
+ EL_EM_GATE_3_GRAY,
+ EL_EM_GATE_4_GRAY,
EL_SWITCHGATE_OPEN,
EL_SWITCHGATE_OPENING,
EL_SWITCHGATE_CLOSED,
EL_TIMEGATE_OPENING,
EL_TIMEGATE_CLOSED,
EL_TIMEGATE_CLOSING,
- EL_TUBE_ALL,
+ EL_TUBE_ANY,
EL_TUBE_VERTICAL,
EL_TUBE_HORIZONTAL,
EL_TUBE_VERTICAL_LEFT,
static int ep_solid[] =
{
EL_WALL,
- EL_WALL_GROWING,
- EL_WALL_GROWING_X,
- EL_WALL_GROWING_Y,
- EL_WALL_GROWING_XY,
+ EL_EXPANDABLE_WALL,
+ EL_EXPANDABLE_WALL_HORIZONTAL,
+ EL_EXPANDABLE_WALL_VERTICAL,
+ EL_EXPANDABLE_WALL_ANY,
EL_BD_WALL,
EL_WALL_CRUMBLED,
EL_EXIT_CLOSED,
EL_AMOEBA_DRY,
EL_AMOEBA_FULL,
EL_BD_AMOEBA,
- EL_QUICKSAND_FULL,
EL_QUICKSAND_EMPTY,
+ EL_QUICKSAND_FULL,
EL_QUICKSAND_FILLING,
EL_QUICKSAND_EMPTYING,
EL_MAGIC_WALL,
EL_BD_MAGIC_WALL_FULL,
EL_BD_MAGIC_WALL_FILLING,
EL_BD_MAGIC_WALL_DEAD,
- EL_GAMEOFLIFE,
+ EL_GAME_OF_LIFE,
EL_BIOMAZE,
EL_SP_CHIP_SINGLE,
EL_SP_CHIP_LEFT,
EL_SP_CHIP_RIGHT,
- EL_SP_CHIP_UPPER,
- EL_SP_CHIP_LOWER,
+ EL_SP_CHIP_TOP,
+ EL_SP_CHIP_BOTTOM,
EL_SP_TERMINAL,
EL_SP_TERMINAL_ACTIVE,
EL_SP_EXIT_CLOSED,
EL_SWITCHGATE_SWITCH_DOWN,
EL_TIMEGATE_SWITCH,
EL_TIMEGATE_SWITCH_ACTIVE,
- EL_EMC_WALL_PILLAR_UPPER,
- EL_EMC_WALL_PILLAR_MIDDLE,
- EL_EMC_WALL_PILLAR_LOWER,
- EL_EMC_WALL4,
- EL_EMC_WALL5,
- EL_EMC_WALL6,
- EL_EMC_WALL7,
- EL_EMC_WALL8,
+ EL_EMC_WALL_1,
+ EL_EMC_WALL_2,
+ EL_EMC_WALL_3,
+ EL_EMC_WALL_4,
+ EL_EMC_WALL_5,
+ EL_EMC_WALL_6,
+ EL_EMC_WALL_7,
+ EL_EMC_WALL_8,
EL_WALL_PEARL,
EL_WALL_CRYSTAL,
EL_ACID,
#endif
EL_STEELWALL,
- EL_ACIDPOOL_TOPLEFT,
- EL_ACIDPOOL_TOPRIGHT,
- EL_ACIDPOOL_BOTTOMLEFT,
- EL_ACIDPOOL_BOTTOM,
- EL_ACIDPOOL_BOTTOMRIGHT,
- EL_SP_HARD_GRAY,
- EL_SP_HARD_GREEN,
- EL_SP_HARD_BLUE,
- EL_SP_HARD_RED,
- EL_SP_HARD_YELLOW,
- EL_SP_HARD_BASE1,
- EL_SP_HARD_BASE2,
- EL_SP_HARD_BASE3,
- EL_SP_HARD_BASE4,
- EL_SP_HARD_BASE5,
- EL_SP_HARD_BASE6,
+ EL_ACID_POOL_TOPLEFT,
+ EL_ACID_POOL_TOPRIGHT,
+ EL_ACID_POOL_BOTTOMLEFT,
+ EL_ACID_POOL_BOTTOM,
+ EL_ACID_POOL_BOTTOMRIGHT,
+ EL_SP_HARDWARE_GRAY,
+ EL_SP_HARDWARE_GREEN,
+ EL_SP_HARDWARE_BLUE,
+ EL_SP_HARDWARE_RED,
+ EL_SP_HARDWARE_YELLOW,
+ EL_SP_HARDWARE_BASE_1,
+ EL_SP_HARDWARE_BASE_2,
+ EL_SP_HARDWARE_BASE_3,
+ EL_SP_HARDWARE_BASE_4,
+ EL_SP_HARDWARE_BASE_5,
+ EL_SP_HARDWARE_BASE_6,
EL_INVISIBLE_STEELWALL,
EL_INVISIBLE_STEELWALL_ACTIVE,
- EL_CONVEYOR_BELT1_SWITCH_LEFT,
- EL_CONVEYOR_BELT1_SWITCH_MIDDLE,
- EL_CONVEYOR_BELT1_SWITCH_RIGHT,
- EL_CONVEYOR_BELT2_SWITCH_LEFT,
- EL_CONVEYOR_BELT2_SWITCH_MIDDLE,
- EL_CONVEYOR_BELT2_SWITCH_RIGHT,
- EL_CONVEYOR_BELT3_SWITCH_LEFT,
- EL_CONVEYOR_BELT3_SWITCH_MIDDLE,
- EL_CONVEYOR_BELT3_SWITCH_RIGHT,
- EL_CONVEYOR_BELT4_SWITCH_LEFT,
- EL_CONVEYOR_BELT4_SWITCH_MIDDLE,
- EL_CONVEYOR_BELT4_SWITCH_RIGHT,
+ EL_CONVEYOR_BELT_1_SWITCH_LEFT,
+ EL_CONVEYOR_BELT_1_SWITCH_MIDDLE,
+ EL_CONVEYOR_BELT_1_SWITCH_RIGHT,
+ EL_CONVEYOR_BELT_2_SWITCH_LEFT,
+ EL_CONVEYOR_BELT_2_SWITCH_MIDDLE,
+ EL_CONVEYOR_BELT_2_SWITCH_RIGHT,
+ EL_CONVEYOR_BELT_3_SWITCH_LEFT,
+ EL_CONVEYOR_BELT_3_SWITCH_MIDDLE,
+ EL_CONVEYOR_BELT_3_SWITCH_RIGHT,
+ EL_CONVEYOR_BELT_4_SWITCH_LEFT,
+ EL_CONVEYOR_BELT_4_SWITCH_MIDDLE,
+ EL_CONVEYOR_BELT_4_SWITCH_RIGHT,
EL_LIGHT_SWITCH,
EL_LIGHT_SWITCH_ACTIVE,
EL_SIGN_EXCLAMATION,
EL_SIGN_YINYANG,
EL_SIGN_OTHER,
EL_STEELWALL_SLANTED,
- EL_EMC_STEELWALL1,
- EL_EMC_STEELWALL2,
- EL_EMC_STEELWALL3,
- EL_EMC_STEELWALL4,
+ EL_EMC_STEELWALL_1,
+ EL_EMC_STEELWALL_2,
+ EL_EMC_STEELWALL_3,
+ EL_EMC_STEELWALL_4,
EL_CRYSTAL,
- EL_GATE1,
- EL_GATE2,
- EL_GATE3,
- EL_GATE4,
- EL_GATE1_GRAY,
- EL_GATE2_GRAY,
- EL_GATE3_GRAY,
- EL_GATE4_GRAY,
- EL_EM_GATE1,
- EL_EM_GATE2,
- EL_EM_GATE3,
- EL_EM_GATE4,
- EL_EM_GATE1_GRAY,
- EL_EM_GATE2_GRAY,
- EL_EM_GATE3_GRAY,
- EL_EM_GATE4_GRAY,
+ EL_GATE_1,
+ EL_GATE_2,
+ EL_GATE_3,
+ EL_GATE_4,
+ EL_GATE_1_GRAY,
+ EL_GATE_2_GRAY,
+ EL_GATE_3_GRAY,
+ EL_GATE_4_GRAY,
+ EL_EM_GATE_1,
+ EL_EM_GATE_2,
+ EL_EM_GATE_3,
+ EL_EM_GATE_4,
+ EL_EM_GATE_1_GRAY,
+ EL_EM_GATE_2_GRAY,
+ EL_EM_GATE_3_GRAY,
+ EL_EM_GATE_4_GRAY,
EL_SWITCHGATE_OPEN,
EL_SWITCHGATE_OPENING,
EL_SWITCHGATE_CLOSED,
EL_TIMEGATE_OPENING,
EL_TIMEGATE_CLOSED,
EL_TIMEGATE_CLOSING,
- EL_TUBE_ALL,
+ EL_TUBE_ANY,
EL_TUBE_VERTICAL,
EL_TUBE_HORIZONTAL,
EL_TUBE_VERTICAL_LEFT,
{
EL_STEELWALL,
EL_ACID,
- EL_ACIDPOOL_TOPLEFT,
- EL_ACIDPOOL_TOPRIGHT,
- EL_ACIDPOOL_BOTTOMLEFT,
- EL_ACIDPOOL_BOTTOM,
- EL_ACIDPOOL_BOTTOMRIGHT,
- EL_SP_HARD_GRAY,
- EL_SP_HARD_GREEN,
- EL_SP_HARD_BLUE,
- EL_SP_HARD_RED,
- EL_SP_HARD_YELLOW,
- EL_SP_HARD_BASE1,
- EL_SP_HARD_BASE2,
- EL_SP_HARD_BASE3,
- EL_SP_HARD_BASE4,
- EL_SP_HARD_BASE5,
- EL_SP_HARD_BASE6,
+ EL_ACID_POOL_TOPLEFT,
+ EL_ACID_POOL_TOPRIGHT,
+ EL_ACID_POOL_BOTTOMLEFT,
+ EL_ACID_POOL_BOTTOM,
+ EL_ACID_POOL_BOTTOMRIGHT,
+ EL_SP_HARDWARE_GRAY,
+ EL_SP_HARDWARE_GREEN,
+ EL_SP_HARDWARE_BLUE,
+ EL_SP_HARDWARE_RED,
+ EL_SP_HARDWARE_YELLOW,
+ EL_SP_HARDWARE_BASE_1,
+ EL_SP_HARDWARE_BASE_2,
+ EL_SP_HARDWARE_BASE_3,
+ EL_SP_HARDWARE_BASE_4,
+ EL_SP_HARDWARE_BASE_5,
+ EL_SP_HARDWARE_BASE_6,
EL_INVISIBLE_STEELWALL,
EL_INVISIBLE_STEELWALL_ACTIVE,
- EL_CONVEYOR_BELT1_SWITCH_LEFT,
- EL_CONVEYOR_BELT1_SWITCH_MIDDLE,
- EL_CONVEYOR_BELT1_SWITCH_RIGHT,
- EL_CONVEYOR_BELT2_SWITCH_LEFT,
- EL_CONVEYOR_BELT2_SWITCH_MIDDLE,
- EL_CONVEYOR_BELT2_SWITCH_RIGHT,
- EL_CONVEYOR_BELT3_SWITCH_LEFT,
- EL_CONVEYOR_BELT3_SWITCH_MIDDLE,
- EL_CONVEYOR_BELT3_SWITCH_RIGHT,
- EL_CONVEYOR_BELT4_SWITCH_LEFT,
- EL_CONVEYOR_BELT4_SWITCH_MIDDLE,
- EL_CONVEYOR_BELT4_SWITCH_RIGHT,
+ EL_CONVEYOR_BELT_1_SWITCH_LEFT,
+ EL_CONVEYOR_BELT_1_SWITCH_MIDDLE,
+ EL_CONVEYOR_BELT_1_SWITCH_RIGHT,
+ EL_CONVEYOR_BELT_2_SWITCH_LEFT,
+ EL_CONVEYOR_BELT_2_SWITCH_MIDDLE,
+ EL_CONVEYOR_BELT_2_SWITCH_RIGHT,
+ EL_CONVEYOR_BELT_3_SWITCH_LEFT,
+ EL_CONVEYOR_BELT_3_SWITCH_MIDDLE,
+ EL_CONVEYOR_BELT_3_SWITCH_RIGHT,
+ EL_CONVEYOR_BELT_4_SWITCH_LEFT,
+ EL_CONVEYOR_BELT_4_SWITCH_MIDDLE,
+ EL_CONVEYOR_BELT_4_SWITCH_RIGHT,
EL_LIGHT_SWITCH,
EL_LIGHT_SWITCH_ACTIVE,
EL_SIGN_EXCLAMATION,
EL_SIGN_YINYANG,
EL_SIGN_OTHER,
EL_STEELWALL_SLANTED,
- EL_EMC_STEELWALL1,
- EL_EMC_STEELWALL2,
- EL_EMC_STEELWALL3,
- EL_EMC_STEELWALL4,
+ EL_EMC_STEELWALL_1,
+ EL_EMC_STEELWALL_2,
+ EL_EMC_STEELWALL_3,
+ EL_EMC_STEELWALL_4,
EL_CRYSTAL,
- EL_GATE1,
- EL_GATE2,
- EL_GATE3,
- EL_GATE4,
- EL_GATE1_GRAY,
- EL_GATE2_GRAY,
- EL_GATE3_GRAY,
- EL_GATE4_GRAY,
- EL_EM_GATE1,
- EL_EM_GATE2,
- EL_EM_GATE3,
- EL_EM_GATE4,
- EL_EM_GATE1_GRAY,
- EL_EM_GATE2_GRAY,
- EL_EM_GATE3_GRAY,
- EL_EM_GATE4_GRAY,
+ EL_GATE_1,
+ EL_GATE_2,
+ EL_GATE_3,
+ EL_GATE_4,
+ EL_GATE_1_GRAY,
+ EL_GATE_2_GRAY,
+ EL_GATE_3_GRAY,
+ EL_GATE_4_GRAY,
+ EL_EM_GATE_1,
+ EL_EM_GATE_2,
+ EL_EM_GATE_3,
+ EL_EM_GATE_4,
+ EL_EM_GATE_1_GRAY,
+ EL_EM_GATE_2_GRAY,
+ EL_EM_GATE_3_GRAY,
+ EL_EM_GATE_4_GRAY,
EL_SWITCHGATE_OPEN,
EL_SWITCHGATE_OPENING,
EL_SWITCHGATE_CLOSED,
EL_TIMEGATE_OPENING,
EL_TIMEGATE_CLOSED,
EL_TIMEGATE_CLOSING,
- EL_TUBE_ALL,
+ EL_TUBE_ANY,
EL_TUBE_VERTICAL,
EL_TUBE_HORIZONTAL,
EL_TUBE_VERTICAL_LEFT,
EL_TIME_ORB_EMPTY,
EL_LAMP_ACTIVE,
EL_LAMP,
- EL_ACIDPOOL_TOPLEFT,
- EL_ACIDPOOL_TOPRIGHT,
+ EL_ACID_POOL_TOPLEFT,
+ EL_ACID_POOL_TOPRIGHT,
EL_SATELLITE,
EL_SP_ZONK,
EL_SP_INFOTRON,
EL_SP_CHIP_SINGLE,
EL_SP_CHIP_LEFT,
EL_SP_CHIP_RIGHT,
- EL_SP_CHIP_UPPER,
- EL_SP_CHIP_LOWER,
+ EL_SP_CHIP_TOP,
+ EL_SP_CHIP_BOTTOM,
EL_SPEED_PILL,
EL_STEELWALL_SLANTED,
EL_PEARL,
static int ep_mauer[] =
{
EL_STEELWALL,
- EL_GATE1,
- EL_GATE2,
- EL_GATE3,
- EL_GATE4,
- EL_GATE1_GRAY,
- EL_GATE2_GRAY,
- EL_GATE3_GRAY,
- EL_GATE4_GRAY,
- EL_EM_GATE1,
- EL_EM_GATE2,
- EL_EM_GATE3,
- EL_EM_GATE4,
- EL_EM_GATE1_GRAY,
- EL_EM_GATE2_GRAY,
- EL_EM_GATE3_GRAY,
- EL_EM_GATE4_GRAY,
+ EL_GATE_1,
+ EL_GATE_2,
+ EL_GATE_3,
+ EL_GATE_4,
+ EL_GATE_1_GRAY,
+ EL_GATE_2_GRAY,
+ EL_GATE_3_GRAY,
+ EL_GATE_4_GRAY,
+ EL_EM_GATE_1,
+ EL_EM_GATE_2,
+ EL_EM_GATE_3,
+ EL_EM_GATE_4,
+ EL_EM_GATE_1_GRAY,
+ EL_EM_GATE_2_GRAY,
+ EL_EM_GATE_3_GRAY,
+ EL_EM_GATE_4_GRAY,
EL_EXIT_CLOSED,
EL_EXIT_OPENING,
EL_EXIT_OPEN,
EL_WALL,
EL_WALL_CRUMBLED,
- EL_WALL_GROWING,
- EL_WALL_GROWING_X,
- EL_WALL_GROWING_Y,
- EL_WALL_GROWING_XY,
- EL_WALL_GROWING_ACTIVE,
+ EL_EXPANDABLE_WALL,
+ EL_EXPANDABLE_WALL_HORIZONTAL,
+ EL_EXPANDABLE_WALL_VERTICAL,
+ EL_EXPANDABLE_WALL_ANY,
+ EL_EXPANDABLE_WALL_GROWING,
EL_BD_WALL,
EL_SP_CHIP_SINGLE,
EL_SP_CHIP_LEFT,
EL_SP_CHIP_RIGHT,
- EL_SP_CHIP_UPPER,
- EL_SP_CHIP_LOWER,
- EL_SP_HARD_GRAY,
- EL_SP_HARD_GREEN,
- EL_SP_HARD_BLUE,
- EL_SP_HARD_RED,
- EL_SP_HARD_YELLOW,
- EL_SP_HARD_BASE1,
- EL_SP_HARD_BASE2,
- EL_SP_HARD_BASE3,
- EL_SP_HARD_BASE4,
- EL_SP_HARD_BASE5,
- EL_SP_HARD_BASE6,
+ EL_SP_CHIP_TOP,
+ EL_SP_CHIP_BOTTOM,
+ EL_SP_HARDWARE_GRAY,
+ EL_SP_HARDWARE_GREEN,
+ EL_SP_HARDWARE_BLUE,
+ EL_SP_HARDWARE_RED,
+ EL_SP_HARDWARE_YELLOW,
+ EL_SP_HARDWARE_BASE_1,
+ EL_SP_HARDWARE_BASE_2,
+ EL_SP_HARDWARE_BASE_3,
+ EL_SP_HARDWARE_BASE_4,
+ EL_SP_HARDWARE_BASE_5,
+ EL_SP_HARDWARE_BASE_6,
EL_SP_TERMINAL,
EL_SP_TERMINAL_ACTIVE,
EL_SP_EXIT_CLOSED,
EL_INVISIBLE_WALL,
EL_INVISIBLE_WALL_ACTIVE,
EL_STEELWALL_SLANTED,
- EL_EMC_STEELWALL1,
- EL_EMC_STEELWALL2,
- EL_EMC_STEELWALL3,
- EL_EMC_STEELWALL4,
- EL_EMC_WALL_PILLAR_UPPER,
- EL_EMC_WALL_PILLAR_MIDDLE,
- EL_EMC_WALL_PILLAR_LOWER,
- EL_EMC_WALL4,
- EL_EMC_WALL5,
- EL_EMC_WALL6,
- EL_EMC_WALL7,
- EL_EMC_WALL8
+ EL_EMC_STEELWALL_1,
+ EL_EMC_STEELWALL_2,
+ EL_EMC_STEELWALL_3,
+ EL_EMC_STEELWALL_4,
+ EL_EMC_WALL_1,
+ EL_EMC_WALL_2,
+ EL_EMC_WALL_3,
+ EL_EMC_WALL_4,
+ EL_EMC_WALL_5,
+ EL_EMC_WALL_6,
+ EL_EMC_WALL_7,
+ EL_EMC_WALL_8
};
static int ep_mauer_num = SIZEOF_ARRAY_INT(ep_mauer);
EL_EXIT_CLOSED,
EL_EXIT_OPEN,
EL_STEELWALL,
- EL_PLAYER1,
+ EL_PLAYER_1,
EL_BD_FIREFLY,
EL_BD_FIREFLY_1,
EL_BD_FIREFLY_2,
EL_SOKOBAN_OBJECT,
EL_SOKOBAN_FIELD_EMPTY,
EL_SOKOBAN_FIELD_FULL,
- EL_PLAYER1,
+ EL_PLAYER_1,
EL_INVISIBLE_STEELWALL
};
static int ep_sb_element_num = SIZEOF_ARRAY_INT(ep_sb_element);
EL_QUICKSAND_EMPTY,
EL_STONEBLOCK,
EL_ROBOT_WHEEL,
- EL_KEY1,
- EL_KEY2,
- EL_KEY3,
- EL_KEY4,
- EL_EM_KEY1,
- EL_EM_KEY2,
- EL_EM_KEY3,
- EL_EM_KEY4,
- EL_GATE1,
- EL_GATE2,
- EL_GATE3,
- EL_GATE4,
- EL_GATE1_GRAY,
- EL_GATE2_GRAY,
- EL_GATE3_GRAY,
- EL_GATE4_GRAY,
- EL_EM_GATE1,
- EL_EM_GATE2,
- EL_EM_GATE3,
- EL_EM_GATE4,
- EL_EM_GATE1_GRAY,
- EL_EM_GATE2_GRAY,
- EL_EM_GATE3_GRAY,
- EL_EM_GATE4_GRAY,
+ EL_KEY_1,
+ EL_KEY_2,
+ EL_KEY_3,
+ EL_KEY_4,
+ EL_EM_KEY_1,
+ EL_EM_KEY_2,
+ EL_EM_KEY_3,
+ EL_EM_KEY_4,
+ EL_GATE_1,
+ EL_GATE_2,
+ EL_GATE_3,
+ EL_GATE_4,
+ EL_GATE_1_GRAY,
+ EL_GATE_2_GRAY,
+ EL_GATE_3_GRAY,
+ EL_GATE_4_GRAY,
+ EL_EM_GATE_1,
+ EL_EM_GATE_2,
+ EL_EM_GATE_3,
+ EL_EM_GATE_4,
+ EL_EM_GATE_1_GRAY,
+ EL_EM_GATE_2_GRAY,
+ EL_EM_GATE_3_GRAY,
+ EL_EM_GATE_4_GRAY,
EL_DYNAMITE,
EL_INVISIBLE_STEELWALL,
EL_INVISIBLE_WALL,
EL_WALL_DIAMOND,
EL_WALL_BD_DIAMOND,
EL_WALL_EMERALD_YELLOW,
- EL_DYNABOMB_NR,
- EL_DYNABOMB_SZ,
- EL_DYNABOMB_XL,
+ EL_DYNABOMB_INCREASE_NUMBER,
+ EL_DYNABOMB_INCREASE_SIZE,
+ EL_DYNABOMB_INCREASE_POWER,
EL_SOKOBAN_OBJECT,
EL_SOKOBAN_FIELD_EMPTY,
EL_SOKOBAN_FIELD_FULL,
EL_WALL_EMERALD_RED,
EL_WALL_EMERALD_PURPLE,
- EL_ACIDPOOL_TOPLEFT,
- EL_ACIDPOOL_TOPRIGHT,
- EL_ACIDPOOL_BOTTOMLEFT,
- EL_ACIDPOOL_BOTTOM,
- EL_ACIDPOOL_BOTTOMRIGHT,
+ EL_ACID_POOL_TOPLEFT,
+ EL_ACID_POOL_TOPRIGHT,
+ EL_ACID_POOL_BOTTOMLEFT,
+ EL_ACID_POOL_BOTTOM,
+ EL_ACID_POOL_BOTTOMRIGHT,
EL_MAGIC_WALL,
EL_MAGIC_WALL_DEAD,
EL_BD_MAGIC_WALL,
EL_BLOCKED,
EL_SP_EMPTY,
EL_SP_BASE,
- EL_SP_PORT1_RIGHT,
- EL_SP_PORT1_DOWN,
- EL_SP_PORT1_LEFT,
- EL_SP_PORT1_UP,
- EL_SP_PORT2_RIGHT,
- EL_SP_PORT2_DOWN,
- EL_SP_PORT2_LEFT,
- EL_SP_PORT2_UP,
- EL_SP_PORT_X,
- EL_SP_PORT_Y,
- EL_SP_PORT_XY,
+ EL_SP_PORT_RIGHT,
+ EL_SP_PORT_DOWN,
+ EL_SP_PORT_LEFT,
+ EL_SP_PORT_UP,
+ EL_SP_GRAVITY_PORT_RIGHT,
+ EL_SP_GRAVITY_PORT_DOWN,
+ EL_SP_GRAVITY_PORT_LEFT,
+ EL_SP_GRAVITY_PORT_UP,
+ EL_SP_PORT_HORIZONTAL,
+ EL_SP_PORT_VERTICAL,
+ EL_SP_PORT_ANY,
EL_SP_DISK_RED,
EL_SP_DISK_YELLOW,
EL_SP_CHIP_SINGLE,
EL_SP_CHIP_LEFT,
EL_SP_CHIP_RIGHT,
- EL_SP_CHIP_UPPER,
- EL_SP_CHIP_LOWER,
- EL_SP_HARD_GRAY,
- EL_SP_HARD_GREEN,
- EL_SP_HARD_BLUE,
- EL_SP_HARD_RED,
- EL_SP_HARD_YELLOW,
- EL_SP_HARD_BASE1,
- EL_SP_HARD_BASE2,
- EL_SP_HARD_BASE3,
- EL_SP_HARD_BASE4,
- EL_SP_HARD_BASE5,
- EL_SP_HARD_BASE6,
- EL_CONVEYOR_BELT1_SWITCH_LEFT,
- EL_CONVEYOR_BELT1_SWITCH_MIDDLE,
- EL_CONVEYOR_BELT1_SWITCH_RIGHT,
- EL_CONVEYOR_BELT2_SWITCH_LEFT,
- EL_CONVEYOR_BELT2_SWITCH_MIDDLE,
- EL_CONVEYOR_BELT2_SWITCH_RIGHT,
- EL_CONVEYOR_BELT3_SWITCH_LEFT,
- EL_CONVEYOR_BELT3_SWITCH_MIDDLE,
- EL_CONVEYOR_BELT3_SWITCH_RIGHT,
- EL_CONVEYOR_BELT4_SWITCH_LEFT,
- EL_CONVEYOR_BELT4_SWITCH_MIDDLE,
- EL_CONVEYOR_BELT4_SWITCH_RIGHT,
+ EL_SP_CHIP_TOP,
+ EL_SP_CHIP_BOTTOM,
+ EL_SP_HARDWARE_GRAY,
+ EL_SP_HARDWARE_GREEN,
+ EL_SP_HARDWARE_BLUE,
+ EL_SP_HARDWARE_RED,
+ EL_SP_HARDWARE_YELLOW,
+ EL_SP_HARDWARE_BASE_1,
+ EL_SP_HARDWARE_BASE_2,
+ EL_SP_HARDWARE_BASE_3,
+ EL_SP_HARDWARE_BASE_4,
+ EL_SP_HARDWARE_BASE_5,
+ EL_SP_HARDWARE_BASE_6,
+ EL_CONVEYOR_BELT_1_SWITCH_LEFT,
+ EL_CONVEYOR_BELT_1_SWITCH_MIDDLE,
+ EL_CONVEYOR_BELT_1_SWITCH_RIGHT,
+ EL_CONVEYOR_BELT_2_SWITCH_LEFT,
+ EL_CONVEYOR_BELT_2_SWITCH_MIDDLE,
+ EL_CONVEYOR_BELT_2_SWITCH_RIGHT,
+ EL_CONVEYOR_BELT_3_SWITCH_LEFT,
+ EL_CONVEYOR_BELT_3_SWITCH_MIDDLE,
+ EL_CONVEYOR_BELT_3_SWITCH_RIGHT,
+ EL_CONVEYOR_BELT_4_SWITCH_LEFT,
+ EL_CONVEYOR_BELT_4_SWITCH_MIDDLE,
+ EL_CONVEYOR_BELT_4_SWITCH_RIGHT,
EL_SIGN_EXCLAMATION,
EL_SIGN_RADIOACTIVITY,
EL_SIGN_STOP,
EL_SIGN_YINYANG,
EL_SIGN_OTHER,
EL_STEELWALL_SLANTED,
- EL_EMC_STEELWALL1,
- EL_EMC_STEELWALL2,
- EL_EMC_STEELWALL3,
- EL_EMC_STEELWALL4,
- EL_EMC_WALL_PILLAR_UPPER,
- EL_EMC_WALL_PILLAR_MIDDLE,
- EL_EMC_WALL_PILLAR_LOWER,
- EL_EMC_WALL4,
- EL_EMC_WALL5,
- EL_EMC_WALL6,
- EL_EMC_WALL7,
- EL_EMC_WALL8
+ EL_EMC_STEELWALL_1,
+ EL_EMC_STEELWALL_2,
+ EL_EMC_STEELWALL_3,
+ EL_EMC_STEELWALL_4,
+ EL_EMC_WALL_1,
+ EL_EMC_WALL_2,
+ EL_EMC_WALL_3,
+ EL_EMC_WALL_4,
+ EL_EMC_WALL_5,
+ EL_EMC_WALL_6,
+ EL_EMC_WALL_7,
+ EL_EMC_WALL_8
};
static int ep_inactive_num = SIZEOF_ARRAY_INT(ep_inactive);
EL_BOMB,
EL_DYNAMITE_ACTIVE,
EL_DYNAMITE,
- EL_DYNABOMB_PLAYER1_ACTIVE,
- EL_DYNABOMB_PLAYER2_ACTIVE,
- EL_DYNABOMB_PLAYER3_ACTIVE,
- EL_DYNABOMB_PLAYER4_ACTIVE,
- EL_DYNABOMB_NR,
- EL_DYNABOMB_SZ,
- EL_DYNABOMB_XL,
+ EL_DYNABOMB_PLAYER_1_ACTIVE,
+ EL_DYNABOMB_PLAYER_2_ACTIVE,
+ EL_DYNABOMB_PLAYER_3_ACTIVE,
+ EL_DYNABOMB_PLAYER_4_ACTIVE,
+ EL_DYNABOMB_INCREASE_NUMBER,
+ EL_DYNABOMB_INCREASE_SIZE,
+ EL_DYNABOMB_INCREASE_POWER,
+ EL_SP_DISK_RED_ACTIVE,
EL_BUG,
EL_MOLE,
EL_PENGUIN,
static int ep_player[] =
{
- EL_PLAYER1,
- EL_PLAYER2,
- EL_PLAYER3,
- EL_PLAYER4
+ EL_PLAYER_1,
+ EL_PLAYER_2,
+ EL_PLAYER_3,
+ EL_PLAYER_4
};
static int ep_player_num = SIZEOF_ARRAY_INT(ep_player);
EL_SP_MURPHY,
EL_SP_INFOTRON,
EL_SP_CHIP_SINGLE,
- EL_SP_HARD_GRAY,
+ EL_SP_HARDWARE_GRAY,
EL_SP_EXIT_CLOSED,
EL_SP_EXIT_OPEN,
EL_SP_DISK_ORANGE,
- EL_SP_PORT1_RIGHT,
- EL_SP_PORT1_DOWN,
- EL_SP_PORT1_LEFT,
- EL_SP_PORT1_UP,
- EL_SP_PORT2_RIGHT,
- EL_SP_PORT2_DOWN,
- EL_SP_PORT2_LEFT,
- EL_SP_PORT2_UP,
+ EL_SP_PORT_RIGHT,
+ EL_SP_PORT_DOWN,
+ EL_SP_PORT_LEFT,
+ EL_SP_PORT_UP,
+ EL_SP_GRAVITY_PORT_RIGHT,
+ EL_SP_GRAVITY_PORT_DOWN,
+ EL_SP_GRAVITY_PORT_LEFT,
+ EL_SP_GRAVITY_PORT_UP,
EL_SP_SNIKSNAK,
EL_SP_DISK_YELLOW,
EL_SP_TERMINAL,
EL_SP_DISK_RED,
- EL_SP_PORT_Y,
- EL_SP_PORT_X,
- EL_SP_PORT_XY,
+ EL_SP_PORT_VERTICAL,
+ EL_SP_PORT_HORIZONTAL,
+ EL_SP_PORT_ANY,
EL_SP_ELECTRON,
EL_SP_BUGGY_BASE,
EL_SP_CHIP_LEFT,
EL_SP_CHIP_RIGHT,
- EL_SP_HARD_BASE1,
- EL_SP_HARD_GREEN,
- EL_SP_HARD_BLUE,
- EL_SP_HARD_RED,
- EL_SP_HARD_YELLOW,
- EL_SP_HARD_BASE2,
- EL_SP_HARD_BASE3,
- EL_SP_HARD_BASE4,
- EL_SP_HARD_BASE5,
- EL_SP_HARD_BASE6,
- EL_SP_CHIP_UPPER,
- EL_SP_CHIP_LOWER,
+ EL_SP_HARDWARE_BASE_1,
+ EL_SP_HARDWARE_GREEN,
+ EL_SP_HARDWARE_BLUE,
+ EL_SP_HARDWARE_RED,
+ EL_SP_HARDWARE_YELLOW,
+ EL_SP_HARDWARE_BASE_2,
+ EL_SP_HARDWARE_BASE_3,
+ EL_SP_HARDWARE_BASE_4,
+ EL_SP_HARDWARE_BASE_5,
+ EL_SP_HARDWARE_BASE_6,
+ EL_SP_CHIP_TOP,
+ EL_SP_CHIP_BOTTOM,
/* additional elements that appeared in newer Supaplex levels */
EL_INVISIBLE_WALL,
/* more than one murphy in a level results in an inactive clone */
static int ep_quick_gate[] =
{
- EL_EM_GATE1,
- EL_EM_GATE2,
- EL_EM_GATE3,
- EL_EM_GATE4,
- EL_EM_GATE1_GRAY,
- EL_EM_GATE2_GRAY,
- EL_EM_GATE3_GRAY,
- EL_EM_GATE4_GRAY,
- EL_SP_PORT1_LEFT,
- EL_SP_PORT2_LEFT,
- EL_SP_PORT1_RIGHT,
- EL_SP_PORT2_RIGHT,
- EL_SP_PORT1_UP,
- EL_SP_PORT2_UP,
- EL_SP_PORT1_DOWN,
- EL_SP_PORT2_DOWN,
- EL_SP_PORT_X,
- EL_SP_PORT_Y,
- EL_SP_PORT_XY,
+ EL_EM_GATE_1,
+ EL_EM_GATE_2,
+ EL_EM_GATE_3,
+ EL_EM_GATE_4,
+ EL_EM_GATE_1_GRAY,
+ EL_EM_GATE_2_GRAY,
+ EL_EM_GATE_3_GRAY,
+ EL_EM_GATE_4_GRAY,
+ EL_SP_PORT_LEFT,
+ EL_SP_PORT_RIGHT,
+ EL_SP_PORT_UP,
+ EL_SP_PORT_DOWN,
+ EL_SP_GRAVITY_PORT_LEFT,
+ EL_SP_GRAVITY_PORT_RIGHT,
+ EL_SP_GRAVITY_PORT_UP,
+ EL_SP_GRAVITY_PORT_DOWN,
+ EL_SP_PORT_HORIZONTAL,
+ EL_SP_PORT_VERTICAL,
+ EL_SP_PORT_ANY,
EL_SWITCHGATE_OPEN,
EL_TIMEGATE_OPEN
};
static int ep_over_player[] =
{
- EL_SP_PORT1_LEFT,
- EL_SP_PORT2_LEFT,
- EL_SP_PORT1_RIGHT,
- EL_SP_PORT2_RIGHT,
- EL_SP_PORT1_UP,
- EL_SP_PORT2_UP,
- EL_SP_PORT1_DOWN,
- EL_SP_PORT2_DOWN,
- EL_SP_PORT_X,
- EL_SP_PORT_Y,
- EL_SP_PORT_XY,
- EL_TUBE_ALL,
+ EL_SP_PORT_LEFT,
+ EL_SP_PORT_RIGHT,
+ EL_SP_PORT_UP,
+ EL_SP_PORT_DOWN,
+ EL_SP_GRAVITY_PORT_LEFT,
+ EL_SP_GRAVITY_PORT_RIGHT,
+ EL_SP_GRAVITY_PORT_UP,
+ EL_SP_GRAVITY_PORT_DOWN,
+ EL_SP_PORT_HORIZONTAL,
+ EL_SP_PORT_VERTICAL,
+ EL_SP_PORT_ANY,
+ EL_TUBE_ANY,
EL_TUBE_VERTICAL,
EL_TUBE_HORIZONTAL,
EL_TUBE_VERTICAL_LEFT,
static int ep_active_bomb[] =
{
EL_DYNAMITE_ACTIVE,
- EL_DYNABOMB_PLAYER1_ACTIVE,
- EL_DYNABOMB_PLAYER2_ACTIVE,
- EL_DYNABOMB_PLAYER3_ACTIVE,
- EL_DYNABOMB_PLAYER4_ACTIVE
+ EL_DYNABOMB_PLAYER_1_ACTIVE,
+ EL_DYNABOMB_PLAYER_2_ACTIVE,
+ EL_DYNABOMB_PLAYER_3_ACTIVE,
+ EL_DYNABOMB_PLAYER_4_ACTIVE,
+ EL_SP_DISK_RED_ACTIVE
};
static int ep_active_bomb_num = SIZEOF_ARRAY_INT(ep_active_bomb);
static int ep_belt[] =
{
- EL_CONVEYOR_BELT1_LEFT,
- EL_CONVEYOR_BELT1_MIDDLE,
- EL_CONVEYOR_BELT1_RIGHT,
- EL_CONVEYOR_BELT2_LEFT,
- EL_CONVEYOR_BELT2_MIDDLE,
- EL_CONVEYOR_BELT2_RIGHT,
- EL_CONVEYOR_BELT3_LEFT,
- EL_CONVEYOR_BELT3_MIDDLE,
- EL_CONVEYOR_BELT3_RIGHT,
- EL_CONVEYOR_BELT4_LEFT,
- EL_CONVEYOR_BELT4_MIDDLE,
- EL_CONVEYOR_BELT4_RIGHT,
+ EL_CONVEYOR_BELT_1_LEFT,
+ EL_CONVEYOR_BELT_1_MIDDLE,
+ EL_CONVEYOR_BELT_1_RIGHT,
+ EL_CONVEYOR_BELT_2_LEFT,
+ EL_CONVEYOR_BELT_2_MIDDLE,
+ EL_CONVEYOR_BELT_2_RIGHT,
+ EL_CONVEYOR_BELT_3_LEFT,
+ EL_CONVEYOR_BELT_3_MIDDLE,
+ EL_CONVEYOR_BELT_3_RIGHT,
+ EL_CONVEYOR_BELT_4_LEFT,
+ EL_CONVEYOR_BELT_4_MIDDLE,
+ EL_CONVEYOR_BELT_4_RIGHT,
};
static int ep_belt_num = SIZEOF_ARRAY_INT(ep_belt);
static int ep_belt_active[] =
{
- EL_CONVEYOR_BELT1_LEFT_ACTIVE,
- EL_CONVEYOR_BELT1_MIDDLE_ACTIVE,
- EL_CONVEYOR_BELT1_RIGHT_ACTIVE,
- EL_CONVEYOR_BELT2_LEFT_ACTIVE,
- EL_CONVEYOR_BELT2_MIDDLE_ACTIVE,
- EL_CONVEYOR_BELT2_RIGHT_ACTIVE,
- EL_CONVEYOR_BELT3_LEFT_ACTIVE,
- EL_CONVEYOR_BELT3_MIDDLE_ACTIVE,
- EL_CONVEYOR_BELT3_RIGHT_ACTIVE,
- EL_CONVEYOR_BELT4_LEFT_ACTIVE,
- EL_CONVEYOR_BELT4_MIDDLE_ACTIVE,
- EL_CONVEYOR_BELT4_RIGHT_ACTIVE,
+ EL_CONVEYOR_BELT_1_LEFT_ACTIVE,
+ EL_CONVEYOR_BELT_1_MIDDLE_ACTIVE,
+ EL_CONVEYOR_BELT_1_RIGHT_ACTIVE,
+ EL_CONVEYOR_BELT_2_LEFT_ACTIVE,
+ EL_CONVEYOR_BELT_2_MIDDLE_ACTIVE,
+ EL_CONVEYOR_BELT_2_RIGHT_ACTIVE,
+ EL_CONVEYOR_BELT_3_LEFT_ACTIVE,
+ EL_CONVEYOR_BELT_3_MIDDLE_ACTIVE,
+ EL_CONVEYOR_BELT_3_RIGHT_ACTIVE,
+ EL_CONVEYOR_BELT_4_LEFT_ACTIVE,
+ EL_CONVEYOR_BELT_4_MIDDLE_ACTIVE,
+ EL_CONVEYOR_BELT_4_RIGHT_ACTIVE,
};
static int ep_belt_active_num = SIZEOF_ARRAY_INT(ep_belt_active);
static int ep_belt_switch[] =
{
- EL_CONVEYOR_BELT1_SWITCH_LEFT,
- EL_CONVEYOR_BELT1_SWITCH_MIDDLE,
- EL_CONVEYOR_BELT1_SWITCH_RIGHT,
- EL_CONVEYOR_BELT2_SWITCH_LEFT,
- EL_CONVEYOR_BELT2_SWITCH_MIDDLE,
- EL_CONVEYOR_BELT2_SWITCH_RIGHT,
- EL_CONVEYOR_BELT3_SWITCH_LEFT,
- EL_CONVEYOR_BELT3_SWITCH_MIDDLE,
- EL_CONVEYOR_BELT3_SWITCH_RIGHT,
- EL_CONVEYOR_BELT4_SWITCH_LEFT,
- EL_CONVEYOR_BELT4_SWITCH_MIDDLE,
- EL_CONVEYOR_BELT4_SWITCH_RIGHT,
+ EL_CONVEYOR_BELT_1_SWITCH_LEFT,
+ EL_CONVEYOR_BELT_1_SWITCH_MIDDLE,
+ EL_CONVEYOR_BELT_1_SWITCH_RIGHT,
+ EL_CONVEYOR_BELT_2_SWITCH_LEFT,
+ EL_CONVEYOR_BELT_2_SWITCH_MIDDLE,
+ EL_CONVEYOR_BELT_2_SWITCH_RIGHT,
+ EL_CONVEYOR_BELT_3_SWITCH_LEFT,
+ EL_CONVEYOR_BELT_3_SWITCH_MIDDLE,
+ EL_CONVEYOR_BELT_3_SWITCH_RIGHT,
+ EL_CONVEYOR_BELT_4_SWITCH_LEFT,
+ EL_CONVEYOR_BELT_4_SWITCH_MIDDLE,
+ EL_CONVEYOR_BELT_4_SWITCH_RIGHT,
};
static int ep_belt_switch_num = SIZEOF_ARRAY_INT(ep_belt_switch);
static int ep_tube[] =
{
- EL_TUBE_ALL,
+ EL_TUBE_ANY,
EL_TUBE_VERTICAL,
EL_TUBE_HORIZONTAL,
EL_TUBE_VERTICAL_LEFT,