X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Feditor.c;h=4c592cf8c2a674ba36efba07f5ea280a1593f9b1;hb=fe3196f07cb50ffb788c0073b82f94c26f93cfbf;hp=04c6a46c074c195602a6f778cb0b15f1902c8e5a;hpb=e4f31a4e6f4b611a1dddb16afb66e3af177dd937;p=rocksndiamonds.git diff --git a/src/editor.c b/src/editor.c index 04c6a46c..4c592cf8 100644 --- a/src/editor.c +++ b/src/editor.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 * @@ -324,7 +324,7 @@ #define GADGET_ID_CUSTOM_COPY (GADGET_ID_TOOLBOX_FIRST + 25) #define GADGET_ID_CUSTOM_PASTE (GADGET_ID_TOOLBOX_FIRST + 26) -/* counter button identifiers */ +/* counter gadget identifiers */ #define GADGET_ID_COUNTER_FIRST (GADGET_ID_TOOLBOX_FIRST + 27) #define GADGET_ID_SELECT_LEVEL_DOWN (GADGET_ID_COUNTER_FIRST + 0) @@ -567,34 +567,36 @@ #define GADGET_ID_CAN_FALL_INTO_ACID (GADGET_ID_CHECKBUTTON_FIRST + 20) #define GADGET_ID_CAN_MOVE_INTO_ACID (GADGET_ID_CHECKBUTTON_FIRST + 21) #define GADGET_ID_DONT_COLLIDE_WITH (GADGET_ID_CHECKBUTTON_FIRST + 22) -#define GADGET_ID_CUSTOM_INDESTRUCTIBLE (GADGET_ID_CHECKBUTTON_FIRST + 23) -#define GADGET_ID_CUSTOM_CAN_EXPLODE (GADGET_ID_CHECKBUTTON_FIRST + 24) -#define GADGET_ID_CUSTOM_EXPLODE_FIRE (GADGET_ID_CHECKBUTTON_FIRST + 25) -#define GADGET_ID_CUSTOM_EXPLODE_SMASH (GADGET_ID_CHECKBUTTON_FIRST + 26) -#define GADGET_ID_CUSTOM_EXPLODE_IMPACT (GADGET_ID_CHECKBUTTON_FIRST + 27) -#define GADGET_ID_CUSTOM_WALK_TO_OBJECT (GADGET_ID_CHECKBUTTON_FIRST + 28) -#define GADGET_ID_CUSTOM_DEADLY (GADGET_ID_CHECKBUTTON_FIRST + 29) -#define GADGET_ID_CUSTOM_CAN_MOVE (GADGET_ID_CHECKBUTTON_FIRST + 30) -#define GADGET_ID_CUSTOM_CAN_FALL (GADGET_ID_CHECKBUTTON_FIRST + 31) -#define GADGET_ID_CUSTOM_CAN_SMASH (GADGET_ID_CHECKBUTTON_FIRST + 32) -#define GADGET_ID_CUSTOM_SLIPPERY (GADGET_ID_CHECKBUTTON_FIRST + 33) -#define GADGET_ID_CUSTOM_ACCESSIBLE (GADGET_ID_CHECKBUTTON_FIRST + 34) -#define GADGET_ID_CUSTOM_GRAV_REACHABLE (GADGET_ID_CHECKBUTTON_FIRST + 35) -#define GADGET_ID_CUSTOM_USE_LAST_VALUE (GADGET_ID_CHECKBUTTON_FIRST + 36) -#define GADGET_ID_CUSTOM_USE_GRAPHIC (GADGET_ID_CHECKBUTTON_FIRST + 37) -#define GADGET_ID_CUSTOM_USE_TEMPLATE (GADGET_ID_CHECKBUTTON_FIRST + 38) -#define GADGET_ID_CUSTOM_CAN_CHANGE (GADGET_ID_CHECKBUTTON_FIRST + 39) -#define GADGET_ID_CHANGE_USE_CONTENT (GADGET_ID_CHECKBUTTON_FIRST + 40) -#define GADGET_ID_CHANGE_USE_EXPLOSION (GADGET_ID_CHECKBUTTON_FIRST + 41) -#define GADGET_ID_CHANGE_ONLY_COMPLETE (GADGET_ID_CHECKBUTTON_FIRST + 42) -#define GADGET_ID_CHANGE_USE_RANDOM (GADGET_ID_CHECKBUTTON_FIRST + 43) -#define GADGET_ID_CHANGE_HAS_ACTION (GADGET_ID_CHECKBUTTON_FIRST + 44) -#define GADGET_ID_CHANGE_DELAY (GADGET_ID_CHECKBUTTON_FIRST + 45) -#define GADGET_ID_CHANGE_BY_DIRECT_ACT (GADGET_ID_CHECKBUTTON_FIRST + 46) -#define GADGET_ID_CHANGE_BY_OTHER_ACT (GADGET_ID_CHECKBUTTON_FIRST + 47) +#define GADGET_ID_ENVELOPE_AUTOWRAP (GADGET_ID_CHECKBUTTON_FIRST + 23) +#define GADGET_ID_ENVELOPE_CENTERED (GADGET_ID_CHECKBUTTON_FIRST + 24) +#define GADGET_ID_CUSTOM_INDESTRUCTIBLE (GADGET_ID_CHECKBUTTON_FIRST + 25) +#define GADGET_ID_CUSTOM_CAN_EXPLODE (GADGET_ID_CHECKBUTTON_FIRST + 26) +#define GADGET_ID_CUSTOM_EXPLODE_FIRE (GADGET_ID_CHECKBUTTON_FIRST + 27) +#define GADGET_ID_CUSTOM_EXPLODE_SMASH (GADGET_ID_CHECKBUTTON_FIRST + 28) +#define GADGET_ID_CUSTOM_EXPLODE_IMPACT (GADGET_ID_CHECKBUTTON_FIRST + 29) +#define GADGET_ID_CUSTOM_WALK_TO_OBJECT (GADGET_ID_CHECKBUTTON_FIRST + 30) +#define GADGET_ID_CUSTOM_DEADLY (GADGET_ID_CHECKBUTTON_FIRST + 31) +#define GADGET_ID_CUSTOM_CAN_MOVE (GADGET_ID_CHECKBUTTON_FIRST + 32) +#define GADGET_ID_CUSTOM_CAN_FALL (GADGET_ID_CHECKBUTTON_FIRST + 33) +#define GADGET_ID_CUSTOM_CAN_SMASH (GADGET_ID_CHECKBUTTON_FIRST + 34) +#define GADGET_ID_CUSTOM_SLIPPERY (GADGET_ID_CHECKBUTTON_FIRST + 35) +#define GADGET_ID_CUSTOM_ACCESSIBLE (GADGET_ID_CHECKBUTTON_FIRST + 36) +#define GADGET_ID_CUSTOM_GRAV_REACHABLE (GADGET_ID_CHECKBUTTON_FIRST + 37) +#define GADGET_ID_CUSTOM_USE_LAST_VALUE (GADGET_ID_CHECKBUTTON_FIRST + 38) +#define GADGET_ID_CUSTOM_USE_GRAPHIC (GADGET_ID_CHECKBUTTON_FIRST + 39) +#define GADGET_ID_CUSTOM_USE_TEMPLATE (GADGET_ID_CHECKBUTTON_FIRST + 40) +#define GADGET_ID_CUSTOM_CAN_CHANGE (GADGET_ID_CHECKBUTTON_FIRST + 41) +#define GADGET_ID_CHANGE_USE_CONTENT (GADGET_ID_CHECKBUTTON_FIRST + 42) +#define GADGET_ID_CHANGE_USE_EXPLOSION (GADGET_ID_CHECKBUTTON_FIRST + 43) +#define GADGET_ID_CHANGE_ONLY_COMPLETE (GADGET_ID_CHECKBUTTON_FIRST + 44) +#define GADGET_ID_CHANGE_USE_RANDOM (GADGET_ID_CHECKBUTTON_FIRST + 45) +#define GADGET_ID_CHANGE_HAS_ACTION (GADGET_ID_CHECKBUTTON_FIRST + 46) +#define GADGET_ID_CHANGE_DELAY (GADGET_ID_CHECKBUTTON_FIRST + 47) +#define GADGET_ID_CHANGE_BY_DIRECT_ACT (GADGET_ID_CHECKBUTTON_FIRST + 48) +#define GADGET_ID_CHANGE_BY_OTHER_ACT (GADGET_ID_CHECKBUTTON_FIRST + 49) /* gadgets for buttons in element list */ -#define GADGET_ID_ELEMENTLIST_FIRST (GADGET_ID_CHECKBUTTON_FIRST + 48) +#define GADGET_ID_ELEMENTLIST_FIRST (GADGET_ID_CHECKBUTTON_FIRST + 50) #define GADGET_ID_ELEMENTLIST_LAST (GADGET_ID_ELEMENTLIST_FIRST + \ ED_NUM_ELEMENTLIST_BUTTONS - 1) @@ -792,33 +794,35 @@ #define ED_CHECKBUTTON_ID_CAN_FALL_INTO_ACID 18 #define ED_CHECKBUTTON_ID_CAN_MOVE_INTO_ACID 19 #define ED_CHECKBUTTON_ID_DONT_COLLIDE_WITH 20 -#define ED_CHECKBUTTON_ID_CUSTOM_USE_GRAPHIC 21 -#define ED_CHECKBUTTON_ID_CUSTOM_USE_TEMPLATE 22 -#define ED_CHECKBUTTON_ID_CUSTOM_ACCESSIBLE 23 -#define ED_CHECKBUTTON_ID_CUSTOM_GRAV_REACHABLE 24 -#define ED_CHECKBUTTON_ID_CUSTOM_USE_LAST_VALUE 25 -#define ED_CHECKBUTTON_ID_CUSTOM_WALK_TO_OBJECT 26 -#define ED_CHECKBUTTON_ID_CUSTOM_INDESTRUCTIBLE 27 -#define ED_CHECKBUTTON_ID_CUSTOM_CAN_MOVE 28 -#define ED_CHECKBUTTON_ID_CUSTOM_CAN_FALL 29 -#define ED_CHECKBUTTON_ID_CUSTOM_CAN_SMASH 30 -#define ED_CHECKBUTTON_ID_CUSTOM_SLIPPERY 31 -#define ED_CHECKBUTTON_ID_CUSTOM_DEADLY 32 -#define ED_CHECKBUTTON_ID_CUSTOM_CAN_EXPLODE 33 -#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_FIRE 34 -#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_SMASH 35 -#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_IMPACT 36 -#define ED_CHECKBUTTON_ID_CUSTOM_CAN_CHANGE 37 -#define ED_CHECKBUTTON_ID_CHANGE_DELAY 38 -#define ED_CHECKBUTTON_ID_CHANGE_BY_DIRECT_ACT 39 -#define ED_CHECKBUTTON_ID_CHANGE_BY_OTHER_ACT 40 -#define ED_CHECKBUTTON_ID_CHANGE_USE_EXPLOSION 41 -#define ED_CHECKBUTTON_ID_CHANGE_USE_CONTENT 42 -#define ED_CHECKBUTTON_ID_CHANGE_ONLY_COMPLETE 43 -#define ED_CHECKBUTTON_ID_CHANGE_USE_RANDOM 44 -#define ED_CHECKBUTTON_ID_CHANGE_HAS_ACTION 45 - -#define ED_NUM_CHECKBUTTONS 46 +#define ED_CHECKBUTTON_ID_ENVELOPE_AUTOWRAP 21 +#define ED_CHECKBUTTON_ID_ENVELOPE_CENTERED 22 +#define ED_CHECKBUTTON_ID_CUSTOM_USE_GRAPHIC 23 +#define ED_CHECKBUTTON_ID_CUSTOM_USE_TEMPLATE 24 +#define ED_CHECKBUTTON_ID_CUSTOM_ACCESSIBLE 25 +#define ED_CHECKBUTTON_ID_CUSTOM_GRAV_REACHABLE 26 +#define ED_CHECKBUTTON_ID_CUSTOM_USE_LAST_VALUE 27 +#define ED_CHECKBUTTON_ID_CUSTOM_WALK_TO_OBJECT 28 +#define ED_CHECKBUTTON_ID_CUSTOM_INDESTRUCTIBLE 29 +#define ED_CHECKBUTTON_ID_CUSTOM_CAN_MOVE 30 +#define ED_CHECKBUTTON_ID_CUSTOM_CAN_FALL 31 +#define ED_CHECKBUTTON_ID_CUSTOM_CAN_SMASH 32 +#define ED_CHECKBUTTON_ID_CUSTOM_SLIPPERY 33 +#define ED_CHECKBUTTON_ID_CUSTOM_DEADLY 34 +#define ED_CHECKBUTTON_ID_CUSTOM_CAN_EXPLODE 35 +#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_FIRE 36 +#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_SMASH 37 +#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_IMPACT 38 +#define ED_CHECKBUTTON_ID_CUSTOM_CAN_CHANGE 39 +#define ED_CHECKBUTTON_ID_CHANGE_DELAY 40 +#define ED_CHECKBUTTON_ID_CHANGE_BY_DIRECT_ACT 41 +#define ED_CHECKBUTTON_ID_CHANGE_BY_OTHER_ACT 42 +#define ED_CHECKBUTTON_ID_CHANGE_USE_EXPLOSION 43 +#define ED_CHECKBUTTON_ID_CHANGE_USE_CONTENT 44 +#define ED_CHECKBUTTON_ID_CHANGE_ONLY_COMPLETE 45 +#define ED_CHECKBUTTON_ID_CHANGE_USE_RANDOM 46 +#define ED_CHECKBUTTON_ID_CHANGE_HAS_ACTION 47 + +#define ED_NUM_CHECKBUTTONS 48 #define ED_CHECKBUTTON_ID_LEVEL_FIRST ED_CHECKBUTTON_ID_RANDOM_RESTRICTED #define ED_CHECKBUTTON_ID_LEVEL_LAST ED_CHECKBUTTON_ID_RANDOM_RESTRICTED @@ -1121,7 +1125,7 @@ static struct MIN_ENVELOPE_XSIZE, MAX_ENVELOPE_XSIZE, GADGET_ID_ENVELOPE_XSIZE_DOWN, GADGET_ID_ENVELOPE_XSIZE_UP, GADGET_ID_ENVELOPE_XSIZE_TEXT, GADGET_ID_NONE, - NULL, + NULL, /* will be set when used */ NULL, NULL, "width", }, { @@ -1129,7 +1133,7 @@ static struct MIN_ENVELOPE_YSIZE, MAX_ENVELOPE_YSIZE, GADGET_ID_ENVELOPE_YSIZE_DOWN, GADGET_ID_ENVELOPE_YSIZE_UP, GADGET_ID_ENVELOPE_YSIZE_TEXT, GADGET_ID_ENVELOPE_XSIZE_UP, - NULL, + NULL, /* will be set when used */ NULL, " ", "height", }, @@ -1316,11 +1320,11 @@ static struct } textarea_info[ED_NUM_TEXTAREAS] = { { - ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(2), + ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(3), GADGET_ID_ENVELOPE_INFO, MAX_ENVELOPE_XSIZE, MAX_ENVELOPE_YSIZE, NULL, - "Envelope Info:", "Envelope Info" + "Envelope Content:", "Envelope Content" } }; @@ -2413,8 +2417,13 @@ static struct ED_SCROLLBAR_XPOS, ED_SCROLLBAR_YPOS, SX + ED_SCROLL_HORIZONTAL_XPOS, SY + ED_SCROLL_HORIZONTAL_YPOS, ED_SCROLL_HORIZONTAL_XSIZE, ED_SCROLL_HORIZONTAL_YSIZE, +#if 1 + SX, SY, + SXSIZE, SYSIZE, +#else 0, 0, SX + SXSIZE + SX, WIN_YSIZE, +#endif GD_TYPE_SCROLLBAR_HORIZONTAL, GADGET_ID_SCROLL_HORIZONTAL, "scroll level editing area horizontally" @@ -2423,8 +2432,13 @@ static struct ED_SCROLLBAR_XPOS, ED_SCROLLBAR_YPOS, SX + ED_SCROLL_VERTICAL_XPOS, SY + ED_SCROLL_VERTICAL_YPOS, ED_SCROLL_VERTICAL_XSIZE, ED_SCROLL_VERTICAL_YSIZE, +#if 1 + SX, SY, + SXSIZE, SYSIZE, +#else 0, 0, SX + SXSIZE + SX, WIN_YSIZE, +#endif GD_TYPE_SCROLLBAR_VERTICAL, GADGET_ID_SCROLL_VERTICAL, "scroll level editing area vertically" @@ -2433,8 +2447,13 @@ static struct ED_SCROLLBAR2_XPOS, ED_SCROLLBAR2_YPOS, DX + ED_SCROLL2_VERTICAL_XPOS, DY + ED_SCROLL2_VERTICAL_YPOS, ED_SCROLL2_VERTICAL_XSIZE, ED_SCROLL2_VERTICAL_YSIZE, +#if 1 + DX, DY, + DXSIZE, DYSIZE, +#else SX + SXSIZE + SX, 0, WIN_XSIZE - (SX + SXSIZE + SX), WIN_YSIZE, +#endif GD_TYPE_SCROLLBAR_VERTICAL, GADGET_ID_SCROLL_LIST_VERTICAL, "scroll element list vertically" @@ -2501,7 +2520,7 @@ static struct GADGET_ID_EM_SLIPPERY_GEMS, GADGET_ID_NONE, &level.em_slippery_gems, NULL, - "slip down from certain flat walls","use EM style slipping behaviour" + "slip down from certain flat walls","use EM/DC style slipping behaviour" }, { ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(2), @@ -2629,6 +2648,20 @@ static struct NULL, "deadly when colliding with", "element is deadly when hitting player" }, + { + ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(1), + GADGET_ID_ENVELOPE_AUTOWRAP, GADGET_ID_NONE, + &level.envelope[0].autowrap, + NULL, + "auto-wrap", "automatically wrap envelope text" + }, + { + -1, ED_ELEMENT_SETTINGS_YPOS(1), + GADGET_ID_ENVELOPE_CENTERED, GADGET_ID_ENVELOPE_AUTOWRAP, + &level.envelope[0].centered, + " ", + "centered", "automatically center envelope text" + }, /* ---------- element settings: configure 1 (custom elements) ----------- */ @@ -2639,46 +2672,54 @@ static struct /* !!! add separate "use existing element sound" !!! */ #if 0 - NULL, "use graphic/sound of element:", "use existing graphic and sound" + NULL, + "use graphic/sound of element:", "use existing graphic and sound" #else - NULL, "use graphic of element:", "use existing element graphic" + NULL, + "use graphic of element:", "use existing element graphic" #endif }, { ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(2), GADGET_ID_CUSTOM_USE_TEMPLATE, GADGET_ID_NONE, &level.use_custom_template, - NULL, "use template", "use template for custom properties" + NULL, + "use template", "use template for custom properties" }, { ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(3), GADGET_ID_CUSTOM_ACCESSIBLE, GADGET_ID_NONE, &custom_element_properties[EP_ACCESSIBLE], - NULL, NULL, "player can walk to or pass this field" + NULL, + NULL, "player can walk to or pass this field" }, { ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(10), GADGET_ID_CUSTOM_GRAV_REACHABLE, GADGET_ID_NONE, &custom_element_properties[EP_GRAVITY_REACHABLE], - NULL, "reachable despite gravity", "player can walk/dig despite gravity" + NULL, + "reachable despite gravity", "player can walk/dig despite gravity" }, { ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(13), GADGET_ID_CUSTOM_USE_LAST_VALUE, GADGET_ID_NONE, &custom_element.use_last_ce_value, - NULL, "use last CE value after change", "use last CE value after change" + NULL, + "use last CE value after change", "use last CE value after change" }, { ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(5), GADGET_ID_CUSTOM_WALK_TO_OBJECT, GADGET_ID_NONE, &custom_element_properties[EP_WALK_TO_OBJECT], - NULL, NULL, "player can dig/collect/push element" + NULL, + NULL, "player can dig/collect/push element" }, { ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(9), GADGET_ID_CUSTOM_INDESTRUCTIBLE, GADGET_ID_NONE, &custom_element_properties[EP_INDESTRUCTIBLE], - NULL, "indestructible", "element is indestructible" + NULL, + "indestructible", "element is indestructible" }, /* ---------- element settings: configure 2 (custom elements) ----------- */ @@ -2687,55 +2728,64 @@ static struct ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(1), GADGET_ID_CUSTOM_CAN_MOVE, GADGET_ID_NONE, &custom_element_properties[EP_CAN_MOVE], - NULL, NULL, "element can move with some pattern" + NULL, + NULL, "element can move with some pattern" }, { ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(7), GADGET_ID_CUSTOM_CAN_FALL, GADGET_ID_NONE, &custom_element_properties[EP_CAN_FALL], - NULL, "can fall", "element can fall down" + NULL, + "can fall", "element can fall down" }, { -1, ED_ELEMENT_SETTINGS_YPOS(7), GADGET_ID_CUSTOM_CAN_SMASH, GADGET_ID_CUSTOM_CAN_FALL, &custom_element_properties[EP_CAN_SMASH], - " ", NULL, "element can smash other elements" + " ", + NULL, "element can smash other elements" }, { ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(8), GADGET_ID_CUSTOM_SLIPPERY, GADGET_ID_NONE, &custom_element_properties[EP_SLIPPERY], - NULL, NULL, "other elements can fall down from it" + NULL, + NULL, "other elements can fall down from it" }, { ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(9), GADGET_ID_CUSTOM_DEADLY, GADGET_ID_NONE, &custom_element_properties[EP_DEADLY], - NULL, NULL, "element can kill the player" + NULL, + NULL, "element can kill the player" }, { ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(10), GADGET_ID_CUSTOM_CAN_EXPLODE, GADGET_ID_NONE, &custom_element_properties[EP_CAN_EXPLODE], - NULL, NULL, "element can explode" + NULL, + NULL, "element can explode" }, { ED_ELEMENT_SETTINGS_XPOS(1), ED_ELEMENT_SETTINGS_YPOS(11), GADGET_ID_CUSTOM_EXPLODE_FIRE, GADGET_ID_NONE, &custom_element_properties[EP_EXPLODES_BY_FIRE], - NULL, "by fire", "element can explode by fire/explosion" + NULL, + "by fire", "element can explode by fire/explosion" }, { -1, ED_ELEMENT_SETTINGS_YPOS(11), GADGET_ID_CUSTOM_EXPLODE_SMASH, GADGET_ID_CUSTOM_EXPLODE_FIRE, &custom_element_properties[EP_EXPLODES_SMASHED], - " ", "smashed", "element can explode when smashed" + " ", + "smashed", "element can explode when smashed" }, { -1, ED_ELEMENT_SETTINGS_YPOS(11), GADGET_ID_CUSTOM_EXPLODE_IMPACT, GADGET_ID_CUSTOM_EXPLODE_SMASH, &custom_element_properties[EP_EXPLODES_IMPACT], - " ", "impact", "element can explode on impact" + " ", + "impact", "element can explode on impact" }, /* ---------- element settings: advanced (custom elements) --------------- */ @@ -2744,55 +2794,64 @@ static struct ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(1), GADGET_ID_CUSTOM_CAN_CHANGE, GADGET_ID_NONE, &custom_element_change.can_change, - NULL, "element changes to:", "change element on specified condition" + NULL, + "element changes to:", "change element on specified condition" }, { ED_ELEMENT_SETTINGS_XPOS(1), ED_ELEMENT_SETTINGS_YPOS(2), GADGET_ID_CHANGE_DELAY, GADGET_ID_NONE, &custom_element_change_events[CE_DELAY], - NULL, NULL, "element changes after delay" + NULL, + NULL, "element changes after delay" }, { ED_ELEMENT_SETTINGS_XPOS(1), ED_ELEMENT_SETTINGS_YPOS(4), GADGET_ID_CHANGE_BY_DIRECT_ACT, GADGET_ID_NONE, &custom_element_change_events[CE_BY_DIRECT_ACTION], - NULL, NULL, "element changes by direct action" + NULL, + NULL, "element changes by direct action" }, { ED_ELEMENT_SETTINGS_XPOS(1), ED_ELEMENT_SETTINGS_YPOS(5), GADGET_ID_CHANGE_BY_OTHER_ACT, GADGET_ID_NONE, &custom_element_change_events[CE_BY_OTHER_ACTION], - NULL, NULL, "element changes by other element" + NULL, + NULL, "element changes by other element" }, { ED_ELEMENT_SETTINGS_XPOS(1), ED_ELEMENT_SETTINGS_YPOS(8), GADGET_ID_CHANGE_USE_EXPLOSION, GADGET_ID_NONE, &custom_element_change.explode, - NULL, "explode instead of change", "element explodes instead of change" + NULL, + "explode instead of change", "element explodes instead of change" }, { ED_ELEMENT_SETTINGS_XPOS(1), ED_ELEMENT_SETTINGS_YPOS(9), GADGET_ID_CHANGE_USE_CONTENT, GADGET_ID_NONE, &custom_element_change.use_target_content, - NULL, "use extended change target:","element changes to more elements" + NULL, + "use extended change target:", "element changes to more elements" }, { ED_ELEMENT_SETTINGS_XPOS(2), ED_ELEMENT_SETTINGS_YPOS(11), GADGET_ID_CHANGE_ONLY_COMPLETE, GADGET_ID_NONE, &custom_element_change.only_if_complete, - NULL, "replace all or nothing", "only replace when all can be changed" + NULL, + "replace all or nothing", "only replace when all can be changed" }, { ED_ELEMENT_SETTINGS_XPOS(2), ED_ELEMENT_SETTINGS_YPOS(12), GADGET_ID_CHANGE_USE_RANDOM, GADGET_ID_NONE, &custom_element_change.use_random_replace, - NULL, NULL, "use percentage for random replace" + NULL, + NULL, "use percentage for random replace" }, { ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(13), GADGET_ID_CHANGE_HAS_ACTION, GADGET_ID_NONE, &custom_element_change.has_action, - NULL, NULL, "execute action on specified condition" + NULL, + NULL, "execute action on specified condition" }, }; @@ -3135,28 +3194,10 @@ static int editor_hl_boulderdash[] = EL_CHAR('B'), EL_CHAR('D'), EL_EMPTY, - -#if 0 - EL_CHAR('B'), - EL_CHAR('O'), - EL_CHAR('U'), - EL_CHAR('L'), - - EL_CHAR('-'), - EL_CHAR('D'), - EL_CHAR('E'), - EL_CHAR('R'), - - EL_CHAR('D'), - EL_CHAR('A'), - EL_CHAR('S'), - EL_CHAR('H'), -#endif }; static int editor_el_boulderdash[] = { -#if 1 EL_EMPTY, EL_SAND, EL_BD_ROCK, @@ -3181,34 +3222,6 @@ static int editor_el_boulderdash[] = EL_BD_BUTTERFLY_DOWN, EL_BD_FIREFLY_DOWN, EL_EXIT_OPEN, - -#else - - EL_PLAYER_1, - EL_EMPTY, - EL_SAND, - EL_STEELWALL, - - EL_BD_WALL, - EL_BD_MAGIC_WALL, - EL_EXIT_CLOSED, - EL_EXIT_OPEN, - - EL_BD_DIAMOND, - EL_BD_BUTTERFLY_UP, - EL_BD_FIREFLY_UP, - EL_BD_ROCK, - - EL_BD_BUTTERFLY_LEFT, - EL_BD_FIREFLY_LEFT, - EL_BD_BUTTERFLY_RIGHT, - EL_BD_FIREFLY_RIGHT, - - EL_BD_AMOEBA, - EL_BD_BUTTERFLY_DOWN, - EL_BD_FIREFLY_DOWN, - EL_BD_EXPANDABLE_WALL, -#endif }; static int *editor_hl_boulderdash_ptr = editor_hl_boulderdash; static int *editor_el_boulderdash_ptr = editor_el_boulderdash; @@ -3221,28 +3234,10 @@ static int editor_hl_emerald_mine[] = EL_CHAR('E'), EL_CHAR('M'), EL_EMPTY, - -#if 0 - EL_CHAR('E'), - EL_CHAR('M'), - EL_CHAR('E'), - EL_CHAR('-'), - - EL_CHAR('R'), - EL_CHAR('A'), - EL_CHAR('L'), - EL_CHAR('D'), - - EL_CHAR('M'), - EL_CHAR('I'), - EL_CHAR('N'), - EL_CHAR('E'), -#endif }; static int editor_el_emerald_mine[] = { -#if 1 EL_SAND, EL_ROCK, EL_QUICKSAND_EMPTY, @@ -3302,79 +3297,6 @@ static int editor_el_emerald_mine[] = EL_EM_GATE_2_GRAY, EL_EM_GATE_3_GRAY, EL_EM_GATE_4_GRAY, - -#else - - EL_PLAYER_1, - EL_PLAYER_2, - EL_SAND, - EL_ROCK, - - EL_STEELWALL, - EL_WALL, - EL_WALL_SLIPPERY, - EL_MAGIC_WALL, - - EL_EMERALD, - EL_DIAMOND, - EL_NUT, - EL_BOMB, - - EL_WALL_EMERALD, - EL_WALL_DIAMOND, - EL_QUICKSAND_EMPTY, - EL_QUICKSAND_FULL, - - EL_DYNAMITE, - EL_DYNAMITE_ACTIVE, - EL_EXIT_CLOSED, - EL_EXIT_OPEN, - - EL_YAMYAM, - EL_BUG_UP, - EL_SPACESHIP_UP, - EL_ROBOT, - - EL_BUG_LEFT, - EL_SPACESHIP_LEFT, - EL_BUG_RIGHT, - EL_SPACESHIP_RIGHT, - - EL_ROBOT_WHEEL, - EL_BUG_DOWN, - EL_SPACESHIP_DOWN, - EL_INVISIBLE_WALL, - - EL_ACID_POOL_TOPLEFT, - EL_ACID, - EL_ACID_POOL_TOPRIGHT, - EL_EMPTY, - - EL_ACID_POOL_BOTTOMLEFT, - EL_ACID_POOL_BOTTOM, - EL_ACID_POOL_BOTTOMRIGHT, - EL_EMPTY, - - EL_AMOEBA_DROP, - EL_AMOEBA_DEAD, - EL_AMOEBA_WET, - EL_AMOEBA_DRY, - - EL_EM_KEY_1, - EL_EM_KEY_2, - EL_EM_KEY_3, - EL_EM_KEY_4, - - 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, -#endif }; static int *editor_hl_emerald_mine_ptr = editor_hl_emerald_mine; static int *editor_el_emerald_mine_ptr = editor_el_emerald_mine; @@ -3387,33 +3309,10 @@ static int editor_hl_emerald_mine_club[] = EL_CHAR('E'), EL_CHAR('M'), EL_CHAR('C'), - -#if 0 - EL_CHAR('E'), - EL_CHAR('M'), - EL_CHAR('E'), - EL_CHAR('-'), - - EL_CHAR('R'), - EL_CHAR('A'), - EL_CHAR('L'), - EL_CHAR('D'), - - EL_CHAR('M'), - EL_CHAR('I'), - EL_CHAR('N'), - EL_CHAR('E'), - - EL_CHAR('C'), - EL_CHAR('L'), - EL_CHAR('U'), - EL_CHAR('B'), -#endif }; static int editor_el_emerald_mine_club[] = { -#if 1 EL_EMC_KEY_5, EL_EMC_KEY_6, EL_EMC_KEY_7, @@ -3488,132 +3387,41 @@ static int editor_el_emerald_mine_club[] = EL_YAMYAM_DOWN, EL_BALLOON_SWITCH_DOWN, EL_BALLOON_SWITCH_NONE, +}; +static int *editor_hl_emerald_mine_club_ptr = editor_hl_emerald_mine_club; +static int *editor_el_emerald_mine_club_ptr = editor_el_emerald_mine_club; +static int num_editor_hl_emerald_mine_club=SIZEOF_ARRAY_INT(editor_hl_emerald_mine_club); +static int num_editor_el_emerald_mine_club=SIZEOF_ARRAY_INT(editor_el_emerald_mine_club); -#else - - EL_EMC_KEY_5, - EL_EMC_KEY_6, - EL_EMC_KEY_7, - EL_EMC_KEY_8, +static int editor_hl_rnd[] = +{ + EL_INTERNAL_CASCADE_RND_ACTIVE, + EL_CHAR('R'), + EL_CHAR('N'), + EL_CHAR('D'), +}; - EL_EMC_GATE_5, - EL_EMC_GATE_6, - EL_EMC_GATE_7, - EL_EMC_GATE_8, +static int editor_el_rnd[] = +{ + EL_KEY_1, + EL_KEY_2, + EL_KEY_3, + EL_KEY_4, - EL_EMC_GATE_5_GRAY, - EL_EMC_GATE_6_GRAY, - EL_EMC_GATE_7_GRAY, - EL_EMC_GATE_8_GRAY, + EL_GATE_1, + EL_GATE_2, + EL_GATE_3, + EL_GATE_4, - EL_EMC_STEELWALL_1, - EL_EMC_STEELWALL_2, - EL_EMC_STEELWALL_3, - EL_EMC_STEELWALL_4, + EL_GATE_1_GRAY, + EL_GATE_2_GRAY, + EL_GATE_3_GRAY, + EL_GATE_4_GRAY, - EL_EMC_WALL_13, - EL_EMC_WALL_14, - EL_EMC_WALL_15, - EL_EMC_WALL_16, - - EL_EMC_WALL_SLIPPERY_1, - EL_EMC_WALL_SLIPPERY_2, - EL_EMC_WALL_SLIPPERY_3, - EL_EMC_WALL_SLIPPERY_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, - - EL_EMC_WALL_9, - EL_EMC_WALL_10, - EL_EMC_WALL_11, - EL_EMC_WALL_12, - - EL_EMC_ANDROID, - EL_BALLOON, - EL_BALLOON_SWITCH_ANY, - EL_BALLOON_SWITCH_NONE, - - EL_BALLOON_SWITCH_LEFT, - EL_BALLOON_SWITCH_RIGHT, - EL_BALLOON_SWITCH_UP, - EL_BALLOON_SWITCH_DOWN, - - EL_EMC_GRASS, - EL_EMC_PLANT, - EL_EMC_LENSES, - EL_EMC_MAGNIFIER, - - EL_EMC_MAGIC_BALL, - EL_EMC_MAGIC_BALL_SWITCH, - EL_SPRING, - EL_EMC_SPRING_BUMPER, - - EL_EMC_DRIPPER, - EL_EMC_FAKE_GRASS, - EL_EMPTY, - EL_EMPTY, - - EL_EM_DYNAMITE, - EL_EM_DYNAMITE_ACTIVE, - EL_EMPTY, - EL_EMPTY, - - EL_YAMYAM_LEFT, - EL_YAMYAM_RIGHT, - EL_YAMYAM_UP, - EL_YAMYAM_DOWN, -#endif -}; -static int *editor_hl_emerald_mine_club_ptr = editor_hl_emerald_mine_club; -static int *editor_el_emerald_mine_club_ptr = editor_el_emerald_mine_club; -static int num_editor_hl_emerald_mine_club=SIZEOF_ARRAY_INT(editor_hl_emerald_mine_club); -static int num_editor_el_emerald_mine_club=SIZEOF_ARRAY_INT(editor_el_emerald_mine_club); - -static int editor_hl_rnd[] = -{ - EL_INTERNAL_CASCADE_RND_ACTIVE, - EL_CHAR('R'), - EL_CHAR('N'), - EL_CHAR('D'), - -#if 0 - EL_CHAR('M'), - EL_CHAR('O'), - EL_CHAR('R'), - EL_CHAR('E'), -#endif -}; - -static int editor_el_rnd[] = -{ -#if 1 - EL_KEY_1, - EL_KEY_2, - EL_KEY_3, - EL_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_ARROW_LEFT, - EL_ARROW_RIGHT, - EL_ARROW_UP, - EL_ARROW_DOWN, + EL_ARROW_LEFT, + EL_ARROW_RIGHT, + EL_ARROW_UP, + EL_ARROW_DOWN, EL_AMOEBA_DEAD, EL_AMOEBA_DRY, @@ -3674,94 +3482,6 @@ static int editor_el_rnd[] = EL_EXPANDABLE_WALL_HORIZONTAL, EL_EXPANDABLE_WALL_VERTICAL, EL_EXPANDABLE_WALL_ANY, - -#else - - EL_KEY_1, - EL_KEY_2, - EL_KEY_3, - EL_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_ARROW_LEFT, - EL_ARROW_RIGHT, - EL_ARROW_UP, - EL_ARROW_DOWN, - - EL_AMOEBA_DEAD, - EL_AMOEBA_DRY, - EL_AMOEBA_FULL, - EL_EMPTY, - - EL_EMPTY, - EL_EMERALD_YELLOW, - EL_EMERALD_RED, - EL_EMERALD_PURPLE, - - EL_WALL_BD_DIAMOND, - EL_WALL_EMERALD_YELLOW, - EL_WALL_EMERALD_RED, - EL_WALL_EMERALD_PURPLE, - - EL_GAME_OF_LIFE, - EL_PACMAN_UP, - EL_TIME_ORB_FULL, - EL_TIME_ORB_EMPTY, - - EL_PACMAN_LEFT, - EL_DARK_YAMYAM, - EL_PACMAN_RIGHT, - EL_EXPANDABLE_WALL, - - EL_BIOMAZE, - EL_PACMAN_DOWN, - EL_LAMP, - EL_LAMP_ACTIVE, - - EL_DYNABOMB_INCREASE_NUMBER, - EL_DYNABOMB_INCREASE_SIZE, - EL_DYNABOMB_INCREASE_POWER, - EL_STONEBLOCK, - - EL_MOLE, - EL_PENGUIN, - EL_PIG, - EL_DRAGON, - - EL_BUG, - EL_MOLE_UP, - EL_BD_BUTTERFLY, - EL_BD_FIREFLY, - - EL_MOLE_LEFT, - EL_EMPTY, - EL_MOLE_RIGHT, - EL_PACMAN, - - EL_SPACESHIP, - EL_MOLE_DOWN, - EL_EMPTY, - EL_EMPTY, - - EL_SATELLITE, - EL_EXPANDABLE_WALL_HORIZONTAL, - EL_EXPANDABLE_WALL_VERTICAL, - EL_EXPANDABLE_WALL_ANY, - - EL_INVISIBLE_STEELWALL, - EL_INVISIBLE_WALL, - EL_SPEED_PILL, - EL_BLACK_ORB, -#endif }; static int *editor_hl_rnd_ptr = editor_hl_rnd; static int *editor_el_rnd_ptr = editor_el_rnd; @@ -3774,18 +3494,6 @@ static int editor_hl_sokoban[] = EL_CHAR('S'), EL_CHAR('B'), EL_EMPTY, - -#if 0 - EL_CHAR('S'), - EL_CHAR('O'), - EL_CHAR('K'), - EL_CHAR('O'), - - EL_CHAR('-'), - EL_CHAR('B'), - EL_CHAR('A'), - EL_CHAR('N'), -#endif }; static int editor_el_sokoban[] = @@ -3806,23 +3514,10 @@ static int editor_hl_supaplex[] = EL_CHAR('S'), EL_CHAR('P'), EL_EMPTY, - -#if 0 - EL_CHAR('S'), - EL_CHAR('U'), - EL_CHAR('P'), - EL_CHAR('A'), - - EL_CHAR('P'), - EL_CHAR('L'), - EL_CHAR('E'), - EL_CHAR('X'), -#endif }; static int editor_el_supaplex[] = { -#if 1 EL_SP_MURPHY, EL_EMPTY, EL_SP_BASE, @@ -3872,63 +3567,6 @@ static int editor_el_supaplex[] = EL_SP_CHIP_LEFT, EL_SP_CHIP_RIGHT, EL_SP_CHIP_BOTTOM, - -#else - -#if 1 - EL_EMPTY, -#else - EL_SP_EMPTY, -#endif - EL_SP_ZONK, - EL_SP_BASE, - EL_SP_MURPHY, - - EL_SP_INFOTRON, - EL_SP_CHIP_SINGLE, - EL_SP_HARDWARE_GRAY, - EL_SP_EXIT_CLOSED, - - EL_SP_DISK_ORANGE, - 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_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_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, -#endif }; static int *editor_hl_supaplex_ptr = editor_hl_supaplex; static int *editor_el_supaplex_ptr = editor_el_supaplex; @@ -3941,33 +3579,10 @@ static int editor_hl_diamond_caves[] = EL_CHAR('D'), EL_CHAR('C'), EL_CHAR('2'), - -#if 0 - EL_CHAR('D'), - EL_CHAR('I'), - EL_CHAR('A'), - EL_CHAR('-'), - - EL_CHAR('M'), - EL_CHAR('O'), - EL_CHAR('N'), - EL_CHAR('D'), - - EL_CHAR('C'), - EL_CHAR('A'), - EL_CHAR('V'), - EL_CHAR('E'), - - EL_CHAR('S'), - EL_CHAR(' '), - EL_CHAR('I'), - EL_CHAR('I'), -#endif }; static int editor_el_diamond_caves[] = { -#if 1 EL_PEARL, EL_CRYSTAL, EL_WALL_PEARL, @@ -4003,15 +3618,20 @@ static int editor_el_diamond_caves[] = EL_CONVEYOR_BELT_3_SWITCH_RIGHT, EL_CONVEYOR_BELT_4_SWITCH_RIGHT, + EL_TIMEGATE_CLOSED, + EL_TIMEGATE_OPEN, + EL_TIMEGATE_SWITCH, + EL_DC_TIMEGATE_SWITCH, + EL_SWITCHGATE_CLOSED, EL_SWITCHGATE_OPEN, EL_SWITCHGATE_SWITCH_UP, EL_SWITCHGATE_SWITCH_DOWN, - EL_TIMEGATE_CLOSED, - EL_TIMEGATE_OPEN, - EL_TIMEGATE_SWITCH, EL_EMPTY, + EL_EMPTY, + EL_DC_SWITCHGATE_SWITCH_UP, + EL_DC_SWITCHGATE_SWITCH_DOWN, EL_SIGN_EXCLAMATION, EL_SIGN_STOP, @@ -4021,7 +3641,7 @@ static int editor_el_diamond_caves[] = EL_STEELWALL_SLIPPERY, EL_INVISIBLE_SAND, EL_LANDMINE, - EL_EMPTY, + EL_DC_LANDMINE, EL_SHIELD_NORMAL, EL_SHIELD_DEADLY, @@ -4033,108 +3653,107 @@ static int editor_el_diamond_caves[] = EL_ENVELOPE_3, EL_ENVELOPE_4, -#else + EL_SIGN_RADIOACTIVITY, + EL_SIGN_WHEELCHAIR, + EL_SIGN_PARKING, + EL_SIGN_NO_ENTRY, - EL_PEARL, - EL_CRYSTAL, - EL_WALL_PEARL, - EL_WALL_CRYSTAL, + EL_SIGN_GIVE_WAY, + EL_SIGN_ENTRY_FORBIDDEN, + EL_SIGN_EMERGENCY_EXIT, + EL_SIGN_YIN_YANG, - EL_CONVEYOR_BELT_1_LEFT, - EL_CONVEYOR_BELT_1_MIDDLE, - EL_CONVEYOR_BELT_1_RIGHT, - EL_CONVEYOR_BELT_1_SWITCH_MIDDLE, - - EL_CONVEYOR_BELT_2_LEFT, - EL_CONVEYOR_BELT_2_MIDDLE, - EL_CONVEYOR_BELT_2_RIGHT, - EL_CONVEYOR_BELT_2_SWITCH_MIDDLE, + EL_SIGN_SPERMS, + EL_SIGN_BULLET, + EL_SIGN_HEART, + EL_SIGN_CROSS, - EL_CONVEYOR_BELT_3_LEFT, - EL_CONVEYOR_BELT_3_MIDDLE, - EL_CONVEYOR_BELT_3_RIGHT, - EL_CONVEYOR_BELT_3_SWITCH_MIDDLE, + EL_SIGN_FRANKIE, + EL_EMPTY, + EL_EMPTY, + EL_EMPTY, - EL_CONVEYOR_BELT_4_LEFT, - EL_CONVEYOR_BELT_4_MIDDLE, - EL_CONVEYOR_BELT_4_RIGHT, - EL_CONVEYOR_BELT_4_SWITCH_MIDDLE, + EL_SPERMS, + EL_BULLET, + EL_HEART, + EL_CROSS, - EL_CONVEYOR_BELT_1_SWITCH_LEFT, - EL_CONVEYOR_BELT_2_SWITCH_LEFT, - EL_CONVEYOR_BELT_3_SWITCH_LEFT, - EL_CONVEYOR_BELT_4_SWITCH_LEFT, + EL_FRANKIE, + EL_EMPTY, + EL_EMPTY, + EL_EMPTY, - EL_CONVEYOR_BELT_1_SWITCH_RIGHT, - EL_CONVEYOR_BELT_2_SWITCH_RIGHT, - EL_CONVEYOR_BELT_3_SWITCH_RIGHT, - EL_CONVEYOR_BELT_4_SWITCH_RIGHT, + EL_DC_STEELWALL_2_SINGLE, + EL_DC_STEELWALL_2_TOP, + EL_STEEL_EXIT_CLOSED, + EL_STEEL_EXIT_OPEN, - EL_SWITCHGATE_OPEN, - EL_SWITCHGATE_CLOSED, - EL_SWITCHGATE_SWITCH_UP, - EL_SWITCHGATE_SWITCH_DOWN, + EL_DC_STEELWALL_2_LEFT, + EL_DC_STEELWALL_2_MIDDLE, + EL_DC_STEELWALL_2_HORIZONTAL, + EL_DC_STEELWALL_2_RIGHT, - EL_ENVELOPE_1, - EL_ENVELOPE_2, - EL_ENVELOPE_3, - EL_ENVELOPE_4, + EL_DC_STEELWALL_1_TOPLEFT, + EL_DC_STEELWALL_2_VERTICAL, + EL_DC_STEELWALL_1_TOPRIGHT, + EL_EMPTY, - EL_TIMEGATE_CLOSED, - EL_TIMEGATE_OPEN, - EL_TIMEGATE_SWITCH, + EL_DC_STEELWALL_1_VERTICAL, + EL_DC_STEELWALL_2_BOTTOM, + EL_EMPTY, EL_EMPTY, - EL_LANDMINE, - EL_INVISIBLE_SAND, - EL_STEELWALL_SLIPPERY, + EL_DC_STEELWALL_1_BOTTOMLEFT, + EL_DC_STEELWALL_1_HORIZONTAL, + EL_DC_STEELWALL_1_BOTTOMRIGHT, EL_EMPTY, - EL_SIGN_EXCLAMATION, - EL_SIGN_STOP, - EL_LIGHT_SWITCH, - EL_LIGHT_SWITCH_ACTIVE, + EL_DC_STEELWALL_1_BOTTOMRIGHT_2, + EL_DC_STEELWALL_1_BOTTOM, + EL_DC_STEELWALL_1_BOTTOMLEFT_2, + EL_EMPTY, - EL_SHIELD_NORMAL, - EL_SHIELD_DEADLY, - EL_EXTRA_TIME, + EL_DC_STEELWALL_1_RIGHT, + EL_EMPTY, + EL_DC_STEELWALL_1_LEFT, EL_EMPTY, -#endif -}; -static int *editor_hl_diamond_caves_ptr = editor_hl_diamond_caves; -static int *editor_el_diamond_caves_ptr = editor_el_diamond_caves; -static int num_editor_hl_diamond_caves = SIZEOF_ARRAY_INT(editor_hl_diamond_caves); -static int num_editor_el_diamond_caves = SIZEOF_ARRAY_INT(editor_el_diamond_caves); + EL_DC_STEELWALL_1_TOPRIGHT_2, + EL_DC_STEELWALL_1_TOP, + EL_DC_STEELWALL_1_TOPLEFT_2, + EL_EMPTY, -static int editor_hl_dx_boulderdash[] = -{ - EL_INTERNAL_CASCADE_DX_ACTIVE, - EL_CHAR('D'), - EL_CHAR('X'), + EL_EXPANDABLE_STEELWALL_HORIZONTAL, + EL_EXPANDABLE_STEELWALL_VERTICAL, + EL_EXPANDABLE_STEELWALL_ANY, EL_EMPTY, -#if 0 - EL_CHAR('D'), - EL_CHAR('X'), - EL_CHAR('-'), - EL_CHAR(' '), + EL_EM_EXIT_CLOSED, + EL_EM_EXIT_OPEN, + EL_EM_STEEL_EXIT_CLOSED, + EL_EM_STEEL_EXIT_OPEN, - EL_CHAR('B'), - EL_CHAR('O'), - EL_CHAR('U'), - EL_CHAR('L'), + EL_DC_KEY_WHITE, + EL_DC_GATE_WHITE, + EL_DC_GATE_WHITE_GRAY, + EL_DC_GATE_FAKE_GRAY, - EL_CHAR('-'), - EL_CHAR('D'), - EL_CHAR('E'), - EL_CHAR('R'), + EL_DC_MAGIC_WALL, + EL_QUICKSAND_FAST_EMPTY, + EL_QUICKSAND_FAST_FULL, + EL_EMPTY, +}; +static int *editor_hl_diamond_caves_ptr = editor_hl_diamond_caves; +static int *editor_el_diamond_caves_ptr = editor_el_diamond_caves; +static int num_editor_hl_diamond_caves = SIZEOF_ARRAY_INT(editor_hl_diamond_caves); +static int num_editor_el_diamond_caves = SIZEOF_ARRAY_INT(editor_el_diamond_caves); +static int editor_hl_dx_boulderdash[] = +{ + EL_INTERNAL_CASCADE_DX_ACTIVE, EL_CHAR('D'), - EL_CHAR('A'), - EL_CHAR('S'), - EL_CHAR('H'), -#endif + EL_CHAR('X'), + EL_EMPTY, }; static int editor_el_dx_boulderdash[] = @@ -4170,13 +3789,6 @@ static int editor_hl_chars[] = EL_CHAR('T'), EL_CHAR('X'), EL_CHAR('T'), - -#if 0 - EL_CHAR('T'), - EL_CHAR('E'), - EL_CHAR('X'), - EL_CHAR('T'), -#endif }; static int editor_el_chars[] = @@ -4269,6 +3881,11 @@ static int editor_el_chars[] = EL_CHAR('°'), EL_CHAR('®'), EL_CHAR(FONT_ASCII_CURSOR), + EL_CHAR(FONT_ASCII_BUTTON), + + EL_CHAR(FONT_ASCII_UP), + EL_CHAR(FONT_ASCII_DOWN), + EL_CHAR(' '), EL_CHAR(' ') }; static int *editor_hl_chars_ptr = editor_hl_chars; @@ -4276,34 +3893,122 @@ static int *editor_el_chars_ptr = editor_el_chars; static int num_editor_hl_chars = SIZEOF_ARRAY_INT(editor_hl_chars); static int num_editor_el_chars = SIZEOF_ARRAY_INT(editor_el_chars); +static int editor_hl_steel_chars[] = +{ + EL_INTERNAL_CASCADE_STEEL_CHARS_ACTIVE, + EL_STEEL_CHAR('T'), + EL_STEEL_CHAR('X'), + EL_STEEL_CHAR('T'), +}; + +static int editor_el_steel_chars[] = +{ + EL_STEEL_CHAR(' '), + EL_STEEL_CHAR('!'), + EL_STEEL_CHAR('"'), + EL_STEEL_CHAR('#'), + + EL_STEEL_CHAR('$'), + EL_STEEL_CHAR('%'), + EL_STEEL_CHAR('&'), + EL_STEEL_CHAR('\''), + + EL_STEEL_CHAR('('), + EL_STEEL_CHAR(')'), + EL_STEEL_CHAR('*'), + EL_STEEL_CHAR('+'), + + EL_STEEL_CHAR(','), + EL_STEEL_CHAR('-'), + EL_STEEL_CHAR('.'), + EL_STEEL_CHAR('/'), + + EL_STEEL_CHAR('0'), + EL_STEEL_CHAR('1'), + EL_STEEL_CHAR('2'), + EL_STEEL_CHAR('3'), + + EL_STEEL_CHAR('4'), + EL_STEEL_CHAR('5'), + EL_STEEL_CHAR('6'), + EL_STEEL_CHAR('7'), + + EL_STEEL_CHAR('8'), + EL_STEEL_CHAR('9'), + EL_STEEL_CHAR(':'), + EL_STEEL_CHAR(';'), + + EL_STEEL_CHAR('<'), + EL_STEEL_CHAR('='), + EL_STEEL_CHAR('>'), + EL_STEEL_CHAR('?'), + + EL_STEEL_CHAR('@'), + EL_STEEL_CHAR('A'), + EL_STEEL_CHAR('B'), + EL_STEEL_CHAR('C'), + + EL_STEEL_CHAR('D'), + EL_STEEL_CHAR('E'), + EL_STEEL_CHAR('F'), + EL_STEEL_CHAR('G'), + + EL_STEEL_CHAR('H'), + EL_STEEL_CHAR('I'), + EL_STEEL_CHAR('J'), + EL_STEEL_CHAR('K'), + + EL_STEEL_CHAR('L'), + EL_STEEL_CHAR('M'), + EL_STEEL_CHAR('N'), + EL_STEEL_CHAR('O'), + + EL_STEEL_CHAR('P'), + EL_STEEL_CHAR('Q'), + EL_STEEL_CHAR('R'), + EL_STEEL_CHAR('S'), + + EL_STEEL_CHAR('T'), + EL_STEEL_CHAR('U'), + EL_STEEL_CHAR('V'), + EL_STEEL_CHAR('W'), + + EL_STEEL_CHAR('X'), + EL_STEEL_CHAR('Y'), + EL_STEEL_CHAR('Z'), + EL_STEEL_CHAR('['), + + EL_STEEL_CHAR('\\'), + EL_STEEL_CHAR(']'), + EL_STEEL_CHAR('^'), + EL_STEEL_CHAR('_'), + + EL_STEEL_CHAR('©'), + EL_STEEL_CHAR('Ä'), + EL_STEEL_CHAR('Ö'), + EL_STEEL_CHAR('Ü'), + + EL_STEEL_CHAR('°'), + EL_STEEL_CHAR('®'), + EL_STEEL_CHAR(FONT_ASCII_CURSOR), + EL_STEEL_CHAR(FONT_ASCII_BUTTON), + + EL_STEEL_CHAR(FONT_ASCII_UP), + EL_STEEL_CHAR(FONT_ASCII_DOWN), + EL_STEEL_CHAR(' '), + EL_STEEL_CHAR(' ') +}; +static int *editor_hl_steel_chars_ptr = editor_hl_steel_chars; +static int *editor_el_steel_chars_ptr = editor_el_steel_chars; +static int num_editor_hl_steel_chars = SIZEOF_ARRAY_INT(editor_hl_steel_chars); +static int num_editor_el_steel_chars = SIZEOF_ARRAY_INT(editor_el_steel_chars); + static int editor_hl_custom[] = { EL_INTERNAL_CASCADE_CE_ACTIVE, EL_CHAR('C'), EL_CHAR('E'), EL_EMPTY, - -#if 0 - EL_CHAR('C'), - EL_CHAR('U'), - EL_CHAR('S'), - EL_CHAR('-'), - - EL_CHAR('T'), - EL_CHAR('O'), - EL_CHAR('M'), - EL_CHAR(' '), - - EL_CHAR('E'), - EL_CHAR('L'), - EL_CHAR('E'), - EL_CHAR('M'), - - EL_CHAR('E'), - EL_CHAR('N'), - EL_CHAR('T'), - EL_CHAR('S'), -#endif }; static int editor_el_custom[] = @@ -4639,28 +4344,6 @@ static int editor_hl_group[] = EL_CHAR('G'), EL_CHAR('E'), EL_EMPTY, - -#if 0 - EL_CHAR('G'), - EL_CHAR('R'), - EL_CHAR('O'), - EL_CHAR('U'), - - EL_CHAR('P'), - EL_CHAR(' '), - EL_CHAR(' '), - EL_CHAR(' '), - - EL_CHAR('E'), - EL_CHAR('L'), - EL_CHAR('E'), - EL_CHAR('M'), - - EL_CHAR('E'), - EL_CHAR('N'), - EL_CHAR('T'), - EL_CHAR('S'), -#endif }; static int editor_el_group[] = @@ -4730,15 +4413,15 @@ static int editor_el_reference[] = EL_CURRENT_CE_VALUE, EL_CURRENT_CE_SCORE, - EL_LAST_CE_8, - EL_LAST_CE_7, - EL_LAST_CE_6, - EL_LAST_CE_5, + EL_PREV_CE_8, + EL_PREV_CE_7, + EL_PREV_CE_6, + EL_PREV_CE_5, - EL_LAST_CE_4, - EL_LAST_CE_3, - EL_LAST_CE_2, - EL_LAST_CE_1, + EL_PREV_CE_4, + EL_PREV_CE_3, + EL_PREV_CE_2, + EL_PREV_CE_1, EL_NEXT_CE_1, EL_NEXT_CE_2, @@ -4761,23 +4444,6 @@ static int editor_hl_user_defined[] = EL_CHAR('M'), EL_CHAR('Y'), EL_EMPTY, - -#if 0 - EL_CHAR('U'), - EL_CHAR('S'), - EL_CHAR('E'), - EL_CHAR('R'), - - EL_CHAR('D'), - EL_CHAR('E'), - EL_CHAR('F'), - EL_CHAR('I'), - - EL_CHAR('-'), - EL_CHAR('N'), - EL_CHAR('E'), - EL_CHAR('D'), -#endif }; static int *editor_hl_user_defined_ptr = editor_hl_user_defined; @@ -4893,6 +4559,12 @@ editor_elements_info[] = &editor_hl_chars_ptr, &num_editor_hl_chars, &editor_el_chars_ptr, &num_editor_el_chars }, + { + &setup.editor.el_steel_chars, + &setup.editor_cascade.el_steel_chars, + &editor_hl_steel_chars_ptr, &num_editor_hl_steel_chars, + &editor_el_steel_chars_ptr, &num_editor_el_steel_chars + }, { &setup.editor.el_custom, &setup.editor_cascade.el_ce, @@ -4974,11 +4646,7 @@ static char *getElementInfoText(int element) { char *info_text = NULL; -#if 1 if (element < MAX_NUM_ELEMENTS) -#else - if (element < NUM_FILE_ELEMENTS) -#endif { if (strlen(element_info[element].description) > 0) info_text = element_info[element].description; @@ -5699,8 +5367,11 @@ static void CreateCounterButtons() if (i == ED_COUNTER_ID_SELECT_LEVEL) { font_type = FONT_LEVEL_NUMBER; +#if 1 + font_type_active = FONT_LEVEL_NUMBER_ACTIVE; +#else font_type_active = FONT_LEVEL_NUMBER; - +#endif x += 2 * ED_GADGET_DISTANCE; y -= ED_GADGET_DISTANCE; @@ -6364,11 +6035,7 @@ static void MapCounterButtons(int id) int yoffset_above = MINI_TILEX + ED_GADGET_DISTANCE; int yoffset = ED_BORDER_SIZE; int x_left = gi_down->x - xoffset_left; -#if 1 int x_right; /* set after gadget position was modified */ -#else - int x_right = gi_up->x + gi_up->width + xoffset_right; -#endif int y_above = gi_down->y - yoffset_above; int x = gi_down->x; int y; /* set after gadget position was modified */ @@ -6828,22 +6495,12 @@ static void setSelectboxSpecialActionVariablesIfNeeded() /* only change if corresponding selectbox has changed */ if (selectbox_info[ED_SELECTBOX_ID_ACTION_MODE].options != action_arg_modes[mode]) -#if 0 - custom_element_change.action_mode = - (action_arg_modes[mode])[0].value; -#else custom_element_change.action_mode = -1; -#endif /* only change if corresponding selectbox has changed */ if (selectbox_info[ED_SELECTBOX_ID_ACTION_ARG].options != action_arg_options[i].options) -#if 0 - custom_element_change.action_arg = - action_arg_options[i].options[0].value; -#else custom_element_change.action_arg = -1; -#endif break; } @@ -6875,8 +6532,6 @@ static void setSelectboxSpecialActionOptions() } } -#if 1 - static void copy_custom_element_settings(int element_from, int element_to) { struct ElementInfo *ei_from = &element_info[element_from]; @@ -6885,85 +6540,6 @@ static void copy_custom_element_settings(int element_from, int element_to) copyElementInfo(ei_from, ei_to); } -#else - -static void copy_custom_element_settings(int element_from, int element_to) -{ - struct ElementInfo *ei_from = &element_info[element_from]; - struct ElementInfo *ei_to = &element_info[element_to]; - int i, x, y; - - /* ---------- copy element description ---------- */ - for (i = 0; i < MAX_ELEMENT_NAME_LEN + 1; i++) - ei_to->description[i] = ei_from->description[i]; - - /* ---------- copy element base properties ---------- */ -#if 1 - ei_to->properties[EP_BITFIELD_BASE_NR] = - ei_from->properties[EP_BITFIELD_BASE_NR]; -#else - Properties[element_to][EP_BITFIELD_BASE_NR] = - Properties[element_from][EP_BITFIELD_BASE_NR]; -#endif - - /* ---------- copy custom property values ---------- */ - - ei_to->use_gfx_element = ei_from->use_gfx_element; - ei_to->gfx_element = ei_from->gfx_element; - - ei_to->access_direction = ei_from->access_direction; - - ei_to->collect_score_initial = ei_from->collect_score_initial; - ei_to->collect_count_initial = ei_from->collect_count_initial; - - ei_to->ce_value_fixed_initial = ei_from->ce_value_fixed_initial; - ei_to->ce_value_random_initial = ei_from->ce_value_random_initial; - ei_to->use_last_ce_value = ei_from->use_last_ce_value; - - ei_to->push_delay_fixed = ei_from->push_delay_fixed; - ei_to->push_delay_random = ei_from->push_delay_random; - ei_to->drop_delay_fixed = ei_from->drop_delay_fixed; - ei_to->drop_delay_random = ei_from->drop_delay_random; - ei_to->move_delay_fixed = ei_from->move_delay_fixed; - ei_to->move_delay_random = ei_from->move_delay_random; - - ei_to->move_pattern = ei_from->move_pattern; - ei_to->move_direction_initial = ei_from->move_direction_initial; - ei_to->move_stepsize = ei_from->move_stepsize; - - ei_to->move_enter_element = ei_from->move_enter_element; - ei_to->move_leave_element = ei_from->move_leave_element; - ei_to->move_leave_type = ei_from->move_leave_type; - - ei_to->slippery_type = ei_from->slippery_type; - - ei_to->explosion_type = ei_from->explosion_type; - ei_to->explosion_delay = ei_from->explosion_delay; - ei_to->ignition_delay = ei_from->ignition_delay; - - for (y = 0; y < 3; y++) - for (x = 0; x < 3; x++) - ei_to->content.e[x][y] = ei_from->content.e[x][y]; - - /* ---------- reinitialize and copy change pages ---------- */ - - ei_to->num_change_pages = ei_from->num_change_pages; - ei_to->current_change_page = ei_from->current_change_page; - - setElementChangePages(ei_to, ei_to->num_change_pages); - - for (i = 0; i < ei_to->num_change_pages; i++) - ei_to->change_page[i] = ei_from->change_page[i]; - - /* ---------- copy group element info ---------- */ - if (ei_from->group != NULL && ei_to->group != NULL) /* group or internal */ - *ei_to->group = *ei_from->group; - - /* mark this custom element as modified */ - ei_to->modified_settings = TRUE; -} -#endif - static void replace_custom_element_in_settings(int element_from, int element_to) { @@ -7463,7 +7039,11 @@ void DrawLevelEd() ReinitializeElementList(); /* update dynamic level element list */ ReinitializeElementListButtons(); /* custom element may look different */ +#if 1 + UnmapAllGadgets(); +#else UnmapTapeButtons(); +#endif MapControlButtons(); DrawEditModeWindow(); @@ -7983,22 +7563,26 @@ static int PrintElementDescriptionFromFile(char *filename, int start_line) int max_lines_per_screen = (SYSIZE - pad_y) / font_height - 1; return DrawTextFromFile(sx, sy, filename, font_nr, max_chars_per_line, - max_lines_per_screen); + max_lines_per_screen, TRUE); } static void DrawPropertiesTabulatorGadgets() { - struct GadgetInfo *gd_gi = level_editor_gadget[GADGET_ID_PROPERTIES_INFO]; - struct GadgetDesign *gd = &gd_gi->alt_design[GD_BUTTON_UNPRESSED]; - int gd_x = gd->x + gd_gi->border.width / 2; - int gd_y = gd->y + gd_gi->height - 1; + struct GadgetInfo *gd_gi1 = level_editor_gadget[GADGET_ID_PROPERTIES_INFO]; + struct GadgetInfo *gd_gi4 = level_editor_gadget[GADGET_ID_PROPERTIES_CHANGE]; + struct GadgetDesign *gd = &gd_gi1->alt_design[GD_BUTTON_UNPRESSED]; + int gd_x = gd->x + gd_gi1->border.width / 2; + int gd_y = gd->y + gd_gi1->height - 1; Pixel tab_color = GetPixel(gd->bitmap, gd_x, gd_y); int id_first = ED_TEXTBUTTON_ID_PROPERTIES_INFO; int id_last = ED_TEXTBUTTON_ID_PROPERTIES_CONFIG; +#if 1 +#else int max_tabs = 4; +#endif int i; - /* draw additional "advanced" tabulator for custom elements */ + /* draw additional "change" tabulator for custom elements */ if (IS_CUSTOM_ELEMENT(properties_element)) id_last = ED_TEXTBUTTON_ID_PROPERTIES_CHANGE; @@ -8014,21 +7598,29 @@ static void DrawPropertiesTabulatorGadgets() continue; /* draw background line below tabulator button */ - ClearRectangleOnBackground(drawto, gi->x, gi->y + gi->height, gi->width,1); + ClearRectangleOnBackground(drawto, gi->x, gi->y + gi->height, gi->width, 1); /* draw solid line below inactive tabulator buttons */ if (!active && tab_color != BLACK_PIXEL) /* black => transparent */ - FillRectangle(drawto, gi->x, gi->y + gi->height, gi->width,1, tab_color); + FillRectangle(drawto, gi->x, gi->y + gi->height, gi->width, 1, tab_color); ModifyGadget(gi, GDI_ACTIVE, active, GDI_END); MapTextbuttonGadget(i); } +#if 1 + /* draw little border line below tabulator buttons */ + if (tab_color != BLACK_PIXEL) /* black => transparent */ + FillRectangle(drawto, gd_gi1->x, gd_gi1->y + gd_gi1->height + 1, + gd_gi4->x - gd_gi1->x + gd_gi4->width, ED_GADGET_DISTANCE, + tab_color); +#else /* draw little border line below tabulator buttons */ if (tab_color != BLACK_PIXEL) /* black => transparent */ - FillRectangle(drawto, gd_gi->x, gd_gi->y + gd_gi->height + 1, - max_tabs * gd_gi->width + (max_tabs -1) * ED_GADGET_DISTANCE, + FillRectangle(drawto, gd_gi1->x, gd_gi1->y + gd_gi1->height + 1, + max_tabs * gd_gi1->width + (max_tabs -1) * ED_GADGET_DISTANCE, ED_GADGET_DISTANCE, tab_color); +#endif } static void DrawPropertiesInfo() @@ -8082,6 +7674,7 @@ static void DrawPropertiesInfo() /* pre-defined properties */ { EP_CAN_PASS_MAGIC_WALL, "- can pass magic walls" }, + { EP_CAN_PASS_DC_MAGIC_WALL,"- can pass magic walls (DC style)" }, { EP_SWITCHABLE, "- can be switched" }, #if 0 { EP_HAS_EDITOR_CONTENT, "- can contain other elements" }, @@ -8104,7 +7697,6 @@ static void DrawPropertiesInfo() int screen_line = 0; int i, x, y; -#if 1 if (setup.editor.show_element_token) { DrawTextF(pad_x, pad_y + screen_line++ * font2_height, FONT_TEXT_3, @@ -8112,24 +7704,6 @@ static void DrawPropertiesInfo() screen_line++; } -#else - -#if DEBUG - if (IS_CUSTOM_ELEMENT(properties_element)) - { - DrawTextF(pad_x, pad_y + screen_line++ * font2_height, FONT_TEXT_3, - "[Custom Element %d]", properties_element - EL_CUSTOM_START + 1); - screen_line++; - } - else if (IS_GROUP_ELEMENT(properties_element)) - { - DrawTextF(pad_x, pad_y + screen_line++ * font2_height, FONT_TEXT_3, - "[Group Element %d]", properties_element - EL_GROUP_START + 1); - screen_line++; - } -#endif -#endif - /* ----- print number of elements / percentage of this element in level */ num_elements_in_level = 0; @@ -8268,10 +7842,11 @@ static struct { EL_EMC_DRIPPER, &level.amoeba_speed, TEXT_AMOEBA_SPEED }, { EL_MAGIC_WALL, &level.time_magic_wall, TEXT_DURATION }, { EL_BD_MAGIC_WALL, &level.time_magic_wall, TEXT_DURATION }, + { EL_DC_MAGIC_WALL, &level.time_magic_wall, TEXT_DURATION }, { EL_ROBOT_WHEEL, &level.time_wheel, TEXT_DURATION }, -#if 1 - { EL_TIMEGATE_SWITCH, &level.time_timegate, TEXT_DURATION }, + { EL_TIMEGATE_SWITCH, &level.time_timegate, TEXT_DURATION }, + { EL_DC_TIMEGATE_SWITCH,&level.time_timegate, TEXT_DURATION }, { EL_LIGHT_SWITCH, &level.time_light, TEXT_DURATION }, { EL_LIGHT_SWITCH_ACTIVE, &level.time_light, TEXT_DURATION }, { EL_SHIELD_NORMAL, &level.shield_normal_time, TEXT_DURATION }, @@ -8286,9 +7861,7 @@ static struct { EL_BIOMAZE, &level.biomaze[1], TEXT_GAME_OF_LIFE_2 }, { EL_BIOMAZE, &level.biomaze[2], TEXT_GAME_OF_LIFE_3 }, { EL_BIOMAZE, &level.biomaze[3], TEXT_GAME_OF_LIFE_4 }, -#endif -#if 1 { EL_EMC_ANDROID, &level.android_move_time, TEXT_MOVE_SPEED }, { EL_EMC_ANDROID, &level.android_clone_time, TEXT_CLONE_SPEED }, { EL_EMC_MAGIC_BALL, &level.ball_time, TEXT_BALL_DELAY }, @@ -8297,7 +7870,6 @@ static struct { EL_SPRING, &level.slurp_score, TEXT_SLURPING }, { EL_EMC_LENSES, &level.lenses_time, TEXT_DURATION }, { EL_EMC_MAGNIFIER, &level.magnify_time, TEXT_DURATION }, -#endif { -1, NULL, NULL } }; @@ -8473,11 +8045,6 @@ static void DrawPropertiesConfig() if (properties_element == EL_TIME_ORB_FULL) MapCheckbuttonGadget(ED_CHECKBUTTON_ID_USE_TIME_ORB_BUG); -#if 0 - if (properties_element == EL_BALLOON) - MapSelectboxGadget(ED_SELECTBOX_ID_WIND_DIRECTION); -#endif - if (CAN_GROW(properties_element)) { checkbutton_info[ED_CHECKBUTTON_ID_GROW_INTO_DIGGABLE].y = @@ -8490,14 +8057,23 @@ static void DrawPropertiesConfig() { int counter1_id = ED_COUNTER_ID_ENVELOPE_XSIZE; int counter2_id = ED_COUNTER_ID_ENVELOPE_YSIZE; + int button1_id = ED_CHECKBUTTON_ID_ENVELOPE_AUTOWRAP; + int button2_id = ED_CHECKBUTTON_ID_ENVELOPE_CENTERED; int envelope_nr = properties_element - EL_ENVELOPE_1; counterbutton_info[counter1_id].value = &level.envelope[envelope_nr].xsize; counterbutton_info[counter2_id].value = &level.envelope[envelope_nr].ysize; + checkbutton_info[button1_id].value = &level.envelope[envelope_nr].autowrap; + checkbutton_info[button2_id].value = &level.envelope[envelope_nr].centered; + /* display counter to choose size of envelope text area */ - MapCounterButtons(ED_COUNTER_ID_ENVELOPE_XSIZE); - MapCounterButtons(ED_COUNTER_ID_ENVELOPE_YSIZE); + MapCounterButtons(counter1_id); + MapCounterButtons(counter2_id); + + /* display checkbuttons to choose auto-wrap and alignment properties */ + MapCheckbuttonGadget(button1_id); + MapCheckbuttonGadget(button2_id); DrawEnvelopeTextArea(envelope_nr); } @@ -8729,26 +8305,14 @@ static void DrawPropertiesWindow() "Element Settings", FONT_TITLE_1); #endif -#if 1 FrameCounter = 0; /* restart animation frame counter */ -#endif DrawElementBorder(SX + xstart * MINI_TILEX, SY + ystart * MINI_TILEY + MINI_TILEY / 2, TILEX, TILEY, FALSE); -#if 1 + DrawEditorElementAnimation(SX + xstart * MINI_TILEX, SY + ystart * MINI_TILEY + MINI_TILEY / 2); -#else - DrawGraphicAnimationExt(drawto, - SX + xstart * MINI_TILEX, - SY + ystart * MINI_TILEY + MINI_TILEY / 2, - el2img(properties_element), -1, NO_MASKING); -#endif - -#if 0 - FrameCounter = 0; /* restart animation frame counter */ -#endif DrawEditorElementName((xstart + 3) * MINI_TILEX + 1, (ystart + 1) * MINI_TILEY + 1, @@ -9158,33 +8722,7 @@ void DumpBrush_Small() static void FloodFill(int from_x, int from_y, int fill_element) { - int i,x,y; - int old_element; - static int check[4][2] = { {-1,0}, {0,-1}, {1,0}, {0,1} }; - static int safety = 0; - - /* check if starting field still has the desired content */ - if (Feld[from_x][from_y] == fill_element) - return; - - safety++; - - if (safety > lev_fieldx*lev_fieldy) - Error(ERR_EXIT, "Something went wrong in 'FloodFill()'. Please debug."); - - old_element = Feld[from_x][from_y]; - Feld[from_x][from_y] = fill_element; - - for (i = 0; i < 4; i++) - { - x = from_x + check[i][0]; - y = from_y + check[i][1]; - - if (IN_LEV_FIELD(x,y) && Feld[x][y] == old_element) - FloodFill(x, y, fill_element); - } - - safety--; + FloodFillLevel(from_x, from_y, fill_element, Feld, lev_fieldx, lev_fieldy); } /* values for DrawLevelText() modes */ @@ -9491,10 +9029,8 @@ static void HandleDrawingAreas(struct GadgetInfo *gi) if (!started_inside_drawing_area) return; -#if 1 if (!IS_VALID_BUTTON(button)) return; -#endif if (!button && !button_release_event) return; @@ -9806,7 +9342,14 @@ static void HandleTextAreaGadgets(struct GadgetInfo *gi) { int type_id = gi->custom_type_id; +#if 1 + strncpy(textarea_info[type_id].value, gi->textarea.value, + MAX_ENVELOPE_TEXT_LEN); + textarea_info[type_id].value[MAX_ENVELOPE_TEXT_LEN] = '\0'; +#else + /* !!! BUGGY !!! MAX_ENVELOPE_TEXT_LEN != MAX_GADGET_TEXTSIZE !!! */ strcpy(textarea_info[type_id].value, gi->textarea.value); +#endif level.changed = TRUE; } @@ -9835,14 +9378,7 @@ static void HandleSelectboxGadgets(struct GadgetInfo *gi) { /* when changing action type, also check action mode and action arg */ if (value_old != value_new) - { -#if 1 setSelectboxSpecialActionVariablesIfNeeded(); -#else - custom_element_change.action_mode = -1; - custom_element_change.action_arg = -1; -#endif - } DrawPropertiesChange(); } @@ -10015,14 +9551,6 @@ static void HandleControlButtons(struct GadgetInfo *gi) int new_element = BUTTON_ELEMENT(button); int x, y; -#if 0 - /* MAKES PROBLEMS WITH ELEMENT LIST SCROLLBAR AND IS PROBABLY NOT NEEDED */ - /* !!! CHECK WHAT HAPPENS WHEN MOUSE WHEEL IS USED OVER ELEMENT LIST !!! */ - - if (!IS_VALID_BUTTON(button)) - return; -#endif - if (edit_mode == ED_MODE_DRAWING && drawing_function == GADGET_ID_TEXT) DrawLevelText(0, 0, 0, TEXT_END); @@ -10569,15 +10097,8 @@ void HandleLevelEditorIdle() if (!DelayReached(&action_delay, action_delay_value)) return; -#if 1 DrawEditorElementAnimation(SX + xpos * TILEX, SY + ypos * TILEY + MINI_TILEY / 2); -#else - DrawGraphicAnimationExt(drawto, - SX + xpos * TILEX, - SY + ypos * TILEY + MINI_TILEY / 2, - el2img(properties_element), -1, NO_MASKING); -#endif MarkTileDirty(xpos, ypos); MarkTileDirty(xpos, ypos + 1); @@ -10629,11 +10150,6 @@ void PrintEditorGadgetInfoText(struct GadgetInfo *gi) void HandleEditorGadgetInfoText(void *ptr) { struct GadgetInfo *gi = (struct GadgetInfo *)ptr; -#if 0 - char infotext[MAX_OUTPUT_LINESIZE + 1]; - char shortcut[MAX_OUTPUT_LINESIZE + 1]; - int max_infotext_len = getMaxInfoTextLength(); -#endif if (game_status != GAME_MODE_EDITOR) return; @@ -10647,38 +10163,7 @@ void HandleEditorGadgetInfoText(void *ptr) if (edit_mode == ED_MODE_DRAWING && draw_with_brush) DeleteBrushFromCursor(); -#if 1 PrintEditorGadgetInfoText(gi); -#else - if (gi == NULL || gi->info_text == NULL) - return; - - strncpy(infotext, gi->info_text, max_infotext_len); - infotext[max_infotext_len] = '\0'; - - if (gi->custom_id < ED_NUM_CTRL_BUTTONS) - { - int key = control_info[gi->custom_id].shortcut; - - if (key) - { - if (gi->custom_id == GADGET_ID_SINGLE_ITEMS) /* special case 1 */ - sprintf(shortcut, " ('.' or '%c')", key); - else if (gi->custom_id == GADGET_ID_PICK_ELEMENT) /* special case 2 */ - sprintf(shortcut, " ('%c' or 'Ctrl')", key); - else if (gi->custom_id == GADGET_ID_TEST) /* special case 3 */ - sprintf(shortcut, " ('Enter' or 'Shift-%c')", key); - else /* normal case */ - sprintf(shortcut, " ('%s%c')", - (key >= 'A' && key <= 'Z' ? "Shift-" : ""), key); - - if (strlen(infotext) + strlen(shortcut) <= max_infotext_len) - strcat(infotext, shortcut); - } - } - - DrawText(INFOTEXT_XPOS, INFOTEXT_YPOS, infotext, FONT_TEXT_2); -#endif } static void HandleDrawingAreaInfo(struct GadgetInfo *gi) @@ -10842,12 +10327,8 @@ void RequestExitLevelEditor(boolean ask_if_level_has_changed) Request("Level has changed ! Exit without saving ?", REQ_ASK | REQ_STAY_OPEN)) { -#if 1 CloseDoor(DOOR_CLOSE_1); SetDoorState(DOOR_CLOSE_2); -#else - CloseDoor(DOOR_CLOSE_ALL); -#endif game_status = GAME_MODE_MAIN; DrawMainMenu(); }