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_ENVELOPE_AUTOWRAP,
GADGET_ID_ENVELOPE_CENTERED,
GADGET_ID_MM_LASER_RED,
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_ENVELOPE_AUTOWRAP,
ED_CHECKBUTTON_ID_ENVELOPE_CENTERED,
ED_CHECKBUTTON_ID_MM_LASER_RED,
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_ENVELOPE_AUTOWRAP,
ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(1),
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;
}
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_CONVEYOR_BELTS_CHANGED);
}
+ if (properties_element == EL_BD_WATER)
+ {
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_WATER_CANNOT_FLOW_DOWN);
+ }
+
// special case: slippery walls option for gems only available in R'n'D game engine
if (IS_GEM(properties_element) && level.game_engine_type == GAME_ENGINE_TYPE_RND)
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_EM_SLIPPERY_GEMS);
&li.bd_conveyor_belts_changed, FALSE
},
+ {
+ EL_BD_WATER, -1,
+ TYPE_BOOLEAN, CONF_VALUE_8_BIT(1),
+ &li.bd_water_cannot_flow_down, FALSE
+ },
+
// (the following values are related to various game elements)
{
cave->conveyor_belts_active = level->bd_conveyor_belts_active;
cave->conveyor_belts_direction_changed= level->bd_conveyor_belts_changed;
+ cave->water_does_not_flow_down = level->bd_water_cannot_flow_down;
+
// level name
strncpy(cave->name, level->name, sizeof(GdString));
cave->name[sizeof(GdString) - 1] = '\0';
level->bd_conveyor_belts_active = cave->conveyor_belts_active;
level->bd_conveyor_belts_changed = cave->conveyor_belts_direction_changed;
+ level->bd_water_cannot_flow_down = cave->water_does_not_flow_down;
+
// level name
char *cave_name = getStringPrint("%s / %d", cave->name, bd_level_nr + 1);