GADGET_ID_ANDROID_CONTENT,
GADGET_ID_AMOEBA_CONTENT,
GADGET_ID_BD_SNAP_ELEMENT,
+ GADGET_ID_BD_MAGIC_WALL_DIAMOND_TO,
+ GADGET_ID_BD_MAGIC_WALL_ROCK_TO,
+ GADGET_ID_BD_MAGIC_WALL_MEGA_ROCK_TO,
+ GADGET_ID_BD_MAGIC_WALL_NUT_TO,
+ GADGET_ID_BD_MAGIC_WALL_NITRO_PACK_TO,
+ GADGET_ID_BD_MAGIC_WALL_FLYING_DIAMOND_TO,
+ GADGET_ID_BD_MAGIC_WALL_FLYING_ROCK_TO,
GADGET_ID_BD_AMOEBA_CONTENT_TOO_BIG,
GADGET_ID_BD_AMOEBA_CONTENT_ENCLOSED,
GADGET_ID_BD_AMOEBA_2_CONTENT_TOO_BIG,
GADGET_ID_BD_AMOEBA_2_CONTENT_ENCLOSED,
GADGET_ID_BD_AMOEBA_2_CONTENT_EXPLODING,
GADGET_ID_BD_AMOEBA_2_CONTENT_LOOKS_LIKE,
+ GADGET_ID_BD_SLIME_EATS_ELEMENT_1,
+ GADGET_ID_BD_SLIME_CONVERTS_TO_ELEMENT_1,
+ GADGET_ID_BD_SLIME_EATS_ELEMENT_2,
+ GADGET_ID_BD_SLIME_CONVERTS_TO_ELEMENT_2,
+ GADGET_ID_BD_SLIME_EATS_ELEMENT_3,
+ GADGET_ID_BD_SLIME_CONVERTS_TO_ELEMENT_3,
GADGET_ID_BD_ACID_EATS_ELEMENT,
GADGET_ID_BD_ACID_TURNS_TO_ELEMENT,
+ GADGET_ID_BD_BITER_EATS_ELEMENT,
+ GADGET_ID_BD_BLADDER_CONVERTS_BY_ELEMENT,
+ GADGET_ID_BD_NUT_CONTENT,
+ GADGET_ID_BD_EXPANDING_WALL_LOOKS_LIKE,
GADGET_ID_START_ELEMENT,
GADGET_ID_ARTWORK_ELEMENT,
GADGET_ID_EXPLOSION_ELEMENT,
GADGET_ID_BD_VOODOO_DIES_BY_ROCK,
GADGET_ID_BD_VOODOO_VANISH_BY_EXPLOSION,
GADGET_ID_BD_SLIME_IS_PREDICTABLE,
+ GADGET_ID_BD_CHANGE_EXPANDING_WALL,
+ GADGET_ID_BD_REPLICATORS_ACTIVE,
+ GADGET_ID_BD_CONVEYOR_BELTS_ACTIVE,
+ GADGET_ID_BD_CONVEYOR_BELTS_CHANGED,
+ GADGET_ID_BD_WATER_CANNOT_FLOW_DOWN,
+ GADGET_ID_BD_HAMMER_WALLS_REAPPEAR,
GADGET_ID_ENVELOPE_AUTOWRAP,
GADGET_ID_ENVELOPE_CENTERED,
GADGET_ID_MM_LASER_RED,
ED_CHECKBUTTON_ID_BD_VOODOO_DIES_BY_ROCK,
ED_CHECKBUTTON_ID_BD_VOODOO_VANISH_BY_EXPLOSION,
ED_CHECKBUTTON_ID_BD_SLIME_IS_PREDICTABLE,
+ ED_CHECKBUTTON_ID_BD_CHANGE_EXPANDING_WALL,
+ ED_CHECKBUTTON_ID_BD_REPLICATORS_ACTIVE,
+ ED_CHECKBUTTON_ID_BD_CONVEYOR_BELTS_ACTIVE,
+ ED_CHECKBUTTON_ID_BD_CONVEYOR_BELTS_CHANGED,
+ ED_CHECKBUTTON_ID_BD_WATER_CANNOT_FLOW_DOWN,
+ ED_CHECKBUTTON_ID_BD_HAMMER_WALLS_REAPPEAR,
ED_CHECKBUTTON_ID_ENVELOPE_AUTOWRAP,
ED_CHECKBUTTON_ID_ENVELOPE_CENTERED,
ED_CHECKBUTTON_ID_MM_LASER_RED,
ED_DRAWING_ID_ANDROID_CONTENT,
ED_DRAWING_ID_AMOEBA_CONTENT,
ED_DRAWING_ID_BD_SNAP_ELEMENT,
+ ED_DRAWING_ID_BD_MAGIC_WALL_DIAMOND_TO,
+ ED_DRAWING_ID_BD_MAGIC_WALL_ROCK_TO,
+ ED_DRAWING_ID_BD_MAGIC_WALL_MEGA_ROCK_TO,
+ ED_DRAWING_ID_BD_MAGIC_WALL_NUT_TO,
+ ED_DRAWING_ID_BD_MAGIC_WALL_NITRO_PACK_TO,
+ ED_DRAWING_ID_BD_MAGIC_WALL_FLYING_DIAMOND_TO,
+ ED_DRAWING_ID_BD_MAGIC_WALL_FLYING_ROCK_TO,
ED_DRAWING_ID_BD_AMOEBA_CONTENT_TOO_BIG,
ED_DRAWING_ID_BD_AMOEBA_CONTENT_ENCLOSED,
ED_DRAWING_ID_BD_AMOEBA_2_CONTENT_TOO_BIG,
ED_DRAWING_ID_BD_AMOEBA_2_CONTENT_ENCLOSED,
ED_DRAWING_ID_BD_AMOEBA_2_CONTENT_EXPLODING,
ED_DRAWING_ID_BD_AMOEBA_2_CONTENT_LOOKS_LIKE,
+ ED_DRAWING_ID_BD_SLIME_EATS_ELEMENT_1,
+ ED_DRAWING_ID_BD_SLIME_CONVERTS_TO_ELEMENT_1,
+ ED_DRAWING_ID_BD_SLIME_EATS_ELEMENT_2,
+ ED_DRAWING_ID_BD_SLIME_CONVERTS_TO_ELEMENT_2,
+ ED_DRAWING_ID_BD_SLIME_EATS_ELEMENT_3,
+ ED_DRAWING_ID_BD_SLIME_CONVERTS_TO_ELEMENT_3,
ED_DRAWING_ID_BD_ACID_EATS_ELEMENT,
ED_DRAWING_ID_BD_ACID_TURNS_TO_ELEMENT,
+ ED_DRAWING_ID_BD_BITER_EATS_ELEMENT,
+ ED_DRAWING_ID_BD_BLADDER_CONVERTS_BY_ELEMENT,
+ ED_DRAWING_ID_BD_NUT_CONTENT,
+ ED_DRAWING_ID_BD_EXPANDING_WALL_LOOKS_LIKE,
ED_DRAWING_ID_START_ELEMENT,
ED_DRAWING_ID_ARTWORK_ELEMENT,
ED_DRAWING_ID_EXPLOSION_ELEMENT,
},
{
ED_CHECKBUTTON_ID_BD_MAGIC_WALL_WAIT_HATCHING,
- ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(1),
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(2),
GADGET_ID_BD_MAGIC_WALL_WAIT_HATCHING, GADGET_ID_NONE,
&level.bd_magic_wall_wait_hatching,
NULL, NULL,
},
{
ED_CHECKBUTTON_ID_BD_MAGIC_WALL_STOPS_AMOEBA,
- ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(2),
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(3),
GADGET_ID_BD_MAGIC_WALL_STOPS_AMOEBA, GADGET_ID_NONE,
&level.bd_magic_wall_stops_amoeba,
NULL, NULL,
},
{
ED_CHECKBUTTON_ID_BD_SLIME_IS_PREDICTABLE,
- ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(0),
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(1),
GADGET_ID_BD_SLIME_IS_PREDICTABLE, GADGET_ID_NONE,
&level.bd_slime_is_predictable,
NULL, NULL,
"Slime is predictable", "Use predictable random numbers"
},
+ {
+ ED_CHECKBUTTON_ID_BD_CHANGE_EXPANDING_WALL,
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(0),
+ GADGET_ID_BD_CHANGE_EXPANDING_WALL, GADGET_ID_NONE,
+ &level.bd_change_expanding_wall,
+ NULL, NULL,
+ "Change direction", "Switch horizontal/vertical direction"
+ },
+ {
+ ED_CHECKBUTTON_ID_BD_REPLICATORS_ACTIVE,
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(0),
+ GADGET_ID_BD_REPLICATORS_ACTIVE, GADGET_ID_NONE,
+ &level.bd_replicators_active,
+ NULL, NULL,
+ "Active at start", "Replicators start in active state"
+ },
+ {
+ ED_CHECKBUTTON_ID_BD_CONVEYOR_BELTS_ACTIVE,
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(0),
+ GADGET_ID_BD_CONVEYOR_BELTS_ACTIVE, GADGET_ID_NONE,
+ &level.bd_conveyor_belts_active,
+ NULL, NULL,
+ "Active at start", "Conveyor belts start in active state"
+ },
+ {
+ ED_CHECKBUTTON_ID_BD_CONVEYOR_BELTS_CHANGED,
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(1),
+ GADGET_ID_BD_CONVEYOR_BELTS_CHANGED, GADGET_ID_NONE,
+ &level.bd_conveyor_belts_changed,
+ NULL, NULL,
+ "Change direction", "Switch conveyor belt direction"
+ },
+ {
+ ED_CHECKBUTTON_ID_BD_WATER_CANNOT_FLOW_DOWN,
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(0),
+ GADGET_ID_BD_WATER_CANNOT_FLOW_DOWN, GADGET_ID_NONE,
+ &level.bd_water_cannot_flow_down,
+ NULL, NULL,
+ "Does not flow downwards", "Water can only flow up, left and right"
+ },
+ {
+ ED_CHECKBUTTON_ID_BD_HAMMER_WALLS_REAPPEAR,
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(1),
+ GADGET_ID_BD_HAMMER_WALLS_REAPPEAR, GADGET_ID_NONE,
+ &level.bd_hammer_walls_reappear,
+ NULL, NULL,
+ "Hammered walls reappear", "Hammered walls reappear after delay"
+ },
{
ED_CHECKBUTTON_ID_ENVELOPE_AUTOWRAP,
ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(1),
"Snap element:", NULL, NULL, NULL, "Element created when snapping"
},
+ // ---------- BD magic wall elements ----------------------------------------
+
+ {
+ ED_DRAWING_ID_BD_MAGIC_WALL_DIAMOND_TO,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(4),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_MAGIC_WALL_DIAMOND_TO, GADGET_ID_NONE,
+ &level.bd_magic_wall_diamond_to, 1, 1,
+ "Changes diamonds to:", NULL, NULL, NULL, "Element to turn diamonds to"
+ },
+ {
+ ED_DRAWING_ID_BD_MAGIC_WALL_ROCK_TO,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(5),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_MAGIC_WALL_ROCK_TO, GADGET_ID_NONE,
+ &level.bd_magic_wall_rock_to, 1, 1,
+ "Changes rocks to:", NULL, NULL, NULL, "Element to turn rocks to"
+ },
+ {
+ ED_DRAWING_ID_BD_MAGIC_WALL_MEGA_ROCK_TO,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(6),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_MAGIC_WALL_MEGA_ROCK_TO, GADGET_ID_NONE,
+ &level.bd_magic_wall_mega_rock_to, 1, 1,
+ "Changes mega rocks to:", NULL, NULL, NULL, "Element to turn mega rocks to"
+ },
+ {
+ ED_DRAWING_ID_BD_MAGIC_WALL_NUT_TO,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(7),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_MAGIC_WALL_NUT_TO, GADGET_ID_NONE,
+ &level.bd_magic_wall_nut_to, 1, 1,
+ "Changes nuts to:", NULL, NULL, NULL, "Element to turn nuts to"
+ },
+ {
+ ED_DRAWING_ID_BD_MAGIC_WALL_NITRO_PACK_TO,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(8),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_MAGIC_WALL_NITRO_PACK_TO, GADGET_ID_NONE,
+ &level.bd_magic_wall_nitro_pack_to, 1, 1,
+ "Changes nitro packs to:", NULL, NULL, NULL, "Element to turn nitro packs to"
+ },
+ {
+ ED_DRAWING_ID_BD_MAGIC_WALL_FLYING_DIAMOND_TO,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(9),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_MAGIC_WALL_FLYING_DIAMOND_TO, GADGET_ID_NONE,
+ &level.bd_magic_wall_flying_diamond_to, 1, 1,
+ "Changes flying diamonds to:", NULL, NULL, NULL, "Element to turn flying diamonds to"
+ },
+ {
+ ED_DRAWING_ID_BD_MAGIC_WALL_FLYING_ROCK_TO,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(10),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_MAGIC_WALL_FLYING_ROCK_TO, GADGET_ID_NONE,
+ &level.bd_magic_wall_flying_rock_to, 1, 1,
+ "Changes flying rocks to:", NULL, NULL, NULL, "Element to turn flying rocks to"
+ },
+
// ---------- BD amoeba content ---------------------------------------------
{
&level.bd_amoeba_2_content_looks_like, 1, 1,
"Use graphic of element:", NULL, NULL, NULL, "BD amoeba 2 looks like this element"
},
+ {
+ ED_DRAWING_ID_BD_SLIME_EATS_ELEMENT_1,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(5),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_SLIME_EATS_ELEMENT_1, GADGET_ID_NONE,
+ &level.bd_slime_eats_element_1, 1, 1,
+ "Can eat:", NULL, NULL, NULL, "Element that can be eaten"
+ },
+ {
+ ED_DRAWING_ID_BD_SLIME_CONVERTS_TO_ELEMENT_1,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(5),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_SLIME_CONVERTS_TO_ELEMENT_1, GADGET_ID_BD_SLIME_EATS_ELEMENT_1,
+ &level.bd_slime_converts_to_element_1, 1, 1,
+ " and convert to:", NULL, NULL, NULL, "Eaten element is converted to"
+ },
+ {
+ ED_DRAWING_ID_BD_SLIME_EATS_ELEMENT_2,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(6),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_SLIME_EATS_ELEMENT_2, GADGET_ID_NONE,
+ &level.bd_slime_eats_element_2, 1, 1,
+ "Can eat:", NULL, NULL, NULL, "Element that can be eaten"
+ },
+ {
+ ED_DRAWING_ID_BD_SLIME_CONVERTS_TO_ELEMENT_2,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(6),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_SLIME_CONVERTS_TO_ELEMENT_2, GADGET_ID_BD_SLIME_EATS_ELEMENT_2,
+ &level.bd_slime_converts_to_element_2, 1, 1,
+ " and convert to:", NULL, NULL, NULL, "Eaten element is converted to"
+ },
+ {
+ ED_DRAWING_ID_BD_SLIME_EATS_ELEMENT_3,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(7),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_SLIME_EATS_ELEMENT_3, GADGET_ID_NONE,
+ &level.bd_slime_eats_element_3, 1, 1,
+ "Can eat:", NULL, NULL, NULL, "Element that can be eaten"
+ },
+ {
+ ED_DRAWING_ID_BD_SLIME_CONVERTS_TO_ELEMENT_3,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(7),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_SLIME_CONVERTS_TO_ELEMENT_3, GADGET_ID_BD_SLIME_EATS_ELEMENT_3,
+ &level.bd_slime_converts_to_element_3, 1, 1,
+ " and convert to:", NULL, NULL, NULL, "Eaten element is converted to"
+ },
{
ED_DRAWING_ID_BD_ACID_EATS_ELEMENT,
ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(1),
&level.bd_acid_turns_to_element, 1, 1,
"Can leave behind:", NULL, NULL, NULL, "Turns to this element after spreading"
},
+ {
+ ED_DRAWING_ID_BD_BITER_EATS_ELEMENT,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(2),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_BITER_EATS_ELEMENT, GADGET_ID_NONE,
+ &level.bd_biter_eats_element, 1, 1,
+ "Can eat:", NULL, NULL, NULL, "Eats this element when moving"
+ },
+ {
+ ED_DRAWING_ID_BD_BLADDER_CONVERTS_BY_ELEMENT,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(1),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_BLADDER_CONVERTS_BY_ELEMENT, GADGET_ID_NONE,
+ &level.bd_bladder_converts_by_element, 1, 1,
+ "Turns to clock by touching:", NULL, NULL, NULL, "Turns to clock by touching element"
+ },
+ {
+ ED_DRAWING_ID_BD_NUT_CONTENT,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(1),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_NUT_CONTENT, GADGET_ID_NONE,
+ &level.bd_nut_content, 1, 1,
+ "When breaking, changes to:", NULL, NULL, NULL, "Element created when breaking nut"
+ },
+ {
+ ED_DRAWING_ID_BD_EXPANDING_WALL_LOOKS_LIKE,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(1),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_EXPANDING_WALL_LOOKS_LIKE, GADGET_ID_NONE,
+ &level.bd_expanding_wall_looks_like, 1, 1,
+ "Use graphic of element:", NULL, NULL, NULL, "Expanding wall looks like this element"
+ },
// ---------- level start element -------------------------------------------
static int getTabulatorBarWidth(void);
static int getTabulatorBarHeight(void);
static Pixel getTabulatorBarColor(void);
+static void getEditorGraphicAndFrame(int, int *, int *, boolean);
static int numHiresTiles(int);
static int num_editor_gadgets = 0; // dynamically determined
EL_BD_CONVEYOR_LEFT,
EL_BD_CONVEYOR_RIGHT,
EL_BD_CONVEYOR_SWITCH,
- EL_BD_CONVEYOR_DIR_SWITCH_RIGHT,
+ EL_BD_CONVEYOR_DIR_SWITCH_NORMAL,
EL_BD_CLOCK,
EL_BD_TIME_PENALTY,
EL_BD_WALL_KEY_3,
EL_BD_WALL_DIAMOND,
+ EL_BD_POT,
EL_BD_GRAVITY_SWITCH,
EL_BD_PNEUMATIC_HAMMER,
EL_BD_TELEPORTER,
- EL_BD_POT,
EL_BD_PLAYER,
EL_BD_PLAYER_WITH_BOMB,
static int num_editor_hl_boulderdash_native = ARRAY_SIZE(editor_hl_boulderdash_native);
static int num_editor_el_boulderdash_native = ARRAY_SIZE(editor_el_boulderdash_native);
+static int editor_hl_boulderdash_effects[] =
+{
+ EL_INTERNAL_CASCADE_BD_EFFECTS_ACTIVE,
+ EL_CHAR('B'),
+ EL_CHAR('D'),
+ EL_CHAR('E'),
+};
+
+static int editor_el_boulderdash_effects[] =
+{
+ EL_BD_DIAMOND_FALLING,
+ EL_BD_ROCK_FALLING,
+ EL_BD_MEGA_ROCK_FALLING,
+ EL_BD_FLYING_DIAMOND_FLYING,
+
+ EL_BD_FALLING_WALL_FALLING,
+ EL_BD_NITRO_PACK_FALLING,
+ EL_BD_NUT_FALLING,
+ EL_BD_FLYING_ROCK_FLYING,
+
+ EL_BD_PLAYER_GROWING_1,
+ EL_BD_PLAYER_GROWING_2,
+ EL_BD_PLAYER_GROWING_3,
+ EL_BD_PLAYER,
+
+ EL_BD_PLAYER_WITH_BOMB,
+ EL_BD_PLAYER_STIRRING,
+ EL_BD_EXIT_OPEN,
+ EL_BD_INVISIBLE_EXIT_OPEN,
+
+ EL_BD_BLADDER_1,
+ EL_BD_BLADDER_2,
+ EL_BD_BLADDER_3,
+ EL_BD_BLADDER_4,
+
+ EL_BD_BLADDER_5,
+ EL_BD_BLADDER_6,
+ EL_BD_BLADDER_7,
+ EL_BD_BLADDER_8,
+
+ EL_BD_SAND_2,
+ EL_BD_COW_ENCLOSED_1,
+ EL_BD_COW_ENCLOSED_2,
+ EL_BD_COW_ENCLOSED_3,
+
+ EL_BD_COW_ENCLOSED_4,
+ EL_BD_COW_ENCLOSED_5,
+ EL_BD_COW_ENCLOSED_6,
+ EL_BD_COW_ENCLOSED_7,
+
+ EL_BD_WATER_1,
+ EL_BD_WATER_2,
+ EL_BD_WATER_3,
+ EL_BD_WATER_4,
+
+ EL_BD_WATER_5,
+ EL_BD_WATER_6,
+ EL_BD_WATER_7,
+ EL_BD_WATER_8,
+
+ EL_BD_WATER_9,
+ EL_BD_WATER_10,
+ EL_BD_WATER_11,
+ EL_BD_WATER_12,
+
+ EL_BD_WATER_13,
+ EL_BD_WATER_14,
+ EL_BD_WATER_15,
+ EL_BD_WATER_16,
+
+ EL_BD_BOMB_TICKING_1,
+ EL_BD_BOMB_TICKING_2,
+ EL_BD_BOMB_TICKING_3,
+ EL_BD_BOMB_TICKING_4,
+
+ EL_BD_BOMB_TICKING_5,
+ EL_BD_BOMB_TICKING_6,
+ EL_BD_BOMB_TICKING_7,
+ EL_EMPTY,
+
+ EL_BD_BOMB_EXPLODING_1,
+ EL_BD_BOMB_EXPLODING_2,
+ EL_BD_BOMB_EXPLODING_3,
+ EL_BD_BOMB_EXPLODING_4,
+
+ EL_BD_NUT_BREAKING_1,
+ EL_BD_NUT_BREAKING_2,
+ EL_BD_NUT_BREAKING_3,
+ EL_BD_NUT_BREAKING_4,
+
+ EL_BD_EXPLODING_1,
+ EL_BD_EXPLODING_2,
+ EL_BD_EXPLODING_3,
+ EL_BD_EXPLODING_4,
+
+ EL_BD_EXPLODING_5,
+ EL_BD_TIME_PENALTY,
+ EL_BD_DIAMOND_GROWING_1,
+ EL_BD_DIAMOND_GROWING_2,
+
+ EL_BD_DIAMOND_GROWING_3,
+ EL_BD_DIAMOND_GROWING_4,
+ EL_BD_DIAMOND_GROWING_5,
+ EL_BD_NITRO_PACK_EXPLODING,
+
+ EL_BD_NITRO_PACK_EXPLODING_1,
+ EL_BD_NITRO_PACK_EXPLODING_2,
+ EL_BD_NITRO_PACK_EXPLODING_3,
+ EL_BD_NITRO_PACK_EXPLODING_4,
+
+ EL_BD_ROCK_GROWING_1,
+ EL_BD_ROCK_GROWING_2,
+ EL_BD_ROCK_GROWING_3,
+ EL_BD_ROCK_GROWING_4,
+
+ EL_BD_STEELWALL_GROWING_1,
+ EL_BD_STEELWALL_GROWING_2,
+ EL_BD_STEELWALL_GROWING_3,
+ EL_BD_STEELWALL_GROWING_4,
+
+ EL_BD_CLOCK_GROWING_1,
+ EL_BD_CLOCK_GROWING_2,
+ EL_BD_CLOCK_GROWING_3,
+ EL_BD_CLOCK_GROWING_4,
+
+ EL_BD_GHOST_EXPLODING_1,
+ EL_BD_GHOST_EXPLODING_2,
+ EL_BD_GHOST_EXPLODING_3,
+ EL_BD_GHOST_EXPLODING_4,
+};
+static int *editor_hl_boulderdash_effects_ptr = editor_hl_boulderdash_effects;
+static int *editor_el_boulderdash_effects_ptr = editor_el_boulderdash_effects;
+static int num_editor_hl_boulderdash_effects = ARRAY_SIZE(editor_hl_boulderdash_effects);
+static int num_editor_el_boulderdash_effects = ARRAY_SIZE(editor_el_boulderdash_effects);
+
static int editor_hl_emerald_mine[] =
{
EL_INTERNAL_CASCADE_EM_ACTIVE,
static boolean setup_editor_el_players = TRUE;
static boolean setup_editor_el_boulderdash = TRUE;
static boolean setup_editor_el_boulderdash_native = TRUE;
+static boolean setup_editor_el_boulderdash_effects = TRUE;
static boolean setup_editor_el_emerald_mine = TRUE;
static boolean setup_editor_el_emerald_mine_club = TRUE;
static boolean setup_editor_el_more = TRUE;
&editor_hl_boulderdash_native_ptr, &num_editor_hl_boulderdash_native,
&editor_el_boulderdash_native_ptr, &num_editor_el_boulderdash_native
},
+ {
+ &setup_editor_el_boulderdash_effects,
+ &setup.editor_cascade.el_bd_effects,
+ &editor_hl_boulderdash_effects_ptr, &num_editor_hl_boulderdash_effects,
+ &editor_el_boulderdash_effects_ptr, &num_editor_el_boulderdash_effects
+ },
{
&setup_editor_el_emerald_mine,
&setup.editor_cascade.el_em,
setup_editor_el_players = TRUE;
setup_editor_el_boulderdash = TRUE;
setup_editor_el_boulderdash_native = TRUE;
+ setup_editor_el_boulderdash_effects = TRUE;
setup_editor_el_emerald_mine = TRUE;
setup_editor_el_emerald_mine_club = TRUE;
setup_editor_el_more = TRUE;
setup_editor_el_players = FALSE;
setup_editor_el_boulderdash = FALSE;
setup_editor_el_boulderdash_native = FALSE;
+ setup_editor_el_boulderdash_effects = FALSE;
setup_editor_el_emerald_mine = FALSE;
setup_editor_el_emerald_mine_club = FALSE;
setup_editor_el_more = FALSE;
if (level.game_engine_type == GAME_ENGINE_TYPE_RND)
{
setup_editor_el_boulderdash_native = FALSE;
+ setup_editor_el_boulderdash_effects = FALSE;
setup_editor_el_mirror_magic = FALSE;
setup_editor_el_deflektor = FALSE;
}
{
setup_editor_el_boulderdash = FALSE;
setup_editor_el_boulderdash_native = FALSE;
+ setup_editor_el_boulderdash_effects = FALSE;
setup_editor_el_more = FALSE;
setup_editor_el_sokoban = FALSE;
setup_editor_el_supaplex = FALSE;
setup_editor_el_players = FALSE;
setup_editor_el_boulderdash = FALSE;
setup_editor_el_boulderdash_native = FALSE;
+ setup_editor_el_boulderdash_effects = FALSE;
setup_editor_el_emerald_mine = FALSE;
setup_editor_el_emerald_mine_club = FALSE;
setup_editor_el_more = FALSE;
setup_editor_el_players = FALSE;
setup_editor_el_boulderdash = FALSE;
setup_editor_el_boulderdash_native = FALSE;
+ setup_editor_el_boulderdash_effects = FALSE;
setup_editor_el_emerald_mine = FALSE;
setup_editor_el_emerald_mine_club = FALSE;
setup_editor_el_more = FALSE;
int tilesize = ED_DRAWINGAREA_TILE_SIZE;
for (x = 0; x < area_xsize; x++)
+ {
for (y = 0; y < area_ysize; y++)
+ {
+ int element = value[x * area_ysize + y];
+ int graphic;
+ int frame;
+
+ getEditorGraphicAndFrame(element, &graphic, &frame, TRUE);
+
DrawSizedGraphicExt(drawto,
gi->x + x * tilesize,
gi->y + y * tilesize,
- el2edimg(value[x * area_ysize + y]), 0, tilesize);
+ graphic, frame, tilesize);
+ }
+ }
}
static void ScrollEditorLevel(int from_x, int from_y, int scroll)
BackToFront();
}
+static void getEditorGraphicAndFrame(int element, int *graphic, int *frame, boolean use_editor_gfx)
+{
+ if (use_editor_gfx)
+ {
+ *graphic = el2edimg(element);
+ *frame = 0;
+ }
+ else
+ {
+ *graphic = el2img(element);
+ *frame = (ANIM_MODE(*graphic) == ANIM_CE_VALUE ?
+ custom_element.ce_value_fixed_initial :
+ ANIM_MODE(*graphic) == ANIM_CE_SCORE ?
+ custom_element.collect_score_initial : FrameCounter);
+ }
+
+ if (*graphic == IMG_UNKNOWN)
+ {
+ // no graphic defined -- if BD style, try to get runtime ("effect") element graphics
+ // (normal BD style elements have graphics, but runtime ("effects") elements do not)
+ int element_bd = map_element_RND_to_BD_cave(element);
+
+ if (element_bd != O_UNKNOWN)
+ {
+ struct GraphicInfo_BD *g_bd = &graphic_info_bd_object[element_bd][0];
+
+ *graphic = g_bd->graphic;
+ *frame = g_bd->frame;
+ }
+ }
+}
+
static void getEditorGraphicSource(int element, int tile_size, Bitmap **bitmap,
int *x, int *y)
{
- getSizedGraphicSource(el2edimg(element), 0, tile_size, bitmap, x, y);
+ int graphic;
+ int frame;
+
+ getEditorGraphicAndFrame(element, &graphic, &frame, TRUE);
+
+ getSizedGraphicSource(graphic, frame, tile_size, bitmap, x, y);
}
static void CreateControlButtons(void)
PrintInfoText(no_description_text, font1_nr, xpos, ypos - line1_height);
}
-#define TEXT_COLLECTING "Score for collecting"
-#define TEXT_COLLECTING_EXTRA "Score for extra diamonds"
-#define TEXT_SMASHING "Score for smashing"
-#define TEXT_SLURPING "Score for slurping robot"
-#define TEXT_CRACKING "Score for cracking"
-#define TEXT_AMOEBA_SPEED "Speed of amoeba growth"
-#define TEXT_AMOEBA_THRESHOED "Size for turning to rocks"
-#define TEXT_AMOEBA_SLOW_TIME "Slow growth time (seconds)"
-#define TEXT_AMOEBA_SLOW_RATE "Slow growth rate (percent)"
-#define TEXT_AMOEBA_FAST_RATE "Fast growth rate (percent)"
-#define TEXT_DURATION "Duration when activated"
-#define TEXT_DELAY_ON "Delay before activating"
-#define TEXT_DELAY_OFF "Delay before deactivating"
-#define TEXT_DELAY_CHANGING "Delay before changing"
-#define TEXT_DELAY_EXPLODING "Delay before exploding"
-#define TEXT_DELAY_MOVING "Delay before moving"
-#define TEXT_BALL_DELAY "Element generation delay"
-#define TEXT_MOVE_SPEED "Speed of android moving"
-#define TEXT_CLONE_SPEED "Speed of android cloning"
-#define TEXT_GAME_OF_LIFE_1 "Min neighbours to survive"
-#define TEXT_GAME_OF_LIFE_2 "Max neighbours to survive"
-#define TEXT_GAME_OF_LIFE_3 "Min neighbours to create"
-#define TEXT_GAME_OF_LIFE_4 "Max neighbours to create"
-#define TEXT_TIME_BONUS "Extra time to solve level"
-#define TEXT_TIME_PENALTY "Time penalty if destroyed"
-#define TEXT_PERMEABILITY_RATE "slime permeability rate"
-#define TEXT_PERMEABILITY_BITS "slime permeability bits"
-#define TEXT_RANDOM_SEED "slime random number seed"
-#define TEXT_ACID_SPREAD_RATE "Spread rate (percent)"
+#define TEXT_COLLECTING "Score for collecting"
+#define TEXT_COLLECTING_EXTRA "Score for extra diamonds"
+#define TEXT_SMASHING "Score for smashing"
+#define TEXT_SLURPING "Score for slurping robot"
+#define TEXT_CRACKING "Score for cracking"
+#define TEXT_AMOEBA_SPEED "Speed of amoeba growth"
+#define TEXT_AMOEBA_THRESHOED "Size for turning to rocks"
+#define TEXT_AMOEBA_SLOW_TIME "Slow growth time (seconds)"
+#define TEXT_AMOEBA_SLOW_RATE "Slow growth rate (percent)"
+#define TEXT_AMOEBA_FAST_RATE "Fast growth rate (percent)"
+#define TEXT_DURATION "Duration when activated"
+#define TEXT_DELAY_ON "Delay before activating"
+#define TEXT_DELAY_OFF "Delay before deactivating"
+#define TEXT_DELAY_CHANGING "Delay before changing"
+#define TEXT_DELAY_EXPLODING "Delay before exploding"
+#define TEXT_DELAY_MOVING "Delay before moving"
+#define TEXT_BALL_DELAY "Element generation delay"
+#define TEXT_MOVE_SPEED "Speed of android moving"
+#define TEXT_CLONE_SPEED "Speed of android cloning"
+#define TEXT_GAME_OF_LIFE_1 "Min neighbours to survive"
+#define TEXT_GAME_OF_LIFE_2 "Max neighbours to survive"
+#define TEXT_GAME_OF_LIFE_3 "Min neighbours to create"
+#define TEXT_GAME_OF_LIFE_4 "Max neighbours to create"
+#define TEXT_TIME_BONUS "Extra time to solve level"
+#define TEXT_TIME_PENALTY "Time penalty if destroyed"
+#define TEXT_PERMEABILITY_RATE "slime permeability rate"
+#define TEXT_PERMEABILITY_BITS "slime permeability bits"
+#define TEXT_RANDOM_SEED "slime random number seed"
+#define TEXT_ACID_SPREAD_RATE "Spread rate (percent)"
+#define TEXT_BITER_MOVE_DELAY "Move delay (BD frames)"
+#define TEXT_REPLICATION_DELAY "Create delay (BD frames)"
+#define TEXT_HAMMER_BREAK_DELAY "Delay for breaking walls"
+#define TEXT_HAMMER_REAPPEAR_DELAY "Delay for reappearing walls"
+#define TEXT_SKELETONS_NEEDED "Skeletons needed to use pot"
+#define TEXT_SKELETONS_WORTH "Counts as this many diamonds"
static struct
{
-1, 65535 },
{ EL_BD_ACID, &level.bd_acid_spread_rate, TEXT_ACID_SPREAD_RATE,
0, 100 },
+ { EL_BD_BITER, &level.bd_biter_move_delay, TEXT_BITER_MOVE_DELAY,
+ 0, 3 },
+ { EL_BD_BITER_RIGHT, &level.bd_biter_move_delay, TEXT_BITER_MOVE_DELAY,
+ 0, 3 },
+ { EL_BD_BITER_UP, &level.bd_biter_move_delay, TEXT_BITER_MOVE_DELAY,
+ 0, 3 },
+ { EL_BD_BITER_LEFT, &level.bd_biter_move_delay, TEXT_BITER_MOVE_DELAY,
+ 0, 3 },
+ { EL_BD_BITER_DOWN, &level.bd_biter_move_delay, TEXT_BITER_MOVE_DELAY,
+ 0, 3 },
+ { EL_BD_REPLICATOR, &level.bd_replicator_create_delay, TEXT_REPLICATION_DELAY,
+ 0, 100 },
+ { EL_BD_PNEUMATIC_HAMMER, &level.bd_hammer_walls_break_delay, TEXT_HAMMER_BREAK_DELAY,
+ 1, 100 },
+ { EL_BD_PNEUMATIC_HAMMER, &level.bd_hammer_walls_reappear_delay, TEXT_HAMMER_REAPPEAR_DELAY,
+ 1, 200 },
+ { EL_BD_POT, &level.bd_num_skeletons_needed_for_pot, TEXT_SKELETONS_NEEDED,
+ 0, 50 },
+ { EL_BD_SKELETON, &level.bd_num_skeletons_needed_for_pot, TEXT_SKELETONS_NEEDED,
+ 0, 50 },
+ { EL_BD_SKELETON, &level.bd_skeleton_worth_num_diamonds, TEXT_SKELETONS_WORTH,
+ 0, 10 },
{ EL_EXTRA_TIME, &level.extra_time, TEXT_TIME_BONUS },
{ EL_TIME_ORB_FULL, &level.time_orb_time, TEXT_TIME_BONUS },
{ EL_GAME_OF_LIFE, &level.game_of_life[0], TEXT_GAME_OF_LIFE_1,0,8 },
IS_DF_LASER(element) ||
IS_PLAYER_ELEMENT(element) ||
IS_BD_PLAYER_ELEMENT(element) ||
+ IS_BD_EXPANDABLE_WALL(properties_element) ||
+ IS_BD_EXPANDABLE_STEELWALL(properties_element) ||
+ IS_BD_CONVEYOR_BELT(properties_element) ||
+ IS_BD_CONVEYOR_BELT_SWITCH(properties_element) ||
IS_SOKOBAN_OBJECT_OR_FIELD(element) ||
HAS_EDITOR_CONTENT(element) ||
CAN_GROW(element) ||
element == EL_BD_ROCK ||
element == EL_BD_MEGA_ROCK ||
element == EL_BD_SWEET ||
- element == EL_BD_VOODOO_DOLL)
+ element == EL_BD_VOODOO_DOLL ||
+ element == EL_BD_WATER)
{
return TRUE;
}
(properties_element == EL_BD_VOODOO_DOLL ? 4 : 0) +
(properties_element == EL_BD_SLIME ? 1 : 0) +
(properties_element == EL_BD_ACID ? 1 : 0) +
+ (properties_element == EL_BD_REPLICATOR ? 1 : 0) +
(properties_element == EL_EMC_MAGIC_BALL ? 2 : 0) +
num_element_counters);
+ // special case: set magic wall counter for BD game engine separately
+ if (properties_element == EL_BD_MAGIC_WALL && level.game_engine_type == GAME_ENGINE_TYPE_BD)
+ counterbutton_info[counter_id].y = ED_ELEMENT_SETTINGS_YPOS(1);
+
// special case: set amoeba counters for BD game engine separately
if ((properties_element == EL_BD_AMOEBA && level.game_engine_type == GAME_ENGINE_TYPE_BD) ||
(properties_element == EL_BD_AMOEBA_2))
counterbutton_info[counter_id].y = ED_ELEMENT_SETTINGS_YPOS(3 + num_element_counters);
+ // special case: set position for delay counter for reappearing hammered walls
+ if (properties_element == EL_BD_PNEUMATIC_HAMMER && num_element_counters > 0)
+ counterbutton_info[counter_id].y += 1;
+
counterbutton_info[counter_id].value = elements_with_counter[i].value;
counterbutton_info[counter_id].text_right = elements_with_counter[i].text;
counterbutton_info[counter_id].min_value = elements_with_counter[i].min_value;
break;
}
+ if (properties_element == EL_BD_MAGIC_WALL && level.game_engine_type == GAME_ENGINE_TYPE_BD)
+ {
+ // draw stickybutton gadget
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_STICK_ELEMENT);
+
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_MAGIC_WALL_WAIT_HATCHING);
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_MAGIC_WALL_STOPS_AMOEBA);
+
+ MapDrawingArea(ED_DRAWING_ID_BD_MAGIC_WALL_DIAMOND_TO);
+ MapDrawingArea(ED_DRAWING_ID_BD_MAGIC_WALL_ROCK_TO);
+ MapDrawingArea(ED_DRAWING_ID_BD_MAGIC_WALL_MEGA_ROCK_TO);
+ MapDrawingArea(ED_DRAWING_ID_BD_MAGIC_WALL_NUT_TO);
+ MapDrawingArea(ED_DRAWING_ID_BD_MAGIC_WALL_NITRO_PACK_TO);
+ MapDrawingArea(ED_DRAWING_ID_BD_MAGIC_WALL_FLYING_DIAMOND_TO);
+ MapDrawingArea(ED_DRAWING_ID_BD_MAGIC_WALL_FLYING_ROCK_TO);
+ }
+
if (HAS_EDITOR_CONTENT(properties_element))
{
// draw stickybutton gadget
MapDrawingArea(ED_DRAWING_ID_BD_ACID_EATS_ELEMENT);
MapDrawingArea(ED_DRAWING_ID_BD_ACID_TURNS_TO_ELEMENT);
}
+ else if (IS_BD_BITER(properties_element))
+ {
+ MapDrawingArea(ED_DRAWING_ID_BD_BITER_EATS_ELEMENT);
+ }
+ else if (properties_element == EL_BD_BLADDER)
+ {
+ MapDrawingArea(ED_DRAWING_ID_BD_BLADDER_CONVERTS_BY_ELEMENT);
+ }
else if (properties_element == EL_YAMYAM ||
properties_element == EL_YAMYAM_LEFT ||
properties_element == EL_YAMYAM_RIGHT ||
if (properties_element == EL_BD_SLIME)
{
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_SLIME_IS_PREDICTABLE);
+
+ MapDrawingArea(ED_DRAWING_ID_BD_SLIME_EATS_ELEMENT_1);
+ MapDrawingArea(ED_DRAWING_ID_BD_SLIME_CONVERTS_TO_ELEMENT_1);
+ MapDrawingArea(ED_DRAWING_ID_BD_SLIME_EATS_ELEMENT_2);
+ MapDrawingArea(ED_DRAWING_ID_BD_SLIME_CONVERTS_TO_ELEMENT_2);
+ MapDrawingArea(ED_DRAWING_ID_BD_SLIME_EATS_ELEMENT_3);
+ MapDrawingArea(ED_DRAWING_ID_BD_SLIME_CONVERTS_TO_ELEMENT_3);
}
- if (properties_element == EL_BD_MAGIC_WALL)
+ if (IS_BD_EXPANDABLE_WALL(properties_element) ||
+ IS_BD_EXPANDABLE_STEELWALL(properties_element))
{
- MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_MAGIC_WALL_WAIT_HATCHING);
- MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_MAGIC_WALL_STOPS_AMOEBA);
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_CHANGE_EXPANDING_WALL);
+
+ if (IS_BD_EXPANDABLE_WALL(properties_element))
+ MapDrawingArea(ED_DRAWING_ID_BD_EXPANDING_WALL_LOOKS_LIKE);
+ }
+
+ if (properties_element == EL_BD_REPLICATOR)
+ {
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_REPLICATORS_ACTIVE);
+ }
+
+ if (IS_BD_CONVEYOR_BELT(properties_element) ||
+ IS_BD_CONVEYOR_BELT_SWITCH(properties_element))
+ {
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_CONVEYOR_BELTS_ACTIVE);
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_CONVEYOR_BELTS_CHANGED);
+ }
+
+ if (properties_element == EL_BD_WATER)
+ {
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_WATER_CANNOT_FLOW_DOWN);
+ }
+
+ if (properties_element == EL_BD_PNEUMATIC_HAMMER)
+ {
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_HAMMER_WALLS_REAPPEAR);
+ }
+
+ if (properties_element == EL_BD_NUT)
+ {
+ MapDrawingArea(ED_DRAWING_ID_BD_NUT_CONTENT);
}
// special case: slippery walls option for gems only available in R'n'D game engine
static void DrawEditorElementAnimation(int x, int y)
{
- int graphic = el2img(properties_element);
- int frame = (ANIM_MODE(graphic) == ANIM_CE_VALUE ?
- custom_element.ce_value_fixed_initial :
- ANIM_MODE(graphic) == ANIM_CE_SCORE ?
- custom_element.collect_score_initial : FrameCounter);
+ int graphic;
+ int frame;
+
+ getEditorGraphicAndFrame(properties_element, &graphic, &frame, FALSE);
DrawFixedGraphicAnimationExt(drawto, x, y, graphic, frame, NO_MASKING);
}