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_STICK_ELEMENT,
GADGET_ID_EM_SLIPPERY_GEMS,
GADGET_ID_EM_EXPLODES_BY_FIRE,
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_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_STICK_ELEMENT,
ED_CHECKBUTTON_ID_EM_SLIPPERY_GEMS,
ED_CHECKBUTTON_ID_EM_EXPLODES_BY_FIRE,
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_GRAVITY_AFFECTS_ALL
+#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
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"
- },
// ---------- element settings: configure (various elements) ----------------
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),
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)
},
{
-1, -1,
- TYPE_BOOLEAN, CONF_VALUE_8_BIT(23),
- &li.bd_gravity_affects_all, TRUE
- },
- {
- -1, -1,
- TYPE_INTEGER, CONF_VALUE_8_BIT(24),
+ TYPE_INTEGER, CONF_VALUE_8_BIT(23),
&li.bd_cave_random_seed_c64, 0
},
TYPE_INTEGER, CONF_VALUE_8_BIT(3),
&li.bd_gravity_switch_delay, 10
},
+ {
+ EL_BD_GRAVITY_SWITCH, -1,
+ TYPE_BOOLEAN, CONF_VALUE_8_BIT(4),
+ &li.bd_gravity_affects_all, TRUE
+ },
{
EL_BD_SAND, -1,
cave->lineshift = level->bd_line_shifting_borders;
cave->border_scan_first_and_last = level->bd_scan_first_and_last_row;
cave->short_explosions = level->bd_short_explosions;
- cave->gravity_affects_all = level->bd_gravity_affects_all;
// player properties
cave->diagonal_movements = level->bd_diagonal_movements;
cave->gravity = level->bd_gravity_direction;
cave->gravity_switch_active = level->bd_gravity_switch_active;
cave->gravity_change_time = level->bd_gravity_switch_delay;
+ cave->gravity_affects_all = level->bd_gravity_affects_all;
// level name
strncpy(cave->name, level->name, sizeof(GdString));
level->bd_line_shifting_borders = cave->lineshift;
level->bd_scan_first_and_last_row = cave->border_scan_first_and_last;
level->bd_short_explosions = cave->short_explosions;
- level->bd_gravity_affects_all = cave->gravity_affects_all;
// player properties
level->bd_diagonal_movements = cave->diagonal_movements;
level->bd_gravity_direction = cave->gravity;
level->bd_gravity_switch_active = cave->gravity_switch_active;
level->bd_gravity_switch_delay = cave->gravity_change_time;
+ level->bd_gravity_affects_all = cave->gravity_affects_all;
// level name
char *cave_name = getStringPrint("%s / %d", cave->name, bd_level_nr + 1);
boolean bd_line_shifting_borders; // BD engine uses line-shifting wrap-around
boolean bd_scan_first_and_last_row; // BD engine scans top and bottom border rows
boolean bd_short_explosions; // BD engine uses four game cycles for explosions
- boolean bd_gravity_affects_all; // BD engine gravity affects all falling objects
boolean bd_intermission; // BD level is intermission
boolean bd_diagonal_movements; // BD style diagonal movements
boolean bd_topmost_player_active; // BD engine uses first player found on playfield
int bd_gravity_direction; // BD engine initial gravity direction
boolean bd_gravity_switch_active; // BD engine gravity switch starts in active state
int bd_gravity_switch_delay; // BD engine gravity change delay for switch (in seconds)
+ boolean bd_gravity_affects_all; // BD engine gravity affects all falling objects
boolean em_slippery_gems; // EM style "gems slip from wall" behaviour
boolean em_explodes_by_fire; // EM style chain explosion behaviour