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_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_CONVEYOR_BELTS_CHANGED,
GADGET_ID_BD_WATER_CANNOT_FLOW_DOWN,
GADGET_ID_BD_HAMMER_WALLS_REAPPEAR,
+ 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_CONVEYOR_BELTS_CHANGED,
ED_CHECKBUTTON_ID_BD_WATER_CANNOT_FLOW_DOWN,
ED_CHECKBUTTON_ID_BD_HAMMER_WALLS_REAPPEAR,
+ 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
&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) ----------------
NULL, NULL,
"Hammered walls reappear", "Hammered walls reappear after delay"
},
+ {
+ 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(1),
+ 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"
+ },
+ {
+ 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),
EL_BD_EXPANDABLE_WALL_HORIZONTAL,
EL_BD_EXPANDABLE_WALL_VERTICAL,
EL_BD_EXPANDABLE_WALL_ANY,
- EL_BD_EXPANDABLE_WALL_SWITCH_HORIZONTAL,
+ EL_BD_EXPANDABLE_WALL_SWITCH,
EL_BD_EXPANDABLE_STEELWALL_HORIZONTAL,
EL_BD_EXPANDABLE_STEELWALL_VERTICAL,
EL_BD_CONVEYOR_LEFT,
EL_BD_CONVEYOR_RIGHT,
EL_BD_CONVEYOR_SWITCH,
- EL_BD_CONVEYOR_DIR_SWITCH_NORMAL,
+ EL_BD_CONVEYOR_DIR_SWITCH,
EL_BD_CLOCK,
EL_BD_TIME_PENALTY,
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 },
element == EL_BD_MEGA_ROCK ||
element == EL_BD_SWEET ||
element == EL_BD_VOODOO_DOLL ||
- element == EL_BD_WATER)
+ element == EL_BD_WATER ||
+ element == EL_BD_GRAVITY_SWITCH)
{
return TRUE;
}
(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 ? 2 : 0) +
+ (properties_element == EL_BD_GRAVITY_SWITCH ? 2 : 0) +
(properties_element == EL_EMC_MAGIC_BALL ? 2 : 0) +
num_element_counters);
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_HAMMER_WALLS_REAPPEAR);
}
+ 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);