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_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,
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_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,
#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_GRAVITY_AFFECTS_ALL
+#define ED_CHECKBUTTON_ID_ENGINE_LAST ED_CHECKBUTTON_ID_BD_CREATURES_TURN_ON_HATCHING
#define ED_CHECKBUTTON_ID_CUSTOM1_FIRST ED_CHECKBUTTON_ID_CUSTOM_USE_GRAPHIC
#define ED_CHECKBUTTON_ID_CUSTOM1_LAST ED_CHECKBUTTON_ID_CUSTOM_INDESTRUCTIBLE
&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) ----------------
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) ----------------
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);
TYPE_INTEGER, CONF_VALUE_8_BIT(24),
&li.bd_cave_random_seed_c64, 0
},
+ {
+ -1, -1,
+ TYPE_BOOLEAN, CONF_VALUE_8_BIT(25),
+ &li.bd_creatures_start_backwards, FALSE
+ },
+ {
+ -1, -1,
+ TYPE_BOOLEAN, CONF_VALUE_8_BIT(26),
+ &li.bd_creatures_turn_on_hatching, FALSE
+ },
+ {
+ -1, -1,
+ TYPE_INTEGER, CONF_VALUE_16_BIT(7),
+ &li.bd_creatures_auto_turn_delay, 0
+ },
{
-1, -1,
cave->expanding_wall_looks_like = LEVEL_TO_CAVE(level->bd_expanding_wall_looks_like);
cave->dirt_looks_like = LEVEL_TO_CAVE(level->bd_sand_looks_like);
+ cave->creatures_backwards = level->bd_creatures_start_backwards;
+ cave->creatures_direction_auto_change_on_start = level->bd_creatures_turn_on_hatching;
+ cave->creatures_direction_auto_change_time = level->bd_creatures_auto_turn_delay;
+
// level name
strncpy(cave->name, level->name, sizeof(GdString));
cave->name[sizeof(GdString) - 1] = '\0';
level->bd_expanding_wall_looks_like = CAVE_TO_LEVEL(cave->expanding_wall_looks_like);
level->bd_sand_looks_like = CAVE_TO_LEVEL(cave->dirt_looks_like);
+ level->bd_creatures_start_backwards = cave->creatures_backwards;
+ level->bd_creatures_turn_on_hatching = cave->creatures_direction_auto_change_on_start;
+ level->bd_creatures_auto_turn_delay = cave->creatures_direction_auto_change_time;
+
// level name
char *cave_name = getStringPrint("%s / %d", cave->name, bd_level_nr + 1);