X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.c;h=f2db9290d0f05161acc2f816c3ce3f116f79c589;hb=a7c06161253796a30a0237a7f5a044f459c8cf35;hp=e4206751ca2c707dea905b4409477e46205cb7be;hpb=5a5342a6ab48037839b783adc4f3304331834a8c;p=rocksndiamonds.git diff --git a/src/main.c b/src/main.c index e4206751..ca59e8f6 100644 --- a/src/main.c +++ b/src/main.c @@ -1,7 +1,7 @@ /*********************************************************** * Rocks'n'Diamonds -- McDuffin Strikes Back! * *----------------------------------------------------------* -* (c) 1995-2002 Artsoft Entertainment * +* (c) 1995-2006 Artsoft Entertainment * * Holger Schemel * * Detmolder Strasse 189 * * 33604 Bielefeld * @@ -16,90 +16,174 @@ #include "main.h" #include "init.h" #include "game.h" +#include "tape.h" +#include "tools.h" #include "events.h" +#include "config.h" -#if 0 -GC tile_clip_gc; -Bitmap *pix[NUM_BITMAPS]; -#endif -Bitmap *bitmap_db_field, *bitmap_db_door; -#if 0 -Pixmap tile_clipmask[NUM_TILES]; -#endif -DrawBuffer *fieldbuffer; -DrawBuffer *drawto_field; +Bitmap *bitmap_db_store; +Bitmap *bitmap_db_cross; +Bitmap *bitmap_db_field; +Bitmap *bitmap_db_panel; +Bitmap *bitmap_db_door; +Bitmap *bitmap_db_toons; +DrawBuffer *fieldbuffer; +DrawBuffer *drawto_field; int game_status = -1; boolean level_editor_test_game = FALSE; boolean network_playing = FALSE; +#if defined(TARGET_SDL) +boolean network_server = FALSE; +SDL_Thread *server_thread; +#endif + int key_joystick_mapping = 0; +#if 1 +#if NEW_SCROLL +boolean redraw[2 + MAX_LEV_FIELDX + 2][2 + MAX_LEV_FIELDY + 2]; +#else +boolean redraw[MAX_LEV_FIELDX + 2][MAX_LEV_FIELDY + 2]; +#endif +#else boolean redraw[MAX_BUF_XSIZE][MAX_BUF_YSIZE]; +#endif int redraw_x1 = 0, redraw_y1 = 0; short Feld[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; -short Ur[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short MovPos[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short MovDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short MovDelay[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +short ChangeDelay[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +short ChangePage[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +short CustomValue[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short Store[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short Store2[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short StorePlayer[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +short Back[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; boolean Stop[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; -short JustStopped[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +boolean Pushed[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +short ChangeCount[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +short ChangeEvent[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +short WasJustMoving[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +short WasJustFalling[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +short CheckCollision[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +short CheckImpact[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short AmoebaCnt[MAX_NUM_AMOEBA]; short AmoebaCnt2[MAX_NUM_AMOEBA]; -short ExplodePhase[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short ExplodeField[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; - -unsigned long Properties1[MAX_NUM_ELEMENTS]; -unsigned long Properties2[MAX_NUM_ELEMENTS]; +short ExplodePhase[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +short ExplodeDelay[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +int RunnerVisit[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +int PlayerVisit[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; int GfxFrame[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; -int GfxAction[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; int GfxRandom[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +int GfxElement[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +int GfxAction[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +int GfxDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +int GfxRedraw[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; + +int ActiveElement[MAX_NUM_ELEMENTS]; +int ActiveButton[NUM_IMAGE_FILES]; +int ActiveFont[NUM_FONTS]; int lev_fieldx, lev_fieldy; int scroll_x, scroll_y; +int WIN_XSIZE = 672, WIN_YSIZE = 560; +int SCR_FIELDX = 17, SCR_FIELDY = 17; +int SX = 8, SY = 8; +int REAL_SX = 6, REAL_SY = 6; +int DX = 566, DY = 60; +int VX = 566, VY = 400; +int EX = 566, EY = 356; +int dDX, dDY; +int SXSIZE = 17 * TILEX; /* SCR_FIELDX * TILEX */ +int SYSIZE = 17 * TILEY; /* SCR_FIELDY * TILEY */ +int FULL_SXSIZE = 2 + 17 * TILEX + 2; /* 2 + SXSIZE + 2 */ +int FULL_SYSIZE = 2 + 17 * TILEY + 2; /* 2 + SYSIZE + 2 */ +int TILESIZE_VAR = TILESIZE; + +#if 1 +int FX, FY; +#else int FX = SX, FY = SY; +#endif int ScrollStepSize; -int ScreenMovDir = MV_NO_MOVING, ScreenMovPos = 0; +int ScreenMovDir = MV_NONE, ScreenMovPos = 0; int ScreenGfxPos = 0; int BorderElement = EL_STEELWALL; int GameFrameDelay = GAME_FRAME_DELAY; int FfwdFrameDelay = FFWD_FRAME_DELAY; +#if 1 +int BX1, BY1; +int BX2, BY2; +#else int BX1 = 0, BY1 = 0; int BX2 = SCR_FIELDX - 1, BY2 = SCR_FIELDY - 1; +#endif int SBX_Left, SBX_Right; int SBY_Upper, SBY_Lower; int ZX, ZY; int ExitX, ExitY; int AllPlayersGone; -int TimeFrames, TimePlayed, TimeLeft; +int TimeFrames, TimePlayed, TimeLeft, TapeTime; boolean network_player_action_received = FALSE; -struct LevelInfo level; +struct LevelSetInfo levelset; +struct LevelInfo level, level_template; struct PlayerInfo stored_player[MAX_PLAYERS], *local_player = NULL; struct HiScore highscore[MAX_SCORE_ENTRIES]; struct TapeInfo tape; struct SetupInfo setup; struct GameInfo game; struct GlobalInfo global; +struct BorderInfo border; +struct ViewportInfo viewport; +struct TitleFadingInfo fading; +struct TitleFadingInfo title_initial_default; +struct TitleFadingInfo title_default; +struct TitleMessageInfo titlemessage_initial_default; +struct TitleMessageInfo titlemessage_initial[MAX_NUM_TITLE_MESSAGES]; +struct TitleMessageInfo titlemessage_default; +struct TitleMessageInfo titlemessage[MAX_NUM_TITLE_MESSAGES]; +struct TitleMessageInfo readme; +struct InitInfo init, init_last; +struct MenuInfo menu; +struct DoorInfo door_1, door_2; +struct RequestInfo request; +struct PreviewInfo preview; + struct GraphicInfo *graphic_info = NULL; struct SoundInfo *sound_info = NULL; +struct MusicInfo *music_info = NULL; +struct MusicFileInfo *music_file_info = NULL; +struct HelpAnimInfo *helpanim_info = NULL; + +SetupFileHash *helptext_info = NULL; +SetupFileHash *image_config_hash = NULL; +SetupFileHash *element_token_hash = NULL; +SetupFileHash *graphic_token_hash = NULL; +SetupFileHash *font_token_hash = NULL; /* ------------------------------------------------------------------------- */ /* element definitions */ /* ------------------------------------------------------------------------- */ -struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = +struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1]; + +/* this contains predefined structure elements to initialize "element_info" */ +struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] = { + /* keyword to start parser: "ELEMENT_INFO_START" <-- do not change! */ + /* ----------------------------------------------------------------------- */ /* "real" level file elements */ /* ----------------------------------------------------------------------- */ @@ -120,9 +204,9 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "normal wall" }, { - "wall_crumbled", + "wall_slippery", "wall", - "round wall" + "slippery wall" }, { "rock", @@ -131,8 +215,8 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = }, { "key_obsolete", - "key", - "key" + "obsolete", + "key (OBSOLETE)" }, { "emerald", @@ -146,23 +230,23 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = }, { "player_obsolete", - "player", - "player" + "obsolete", + "player (OBSOLETE)" }, { "bug", "bug", - "bug" + "bug (random start direction)" }, { "spaceship", "spaceship", - "spaceship" + "spaceship (random start direction)" }, { "yamyam", "yamyam", - "yam yam" + "yam yam (random start direction)" }, { "robot", @@ -171,7 +255,7 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = }, { "steelwall", - "wall", + "steelwall", "steel wall" }, { @@ -187,12 +271,12 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = { "quicksand_empty", "quicksand", - "empty quicksand" + "quicksand (empty)" }, { "quicksand_full", "quicksand", - "quicksand with rock" + "quicksand (with rock)" }, { "amoeba_drop", @@ -222,7 +306,7 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = { "amoeba_wet", "amoeba", - "dropping amoeba" + "dropping amoeba (EM style)" }, { "amoeba_dry", @@ -235,8 +319,8 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "nut with emerald" }, { - "gameoflife", - "gameoflife", + "game_of_life", + "game_of_life", "Conway's wall of life" }, { @@ -245,7 +329,7 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "biomaze" }, { - "dynamite_active", + "dynamite.active", "dynamite", "burning dynamite" }, @@ -260,67 +344,70 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "magic wheel" }, { - "robot_wheel_active", + "robot_wheel.active", "robot_wheel", "magic wheel (running)" }, { - "key1", + "key_1", "key", - "red key" + "key 1" }, { - "key2", + "key_2", "key", - "yellow key" + "key 2" }, { - "key3", + "key_3", "key", - "green key" + "key 3" }, { - "key4", + "key_4", "key", - "blue key" + "key 4" }, { - "gate1", + "gate_1", "gate", - "red door" + "door 1" }, { - "gate2", + "gate_2", "gate", - "yellow door" + "door 2" }, { - "gate3", + "gate_3", "gate", - "green door" + "door 3" }, { - "gate4", + "gate_4", "gate", - "blue door" + "door 4" }, { - "gate1_gray", + "gate_1_gray", "gate", - "gray door (opened by red key)" + "gray door (opened by key 1)" }, { - "gate2_gray", + "gate_2_gray", "gate", - "gray door (opened by yellow key)"}, + "gray door (opened by key 2)" + }, { - "gate3_gray", + "gate_3_gray", "gate", - "gray door (opened by green key)"}, + "gray door (opened by key 3)" + }, { - "gate4_gray", + "gate_4_gray", "gate", - "gray door (opened by blue key)"}, + "gray door (opened by key 4)" + }, { "dynamite", "dynamite", @@ -329,7 +416,7 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = { "pacman", "pacman", - "pac man" + "pac man (random start direction)" }, { "invisible_wall", @@ -342,7 +429,7 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "lamp (off)" }, { - "lamp_active", + "lamp.active", "lamp", "lamp (on)" }, @@ -377,9 +464,9 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "time orb (empty)" }, { - "wall_growing", + "expandable_wall", "wall", - "growing wall" + "growing wall (horizontal, visible)" }, { "bd_diamond", @@ -413,165 +500,165 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = }, { "invisible_steelwall", - "wall", + "steelwall", "invisible steel wall" }, { - "unused_63", - "unused", - "(not used)" + "sokoban_field_player", + "sokoban", + "sokoban field with player" }, { - "dynabomb_nr", - "dynabomb_nr", + "dynabomb_increase_number", + "dynabomb", "increases number of bombs" }, { - "dynabomb_sz", - "dynabomb_sz", + "dynabomb_increase_size", + "dynabomb", "increases explosion size" }, { - "dynabomb_xl", - "dynabomb_xl", + "dynabomb_increase_power", + "dynabomb", "increases power of explosion" }, { "sokoban_object", - "sokoban_object", + "sokoban", "sokoban object" }, { "sokoban_field_empty", - "sokoban_field", + "sokoban", "sokoban empty field" }, { "sokoban_field_full", - "sokoban_field", + "sokoban", "sokoban field with object" }, { - "bd_butterfly_right", + "bd_butterfly.right", "bd_butterfly", "butterfly (starts moving right)"}, { - "bd_butterfly_up", + "bd_butterfly.up", "bd_butterfly", "butterfly (starts moving up)" }, { - "bd_butterfly_left", + "bd_butterfly.left", "bd_butterfly", "butterfly (starts moving left)"}, { - "bd_butterfly_down", + "bd_butterfly.down", "bd_butterfly", "butterfly (starts moving down)"}, { - "bd_firefly_right", + "bd_firefly.right", "bd_firefly", "firefly (starts moving right)" }, { - "bd_firefly_up", + "bd_firefly.up", "bd_firefly", "firefly (starts moving up)" }, { - "bd_firefly_left", + "bd_firefly.left", "bd_firefly", "firefly (starts moving left)" }, { - "bd_firefly_down", + "bd_firefly.down", "bd_firefly", "firefly (starts moving down)" }, { "bd_butterfly", "bd_butterfly", - "butterfly" + "butterfly (random start direction)" }, { "bd_firefly", "bd_firefly", - "firefly" + "firefly (random start direction)" }, { - "player1", + "player_1", "player", - "yellow player" + "player 1" }, { - "player2", + "player_2", "player", - "red player" + "player 2" }, { - "player3", + "player_3", "player", - "green player" + "player 3" }, { - "player4", + "player_4", "player", - "blue player" + "player 4" }, { - "bug_right", + "bug.right", "bug", "bug (starts moving right)" }, { - "bug_up", + "bug.up", "bug", "bug (starts moving up)" }, { - "bug_left", + "bug.left", "bug", "bug (starts moving left)" }, { - "bug_down", + "bug.down", "bug", "bug (starts moving down)" }, { - "spaceship_right", + "spaceship.right", "spaceship", "spaceship (starts moving right)"}, { - "spaceship_up", + "spaceship.up", "spaceship", "spaceship (starts moving up)" }, { - "spaceship_left", + "spaceship.left", "spaceship", "spaceship (starts moving left)"}, { - "spaceship_down", + "spaceship.down", "spaceship", "spaceship (starts moving down)"}, { - "pacman_right", + "pacman.right", "pacman", "pac man (starts moving right)" }, { - "pacman_up", + "pacman.up", "pacman", "pac man (starts moving up)" }, { - "pacman_left", + "pacman.left", "pacman", "pac man (starts moving left)" }, { - "pacman_down", + "pacman.down", "pacman", "pac man (starts moving down)" }, @@ -596,27 +683,27 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "wall with purple emerald" }, { - "acidpool_topleft", + "acid_pool_topleft", "wall", "acid pool (top left)" }, { - "acidpool_topright", + "acid_pool_topright", "wall", "acid pool (top right)" }, { - "acidpool_bottomleft", + "acid_pool_bottomleft", "wall", "acid pool (bottom left)" }, { - "acidpool_bottom", + "acid_pool_bottom", "wall", "acid pool (bottom)" }, { - "acidpool_bottomright", + "acid_pool_bottomright", "wall", "acid pool (bottom right)" }, @@ -648,7 +735,7 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = { "mole", "mole", - "mole" + "mole (random start direction)" }, { "penguin", @@ -661,22 +748,22 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "satellite" }, { - "arrow_blue_left", + "arrow_left", "arrow", "arrow left" }, { - "arrow_blue_right", + "arrow_right", "arrow", "arrow right" }, { - "arrow_blue_up", + "arrow_up", "arrow", "arrow up" }, { - "arrow_blue_down", + "arrow_down", "arrow", "arrow down" }, @@ -691,9 +778,9 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "fire breathing dragon" }, { - "em_key1_file", - "key", - "red key (EM style)" + "em_key_1_file_obsolete", + "obsolete", + "key (OBSOLETE)" }, { "char_space", @@ -721,7 +808,7 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "letter '$'" }, { - "char_procent", + "char_percent", "char", "letter '%'" }, @@ -991,64 +1078,64 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "letter 'Z'" }, { - "char_ae", + "char_bracketleft", "char", - "letter 'Ä'" + "letter '['" }, { - "char_oe", + "char_backslash", "char", - "letter 'Ö'" + "letter '\\'" }, { - "char_ue", + "char_bracketright", "char", - "letter 'Ü'" + "letter ']'" }, { - "char_copyright", + "char_asciicircum", "char", "letter '^'" }, { "char_underscore", "char", - "letter ''" + "letter '_'" }, { - "char_empty", + "char_copyright", "char", - "letter ''" + "letter '©'" }, { - "char_degree", + "char_aumlaut", "char", - "letter ''" + "letter 'Ä'" }, { - "char_tm", + "char_oumlaut", "char", - "letter ''" + "letter 'Ö'" }, { - "char_cursor", + "char_uumlaut", "char", - "letter ''" + "letter 'Ü'" }, { - "char_unused", + "char_degree", "char", - "letter ''" + "letter '°'" }, { - "char_unused", + "char_trademark", "char", - "letter ''" + "letter '®'" }, { - "char_unused", + "char_cursor", "char", - "letter ''" + "letter ' '" }, { "char_unused", @@ -1083,67 +1170,67 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = { "char_unused", "char", - "letter ''" + "letter 'button'" }, { "char_unused", "char", - "letter ''" + "letter 'up'" }, { "char_unused", "char", - "letter ''" + "letter 'down'" }, { - "wall_growing_x", + "expandable_wall_horizontal", "wall", "growing wall (horizontal)" }, { - "wall_growing_y", + "expandable_wall_vertical", "wall", "growing wall (vertical)" }, { - "wall_growing_xy", + "expandable_wall_any", "wall", - "growing wall (all directions)" + "growing wall (any direction)" }, { - "em_gate1", + "em_gate_1", "gate", - "red door (EM style)" + "door 1 (EM style)" }, { - "em_gate2", + "em_gate_2", "gate", - "yellow door (EM style)" + "door 2 (EM style)" }, { - "em_gate3", + "em_gate_3", "gate", - "green door (EM style)" + "door 3 (EM style)" }, { - "em_gate4", + "em_gate_4", "gate", - "blue door (EM style)" + "door 4 (EM style)" }, { - "em_key2_file", - "key", - "yellow key (EM style)" + "em_key_2_file_obsolete", + "obsolete", + "key (OBSOLETE)" }, { - "em_key3_file", - "key", - "green key (EM style)" + "em_key_3_file_obsolete", + "obsolete", + "key (OBSOLETE)" }, { - "em_key4_file", - "key", - "blue key (EM style)" + "em_key_4_file_obsolete", + "obsolete", + "key (OBSOLETE)" }, { "sp_empty_space", @@ -1176,7 +1263,7 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "chip (single)" }, { - "sp_hard_gray", + "sp_hardware_gray", "wall", "hardware" }, @@ -1191,44 +1278,44 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "orange disk" }, { - "sp_port1_right", + "sp_port_right", "sp_port", "port (leading right)" }, { - "sp_port1_down", + "sp_port_down", "sp_port", "port (leading down)" }, { - "sp_port1_left", + "sp_port_left", "sp_port", "port (leading left)" }, { - "sp_port1_up", + "sp_port_up", "sp_port", "port (leading up)" }, { - "sp_port2_right", - "sp_port", - "port (leading right)" + "sp_gravity_port_right", + "sp_gravity_port", + "gravity-on/off port (leading right)" }, { - "sp_port2_down", - "sp_port", - "port (leading down)" + "sp_gravity_port_down", + "sp_gravity_port", + "gravity-on/off port (leading down)" }, { - "sp_port2_left", - "sp_port", - "port (leading left)" + "sp_gravity_port_left", + "sp_gravity_port", + "gravity-on/off port (leading left)" }, { - "sp_port2_up", - "sp_port", - "port (leading up)" + "sp_gravity_port_up", + "sp_gravity_port", + "gravity-on/off port (leading up)" }, { "sp_sniksnak", @@ -1247,23 +1334,23 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = }, { "sp_disk_red", - "sp_disk_red", + "dynamite", "red disk" }, { - "sp_port_y", + "sp_port_vertical", "sp_port", "port (vertical)" }, { - "sp_port_x", + "sp_port_horizontal", "sp_port", "port (horizontal)" }, { - "sp_port_xy", + "sp_port_any", "sp_port", - "port (all directions)" + "port (any direction)" }, { "sp_electron", @@ -1286,94 +1373,94 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "chip (right half)" }, { - "sp_hard_base1", + "sp_hardware_base_1", "wall", "hardware" }, { - "sp_hard_green", + "sp_hardware_green", "wall", "hardware" }, { - "sp_hard_blue", + "sp_hardware_blue", "wall", "hardware" }, { - "sp_hard_red", + "sp_hardware_red", "wall", "hardware" }, { - "sp_hard_yellow", + "sp_hardware_yellow", "wall", "hardware" }, { - "sp_hard_base2", + "sp_hardware_base_2", "wall", "hardware" }, { - "sp_hard_base3", + "sp_hardware_base_3", "wall", "hardware" }, { - "sp_hard_base4", + "sp_hardware_base_4", "wall", "hardware" }, { - "sp_hard_base5", + "sp_hardware_base_5", "wall", "hardware" }, { - "sp_hard_base6", + "sp_hardware_base_6", "wall", "hardware" }, { - "sp_chip_upper", + "sp_chip_top", "wall", "chip (upper half)" }, { - "sp_chip_lower", + "sp_chip_bottom", "wall", "chip (lower half)" }, { - "em_gate1_gray", + "em_gate_1_gray", "gate", - "gray door (EM style, red key)" + "gray door (EM style, key 1)" }, { - "em_gate2_gray", + "em_gate_2_gray", "gate", - "gray door (EM style, yellow key)" + "gray door (EM style, key 2)" }, { - "em_gate3_gray", + "em_gate_3_gray", "gate", - "gray door (EM style, green key)" + "gray door (EM style, key 3)" }, { - "em_gate4_gray", + "em_gate_4_gray", "gate", - "gray door (EM style, blue key)" + "gray door (EM style, key 4)" }, { - "unused_254", - "unused", - "(not used)" + "em_dynamite", + "dynamite", + "dynamite (EM style)" }, { - "unused_255", - "unused", - "(not used)" + "em_dynamite.active", + "dynamite", + "burning dynamite (EM style)" }, { "pearl", @@ -1396,17 +1483,17 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "wall with crystal" }, { - "door_white", + "dc_gate_white", "gate", "white door" }, { - "door_white_gray", + "dc_gate_white_gray", "gate", "gray door (opened by white key)" }, { - "key_white", + "dc_key_white", "key", "white key" }, @@ -1451,134 +1538,134 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "-" }, { - "conveyor_belt1_left", + "conveyor_belt_1_left", "conveyor_belt", - "red conveyor belt (left)" + "conveyor belt 1 (left)" }, { - "conveyor_belt1_middle", + "conveyor_belt_1_middle", "conveyor_belt", - "red conveyor belt (middle)" + "conveyor belt 1 (middle)" }, { - "conveyor_belt1_right", + "conveyor_belt_1_right", "conveyor_belt", - "red conveyor belt (right)" + "conveyor belt 1 (right)" }, { - "conveyor_belt1_switch_left", + "conveyor_belt_1_switch_left", "conveyor_belt_switch", - "switch for red conveyor belt (left)" + "switch for conveyor belt 1 (left)" }, { - "conveyor_belt1_switch_middle", + "conveyor_belt_1_switch_middle", "conveyor_belt_switch", - "switch for red conveyor belt (middle)" + "switch for conveyor belt 1 (middle)" }, { - "conveyor_belt1_switch_right", + "conveyor_belt_1_switch_right", "conveyor_belt_switch", - "switch for red conveyor belt (right)" + "switch for conveyor belt 1 (right)" }, { - "conveyor_belt2_left", + "conveyor_belt_2_left", "conveyor_belt", - "yellow conveyor belt (left)" + "conveyor belt 2 (left)" }, { - "conveyor_belt2_middle", + "conveyor_belt_2_middle", "conveyor_belt", - "yellow conveyor belt (middle)" + "conveyor belt 2 (middle)" }, { - "conveyor_belt2_right", + "conveyor_belt_2_right", "conveyor_belt", - "yellow conveyor belt (right)" + "conveyor belt 2 (right)" }, { - "conveyor_belt2_switch_left", + "conveyor_belt_2_switch_left", "conveyor_belt_switch", - "switch for yellow conveyor belt (left)" + "switch for conveyor belt 2 (left)" }, { - "conveyor_belt2_switch_middle", + "conveyor_belt_2_switch_middle", "conveyor_belt_switch", - "switch for yellow conveyor belt (middle)" + "switch for conveyor belt 2 (middle)" }, { - "conveyor_belt2_switch_right", + "conveyor_belt_2_switch_right", "conveyor_belt_switch", - "switch for yellow conveyor belt (right)" + "switch for conveyor belt 2 (right)" }, { - "conveyor_belt3_left", + "conveyor_belt_3_left", "conveyor_belt", - "green conveyor belt (left)" + "conveyor belt 3 (left)" }, { - "conveyor_belt3_middle", + "conveyor_belt_3_middle", "conveyor_belt", - "green conveyor belt (middle)" + "conveyor belt 3 (middle)" }, { - "conveyor_belt3_right", + "conveyor_belt_3_right", "conveyor_belt", - "green conveyor belt (right)" + "conveyor belt 3 (right)" }, { - "conveyor_belt3_switch_left", + "conveyor_belt_3_switch_left", "conveyor_belt_switch", - "switch for green conveyor belt (left)" + "switch for conveyor belt 3 (left)" }, { - "conveyor_belt3_switch_middle", + "conveyor_belt_3_switch_middle", "conveyor_belt_switch", - "switch for green conveyor belt (middle)" + "switch for conveyor belt 3 (middle)" }, { - "conveyor_belt3_switch_right", + "conveyor_belt_3_switch_right", "conveyor_belt_switch", - "switch for green conveyor belt (right)" + "switch for conveyor belt 3 (right)" }, { - "conveyor_belt4_left", + "conveyor_belt_4_left", "conveyor_belt", - "blue conveyor belt (left)" + "conveyor belt 4 (left)" }, { - "conveyor_belt4_middle", + "conveyor_belt_4_middle", "conveyor_belt", - "blue conveyor belt (middle)" + "conveyor belt 4 (middle)" }, { - "conveyor_belt4_right", + "conveyor_belt_4_right", "conveyor_belt", - "blue conveyor belt (right)" + "conveyor belt 4 (right)" }, { - "conveyor_belt4_switch_left", + "conveyor_belt_4_switch_left", "conveyor_belt_switch", - "switch for blue conveyor belt (left)" + "switch for conveyor belt 4 (left)" }, { - "conveyor_belt4_switch_middle", + "conveyor_belt_4_switch_middle", "conveyor_belt_switch", - "switch for blue conveyor belt (middle)" + "switch for conveyor belt 4 (middle)" }, { - "conveyor_belt4_switch_right", + "conveyor_belt_4_switch_right", "conveyor_belt_switch", - "switch for blue conveyor belt (right)" + "switch for conveyor belt 4 (right)" }, { "landmine", - "sand", - "land mine" + "landmine", + "land mine (not removable)" }, { - "envelope", - "envelope", - "mail envelope" + "envelope_obsolete", + "obsolete", + "envelope (OBSOLETE)" }, { "light_switch", @@ -1586,94 +1673,94 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "light switch (off)" }, { - "light_switch_active", + "light_switch.active", "light_switch", "light switch (on)" }, { "sign_exclamation", - "wall", + "sign", "sign (exclamation)" }, { "sign_radioactivity", - "wall", + "sign", "sign (radio activity)" }, { "sign_stop", - "wall", + "sign", "sign (stop)" }, { "sign_wheelchair", - "wall", + "sign", "sign (wheel chair)" }, { "sign_parking", - "wall", + "sign", "sign (parking)" }, { - "sign_oneway", - "wall", - "sign (one way)" + "sign_no_entry", + "sign", + "sign (no entry)" }, { - "sign_heart", - "wall", - "sign (heart)" + "sign_unused_1", + "sign", + "sign (unused)" }, { - "sign_triangle", - "wall", - "sign (triangle)" + "sign_give_way", + "sign", + "sign (give way)" }, { - "sign_round", - "wall", - "sign (round)" + "sign_entry_forbidden", + "sign", + "sign (entry forbidden)" }, { - "sign_exit", - "wall", - "sign (exit)" + "sign_emergency_exit", + "sign", + "sign (emergency exit)" }, { - "sign_yinyang", - "wall", + "sign_yin_yang", + "sign", "sign (yin yang)" }, { - "sign_other", - "wall", - "sign (other)" + "sign_unused_2", + "sign", + "sign (unused)" }, { - "mole_left", + "mole.left", "mole", "mole (starts moving left)" }, { - "mole_right", + "mole.right", "mole", "mole (starts moving right)" }, { - "mole_up", + "mole.up", "mole", "mole (starts moving up)" }, { - "mole_down", + "mole.down", "mole", "mole (starts moving down)" }, { - "steelwall_slanted", - "wall", - "steel wall (slanted)" + "steelwall_slippery", + "steelwall", + "slippery steel wall" }, { "invisible_sand", @@ -1716,7 +1803,7 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "time gate (closed)" }, { - "timegate_switch_active", + "timegate_switch.active", "timegate_switch", "switch for time gate" }, @@ -1731,94 +1818,94 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "balloon" }, { - "balloon_send_left", + "balloon_switch_left", "balloon_switch", - "send balloon to the left" + "wind switch (left)" }, { - "balloon_send_right", + "balloon_switch_right", "balloon_switch", - "send balloon to the right" + "wind switch (right)" }, { - "balloon_send_up", + "balloon_switch_up", "balloon_switch", - "send balloon up" + "wind switch (up)" }, { - "balloon_send_down", + "balloon_switch_down", "balloon_switch", - "send balloon down" + "wind switch (down)" }, { - "balloon_send_any_direction", + "balloon_switch_any", "balloon_switch", - "send balloon in any direction" + "wind switch (any direction)" }, { - "emc_steelwall1", - "wall", + "emc_steelwall_1", + "steelwall", "steel wall" }, { - "emc_steelwall2", - "wall", + "emc_steelwall_2", + "steelwall", "steel wall" }, { - "emc_steelwall3", - "wall", + "emc_steelwall_3", + "steelwall", "steel wall" }, { - "emc_steelwall4", - "wall", + "emc_steelwall_4", + "steelwall", "steel wall" }, { - "emc_wall_pillar_upper", + "emc_wall_1", "wall", "normal wall" }, { - "emc_wall_pillar_middle", + "emc_wall_2", "wall", "normal wall" }, { - "emc_wall_pillar_lower", + "emc_wall_3", "wall", "normal wall" }, { - "emc_wall4", + "emc_wall_4", "wall", "normal wall" }, { - "emc_wall5", + "emc_wall_5", "wall", "normal wall" }, { - "emc_wall6", + "emc_wall_6", "wall", "normal wall" }, { - "emc_wall7", + "emc_wall_7", "wall", "normal wall" }, { - "emc_wall8", + "emc_wall_8", "wall", "normal wall" }, { - "tube_all", + "tube_any", "tube", - "tube (all directions)" + "tube (any direction)" }, { "tube_vertical", @@ -1882,7 +1969,7 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = }, { "dx_supabomb", - "dx_bomb", + "bomb", "stable bomb (DX style)" }, { @@ -1897,1039 +1984,3362 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = }, { "custom_1", - "custom_1", + "custom", "custom element 1" }, { "custom_2", - "custom_2", + "custom", "custom element 2" }, { "custom_3", - "custom_3", + "custom", "custom element 3" }, { "custom_4", - "custom_4", + "custom", "custom element 4" }, { "custom_5", - "custom_5", + "custom", "custom element 5" }, { "custom_6", - "custom_6", + "custom", "custom element 6" }, { "custom_7", - "custom_7", + "custom", "custom element 7" }, { "custom_8", - "custom_8", + "custom", "custom element 8" }, { "custom_9", - "custom_9", + "custom", "custom element 9" }, { "custom_10", - "custom_10", + "custom", "custom element 10" }, { "custom_11", - "custom_11", + "custom", "custom element 11" }, { "custom_12", - "custom_12", + "custom", "custom element 12" }, { "custom_13", - "custom_13", + "custom", "custom element 13" }, { "custom_14", - "custom_14", + "custom", "custom element 14" }, { "custom_15", - "custom_15", + "custom", "custom element 15" }, { "custom_16", - "custom_16", + "custom", "custom element 16" }, { "custom_17", - "custom_17", + "custom", "custom element 17" }, { "custom_18", - "custom_18", + "custom", "custom element 18" }, { "custom_19", - "custom_19", + "custom", "custom element 19" }, { "custom_20", - "custom_20", + "custom", "custom element 20" }, { "custom_21", - "custom_21", + "custom", "custom element 21" }, { "custom_22", - "custom_22", + "custom", "custom element 22" }, { "custom_23", - "custom_23", + "custom", "custom element 23" }, { "custom_24", - "custom_24", + "custom", "custom element 24" }, { "custom_25", - "custom_25", + "custom", "custom element 25" }, { "custom_26", - "custom_26", + "custom", "custom element 26" }, { "custom_27", - "custom_27", + "custom", "custom element 27" }, { "custom_28", - "custom_28", + "custom", "custom element 28" }, { "custom_29", - "custom_29", + "custom", "custom element 29" }, { "custom_30", - "custom_30", + "custom", "custom element 30" }, { "custom_31", - "custom_31", + "custom", "custom element 31" }, { "custom_32", - "custom_32", + "custom", "custom element 32" }, { "custom_33", - "custom_33", + "custom", "custom element 33" }, { "custom_34", - "custom_34", + "custom", "custom element 34" }, { "custom_35", - "custom_35", + "custom", "custom element 35" }, { "custom_36", - "custom_36", + "custom", "custom element 36" }, { "custom_37", - "custom_37", + "custom", "custom element 37" }, { "custom_38", - "custom_38", + "custom", "custom element 38" }, { "custom_39", - "custom_39", + "custom", "custom element 39" }, { "custom_40", - "custom_40", + "custom", "custom element 40" }, { "custom_41", - "custom_41", + "custom", "custom element 41" }, { "custom_42", - "custom_42", + "custom", "custom element 42" }, { "custom_43", - "custom_43", + "custom", "custom element 43" }, { "custom_44", - "custom_44", + "custom", "custom element 44" }, { "custom_45", - "custom_45", + "custom", "custom element 45" }, { "custom_46", - "custom_46", + "custom", "custom element 46" }, { "custom_47", - "custom_47", + "custom", "custom element 47" }, { "custom_48", - "custom_48", + "custom", "custom element 48" }, { "custom_49", - "custom_49", + "custom", "custom element 49" }, { "custom_50", - "custom_50", + "custom", "custom element 50" }, { "custom_51", - "custom_51", + "custom", "custom element 51" }, { "custom_52", - "custom_52", + "custom", "custom element 52" }, { "custom_53", - "custom_53", + "custom", "custom element 53" }, { "custom_54", - "custom_54", + "custom", "custom element 54" }, { "custom_55", - "custom_55", + "custom", "custom element 55" }, { "custom_56", - "custom_56", + "custom", "custom element 56" }, { "custom_57", - "custom_57", + "custom", "custom element 57" }, { "custom_58", - "custom_58", + "custom", "custom element 58" }, { "custom_59", - "custom_59", + "custom", "custom element 59" }, { "custom_60", - "custom_60", + "custom", "custom element 60" }, { "custom_61", - "custom_61", + "custom", "custom element 61" }, { "custom_62", - "custom_62", + "custom", "custom element 62" }, { "custom_63", - "custom_63", + "custom", "custom element 63" }, { "custom_64", - "custom_64", + "custom", "custom element 64" }, { "custom_65", - "custom_65", + "custom", "custom element 65" }, { "custom_66", - "custom_66", + "custom", "custom element 66" }, { "custom_67", - "custom_67", + "custom", "custom element 67" }, { "custom_68", - "custom_68", + "custom", "custom element 68" }, { "custom_69", - "custom_69", + "custom", "custom element 69" }, { "custom_70", - "custom_70", + "custom", "custom element 70" }, { "custom_71", - "custom_71", + "custom", "custom element 71" }, { "custom_72", - "custom_72", + "custom", "custom element 72" }, { "custom_73", - "custom_73", + "custom", "custom element 73" }, { "custom_74", - "custom_74", + "custom", "custom element 74" }, { "custom_75", - "custom_75", + "custom", "custom element 75" }, { "custom_76", - "custom_76", + "custom", "custom element 76" }, { "custom_77", - "custom_77", + "custom", "custom element 77" }, { "custom_78", - "custom_78", + "custom", "custom element 78" }, { "custom_79", - "custom_79", + "custom", "custom element 79" }, { "custom_80", - "custom_80", + "custom", "custom element 80" }, { "custom_81", - "custom_81", + "custom", "custom element 81" }, { "custom_82", - "custom_82", + "custom", "custom element 82" }, { "custom_83", - "custom_83", + "custom", "custom element 83" }, { "custom_84", - "custom_84", + "custom", "custom element 84" }, { "custom_85", - "custom_85", + "custom", "custom element 85" }, { "custom_86", - "custom_86", + "custom", "custom element 86" }, { "custom_87", - "custom_87", + "custom", "custom element 87" }, { "custom_88", - "custom_88", + "custom", "custom element 88" }, { "custom_89", - "custom_89", + "custom", "custom element 89" }, { "custom_90", - "custom_90", + "custom", "custom element 90" }, { "custom_91", - "custom_91", + "custom", "custom element 91" }, { "custom_92", - "custom_92", + "custom", "custom element 92" }, { "custom_93", - "custom_93", + "custom", "custom element 93" }, { "custom_94", - "custom_94", + "custom", "custom element 94" }, { "custom_95", - "custom_95", + "custom", "custom element 95" }, { "custom_96", - "custom_96", + "custom", "custom element 96" }, { "custom_97", - "custom_97", + "custom", "custom element 97" }, { "custom_98", - "custom_98", + "custom", "custom element 98" }, { "custom_99", - "custom_99", + "custom", "custom element 99" }, { "custom_100", - "custom_100", + "custom", "custom element 100" }, { "custom_101", - "custom_101", + "custom", "custom element 101" }, { "custom_102", - "custom_102", + "custom", "custom element 102" }, { "custom_103", - "custom_103", + "custom", "custom element 103" }, { "custom_104", - "custom_104", + "custom", "custom element 104" }, { "custom_105", - "custom_105", + "custom", "custom element 105" }, { "custom_106", - "custom_106", + "custom", "custom element 106" }, { "custom_107", - "custom_107", + "custom", "custom element 107" }, { "custom_108", - "custom_108", + "custom", "custom element 108" }, { "custom_109", - "custom_109", + "custom", "custom element 109" }, { "custom_110", - "custom_110", + "custom", "custom element 110" }, { "custom_111", - "custom_111", + "custom", "custom element 111" }, { "custom_112", - "custom_112", + "custom", "custom element 112" }, { "custom_113", - "custom_113", + "custom", "custom element 113" }, { "custom_114", - "custom_114", + "custom", "custom element 114" }, { "custom_115", - "custom_115", + "custom", "custom element 115" }, { "custom_116", - "custom_116", + "custom", "custom element 116" }, { "custom_117", - "custom_117", + "custom", "custom element 117" }, { "custom_118", - "custom_118", + "custom", "custom element 118" }, { "custom_119", - "custom_119", + "custom", "custom element 119" }, { "custom_120", - "custom_120", + "custom", "custom element 120" }, { "custom_121", - "custom_121", + "custom", "custom element 121" }, { "custom_122", - "custom_122", + "custom", "custom element 122" }, { "custom_123", - "custom_123", + "custom", "custom element 123" }, { "custom_124", - "custom_124", + "custom", "custom element 124" }, { "custom_125", - "custom_125", + "custom", "custom element 125" }, { "custom_126", - "custom_126", + "custom", "custom element 126" }, { "custom_127", - "custom_127", + "custom", "custom element 127" }, { "custom_128", - "custom_128", + "custom", "custom element 128" }, - - /* ----------------------------------------------------------------------- */ - /* "real" (and therefore drawable) runtime elements */ - /* ----------------------------------------------------------------------- */ - { - "em_key1", - "key", - "-" - }, + "custom_129", + "custom", + "custom element 129" + }, { - "em_key2", - "key", - "-" - }, + "custom_130", + "custom", + "custom element 130" + }, { - "em_key3", - "key", - "-" + "custom_131", + "custom", + "custom element 131" }, { - "em_key4", - "key", - "-" + "custom_132", + "custom", + "custom element 132" }, { - "dynabomb_player1_active", - "dynabomb", - "-" + "custom_133", + "custom", + "custom element 133" }, { - "dynabomb_player2_active", + "custom_134", + "custom", + "custom element 134" + }, + { + "custom_135", + "custom", + "custom element 135" + }, + { + "custom_136", + "custom", + "custom element 136" + }, + { + "custom_137", + "custom", + "custom element 137" + }, + { + "custom_138", + "custom", + "custom element 138" + }, + { + "custom_139", + "custom", + "custom element 139" + }, + { + "custom_140", + "custom", + "custom element 140" + }, + { + "custom_141", + "custom", + "custom element 141" + }, + { + "custom_142", + "custom", + "custom element 142" + }, + { + "custom_143", + "custom", + "custom element 143" + }, + { + "custom_144", + "custom", + "custom element 144" + }, + { + "custom_145", + "custom", + "custom element 145" + }, + { + "custom_146", + "custom", + "custom element 146" + }, + { + "custom_147", + "custom", + "custom element 147" + }, + { + "custom_148", + "custom", + "custom element 148" + }, + { + "custom_149", + "custom", + "custom element 149" + }, + { + "custom_150", + "custom", + "custom element 150" + }, + { + "custom_151", + "custom", + "custom element 151" + }, + { + "custom_152", + "custom", + "custom element 152" + }, + { + "custom_153", + "custom", + "custom element 153" + }, + { + "custom_154", + "custom", + "custom element 154" + }, + { + "custom_155", + "custom", + "custom element 155" + }, + { + "custom_156", + "custom", + "custom element 156" + }, + { + "custom_157", + "custom", + "custom element 157" + }, + { + "custom_158", + "custom", + "custom element 158" + }, + { + "custom_159", + "custom", + "custom element 159" + }, + { + "custom_160", + "custom", + "custom element 160" + }, + { + "custom_161", + "custom", + "custom element 161" + }, + { + "custom_162", + "custom", + "custom element 162" + }, + { + "custom_163", + "custom", + "custom element 163" + }, + { + "custom_164", + "custom", + "custom element 164" + }, + { + "custom_165", + "custom", + "custom element 165" + }, + { + "custom_166", + "custom", + "custom element 166" + }, + { + "custom_167", + "custom", + "custom element 167" + }, + { + "custom_168", + "custom", + "custom element 168" + }, + { + "custom_169", + "custom", + "custom element 169" + }, + { + "custom_170", + "custom", + "custom element 170" + }, + { + "custom_171", + "custom", + "custom element 171" + }, + { + "custom_172", + "custom", + "custom element 172" + }, + { + "custom_173", + "custom", + "custom element 173" + }, + { + "custom_174", + "custom", + "custom element 174" + }, + { + "custom_175", + "custom", + "custom element 175" + }, + { + "custom_176", + "custom", + "custom element 176" + }, + { + "custom_177", + "custom", + "custom element 177" + }, + { + "custom_178", + "custom", + "custom element 178" + }, + { + "custom_179", + "custom", + "custom element 179" + }, + { + "custom_180", + "custom", + "custom element 180" + }, + { + "custom_181", + "custom", + "custom element 181" + }, + { + "custom_182", + "custom", + "custom element 182" + }, + { + "custom_183", + "custom", + "custom element 183" + }, + { + "custom_184", + "custom", + "custom element 184" + }, + { + "custom_185", + "custom", + "custom element 185" + }, + { + "custom_186", + "custom", + "custom element 186" + }, + { + "custom_187", + "custom", + "custom element 187" + }, + { + "custom_188", + "custom", + "custom element 188" + }, + { + "custom_189", + "custom", + "custom element 189" + }, + { + "custom_190", + "custom", + "custom element 190" + }, + { + "custom_191", + "custom", + "custom element 191" + }, + { + "custom_192", + "custom", + "custom element 192" + }, + { + "custom_193", + "custom", + "custom element 193" + }, + { + "custom_194", + "custom", + "custom element 194" + }, + { + "custom_195", + "custom", + "custom element 195" + }, + { + "custom_196", + "custom", + "custom element 196" + }, + { + "custom_197", + "custom", + "custom element 197" + }, + { + "custom_198", + "custom", + "custom element 198" + }, + { + "custom_199", + "custom", + "custom element 199" + }, + { + "custom_200", + "custom", + "custom element 200" + }, + { + "custom_201", + "custom", + "custom element 201" + }, + { + "custom_202", + "custom", + "custom element 202" + }, + { + "custom_203", + "custom", + "custom element 203" + }, + { + "custom_204", + "custom", + "custom element 204" + }, + { + "custom_205", + "custom", + "custom element 205" + }, + { + "custom_206", + "custom", + "custom element 206" + }, + { + "custom_207", + "custom", + "custom element 207" + }, + { + "custom_208", + "custom", + "custom element 208" + }, + { + "custom_209", + "custom", + "custom element 209" + }, + { + "custom_210", + "custom", + "custom element 210" + }, + { + "custom_211", + "custom", + "custom element 211" + }, + { + "custom_212", + "custom", + "custom element 212" + }, + { + "custom_213", + "custom", + "custom element 213" + }, + { + "custom_214", + "custom", + "custom element 214" + }, + { + "custom_215", + "custom", + "custom element 215" + }, + { + "custom_216", + "custom", + "custom element 216" + }, + { + "custom_217", + "custom", + "custom element 217" + }, + { + "custom_218", + "custom", + "custom element 218" + }, + { + "custom_219", + "custom", + "custom element 219" + }, + { + "custom_220", + "custom", + "custom element 220" + }, + { + "custom_221", + "custom", + "custom element 221" + }, + { + "custom_222", + "custom", + "custom element 222" + }, + { + "custom_223", + "custom", + "custom element 223" + }, + { + "custom_224", + "custom", + "custom element 224" + }, + { + "custom_225", + "custom", + "custom element 225" + }, + { + "custom_226", + "custom", + "custom element 226" + }, + { + "custom_227", + "custom", + "custom element 227" + }, + { + "custom_228", + "custom", + "custom element 228" + }, + { + "custom_229", + "custom", + "custom element 229" + }, + { + "custom_230", + "custom", + "custom element 230" + }, + { + "custom_231", + "custom", + "custom element 231" + }, + { + "custom_232", + "custom", + "custom element 232" + }, + { + "custom_233", + "custom", + "custom element 233" + }, + { + "custom_234", + "custom", + "custom element 234" + }, + { + "custom_235", + "custom", + "custom element 235" + }, + { + "custom_236", + "custom", + "custom element 236" + }, + { + "custom_237", + "custom", + "custom element 237" + }, + { + "custom_238", + "custom", + "custom element 238" + }, + { + "custom_239", + "custom", + "custom element 239" + }, + { + "custom_240", + "custom", + "custom element 240" + }, + { + "custom_241", + "custom", + "custom element 241" + }, + { + "custom_242", + "custom", + "custom element 242" + }, + { + "custom_243", + "custom", + "custom element 243" + }, + { + "custom_244", + "custom", + "custom element 244" + }, + { + "custom_245", + "custom", + "custom element 245" + }, + { + "custom_246", + "custom", + "custom element 246" + }, + { + "custom_247", + "custom", + "custom element 247" + }, + { + "custom_248", + "custom", + "custom element 248" + }, + { + "custom_249", + "custom", + "custom element 249" + }, + { + "custom_250", + "custom", + "custom element 250" + }, + { + "custom_251", + "custom", + "custom element 251" + }, + { + "custom_252", + "custom", + "custom element 252" + }, + { + "custom_253", + "custom", + "custom element 253" + }, + { + "custom_254", + "custom", + "custom element 254" + }, + { + "custom_255", + "custom", + "custom element 255" + }, + { + "custom_256", + "custom", + "custom element 256" + }, + { + "em_key_1", + "key", + "key 1 (EM style)" + }, + { + "em_key_2", + "key", + "key 2 (EM style)" + }, + { + "em_key_3", + "key", + "key 3 (EM style)" + }, + { + "em_key_4", + "key", + "key 4 (EM style)" + }, + { + "envelope_1", + "envelope", + "mail envelope 1" + }, + { + "envelope_2", + "envelope", + "mail envelope 2" + }, + { + "envelope_3", + "envelope", + "mail envelope 3" + }, + { + "envelope_4", + "envelope", + "mail envelope 4" + }, + { + "group_1", + "group", + "group element 1" + }, + { + "group_2", + "group", + "group element 2" + }, + { + "group_3", + "group", + "group element 3" + }, + { + "group_4", + "group", + "group element 4" + }, + { + "group_5", + "group", + "group element 5" + }, + { + "group_6", + "group", + "group element 6" + }, + { + "group_7", + "group", + "group element 7" + }, + { + "group_8", + "group", + "group element 8" + }, + { + "group_9", + "group", + "group element 9" + }, + { + "group_10", + "group", + "group element 10" + }, + { + "group_11", + "group", + "group element 11" + }, + { + "group_12", + "group", + "group element 12" + }, + { + "group_13", + "group", + "group element 13" + }, + { + "group_14", + "group", + "group element 14" + }, + { + "group_15", + "group", + "group element 15" + }, + { + "group_16", + "group", + "group element 16" + }, + { + "group_17", + "group", + "group element 17" + }, + { + "group_18", + "group", + "group element 18" + }, + { + "group_19", + "group", + "group element 19" + }, + { + "group_20", + "group", + "group element 20" + }, + { + "group_21", + "group", + "group element 21" + }, + { + "group_22", + "group", + "group element 22" + }, + { + "group_23", + "group", + "group element 23" + }, + { + "group_24", + "group", + "group element 24" + }, + { + "group_25", + "group", + "group element 25" + }, + { + "group_26", + "group", + "group element 26" + }, + { + "group_27", + "group", + "group element 27" + }, + { + "group_28", + "group", + "group element 28" + }, + { + "group_29", + "group", + "group element 29" + }, + { + "group_30", + "group", + "group element 30" + }, + { + "group_31", + "group", + "group element 31" + }, + { + "group_32", + "group", + "group element 32" + }, + { + "unknown", + "unknown", + "unknown element" + }, + { + "trigger_element", + "trigger", + "element triggering change" + }, + { + "trigger_player", + "trigger", + "player triggering change" + }, + { + "sp_gravity_on_port_right", + "sp_gravity_on_port", + "gravity-on port (leading right)" + }, + { + "sp_gravity_on_port_down", + "sp_gravity_on_port", + "gravity-on port (leading down)" + }, + { + "sp_gravity_on_port_left", + "sp_gravity_on_port", + "gravity-on port (leading left)" + }, + { + "sp_gravity_on_port_up", + "sp_gravity_on_port", + "gravity-on port (leading up)" + }, + { + "sp_gravity_off_port_right", + "sp_gravity_off_port", + "gravity-off port (leading right)" + }, + { + "sp_gravity_off_port_down", + "sp_gravity_off_port", + "gravity-off port (leading down)" + }, + { + "sp_gravity_off_port_left", + "sp_gravity_off_port", + "gravity-off port (leading left)" + }, + { + "sp_gravity_off_port_up", + "sp_gravity_off_port", + "gravity-off port (leading up)" + }, + { + "balloon_switch_none", + "balloon_switch", + "wind switch (off)" + }, + { + "emc_gate_5", + "gate", + "door 5 (EMC style)", + }, + { + "emc_gate_6", + "gate", + "door 6 (EMC style)", + }, + { + "emc_gate_7", + "gate", + "door 7 (EMC style)", + }, + { + "emc_gate_8", + "gate", + "door 8 (EMC style)", + }, + { + "emc_gate_5_gray", + "gate", + "gray door (EMC style, key 5)", + }, + { + "emc_gate_6_gray", + "gate", + "gray door (EMC style, key 6)", + }, + { + "emc_gate_7_gray", + "gate", + "gray door (EMC style, key 7)", + }, + { + "emc_gate_8_gray", + "gate", + "gray door (EMC style, key 8)", + }, + { + "emc_key_5", + "key", + "key 5 (EMC style)", + }, + { + "emc_key_6", + "key", + "key 6 (EMC style)", + }, + { + "emc_key_7", + "key", + "key 7 (EMC style)", + }, + { + "emc_key_8", + "key", + "key 8 (EMC style)", + }, + { + "emc_android", + "emc_android", + "android", + }, + { + "emc_grass", + "emc_grass", + "grass", + }, + { + "emc_magic_ball", + "emc_magic_ball", + "magic ball", + }, + { + "emc_magic_ball.active", + "emc_magic_ball", + "magic ball (activated)", + }, + { + "emc_magic_ball_switch", + "emc_magic_ball_switch", + "magic ball switch (off)", + }, + { + "emc_magic_ball_switch.active", + "emc_magic_ball_switch", + "magic ball switch (on)", + }, + { + "emc_spring_bumper", + "emc_spring_bumper", + "spring bumper", + }, + { + "emc_plant", + "emc_plant", + "plant", + }, + { + "emc_lenses", + "emc_lenses", + "lenses", + }, + { + "emc_magnifier", + "emc_magnifier", + "magnifier", + }, + { + "emc_wall_9", + "wall", + "normal wall" + }, + { + "emc_wall_10", + "wall", + "normal wall" + }, + { + "emc_wall_11", + "wall", + "normal wall" + }, + { + "emc_wall_12", + "wall", + "normal wall" + }, + { + "emc_wall_13", + "wall", + "normal wall" + }, + { + "emc_wall_14", + "wall", + "normal wall" + }, + { + "emc_wall_15", + "wall", + "normal wall" + }, + { + "emc_wall_16", + "wall", + "normal wall" + }, + { + "emc_wall_slippery_1", + "wall", + "slippery wall" + }, + { + "emc_wall_slippery_2", + "wall", + "slippery wall" + }, + { + "emc_wall_slippery_3", + "wall", + "slippery wall" + }, + { + "emc_wall_slippery_4", + "wall", + "slippery wall" + }, + { + "emc_fake_grass", + "fake_grass", + "fake grass" + }, + { + "emc_fake_acid", + "fake_acid", + "fake acid" + }, + { + "emc_dripper", + "dripper", + "dripper" + }, + { + "trigger_ce_value", + "trigger", + "CE value of element triggering change" + }, + { + "trigger_ce_score", + "trigger", + "CE score of element triggering change" + }, + { + "current_ce_value", + "current", + "CE value of current element" + }, + { + "current_ce_score", + "current", + "CE score of current element" + }, + { + "yamyam.left", + "yamyam", + "yam yam (starts moving left)" + }, + { + "yamyam.right", + "yamyam", + "yam yam (starts moving right)" + }, + { + "yamyam.up", + "yamyam", + "yam yam (starts moving up)" + }, + { + "yamyam.down", + "yamyam", + "yam yam (starts moving down)" + }, + { + "bd_expandable_wall", + "wall", + "growing wall (horizontal, BD style)" + }, + { + "prev_ce_8", + "prev_ce", + "CE 8 positions earlier in list" + }, + { + "prev_ce_7", + "prev_ce", + "CE 7 positions earlier in list" + }, + { + "prev_ce_6", + "prev_ce", + "CE 6 positions earlier in list" + }, + { + "prev_ce_5", + "prev_ce", + "CE 5 positions earlier in list" + }, + { + "prev_ce_4", + "prev_ce", + "CE 4 positions earlier in list" + }, + { + "prev_ce_3", + "prev_ce", + "CE 3 positions earlier in list" + }, + { + "prev_ce_2", + "prev_ce", + "CE 2 positions earlier in list" + }, + { + "prev_ce_1", + "prev_ce", + "CE 1 position earlier in list" + }, + { + "self", + "self", + "the current custom element" + }, + { + "next_ce_1", + "next_ce", + "CE 1 position later in list" + }, + { + "next_ce_2", + "next_ce", + "CE 2 positions later in list" + }, + { + "next_ce_3", + "next_ce", + "CE 3 positions later in list" + }, + { + "next_ce_4", + "next_ce", + "CE 4 positions later in list" + }, + { + "next_ce_5", + "next_ce", + "CE 5 positions later in list" + }, + { + "next_ce_6", + "next_ce", + "CE 6 positions later in list" + }, + { + "next_ce_7", + "next_ce", + "CE 7 positions later in list" + }, + { + "next_ce_8", + "next_ce", + "CE 8 positions later in list" + }, + { + "any_element", + "any_element", + "this element matches any element" + }, + { + "steel_char_space", + "steel_char", + "steel letter ' '" + }, + { + "steel_char_exclam", + "steel_char", + "steel letter '!'" + }, + { + "steel_char_quotedbl", + "steel_char", + "steel letter '\"'" + }, + { + "steel_char_numbersign", + "steel_char", + "steel letter '#'" + }, + { + "steel_char_dollar", + "steel_char", + "steel letter '$'" + }, + { + "steel_char_percent", + "steel_char", + "steel letter '%'" + }, + { + "steel_char_ampersand", + "steel_char", + "steel letter '&'" + }, + { + "steel_char_apostrophe", + "steel_char", + "steel letter '''" + }, + { + "steel_char_parenleft", + "steel_char", + "steel letter '('" + }, + { + "steel_char_parenright", + "steel_char", + "steel letter ')'" + }, + { + "steel_char_asterisk", + "steel_char", + "steel letter '*'" + }, + { + "steel_char_plus", + "steel_char", + "steel letter '+'" + }, + { + "steel_char_comma", + "steel_char", + "steel letter ','" + }, + { + "steel_char_minus", + "steel_char", + "steel letter '-'" + }, + { + "steel_char_period", + "steel_char", + "steel letter '.'" + }, + { + "steel_char_slash", + "steel_char", + "steel letter '/'" + }, + { + "steel_char_0", + "steel_char", + "steel letter '0'" + }, + { + "steel_char_1", + "steel_char", + "steel letter '1'" + }, + { + "steel_char_2", + "steel_char", + "steel letter '2'" + }, + { + "steel_char_3", + "steel_char", + "steel letter '3'" + }, + { + "steel_char_4", + "steel_char", + "steel letter '4'" + }, + { + "steel_char_5", + "steel_char", + "steel letter '5'" + }, + { + "steel_char_6", + "steel_char", + "steel letter '6'" + }, + { + "steel_char_7", + "steel_char", + "steel letter '7'" + }, + { + "steel_char_8", + "steel_char", + "steel letter '8'" + }, + { + "steel_char_9", + "steel_char", + "steel letter '9'" + }, + { + "steel_char_colon", + "steel_char", + "steel letter ':'" + }, + { + "steel_char_semicolon", + "steel_char", + "steel letter ';'" + }, + { + "steel_char_less", + "steel_char", + "steel letter '<'" + }, + { + "steel_char_equal", + "steel_char", + "steel letter '='" + }, + { + "steel_char_greater", + "steel_char", + "steel letter '>'" + }, + { + "steel_char_question", + "steel_char", + "steel letter '?'" + }, + { + "steel_char_at", + "steel_char", + "steel letter '@'" + }, + { + "steel_char_a", + "steel_char", + "steel letter 'A'" + }, + { + "steel_char_b", + "steel_char", + "steel letter 'B'" + }, + { + "steel_char_c", + "steel_char", + "steel letter 'C'" + }, + { + "steel_char_d", + "steel_char", + "steel letter 'D'" + }, + { + "steel_char_e", + "steel_char", + "steel letter 'E'" + }, + { + "steel_char_f", + "steel_char", + "steel letter 'F'" + }, + { + "steel_char_g", + "steel_char", + "steel letter 'G'" + }, + { + "steel_char_h", + "steel_char", + "steel letter 'H'" + }, + { + "steel_char_i", + "steel_char", + "steel letter 'I'" + }, + { + "steel_char_j", + "steel_char", + "steel letter 'J'" + }, + { + "steel_char_k", + "steel_char", + "steel letter 'K'" + }, + { + "steel_char_l", + "steel_char", + "steel letter 'L'" + }, + { + "steel_char_m", + "steel_char", + "steel letter 'M'" + }, + { + "steel_char_n", + "steel_char", + "steel letter 'N'" + }, + { + "steel_char_o", + "steel_char", + "steel letter 'O'" + }, + { + "steel_char_p", + "steel_char", + "steel letter 'P'" + }, + { + "steel_char_q", + "steel_char", + "steel letter 'Q'" + }, + { + "steel_char_r", + "steel_char", + "steel letter 'R'" + }, + { + "steel_char_s", + "steel_char", + "steel letter 'S'" + }, + { + "steel_char_t", + "steel_char", + "steel letter 'T'" + }, + { + "steel_char_u", + "steel_char", + "steel letter 'U'" + }, + { + "steel_char_v", + "steel_char", + "steel letter 'V'" + }, + { + "steel_char_w", + "steel_char", + "steel letter 'W'" + }, + { + "steel_char_x", + "steel_char", + "steel letter 'X'" + }, + { + "steel_char_y", + "steel_char", + "steel letter 'Y'" + }, + { + "steel_char_z", + "steel_char", + "steel letter 'Z'" + }, + { + "steel_char_bracketleft", + "steel_char", + "steel letter '['" + }, + { + "steel_char_backslash", + "steel_char", + "steel letter '\\'" + }, + { + "steel_char_bracketright", + "steel_char", + "steel letter ']'" + }, + { + "steel_char_asciicircum", + "steel_char", + "steel letter '^'" + }, + { + "steel_char_underscore", + "steel_char", + "steel letter '_'" + }, + { + "steel_char_copyright", + "steel_char", + "steel letter '©'" + }, + { + "steel_char_aumlaut", + "steel_char", + "steel letter 'Ä'" + }, + { + "steel_char_oumlaut", + "steel_char", + "steel letter 'Ö'" + }, + { + "steel_char_uumlaut", + "steel_char", + "steel letter 'Ü'" + }, + { + "steel_char_degree", + "steel_char", + "steel letter '°'" + }, + { + "steel_char_trademark", + "steel_char", + "steel letter '®'" + }, + { + "steel_char_cursor", + "steel_char", + "steel letter ' '" + }, + { + "steel_char_unused", + "steel_char", + "steel letter ''" + }, + { + "steel_char_unused", + "steel_char", + "steel letter ''" + }, + { + "steel_char_unused", + "steel_char", + "steel letter ''" + }, + { + "steel_char_unused", + "steel_char", + "steel letter ''" + }, + { + "steel_char_unused", + "steel_char", + "steel letter ''" + }, + { + "steel_char_unused", + "steel_char", + "steel letter ''" + }, + { + "steel_char_unused", + "steel_char", + "steel letter 'button'" + }, + { + "steel_char_unused", + "steel_char", + "steel letter 'up'" + }, + { + "steel_char_unused", + "steel_char", + "steel letter 'down'" + }, + { + "sperms", + "frankie", + "sperms" + }, + { + "bullet", + "frankie", + "bullet" + }, + { + "heart", + "frankie", + "heart" + }, + { + "cross", + "frankie", + "cross" + }, + { + "frankie", + "frankie", + "frankie" + }, + { + "sign_sperms", + "sign", + "sign (sperms)" + }, + { + "sign_bullet", + "sign", + "sign (bullet)" + }, + { + "sign_heart", + "sign", + "sign (heart)" + }, + { + "sign_cross", + "sign", + "sign (cross)" + }, + { + "sign_frankie", + "sign", + "sign (frankie)" + }, + { + "steel_exit_closed", + "steel_exit", + "closed steel exit" + }, + { + "steel_exit_open", + "steel_exit", + "open steel exit" + }, + { + "dc_steelwall_1_left", + "steelwall", + "steel wall (left)" + }, + { + "dc_steelwall_1_right", + "steelwall", + "steel wall (right)" + }, + { + "dc_steelwall_1_top", + "steelwall", + "steel wall (top)" + }, + { + "dc_steelwall_1_bottom", + "steelwall", + "steel wall (bottom)" + }, + { + "dc_steelwall_1_horizontal", + "steelwall", + "steel wall (top/bottom)" + }, + { + "dc_steelwall_1_vertical", + "steelwall", + "steel wall (left/right)" + }, + { + "dc_steelwall_1_topleft", + "steelwall", + "steel wall (top/left)" + }, + { + "dc_steelwall_1_topright", + "steelwall", + "steel wall (top/right)" + }, + { + "dc_steelwall_1_bottomleft", + "steelwall", + "steel wall (bottom/left)" + }, + { + "dc_steelwall_1_bottomright", + "steelwall", + "steel wall (bottom/right)" + }, + { + "dc_steelwall_1_topleft_2", + "steelwall", + "steel wall (top/left corner)" + }, + { + "dc_steelwall_1_topright_2", + "steelwall", + "steel wall (top/right corner)" + }, + { + "dc_steelwall_1_bottomleft_2", + "steelwall", + "steel wall (bottom/left corner)" + }, + { + "dc_steelwall_1_bottomright_2", + "steelwall", + "steel wall (bottom/right corner)" + }, + { + "dc_steelwall_2_left", + "steelwall", + "steel wall (left)" + }, + { + "dc_steelwall_2_right", + "steelwall", + "steel wall (right)" + }, + { + "dc_steelwall_2_top", + "steelwall", + "steel wall (top)" + }, + { + "dc_steelwall_2_bottom", + "steelwall", + "steel wall (bottom)" + }, + { + "dc_steelwall_2_horizontal", + "steelwall", + "steel wall (horizontal)" + }, + { + "dc_steelwall_2_vertical", + "steelwall", + "steel wall (vertical)" + }, + { + "dc_steelwall_2_middle", + "steelwall", + "steel wall (middle)" + }, + { + "dc_steelwall_2_single", + "steelwall", + "steel wall (single)" + }, + { + "dc_switchgate_switch_up", + "switchgate_switch", + "switch for switch gate (steel)" + }, + { + "dc_switchgate_switch_down", + "switchgate_switch", + "switch for switch gate (steel)" + }, + { + "dc_timegate_switch", + "timegate_switch", + "switch for time gate (steel)" + }, + { + "dc_timegate_switch.active", + "timegate_switch", + "switch for time gate (steel)" + }, + { + "dc_landmine", + "dc_landmine", + "land mine (DC style, removable)" + }, + { + "expandable_steelwall", + "steelwall", + "growing steel wall" + }, + { + "expandable_steelwall_horizontal", + "steelwall", + "growing steel wall (horizontal)" + }, + { + "expandable_steelwall_vertical", + "steelwall", + "growing steel wall (vertical)" + }, + { + "expandable_steelwall_any", + "steelwall", + "growing steel wall (any direction)" + }, + { + "em_exit_closed", + "em_exit", + "closed exit (EM style)" + }, + { + "em_exit_open", + "em_exit", + "open exit (EM style)" + }, + { + "em_steel_exit_closed", + "em_steel_exit", + "closed steel exit (EM style)" + }, + { + "em_steel_exit_open", + "em_steel_exit", + "open steel exit (EM style)" + }, + { + "dc_gate_fake_gray", + "gate", + "gray door (opened by no key)" + }, + { + "dc_magic_wall", + "dc_magic_wall", + "magic wall (DC style)" + }, + { + "quicksand_fast_empty", + "quicksand", + "fast quicksand (empty)" + }, + { + "quicksand_fast_full", + "quicksand", + "fast quicksand (with rock)" + }, + { + "from_level_template", + "from_level_template", + "element taken from level template" + }, + + /* ----------------------------------------------------------------------- */ + /* "real" (and therefore drawable) runtime elements */ + /* ----------------------------------------------------------------------- */ + + { + "dynabomb_player_1.active", + "dynabomb", + "-" + }, + { + "dynabomb_player_2.active", + "dynabomb", + "-" + }, + { + "dynabomb_player_3.active", + "dynabomb", + "-" + }, + { + "dynabomb_player_4.active", "dynabomb", "-" }, { - "dynabomb_player3_active", - "dynabomb", - "-" + "sp_disk_red.active", + "dynamite", + "-" + }, + { + "switchgate.opening", + "switchgate", + "-" + }, + { + "switchgate.closing", + "switchgate", + "-" + }, + { + "timegate.opening", + "timegate", + "-" + }, + { + "timegate.closing", + "timegate", + "-" + }, + { + "pearl.breaking", + "pearl", + "-" + }, + { + "trap.active", + "trap", + "-" + }, + { + "invisible_steelwall.active", + "steelwall", + "-" + }, + { + "invisible_wall.active", + "wall", + "-" + }, + { + "invisible_sand.active", + "sand", + "-" + }, + { + "conveyor_belt_1_left.active", + "conveyor_belt", + "-" + }, + { + "conveyor_belt_1_middle.active", + "conveyor_belt", + "-" + }, + { + "conveyor_belt_1_right.active", + "conveyor_belt", + "-" + }, + { + "conveyor_belt_2_left.active", + "conveyor_belt", + "-" + }, + { + "conveyor_belt_2_middle.active", + "conveyor_belt", + "-" + }, + { + "conveyor_belt_2_right.active", + "conveyor_belt", + "-" + }, + { + "conveyor_belt_3_left.active", + "conveyor_belt", + "-" + }, + { + "conveyor_belt_3_middle.active", + "conveyor_belt", + "-" + }, + { + "conveyor_belt_3_right.active", + "conveyor_belt", + "-" + }, + { + "conveyor_belt_4_left.active", + "conveyor_belt", + "-" + }, + { + "conveyor_belt_4_middle.active", + "conveyor_belt", + "-" + }, + { + "conveyor_belt_4_right.active", + "conveyor_belt", + "-" + }, + { + "exit.opening", + "exit", + "-" + }, + { + "exit.closing", + "exit", + "-" + }, + { + "steel_exit.opening", + "steel_exit", + "-" + }, + { + "steel_exit.closing", + "steel_exit", + "-" + }, + { + "em_exit.opening", + "em_exit", + "-" + }, + { + "em_exit.closing", + "em_exit", + "-" + }, + { + "em_steel_exit.opening", + "em_steel_exit", + "-" + }, + { + "em_steel_exit.closing", + "em_steel_exit", + "-" + }, + { + "sp_exit.opening", + "sp_exit", + "-" + }, + { + "sp_exit.closing", + "sp_exit", + "-" + }, + { + "sp_exit_open", + "sp_exit", + "-" + }, + { + "sp_terminal.active", + "sp_terminal", + "-" + }, + { + "sp_buggy_base.activating", + "sp_buggy_base", + "-" + }, + { + "sp_buggy_base.active", + "sp_buggy_base", + "-" + }, + { + "sp_murphy_clone", + "murphy_clone", + "-" + }, + { + "amoeba.dropping", + "amoeba", + "-" + }, + { + "quicksand.emptying", + "quicksand", + "-" + }, + { + "quicksand_fast.emptying", + "quicksand", + "-" + }, + { + "magic_wall.active", + "magic_wall", + "-" + }, + { + "bd_magic_wall.active", + "magic_wall", + "-" + }, + { + "dc_magic_wall.active", + "magic_wall", + "-" + }, + { + "magic_wall_full", + "magic_wall", + "-" + }, + { + "bd_magic_wall_full", + "magic_wall", + "-" + }, + { + "dc_magic_wall_full", + "magic_wall", + "-" + }, + { + "magic_wall.emptying", + "magic_wall", + "-" + }, + { + "bd_magic_wall.emptying", + "magic_wall", + "-" + }, + { + "dc_magic_wall.emptying", + "magic_wall", + "-" + }, + { + "magic_wall_dead", + "magic_wall", + "-" + }, + { + "bd_magic_wall_dead", + "magic_wall", + "-" + }, + { + "dc_magic_wall_dead", + "magic_wall", + "-" + }, + + { + "emc_fake_grass.active", + "fake_grass", + "-" + }, + { + "gate_1_gray.active", + "gate", + "" + }, + { + "gate_2_gray.active", + "gate", + "" + }, + { + "gate_3_gray.active", + "gate", + "" + }, + { + "gate_4_gray.active", + "gate", + "" + }, + { + "em_gate_1_gray.active", + "gate", + "" + }, + { + "em_gate_2_gray.active", + "gate", + "" }, { - "dynabomb_player4_active", - "dynabomb", - "-" + "em_gate_3_gray.active", + "gate", + "" }, { - "sp_disk_red_active", - "dynamite", - "-" + "em_gate_4_gray.active", + "gate", + "" }, { - "switchgate_opening", - "switchgate", - "-" + "emc_gate_5_gray.active", + "gate", + "", }, { - "switchgate_closing", - "switchgate", - "-" + "emc_gate_6_gray.active", + "gate", + "", }, { - "timegate_opening", - "timegate", - "-" + "emc_gate_7_gray.active", + "gate", + "", }, { - "timegate_closing", - "timegate", - "-" + "emc_gate_8_gray.active", + "gate", + "", }, { - "pearl_breaking", - "pearl", - "-" + "dc_gate_white_gray.active", + "gate", + "", }, { - "trap_active", - "trap", - "-" + "emc_dripper.active", + "dripper", + "dripper" }, { - "invisible_steelwall_active", - "wall", - "-" + "emc_spring_bumper.active", + "emc_spring_bumper", + "spring bumper", }, + + /* ----------------------------------------------------------------------- */ + /* "unreal" (and therefore not drawable) runtime elements */ + /* ----------------------------------------------------------------------- */ + { - "invisible_wall_active", - "wall", + "blocked", + "-", "-" }, { - "invisible_sand_active", - "sand", + "explosion", + "-", "-" }, { - "conveyor_belt1_left_active", - "conveyor_belt", + "nut.breaking", + "-", "-" }, { - "conveyor_belt1_middle_active", - "conveyor_belt", + "diamond.breaking", + "-", "-" }, { - "conveyor_belt1_right_active", - "conveyor_belt", + "acid_splash_left", + "-", "-" }, { - "conveyor_belt2_left_active", - "conveyor_belt", + "acid_splash_right", + "-", "-" }, { - "conveyor_belt2_middle_active", - "conveyor_belt", + "amoeba.growing", + "-", "-" }, { - "conveyor_belt2_right_active", - "conveyor_belt", + "amoeba.shrinking", + "-", "-" }, { - "conveyor_belt3_left_active", - "conveyor_belt", + "expandable_wall.growing", + "-", "-" }, { - "conveyor_belt3_middle_active", - "conveyor_belt", + "expandable_steelwall.growing", + "-", "-" }, { - "conveyor_belt3_right_active", - "conveyor_belt", + "flames", + "-", "-" }, { - "conveyor_belt4_left_active", - "conveyor_belt", + "player_is_leaving", + "-", "-" }, { - "conveyor_belt4_middle_active", - "conveyor_belt", + "player_is_exploding_1", + "-", "-" }, { - "conveyor_belt4_right_active", - "conveyor_belt", + "player_is_exploding_2", + "-", "-" }, { - "exit_opening", - "exit", + "player_is_exploding_3", + "-", "-" }, { - "sp_exit_open", - "sp_exit", + "player_is_exploding_4", + "-", "-" }, { - "sp_terminal_active", - "sp_terminal", + "quicksand.filling", + "quicksand", "-" }, { - "sp_buggy_base_activating", - "sp_buggy_base", + "quicksand_fast.filling", + "quicksand", "-" }, { - "sp_buggy_base_active", - "sp_buggy_base", + "magic_wall.filling", + "-", "-" }, { - "sp_murphy_clone", - "murphy_clone", + "bd_magic_wall.filling", + "-", "-" }, { - "amoeba_dripping", - "amoeba", + "dc_magic_wall.filling", + "-", "-" }, { - "quicksand_emptying", - "quicksand", + "element.snapping", + "-", "-" }, { - "magic_wall_active", - "magic_wall", + "diagonal.shrinking", + "-", "-" }, { - "bd_magic_wall_active", - "magic_wall", + "diagonal.growing", + "-", "-" }, + + /* ----------------------------------------------------------------------- */ + /* dummy elements (never used as game elements, only used as graphics) */ + /* ----------------------------------------------------------------------- */ + { - "magic_wall_full", - "magic_wall", + "steelwall_topleft", + "-", "-" }, { - "bd_magic_wall_full", - "magic_wall", + "steelwall_topright", + "-", "-" }, { - "magic_wall_emptying", - "magic_wall", + "steelwall_bottomleft", + "-", "-" }, { - "bd_magic_wall_emptying", - "magic_wall", + "steelwall_bottomright", + "-", "-" }, { - "magic_wall_dead", - "magic_wall", + "steelwall_horizontal", + "-", "-" }, { - "bd_magic_wall_dead", - "magic_wall", + "steelwall_vertical", + "-", "-" }, - - /* ----------------------------------------------------------------------- */ - /* "unreal" (and therefore not drawable) runtime elements */ - /* ----------------------------------------------------------------------- */ - { - "blocked", + "invisible_steelwall_topleft", "-", "-" }, { - "explosion", + "invisible_steelwall_topright", "-", "-" }, { - "nut_cracking", + "invisible_steelwall_bottomleft", "-", "-" }, { - "acid_splash_left", + "invisible_steelwall_bottomright", "-", "-" }, { - "acid_splash_right", + "invisible_steelwall_horizontal", "-", "-" }, { - "amoeba_creating", + "invisible_steelwall_vertical", "-", "-" }, { - "amoeba_shrinking", + "dynabomb", "-", "-" }, { - "wall_growing_active", + "dynabomb.active", "-", "-" }, { - "flames", + "dynabomb_player_1", "-", "-" }, { - "player_is_leaving", + "dynabomb_player_2", "-", "-" }, { - "quicksand_filling", + "dynabomb_player_3", "-", "-" }, { - "magic_wall_filling", + "dynabomb_player_4", "-", "-" }, { - "bd_magic_wall_filling", + "shield_normal.active", "-", "-" }, - - /* ----------------------------------------------------------------------- */ - /* dummy elements (never used as game elements, only used as graphics) */ - /* ----------------------------------------------------------------------- */ - { - "steelwall_topleft", + "shield_deadly.active", "-", "-" }, { - "steelwall_topright", - "-", + "amoeba", + "amoeba", "-" }, { - "steelwall_bottomleft", - "-", + "[default]", + "default", "-" }, { - "steelwall_bottomright", - "-", + "[bd_default]", + "bd_default", "-" }, { - "steelwall_horizontal", - "-", + "[sp_default]", + "sp_default", "-" }, { - "steelwall_vertical", - "-", + "[sb_default]", + "sb_default", "-" }, { - "invisible_steelwall_topleft", - "-", + "graphic_1", + "graphic", "-" }, { - "invisible_steelwall_topright", - "-", + "graphic_2", + "graphic", "-" }, { - "invisible_steelwall_bottomleft", - "-", + "graphic_3", + "graphic", "-" }, { - "invisible_steelwall_bottomright", - "-", + "graphic_4", + "graphic", "-" }, { - "invisible_steelwall_horizontal", - "-", + "graphic_5", + "graphic", "-" }, { - "invisible_steelwall_vertical", - "-", + "graphic_6", + "graphic", "-" }, { - "sand_crumbled", - "-", + "graphic_7", + "graphic", "-" }, { - "dynabomb_active", - "-", + "graphic_8", + "graphic", "-" }, { - "shield_normal_active", - "-", - "-" + "internal_clipboard_custom", + "internal", + "empty custom element" }, { - "shield_deadly_active", - "-", + "internal_clipboard_change", + "internal", + "empty change page" + }, + { + "internal_clipboard_group", + "internal", + "empty group element" + }, + { + "internal_dummy", + "internal", "-" }, + { + "internal_cascade_bd", + "internal", + "show Boulder Dash elements" + }, + { + "internal_cascade_bd.active", + "internal", + "hide Boulder Dash elements" + }, + { + "internal_cascade_em", + "internal", + "show Emerald Mine elements" + }, + { + "internal_cascade_em.active", + "internal", + "hide Emerald Mine elements" + }, + { + "internal_cascade_emc", + "internal", + "show Emerald Mine Club elements" + }, + { + "internal_cascade_emc.active", + "internal", + "hide Emerald Mine Club elements" + }, + { + "internal_cascade_rnd", + "internal", + "show Rocks'n'Diamonds elements" + }, + { + "internal_cascade_rnd.active", + "internal", + "hide Rocks'n'Diamonds elements" + }, + { + "internal_cascade_sb", + "internal", + "show Sokoban elements" + }, + { + "internal_cascade_sb.active", + "internal", + "hide Sokoban elements" + }, + { + "internal_cascade_sp", + "internal", + "show Supaplex elements" + }, + { + "internal_cascade_sp.active", + "internal", + "hide Supaplex elements" + }, + { + "internal_cascade_dc", + "internal", + "show Diamond Caves II elements" + }, + { + "internal_cascade_dc.active", + "internal", + "hide Diamond Caves II elements" + }, + { + "internal_cascade_dx", + "internal", + "show DX Boulderdash elements" + }, + { + "internal_cascade_dx.active", + "internal", + "hide DX Boulderdash elements" + }, + { + "internal_cascade_chars", + "internal", + "show text elements" + }, + { + "internal_cascade_chars.active", + "internal", + "hide text elements" + }, + { + "internal_cascade_steel_chars", + "internal", + "show steel text elements" + }, + { + "internal_cascade_steel_chars.active", + "internal", + "hide steel text elements" + }, + { + "internal_cascade_ce", + "internal", + "show custom elements" + }, + { + "internal_cascade_ce.active", + "internal", + "hide custom elements" + }, + { + "internal_cascade_ge", + "internal", + "show group elements" + }, + { + "internal_cascade_ge.active", + "internal", + "hide group elements" + }, + { + "internal_cascade_ref", + "internal", + "show reference elements" + }, + { + "internal_cascade_ref.active", + "internal", + "hide reference elements" + }, + { + "internal_cascade_user", + "internal", + "show user defined elements" + }, + { + "internal_cascade_user.active", + "internal", + "hide user defined elements" + }, + { + "internal_cascade_dynamic", + "internal", + "show elements used in this level" + }, + { + "internal_cascade_dynamic.active", + "internal", + "hide elements used in this level" + }, + + /* keyword to stop parser: "ELEMENT_INFO_END" <-- do not change! */ { NULL, NULL, - "-" + NULL } }; @@ -2938,61 +5348,151 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = /* element action and direction definitions */ /* ------------------------------------------------------------------------- */ -struct ElementActionInfo element_action_info[NUM_ACTIONS + 1] = +struct ElementActionInfo element_action_info[NUM_ACTIONS + 1 + 1] = { - { ".[DEFAULT]", ACTION_DEFAULT, TRUE }, - { ".waiting", ACTION_WAITING, TRUE }, - { ".falling", ACTION_FALLING, TRUE }, - { ".moving", ACTION_MOVING, TRUE }, - { ".digging", ACTION_DIGGING, FALSE }, - { ".snapping", ACTION_SNAPPING, FALSE }, - { ".collecting", ACTION_COLLECTING, FALSE }, - { ".pushing", ACTION_PUSHING, FALSE }, - { ".passing", ACTION_PASSING, FALSE }, - { ".impact", ACTION_IMPACT, FALSE }, - { ".cracking", ACTION_CRACKING, FALSE }, - { ".breaking", ACTION_BREAKING, FALSE }, - { ".activating", ACTION_ACTIVATING, FALSE }, - { ".opening", ACTION_OPENING, FALSE }, - { ".closing", ACTION_CLOSING, FALSE }, - { ".eating", ACTION_EATING, FALSE }, - { ".attacking", ACTION_ATTACKING, TRUE }, - { ".growing", ACTION_GROWING, TRUE }, - { ".shrinking", ACTION_SHRINKING, FALSE }, - { ".active", ACTION_ACTIVE, TRUE }, - { ".other", ACTION_OTHER, FALSE }, + { ".[DEFAULT]", ACTION_DEFAULT, TRUE }, + { ".waiting", ACTION_WAITING, TRUE }, + { ".falling", ACTION_FALLING, TRUE }, + { ".moving", ACTION_MOVING, TRUE }, + { ".digging", ACTION_DIGGING, FALSE }, + { ".snapping", ACTION_SNAPPING, FALSE }, + { ".collecting", ACTION_COLLECTING, FALSE }, + { ".dropping", ACTION_DROPPING, FALSE }, + { ".pushing", ACTION_PUSHING, FALSE }, + { ".walking", ACTION_WALKING, FALSE }, + { ".passing", ACTION_PASSING, FALSE }, + { ".impact", ACTION_IMPACT, FALSE }, + { ".breaking", ACTION_BREAKING, FALSE }, + { ".activating", ACTION_ACTIVATING, FALSE }, + { ".deactivating", ACTION_DEACTIVATING, FALSE }, + { ".opening", ACTION_OPENING, FALSE }, + { ".closing", ACTION_CLOSING, FALSE }, + { ".attacking", ACTION_ATTACKING, TRUE }, + { ".growing", ACTION_GROWING, TRUE }, + { ".shrinking", ACTION_SHRINKING, FALSE }, + { ".active", ACTION_ACTIVE, TRUE }, + { ".filling", ACTION_FILLING, FALSE }, + { ".emptying", ACTION_EMPTYING, FALSE }, + { ".changing", ACTION_CHANGING, FALSE }, + { ".exploding", ACTION_EXPLODING, FALSE }, + { ".boring", ACTION_BORING, FALSE }, + { ".boring[1]", ACTION_BORING_1, FALSE }, + { ".boring[2]", ACTION_BORING_2, FALSE }, + { ".boring[3]", ACTION_BORING_3, FALSE }, + { ".boring[4]", ACTION_BORING_4, FALSE }, + { ".boring[5]", ACTION_BORING_5, FALSE }, + { ".boring[6]", ACTION_BORING_6, FALSE }, + { ".boring[7]", ACTION_BORING_7, FALSE }, + { ".boring[8]", ACTION_BORING_8, FALSE }, + { ".boring[9]", ACTION_BORING_9, FALSE }, + { ".boring[10]", ACTION_BORING_10, FALSE }, + { ".sleeping", ACTION_SLEEPING, FALSE }, + { ".sleeping[1]", ACTION_SLEEPING_1, FALSE }, + { ".sleeping[2]", ACTION_SLEEPING_2, FALSE }, + { ".sleeping[3]", ACTION_SLEEPING_3, FALSE }, + { ".awakening", ACTION_AWAKENING, FALSE }, + { ".dying", ACTION_DYING, FALSE }, + { ".turning", ACTION_TURNING, FALSE }, + { ".turning_from_left", ACTION_TURNING_FROM_LEFT, FALSE }, + { ".turning_from_right", ACTION_TURNING_FROM_RIGHT, FALSE }, + { ".turning_from_up", ACTION_TURNING_FROM_UP, FALSE }, + { ".turning_from_down", ACTION_TURNING_FROM_DOWN, FALSE }, + { ".smashed_by_rock", ACTION_SMASHED_BY_ROCK, FALSE }, + { ".smashed_by_spring", ACTION_SMASHED_BY_SPRING, FALSE }, + { ".eating", ACTION_EATING, FALSE }, + { ".twinkling", ACTION_TWINKLING, FALSE }, + { ".splashing", ACTION_SPLASHING, FALSE }, + { ".page[1]", ACTION_PAGE_1, FALSE }, + { ".page[2]", ACTION_PAGE_2, FALSE }, + { ".page[3]", ACTION_PAGE_3, FALSE }, + { ".page[4]", ACTION_PAGE_4, FALSE }, + { ".page[5]", ACTION_PAGE_5, FALSE }, + { ".page[6]", ACTION_PAGE_6, FALSE }, + { ".page[7]", ACTION_PAGE_7, FALSE }, + { ".page[8]", ACTION_PAGE_8, FALSE }, + { ".page[9]", ACTION_PAGE_9, FALSE }, + { ".page[10]", ACTION_PAGE_10, FALSE }, + { ".page[11]", ACTION_PAGE_11, FALSE }, + { ".page[12]", ACTION_PAGE_12, FALSE }, + { ".page[13]", ACTION_PAGE_13, FALSE }, + { ".page[14]", ACTION_PAGE_14, FALSE }, + { ".page[15]", ACTION_PAGE_15, FALSE }, + { ".page[16]", ACTION_PAGE_16, FALSE }, + { ".page[17]", ACTION_PAGE_17, FALSE }, + { ".page[18]", ACTION_PAGE_18, FALSE }, + { ".page[19]", ACTION_PAGE_19, FALSE }, + { ".page[20]", ACTION_PAGE_20, FALSE }, + { ".page[21]", ACTION_PAGE_21, FALSE }, + { ".page[22]", ACTION_PAGE_22, FALSE }, + { ".page[23]", ACTION_PAGE_23, FALSE }, + { ".page[24]", ACTION_PAGE_24, FALSE }, + { ".page[25]", ACTION_PAGE_25, FALSE }, + { ".page[26]", ACTION_PAGE_26, FALSE }, + { ".page[27]", ACTION_PAGE_27, FALSE }, + { ".page[28]", ACTION_PAGE_28, FALSE }, + { ".page[29]", ACTION_PAGE_29, FALSE }, + { ".page[30]", ACTION_PAGE_30, FALSE }, + { ".page[31]", ACTION_PAGE_31, FALSE }, + { ".page[32]", ACTION_PAGE_32, FALSE }, + { ".other", ACTION_OTHER, FALSE }, + + /* empty suffix always matches -- check as last entry in InitSoundInfo() */ + { "", ACTION_DEFAULT, TRUE }, - { NULL, 0, 0 } + { NULL, 0, 0 } }; -struct ElementDirectionInfo element_direction_info[NUM_DIRECTIONS + 1] = +struct ElementDirectionInfo element_direction_info[NUM_DIRECTIONS_FULL + 1] = { - { ".left", MV_BIT_LEFT }, - { ".right", MV_BIT_RIGHT }, - { ".up", MV_BIT_UP }, - { ".down", MV_BIT_DOWN }, + { ".left", MV_BIT_LEFT }, + { ".right", MV_BIT_RIGHT }, + { ".up", MV_BIT_UP }, + { ".down", MV_BIT_DOWN }, + { ".upleft", MV_BIT_UP }, + { ".upright", MV_BIT_RIGHT }, + { ".downleft", MV_BIT_LEFT }, + { ".downright", MV_BIT_DOWN }, - { NULL, 0 } + { NULL, 0 } }; -struct SpecialSuffixInfo special_suffix_info[NUM_SPECIAL_GFX_ARGS + 1] = +struct SpecialSuffixInfo special_suffix_info[NUM_SPECIAL_GFX_ARGS + 1 + 1] = { - { ".MAIN", 0, }, - { ".LEVELS", 0, }, - { ".SCORES", 0, }, - { ".EDITOR", 0, }, - { ".INFO", 0, }, - { ".SETUP", 0, }, - { ".DOOR", 0, }, - { ".PREVIEW", 0, }, + { ".[DEFAULT]", GFX_SPECIAL_ARG_DEFAULT, }, + { ".LOADING", GFX_SPECIAL_ARG_LOADING, }, + { ".TITLE_INITIAL", GFX_SPECIAL_ARG_TITLE_INITIAL, }, + { ".TITLE", GFX_SPECIAL_ARG_TITLE, }, + { ".MAIN", GFX_SPECIAL_ARG_MAIN, }, + { ".LEVELS", GFX_SPECIAL_ARG_LEVELS }, + { ".LEVELNR", GFX_SPECIAL_ARG_LEVELNR }, + { ".SCORES", GFX_SPECIAL_ARG_SCORES, }, + { ".EDITOR", GFX_SPECIAL_ARG_EDITOR, }, + { ".INFO", GFX_SPECIAL_ARG_INFO, }, + { ".SETUP", GFX_SPECIAL_ARG_SETUP, }, + { ".PLAYING", GFX_SPECIAL_ARG_PLAYING, }, + { ".DOOR", GFX_SPECIAL_ARG_DOOR, }, + { ".TAPE", GFX_SPECIAL_ARG_TAPE, }, + { ".PANEL", GFX_SPECIAL_ARG_PANEL, }, + { ".PREVIEW", GFX_SPECIAL_ARG_PREVIEW, }, + { ".CRUMBLED", GFX_SPECIAL_ARG_CRUMBLED, }, - { NULL, 0, } + /* empty suffix always matches -- check as last entry in InitMusicInfo() */ + { "", GFX_SPECIAL_ARG_DEFAULT, }, + + { NULL, 0, } }; +#include "conf_var.c" /* include auto-generated data structure definitions */ + + /* ------------------------------------------------------------------------- */ /* font definitions */ /* ------------------------------------------------------------------------- */ +/* Important: When one entry is a prefix of another entry, the longer entry + must come first, because the dynamic configuration does prefix matching! + (These definitions must match the corresponding definitions in "main.h"!) */ + struct FontInfo font_info[NUM_FONTS + 1] = { { "font.initial_1" }, @@ -3001,21 +5501,51 @@ struct FontInfo font_info[NUM_FONTS + 1] = { "font.initial_4" }, { "font.title_1" }, { "font.title_2" }, + { "font.menu_1.active" }, + { "font.menu_2.active" }, { "font.menu_1" }, { "font.menu_2" }, + { "font.text_1.active" }, + { "font.text_2.active" }, + { "font.text_3.active" }, + { "font.text_4.active" }, { "font.text_1" }, { "font.text_2" }, { "font.text_3" }, { "font.text_4" }, - { "font.input" }, - { "font.input.active" }, + { "font.envelope_1" }, + { "font.envelope_2" }, + { "font.envelope_3" }, + { "font.envelope_4" }, + { "font.input_1.active" }, + { "font.input_2.active" }, + { "font.input_1" }, + { "font.input_2" }, { "font.option_off" }, { "font.option_on" }, { "font.value_1" }, { "font.value_2" }, { "font.value_old" }, - { "font.tape_recorder" }, + { "font.level_number.active" }, { "font.level_number" }, + { "font.tape_recorder" }, + { "font.game_info" }, + { "font.info.elements" }, + { "font.info.levelset" }, + + { NULL } +}; + + +/* ------------------------------------------------------------------------- */ +/* music token prefix definitions */ +/* ------------------------------------------------------------------------- */ + +struct MusicPrefixInfo music_prefix_info[NUM_MUSIC_PREFIXES + 1] = +{ + { "background", TRUE }, + + { NULL, 0 } }; @@ -3023,13 +5553,56 @@ struct FontInfo font_info[NUM_FONTS + 1] = /* main() */ /* ========================================================================= */ +static void print_usage() +{ + printf("\n" + "Usage: %s [OPTION]... [HOSTNAME [PORT]]\n" + "\n" + "Options:\n" + " -d, --display HOSTNAME[:SCREEN] specify X server display\n" + " -b, --basepath DIRECTORY alternative base DIRECTORY\n" + " -l, --level DIRECTORY alternative level DIRECTORY\n" + " -g, --graphics DIRECTORY alternative graphics DIRECTORY\n" + " -s, --sounds DIRECTORY alternative sounds DIRECTORY\n" + " -m, --music DIRECTORY alternative music DIRECTORY\n" + " -n, --network network multiplayer game\n" + " --serveronly only start network server\n" + " -v, --verbose verbose mode\n" + " --debug display debugging information\n" + " --debug-x11-sync enable X11 synchronous mode\n" + " -e, --execute COMMAND execute batch COMMAND\n" + "\n" + "Valid commands for '--execute' option:\n" + " \"print graphicsinfo.conf\" print default graphics config\n" + " \"print soundsinfo.conf\" print default sounds config\n" + " \"print musicinfo.conf\" print default music config\n" + " \"print editorsetup.conf\" print default editor config\n" + " \"print helpanim.conf\" print default helpanim config\n" + " \"print helptext.conf\" print default helptext config\n" + " \"dump level FILE\" dump level data from FILE\n" + " \"dump tape FILE\" dump tape data from FILE\n" + " \"autoplay LEVELDIR [NR ...]\" play level tapes for LEVELDIR\n" + " \"convert LEVELDIR [NR]\" convert levels in LEVELDIR\n" + " \"create images DIRECTORY\" write BMP images to DIRECTORY\n" + "\n", + program.command_basename); +} + int main(int argc, char *argv[]) { - InitCommandName(argv[0]); + char * window_title_string = getWindowTitleString(); + + InitProgramInfo(argv[0], USERDATA_DIRECTORY, USERDATA_DIRECTORY_UNIX, + PROGRAM_TITLE_STRING, window_title_string, ICON_TITLE_STRING, + X11_ICON_FILENAME, X11_ICONMASK_FILENAME, SDL_ICON_FILENAME, + MSDOS_POINTER_FILENAME, + COOKIE_PREFIX, FILENAME_PREFIX, GAME_VERSION_ACTUAL); + + InitExitMessageFunction(DisplayExitMessage); InitExitFunction(CloseAllAndExit); - InitPlatformDependantStuff(); + InitPlatformDependentStuff(); - GetOptions(argv); + GetOptions(argv, print_usage); OpenAll(); EventLoop();