GADGET_ID_BD_HATCHING_DELAY_SECONDS_DOWN,
GADGET_ID_BD_HATCHING_DELAY_SECONDS_TEXT,
GADGET_ID_BD_HATCHING_DELAY_SECONDS_UP,
- GADGET_ID_BD_CREATURES_AUTO_TURN_DELAY_DOWN,
- GADGET_ID_BD_CREATURES_AUTO_TURN_DELAY_TEXT,
- GADGET_ID_BD_CREATURES_AUTO_TURN_DELAY_UP,
GADGET_ID_BD_PUSHING_PROB_DOWN,
GADGET_ID_BD_PUSHING_PROB_TEXT,
GADGET_ID_BD_PUSHING_PROB_UP,
GADGET_ID_BD_NUT_CONTENT,
GADGET_ID_BD_EXPANDING_WALL_LOOKS_LIKE,
GADGET_ID_BD_SAND_LOOKS_LIKE,
+ GADGET_ID_BD_ROCK_TURNS_TO_ON_FALLING,
+ GADGET_ID_BD_ROCK_TURNS_TO_ON_IMPACT,
+ GADGET_ID_BD_DIAMOND_TURNS_TO_ON_FALLING,
+ GADGET_ID_BD_DIAMOND_TURNS_TO_ON_IMPACT,
+ GADGET_ID_BD_FIREFLY_EXPLODES_TO,
+ GADGET_ID_BD_FIREFLY_2_EXPLODES_TO,
+ GADGET_ID_BD_BUTTERFLY_EXPLODES_TO,
+ GADGET_ID_BD_BUTTERFLY_2_EXPLODES_TO,
+ GADGET_ID_BD_STONEFLY_EXPLODES_TO,
+ GADGET_ID_BD_DRAGONFLY_EXPLODES_TO,
+ GADGET_ID_BD_DIAMOND_BIRTH_TURNS_TO,
+ GADGET_ID_BD_BOMB_EXPLOSION_TURNS_TO,
+ GADGET_ID_BD_NITRO_EXPLOSION_TURNS_TO,
+ GADGET_ID_BD_EXPLOSION_TURNS_TO,
GADGET_ID_START_ELEMENT,
GADGET_ID_ARTWORK_ELEMENT,
GADGET_ID_EXPLOSION_ELEMENT,
GADGET_ID_LEVELSET_SAVE_MODE,
GADGET_ID_WIND_DIRECTION,
GADGET_ID_PLAYER_SPEED,
+ GADGET_ID_BD_GRAVITY_DIRECTION,
GADGET_ID_MM_BALL_CHOICE_MODE,
GADGET_ID_CUSTOM_WALK_TO_ACTION,
GADGET_ID_CUSTOM_EXPLOSION_TYPE,
GADGET_ID_BD_LINE_SHIFTING_BORDERS,
GADGET_ID_BD_SCAN_FIRST_AND_LAST_ROW,
GADGET_ID_BD_SHORT_EXPLOSIONS,
- GADGET_ID_BD_GRAVITY_AFFECTS_ALL,
- GADGET_ID_BD_CREATURES_START_BACKWARDS,
- GADGET_ID_BD_CREATURES_TURN_ON_HATCHING,
GADGET_ID_STICK_ELEMENT,
GADGET_ID_EM_SLIPPERY_GEMS,
GADGET_ID_EM_EXPLODES_BY_FIRE,
GADGET_ID_BD_DIAGONAL_MOVEMENTS,
GADGET_ID_BD_TOPMOST_PLAYER_ACTIVE,
GADGET_ID_BD_PUSH_MEGA_ROCK_WITH_SWEET,
+ GADGET_ID_BD_MAGIC_WALL_ZERO_INFINITE,
GADGET_ID_BD_MAGIC_WALL_WAIT_HATCHING,
GADGET_ID_BD_MAGIC_WALL_STOPS_AMOEBA,
+ GADGET_ID_BD_MAGIC_WALL_BREAK_SCAN,
GADGET_ID_BD_AMOEBA_WAIT_FOR_HATCHING,
GADGET_ID_BD_AMOEBA_START_IMMEDIATELY,
GADGET_ID_BD_AMOEBA_2_EXPLODE_BY_AMOEBA,
GADGET_ID_BD_CONVEYOR_BELTS_CHANGED,
GADGET_ID_BD_WATER_CANNOT_FLOW_DOWN,
GADGET_ID_BD_HAMMER_WALLS_REAPPEAR,
+ GADGET_ID_BD_INFINITE_ROCKETS,
+ GADGET_ID_BD_CREATURES_START_BACKWARDS,
+ GADGET_ID_BD_CREATURES_TURN_ON_HATCHING,
+ GADGET_ID_BD_GRAVITY_SWITCH_ACTIVE,
+ GADGET_ID_BD_GRAVITY_AFFECTS_ALL,
GADGET_ID_ENVELOPE_AUTOWRAP,
GADGET_ID_ENVELOPE_CENTERED,
GADGET_ID_MM_LASER_RED,
ED_COUNTER_ID_BD_CYCLE_DELAY_C64,
ED_COUNTER_ID_BD_HATCHING_DELAY_CYCLES,
ED_COUNTER_ID_BD_HATCHING_DELAY_SECONDS,
- ED_COUNTER_ID_BD_CREATURES_AUTO_TURN_DELAY,
ED_COUNTER_ID_BD_PUSHING_PROB,
ED_COUNTER_ID_BD_PUSHING_PROB_WITH_SWEET,
ED_COUNTER_ID_ELEMENT_VALUE1,
ED_SELECTBOX_ID_LEVELSET_SAVE_MODE,
ED_SELECTBOX_ID_WIND_DIRECTION,
ED_SELECTBOX_ID_PLAYER_SPEED,
+ ED_SELECTBOX_ID_BD_GRAVITY_DIRECTION,
ED_SELECTBOX_ID_MM_BALL_CHOICE_MODE,
ED_SELECTBOX_ID_CUSTOM_ACCESS_TYPE,
ED_SELECTBOX_ID_CUSTOM_ACCESS_LAYER,
ED_CHECKBUTTON_ID_BD_LINE_SHIFTING_BORDERS,
ED_CHECKBUTTON_ID_BD_SCAN_FIRST_AND_LAST_ROW,
ED_CHECKBUTTON_ID_BD_SHORT_EXPLOSIONS,
- ED_CHECKBUTTON_ID_BD_GRAVITY_AFFECTS_ALL,
- ED_CHECKBUTTON_ID_BD_CREATURES_START_BACKWARDS,
- ED_CHECKBUTTON_ID_BD_CREATURES_TURN_ON_HATCHING,
ED_CHECKBUTTON_ID_STICK_ELEMENT,
ED_CHECKBUTTON_ID_EM_SLIPPERY_GEMS,
ED_CHECKBUTTON_ID_EM_EXPLODES_BY_FIRE,
ED_CHECKBUTTON_ID_BD_DIAGONAL_MOVEMENTS,
ED_CHECKBUTTON_ID_BD_TOPMOST_PLAYER_ACTIVE,
ED_CHECKBUTTON_ID_BD_PUSH_MEGA_ROCK_WITH_SWEET,
+ ED_CHECKBUTTON_ID_BD_MAGIC_WALL_ZERO_INFINITE,
ED_CHECKBUTTON_ID_BD_MAGIC_WALL_WAIT_HATCHING,
ED_CHECKBUTTON_ID_BD_MAGIC_WALL_STOPS_AMOEBA,
+ ED_CHECKBUTTON_ID_BD_MAGIC_WALL_BREAK_SCAN,
ED_CHECKBUTTON_ID_BD_AMOEBA_WAIT_FOR_HATCHING,
ED_CHECKBUTTON_ID_BD_AMOEBA_START_IMMEDIATELY,
ED_CHECKBUTTON_ID_BD_AMOEBA_2_EXPLODE_BY_AMOEBA,
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_BD_INFINITE_ROCKETS,
+ ED_CHECKBUTTON_ID_BD_CREATURES_START_BACKWARDS,
+ ED_CHECKBUTTON_ID_BD_CREATURES_TURN_ON_HATCHING,
+ ED_CHECKBUTTON_ID_BD_GRAVITY_SWITCH_ACTIVE,
+ ED_CHECKBUTTON_ID_BD_GRAVITY_AFFECTS_ALL,
ED_CHECKBUTTON_ID_ENVELOPE_AUTOWRAP,
ED_CHECKBUTTON_ID_ENVELOPE_CENTERED,
ED_CHECKBUTTON_ID_MM_LASER_RED,
#define ED_CHECKBUTTON_ID_EDITOR_LAST ED_CHECKBUTTON_ID_CUSTOM_USE_TEMPLATE_2
#define ED_CHECKBUTTON_ID_ENGINE_FIRST ED_CHECKBUTTON_ID_BD_INTERMISSION
-#define ED_CHECKBUTTON_ID_ENGINE_LAST ED_CHECKBUTTON_ID_BD_CREATURES_TURN_ON_HATCHING
+#define ED_CHECKBUTTON_ID_ENGINE_LAST ED_CHECKBUTTON_ID_BD_SHORT_EXPLOSIONS
#define ED_CHECKBUTTON_ID_CUSTOM1_FIRST ED_CHECKBUTTON_ID_CUSTOM_USE_GRAPHIC
#define ED_CHECKBUTTON_ID_CUSTOM1_LAST ED_CHECKBUTTON_ID_CUSTOM_INDESTRUCTIBLE
ED_DRAWING_ID_BD_NUT_CONTENT,
ED_DRAWING_ID_BD_EXPANDING_WALL_LOOKS_LIKE,
ED_DRAWING_ID_BD_SAND_LOOKS_LIKE,
+ ED_DRAWING_ID_BD_ROCK_TURNS_TO_ON_FALLING,
+ ED_DRAWING_ID_BD_ROCK_TURNS_TO_ON_IMPACT,
+ ED_DRAWING_ID_BD_DIAMOND_TURNS_TO_ON_FALLING,
+ ED_DRAWING_ID_BD_DIAMOND_TURNS_TO_ON_IMPACT,
+ ED_DRAWING_ID_BD_FIREFLY_EXPLODES_TO,
+ ED_DRAWING_ID_BD_FIREFLY_2_EXPLODES_TO,
+ ED_DRAWING_ID_BD_BUTTERFLY_EXPLODES_TO,
+ ED_DRAWING_ID_BD_BUTTERFLY_2_EXPLODES_TO,
+ ED_DRAWING_ID_BD_STONEFLY_EXPLODES_TO,
+ ED_DRAWING_ID_BD_DRAGONFLY_EXPLODES_TO,
+ ED_DRAWING_ID_BD_DIAMOND_BIRTH_TURNS_TO,
+ ED_DRAWING_ID_BD_BOMB_EXPLOSION_TURNS_TO,
+ ED_DRAWING_ID_BD_NITRO_EXPLOSION_TURNS_TO,
+ ED_DRAWING_ID_BD_EXPLOSION_TURNS_TO,
ED_DRAWING_ID_START_ELEMENT,
ED_DRAWING_ID_ARTWORK_ELEMENT,
ED_DRAWING_ID_EXPLOSION_ELEMENT,
&level.bd_hatching_delay_seconds,
NULL, NULL, "Hatching delay (seconds)"
},
- {
- ED_COUNTER_ID_BD_CREATURES_AUTO_TURN_DELAY,
- ED_LEVEL_SETTINGS_XPOS(0), ED_LEVEL_SETTINGS_YPOS(12),
- 0, 999,
- GADGET_ID_BD_CREATURES_AUTO_TURN_DELAY_DOWN, GADGET_ID_BD_CREATURES_AUTO_TURN_DELAY_UP,
- GADGET_ID_BD_CREATURES_AUTO_TURN_DELAY_TEXT, GADGET_ID_NONE,
- &level.bd_creatures_auto_turn_delay,
- NULL, NULL, "Creatures auto turn delay"
- },
// ---------- element settings: configure (various elements) ----------------
{ -1, NULL }
};
+static struct ValueTextInfo options_bd_gravity_direction[] =
+{
+ { GD_MV_DOWN, "down" },
+ { GD_MV_UP, "up" },
+ { GD_MV_LEFT, "left" },
+ { GD_MV_RIGHT, "right" },
+
+ { -1, NULL }
+};
+
static struct ValueTextInfo options_wind_direction[] =
{
{ MV_START_NONE, "none" },
&level.initial_player_stepsize[0],
NULL, "Initial player speed:", NULL, "Select initial player speed"
},
+ {
+ ED_SELECTBOX_ID_BD_GRAVITY_DIRECTION,
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(0),
+ GADGET_ID_BD_GRAVITY_DIRECTION, GADGET_ID_NONE,
+ -1,
+ options_bd_gravity_direction,
+ &level.bd_gravity_direction,
+ NULL, "Gravity direction:", NULL, "Select initial gravity direction"
+ },
{
ED_SELECTBOX_ID_MM_BALL_CHOICE_MODE,
ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(4),
NULL, NULL,
"Short explosions", "Use four game cycles for explosions"
},
- {
- ED_CHECKBUTTON_ID_BD_GRAVITY_AFFECTS_ALL,
- ED_LEVEL_SETTINGS_XPOS(0), ED_LEVEL_SETTINGS_YPOS(9),
- GADGET_ID_BD_GRAVITY_AFFECTS_ALL, GADGET_ID_NONE,
- &level.bd_gravity_affects_all,
- NULL, NULL,
- "Gravity change affects everything", "Gravity affects all falling objects"
- },
- {
- ED_CHECKBUTTON_ID_BD_CREATURES_START_BACKWARDS,
- ED_ELEMENT_SETTINGS_XPOS(0), ED_LEVEL_SETTINGS_YPOS(10),
- GADGET_ID_BD_CREATURES_START_BACKWARDS, GADGET_ID_NONE,
- &level.bd_creatures_start_backwards,
- NULL, NULL,
- "Creatures start moving backwards", "Creatures start in opposite direction"
- },
- {
- ED_CHECKBUTTON_ID_BD_CREATURES_TURN_ON_HATCHING,
- ED_ELEMENT_SETTINGS_XPOS(0), ED_LEVEL_SETTINGS_YPOS(11),
- GADGET_ID_BD_CREATURES_TURN_ON_HATCHING, GADGET_ID_NONE,
- &level.bd_creatures_turn_on_hatching,
- NULL, NULL,
- "Creatures turn on hatching", "Creatures change direction on hatching"
- },
// ---------- element settings: configure (various elements) ----------------
"Mega rocks pushable with sweet", "Push mega rocks after eating sweet"
},
{
- ED_CHECKBUTTON_ID_BD_MAGIC_WALL_WAIT_HATCHING,
+ ED_CHECKBUTTON_ID_BD_MAGIC_WALL_ZERO_INFINITE,
ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(2),
+ GADGET_ID_BD_MAGIC_WALL_ZERO_INFINITE, GADGET_ID_NONE,
+ &level.bd_magic_wall_zero_infinite,
+ NULL, NULL,
+ "Run forever if duration is zero", "Run infinitely if timer is zero"
+ },
+ {
+ ED_CHECKBUTTON_ID_BD_MAGIC_WALL_WAIT_HATCHING,
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(3),
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(3),
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(4),
GADGET_ID_BD_MAGIC_WALL_STOPS_AMOEBA, GADGET_ID_NONE,
&level.bd_magic_wall_stops_amoeba,
NULL, NULL,
- "Turn amoeba to diamonds", "Activation changes amoeba to diamonds"
+ "Stop amoeba and turn to diamonds", "Activation changes amoeba to diamonds"
+ },
+ {
+ ED_CHECKBUTTON_ID_BD_MAGIC_WALL_BREAK_SCAN,
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(5),
+ GADGET_ID_BD_MAGIC_WALL_BREAK_SCAN, GADGET_ID_NONE,
+ &level.bd_magic_wall_break_scan,
+ NULL, NULL,
+ "Emulate amoeba bug in BD1", "Use buggy BD1 behavior"
},
{
ED_CHECKBUTTON_ID_BD_AMOEBA_WAIT_FOR_HATCHING,
NULL, NULL,
"Hammered walls reappear", "Hammered walls reappear after delay"
},
+ {
+ ED_CHECKBUTTON_ID_BD_INFINITE_ROCKETS,
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(0),
+ GADGET_ID_BD_INFINITE_ROCKETS, GADGET_ID_NONE,
+ &level.bd_infinite_rockets,
+ NULL, NULL,
+ "Infinite rockets", "Rocket launcher has infinite rockets"
+ },
+ {
+ ED_CHECKBUTTON_ID_BD_CREATURES_START_BACKWARDS,
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(0),
+ GADGET_ID_BD_CREATURES_START_BACKWARDS, GADGET_ID_NONE,
+ &level.bd_creatures_start_backwards,
+ NULL, NULL,
+ "Creatures start moving backwards", "Creatures start in opposite direction"
+ },
+ {
+ ED_CHECKBUTTON_ID_BD_CREATURES_TURN_ON_HATCHING,
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(2),
+ GADGET_ID_BD_CREATURES_TURN_ON_HATCHING, GADGET_ID_NONE,
+ &level.bd_creatures_turn_on_hatching,
+ NULL, NULL,
+ "Creatures auto turn on hatching", "Creatures change direction on hatching"
+ },
+ {
+ ED_CHECKBUTTON_ID_BD_GRAVITY_SWITCH_ACTIVE,
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(1),
+ GADGET_ID_BD_GRAVITY_SWITCH_ACTIVE, GADGET_ID_NONE,
+ &level.bd_gravity_switch_active,
+ NULL, NULL,
+ "Gravity switch active at start", "Gravity switch starts in active state"
+ },
+ {
+ ED_CHECKBUTTON_ID_BD_GRAVITY_AFFECTS_ALL,
+ ED_LEVEL_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(3),
+ GADGET_ID_BD_GRAVITY_AFFECTS_ALL, GADGET_ID_NONE,
+ &level.bd_gravity_affects_all,
+ NULL, NULL,
+ "Gravity change affects everything", "Gravity affects all falling objects"
+ },
{
ED_CHECKBUTTON_ID_ENVELOPE_AUTOWRAP,
ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(1),
{
ED_DRAWING_ID_BD_MAGIC_WALL_DIAMOND_TO,
- ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(4),
+ 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_DIAMOND_TO, GADGET_ID_NONE,
&level.bd_magic_wall_diamond_to, 1, 1,
},
{
ED_DRAWING_ID_BD_MAGIC_WALL_ROCK_TO,
- ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(5),
+ 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_ROCK_TO, GADGET_ID_NONE,
&level.bd_magic_wall_rock_to, 1, 1,
},
{
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_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(8),
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,
},
{
ED_DRAWING_ID_BD_MAGIC_WALL_NUT_TO,
- ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(7),
+ 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_NUT_TO, GADGET_ID_NONE,
&level.bd_magic_wall_nut_to, 1, 1,
},
{
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_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(10),
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,
},
{
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_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(11),
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,
},
{
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_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(12),
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,
&level.bd_sand_looks_like, 1, 1,
"Use graphic of element:", NULL, NULL, NULL, "Sand looks like this element"
},
+ {
+ ED_DRAWING_ID_BD_ROCK_TURNS_TO_ON_FALLING,
+ 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_ROCK_TURNS_TO_ON_FALLING, GADGET_ID_NONE,
+ &level.bd_rock_turns_to_on_falling, 1, 1,
+ "Turns to when falling:", NULL, NULL, NULL, "Changes to this when falling starts"
+ },
+ {
+ ED_DRAWING_ID_BD_ROCK_TURNS_TO_ON_IMPACT,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(3),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_ROCK_TURNS_TO_ON_IMPACT, GADGET_ID_NONE,
+ &level.bd_rock_turns_to_on_impact, 1, 1,
+ "Turns to on impact:", NULL, NULL, NULL, "Changes to this when falling stops"
+ },
+ {
+ ED_DRAWING_ID_BD_DIAMOND_TURNS_TO_ON_FALLING,
+ 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_DIAMOND_TURNS_TO_ON_FALLING, GADGET_ID_NONE,
+ &level.bd_diamond_turns_to_on_falling, 1, 1,
+ "Turns to when falling:", NULL, NULL, NULL, "Changes to this when falling starts"
+ },
+ {
+ ED_DRAWING_ID_BD_DIAMOND_TURNS_TO_ON_IMPACT,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(3),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_DIAMOND_TURNS_TO_ON_IMPACT, GADGET_ID_NONE,
+ &level.bd_diamond_turns_to_on_impact, 1, 1,
+ "Turns to on impact:", NULL, NULL, NULL, "Changes to this when falling stops"
+ },
+ {
+ ED_DRAWING_ID_BD_FIREFLY_EXPLODES_TO,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(0),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_FIREFLY_EXPLODES_TO, GADGET_ID_NONE,
+ &level.bd_firefly_explodes_to, 1, 1,
+ "Explodes to:", NULL, NULL, NULL, "Changes to this when exploding"
+ },
+ {
+ ED_DRAWING_ID_BD_FIREFLY_2_EXPLODES_TO,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(0),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_FIREFLY_2_EXPLODES_TO, GADGET_ID_NONE,
+ &level.bd_firefly_2_explodes_to, 1, 1,
+ "Explodes to:", NULL, NULL, NULL, "Changes to this when exploding"
+ },
+ {
+ ED_DRAWING_ID_BD_BUTTERFLY_EXPLODES_TO,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(0),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_BUTTERFLY_EXPLODES_TO, GADGET_ID_NONE,
+ &level.bd_butterfly_explodes_to, 1, 1,
+ "Explodes to:", NULL, NULL, NULL, "Changes to this when exploding"
+ },
+ {
+ ED_DRAWING_ID_BD_BUTTERFLY_2_EXPLODES_TO,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(0),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_BUTTERFLY_2_EXPLODES_TO, GADGET_ID_NONE,
+ &level.bd_butterfly_2_explodes_to, 1, 1,
+ "Explodes to:", NULL, NULL, NULL, "Changes to this when exploding"
+ },
+ {
+ ED_DRAWING_ID_BD_STONEFLY_EXPLODES_TO,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(0),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_STONEFLY_EXPLODES_TO, GADGET_ID_NONE,
+ &level.bd_stonefly_explodes_to, 1, 1,
+ "Explodes to:", NULL, NULL, NULL, "Changes to this when exploding"
+ },
+ {
+ ED_DRAWING_ID_BD_DRAGONFLY_EXPLODES_TO,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(0),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_DRAGONFLY_EXPLODES_TO, GADGET_ID_NONE,
+ &level.bd_dragonfly_explodes_to, 1, 1,
+ "Explodes to:", NULL, NULL, NULL, "Changes to this when exploding"
+ },
+ {
+ ED_DRAWING_ID_BD_DIAMOND_BIRTH_TURNS_TO,
+ 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_DIAMOND_BIRTH_TURNS_TO, GADGET_ID_NONE,
+ &level.bd_diamond_birth_turns_to, 1, 1,
+ "Explosion ends in:", NULL, NULL, NULL, "Changes to this after explosion"
+ },
+ {
+ ED_DRAWING_ID_BD_BOMB_EXPLOSION_TURNS_TO,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(0),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_BOMB_EXPLOSION_TURNS_TO, GADGET_ID_NONE,
+ &level.bd_bomb_explosion_turns_to, 1, 1,
+ "Explosion ends in:", NULL, NULL, NULL, "Changes to this after explosion"
+ },
+ {
+ ED_DRAWING_ID_BD_NITRO_EXPLOSION_TURNS_TO,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(0),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_NITRO_EXPLOSION_TURNS_TO, GADGET_ID_NONE,
+ &level.bd_nitro_explosion_turns_to, 1, 1,
+ "Explosion ends in:", NULL, NULL, NULL, "Changes to this after explosion"
+ },
+ {
+ ED_DRAWING_ID_BD_EXPLOSION_TURNS_TO,
+ 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_EXPLOSION_TURNS_TO, GADGET_ID_NONE,
+ &level.bd_explosion_turns_to, 1, 1,
+ "Explosion ends in:", NULL, NULL, NULL, "Changes to this after explosion"
+ },
// ---------- level start element -------------------------------------------
EL_BD_ROCK,
EL_BD_DIAMOND,
+ EL_BD_INBOX,
EL_BD_STEELWALL,
EL_BD_WALL,
- EL_BD_SAND_2,
EL_BD_MAGIC_WALL,
EL_BD_AMOEBA,
EL_BD_BUTTERFLY_RIGHT,
EL_BD_FIREFLY_RIGHT,
- EL_BD_INBOX,
+ EL_BD_SAND_2,
EL_BD_BUTTERFLY_DOWN,
EL_BD_FIREFLY_DOWN,
EL_BD_EXIT_OPEN,
EL_BD_PLAYER,
EL_BD_PLAYER_WITH_BOMB,
+ EL_BD_PLAYER_WITH_ROCKET_LAUNCHER,
+ EL_BD_ROCKET_LAUNCHER,
+
EL_BD_PLAYER_GLUED,
EL_BD_PLAYER_STIRRING,
+ EL_EMPTY,
+ EL_EMPTY,
};
static int *editor_hl_boulderdash_native_ptr = editor_hl_boulderdash_native;
static int *editor_el_boulderdash_native_ptr = editor_el_boulderdash_native;
MapCounterButtons(ED_COUNTER_ID_BD_HATCHING_DELAY_SECONDS);
}
- MapCounterButtons(ED_COUNTER_ID_BD_CREATURES_AUTO_TURN_DELAY);
-
// draw checkbutton gadgets
for (i = ED_CHECKBUTTON_ID_ENGINE_FIRST; i <= ED_CHECKBUTTON_ID_ENGINE_LAST; i++)
MapCheckbuttonGadget(i);
#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"
+#define TEXT_AUTO_TURN_DELAY "Creatures auto turn delay"
+#define TEXT_GRAVITY_DELAY "Gravity switch change delay"
static struct
{
0, 50 },
{ EL_BD_SKELETON, &level.bd_skeleton_worth_num_diamonds, TEXT_SKELETONS_WORTH,
0, 10 },
+ { EL_BD_CREATURE_SWITCH, &level.bd_creatures_auto_turn_delay, TEXT_AUTO_TURN_DELAY },
+ { EL_BD_GRAVITY_SWITCH, &level.bd_gravity_switch_delay, TEXT_GRAVITY_DELAY,
+ 1, 60 },
{ 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_FIREFLY(properties_element) ||
+ IS_BD_FIREFLY_2(properties_element) ||
+ IS_BD_BUTTERFLY(properties_element) ||
+ IS_BD_BUTTERFLY_2(properties_element) ||
+ IS_BD_STONEFLY(properties_element) ||
+ IS_BD_DRAGONFLY(properties_element) ||
IS_BD_EXPANDABLE_WALL(properties_element) ||
IS_BD_EXPANDABLE_STEELWALL(properties_element) ||
IS_BD_CONVEYOR_BELT(properties_element) ||
element == EL_BD_SAND ||
element == EL_BD_ROCK ||
element == EL_BD_MEGA_ROCK ||
+ element == EL_BD_BOMB ||
+ element == EL_BD_ROCKET_LAUNCHER ||
+ element == EL_BD_NITRO_PACK ||
element == EL_BD_SWEET ||
element == EL_BD_VOODOO_DOLL ||
- element == EL_BD_WATER)
+ element == EL_BD_WATER ||
+ element == EL_BD_GRAVITY_SWITCH)
{
return TRUE;
}
level.game_engine_type != GAME_ENGINE_TYPE_BD)
continue;
+ // special case: score for smashing only available in R'n'D game engine
+ if ((IS_BD_FIREFLY(elements_with_counter[i].element) ||
+ IS_BD_BUTTERFLY(elements_with_counter[i].element)) &&
+ (elements_with_counter[i].value == &level.score[SC_BUG] ||
+ elements_with_counter[i].value == &level.score[SC_SPACESHIP]) &&
+ level.game_engine_type == GAME_ENGINE_TYPE_BD)
+ continue;
+
// special case: some amoeba counters only available in R'n'D game engine
if (elements_with_counter[i].element == EL_BD_AMOEBA &&
elements_with_counter[i].value == &level.amoeba_speed &&
(properties_element == EL_BD_SLIME ? 1 : 0) +
(properties_element == EL_BD_ACID ? 1 : 0) +
(properties_element == EL_BD_REPLICATOR ? 1 : 0) +
+ (properties_element == EL_BD_CREATURE_SWITCH ? 1 : 0) +
+ (properties_element == EL_BD_GRAVITY_SWITCH ? 2 : 0) +
(properties_element == EL_EMC_MAGIC_BALL ? 2 : 0) +
num_element_counters);
// draw stickybutton gadget
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_STICK_ELEMENT);
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_MAGIC_WALL_ZERO_INFINITE);
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_MAGIC_WALL_WAIT_HATCHING);
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_MAGIC_WALL_STOPS_AMOEBA);
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_MAGIC_WALL_BREAK_SCAN);
MapDrawingArea(ED_DRAWING_ID_BD_MAGIC_WALL_DIAMOND_TO);
MapDrawingArea(ED_DRAWING_ID_BD_MAGIC_WALL_ROCK_TO);
MapDrawingArea(ED_DRAWING_ID_BD_AMOEBA_2_CONTENT_LOOKS_LIKE);
}
else if (IS_AMOEBOID(properties_element))
+ {
MapDrawingArea(ED_DRAWING_ID_AMOEBA_CONTENT);
+ }
else if (properties_element == EL_BD_ACID)
{
MapDrawingArea(ED_DRAWING_ID_BD_ACID_EATS_ELEMENT);
properties_element == EL_YAMYAM_RIGHT ||
properties_element == EL_YAMYAM_UP ||
properties_element == EL_YAMYAM_DOWN)
+ {
DrawYamYamContentAreas();
+ }
else if (properties_element == EL_EMC_MAGIC_BALL)
{
DrawMagicBallContentAreas();
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_INITIAL_BALL_ACTIVE);
}
else if (properties_element == EL_EMC_ANDROID)
+ {
DrawAndroidElementArea();
+ }
else if (properties_element == EL_MM_GRAY_BALL)
{
MapCounterButtons(ED_COUNTER_ID_MM_BALL_CONTENT);
MapCounterButtons(ED_COUNTER_ID_BD_PUSHING_PROB);
MapCounterButtons(ED_COUNTER_ID_BD_PUSHING_PROB_WITH_SWEET);
+
+ MapDrawingArea(ED_DRAWING_ID_BD_ROCK_TURNS_TO_ON_FALLING);
+ MapDrawingArea(ED_DRAWING_ID_BD_ROCK_TURNS_TO_ON_IMPACT);
+ }
+
+ if (properties_element == EL_BD_DIAMOND && level.game_engine_type == GAME_ENGINE_TYPE_BD)
+ {
+ MapDrawingArea(ED_DRAWING_ID_BD_DIAMOND_TURNS_TO_ON_FALLING);
+ MapDrawingArea(ED_DRAWING_ID_BD_DIAMOND_TURNS_TO_ON_IMPACT);
+ }
+
+ if (level.game_engine_type == GAME_ENGINE_TYPE_BD)
+ {
+ if (IS_BD_FIREFLY(properties_element))
+ {
+ MapDrawingArea(ED_DRAWING_ID_BD_FIREFLY_EXPLODES_TO);
+ MapDrawingArea(ED_DRAWING_ID_BD_EXPLOSION_TURNS_TO);
+ }
+ else if (IS_BD_FIREFLY_2(properties_element))
+ {
+ MapDrawingArea(ED_DRAWING_ID_BD_FIREFLY_2_EXPLODES_TO);
+ MapDrawingArea(ED_DRAWING_ID_BD_EXPLOSION_TURNS_TO);
+ }
+ else if (IS_BD_BUTTERFLY(properties_element))
+ {
+ MapDrawingArea(ED_DRAWING_ID_BD_BUTTERFLY_EXPLODES_TO);
+ MapDrawingArea(ED_DRAWING_ID_BD_DIAMOND_BIRTH_TURNS_TO);
+ }
+ else if (IS_BD_BUTTERFLY_2(properties_element))
+ {
+ MapDrawingArea(ED_DRAWING_ID_BD_BUTTERFLY_2_EXPLODES_TO);
+ MapDrawingArea(ED_DRAWING_ID_BD_DIAMOND_BIRTH_TURNS_TO);
+ }
+ else if (IS_BD_STONEFLY(properties_element))
+ {
+ MapDrawingArea(ED_DRAWING_ID_BD_STONEFLY_EXPLODES_TO);
+ }
+ else if (IS_BD_DRAGONFLY(properties_element))
+ {
+ MapDrawingArea(ED_DRAWING_ID_BD_DRAGONFLY_EXPLODES_TO);
+ MapDrawingArea(ED_DRAWING_ID_BD_EXPLOSION_TURNS_TO);
+ }
+ else if (properties_element == EL_BD_BOMB)
+ {
+ MapDrawingArea(ED_DRAWING_ID_BD_BOMB_EXPLOSION_TURNS_TO);
+ }
+ else if (properties_element == EL_BD_NITRO_PACK)
+ {
+ MapDrawingArea(ED_DRAWING_ID_BD_NITRO_EXPLOSION_TURNS_TO);
+ }
}
if (properties_element == EL_BD_MEGA_ROCK ||
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_HAMMER_WALLS_REAPPEAR);
}
+ if (properties_element == EL_BD_ROCKET_LAUNCHER)
+ {
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_INFINITE_ROCKETS);
+ }
+
+ if (properties_element == EL_BD_CREATURE_SWITCH)
+ {
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_CREATURES_START_BACKWARDS);
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_CREATURES_TURN_ON_HATCHING);
+ }
+
+ if (properties_element == EL_BD_GRAVITY_SWITCH)
+ {
+ MapSelectboxGadget(ED_SELECTBOX_ID_BD_GRAVITY_DIRECTION);
+
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_GRAVITY_SWITCH_ACTIVE);
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_GRAVITY_AFFECTS_ALL);
+ }
+
if (properties_element == EL_BD_NUT)
{
MapDrawingArea(ED_DRAWING_ID_BD_NUT_CONTENT);
if (properties_element == EL_EM_DYNAMITE)
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_EM_EXPLODES_BY_FIRE);
- if (COULD_MOVE_INTO_ACID(properties_element) &&
+ if (level.game_engine_type == GAME_ENGINE_TYPE_RND &&
+ COULD_MOVE_INTO_ACID(properties_element) &&
!IS_PLAYER_ELEMENT(properties_element) &&
(!IS_CUSTOM_ELEMENT(properties_element) ||
edit_mode_properties == ED_MODE_PROPERTIES_CONFIG_2))