GADGET_ID_RANDOM_RESTRICTED,
GADGET_ID_BD_INTERMISSION,
GADGET_ID_BD_PAL_TIMING,
+ GADGET_ID_BD_LINE_SHIFTING_BORDERS,
GADGET_ID_STICK_ELEMENT,
GADGET_ID_EM_SLIPPERY_GEMS,
GADGET_ID_EM_EXPLODES_BY_FIRE,
ED_CHECKBUTTON_ID_CUSTOM_USE_TEMPLATE_2,
ED_CHECKBUTTON_ID_BD_INTERMISSION,
ED_CHECKBUTTON_ID_BD_PAL_TIMING,
+ ED_CHECKBUTTON_ID_BD_LINE_SHIFTING_BORDERS,
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_PAL_TIMING
+#define ED_CHECKBUTTON_ID_ENGINE_LAST ED_CHECKBUTTON_ID_BD_LINE_SHIFTING_BORDERS
#define ED_CHECKBUTTON_ID_CUSTOM1_FIRST ED_CHECKBUTTON_ID_CUSTOM_USE_GRAPHIC
#define ED_CHECKBUTTON_ID_CUSTOM1_LAST ED_CHECKBUTTON_ID_CUSTOM_INDESTRUCTIBLE
NULL, NULL,
"PAL timing", "use slower timer (like PAL C64)"
},
+ {
+ ED_CHECKBUTTON_ID_BD_LINE_SHIFTING_BORDERS,
+ ED_LEVEL_SETTINGS_XPOS(0), ED_LEVEL_SETTINGS_YPOS(5),
+ GADGET_ID_BD_LINE_SHIFTING_BORDERS, GADGET_ID_NONE,
+ &level.bd_line_shifting_borders,
+ NULL, NULL,
+ "line-shifting borders", "use line-shifting wrap-around"
+ },
// ---------- element settings: configure (various elements) ----------------
&li.bd_hatching_delay_seconds, 2
},
+ {
+ -1, -1,
+ TYPE_BOOLEAN, CONF_VALUE_8_BIT(20),
+ &li.bd_line_shifting_borders, FALSE
+ },
+
{
-1, -1,
-1, -1,
cave->intermission = level->bd_intermission;
cave->diagonal_movements = level->bd_diagonal_movements;
+ cave->lineshift = level->bd_line_shifting_borders;
+
strncpy(cave->name, level->name, sizeof(GdString));
cave->name[sizeof(GdString) - 1] = '\0';
level->bd_intermission = cave->intermission;
level->bd_diagonal_movements = cave->diagonal_movements;
+ level->bd_line_shifting_borders = cave->lineshift;
+
char *cave_name = getStringPrint("%s / %d", cave->name, bd_level_nr + 1);
strncpy(level->name, cave_name, MAX_LEVEL_NAME_LEN);
int bd_hatching_delay_seconds; // BD hatching delay (in seconds)
int bd_scheduling_type; // BD engine scheduling type
boolean bd_pal_timing; // BD engine uses special PAL timing
+ boolean bd_line_shifting_borders; // BD engine uses line-shifting wrap-around
boolean bd_intermission; // BD level is intermission
boolean bd_diagonal_movements; // BD style diagonal movements
boolean em_slippery_gems; // EM style "gems slip from wall" behaviour