GADGET_ID_MAGIC_BALL_CONTENT_7,
GADGET_ID_ANDROID_CONTENT,
GADGET_ID_AMOEBA_CONTENT,
+ GADGET_ID_BD_SNAP_ELEMENT,
GADGET_ID_BD_AMOEBA_CONTENT_TOO_BIG,
GADGET_ID_BD_AMOEBA_CONTENT_ENCLOSED,
GADGET_ID_BD_AMOEBA_2_CONTENT_TOO_BIG,
GADGET_ID_BD_AMOEBA_2_CONTENT_ENCLOSED,
GADGET_ID_BD_AMOEBA_2_CONTENT_EXPLODING,
GADGET_ID_BD_AMOEBA_2_CONTENT_LOOKS_LIKE,
+ GADGET_ID_BD_ACID_EATS_ELEMENT,
+ GADGET_ID_BD_ACID_TURNS_TO_ELEMENT,
+ GADGET_ID_BD_BITER_EATS_ELEMENT,
+ GADGET_ID_BD_BLADDER_CONVERTS_BY_ELEMENT,
GADGET_ID_START_ELEMENT,
GADGET_ID_ARTWORK_ELEMENT,
GADGET_ID_EXPLOSION_ELEMENT,
GADGET_ID_BD_AMOEBA_WAIT_FOR_HATCHING,
GADGET_ID_BD_AMOEBA_START_IMMEDIATELY,
GADGET_ID_BD_AMOEBA_2_EXPLODE_BY_AMOEBA,
+ GADGET_ID_BD_VOODOO_COLLECTS_DIAMONDS,
+ GADGET_ID_BD_VOODOO_HURT_KILLS_PLAYER,
+ GADGET_ID_BD_VOODOO_DIES_BY_ROCK,
+ GADGET_ID_BD_VOODOO_VANISH_BY_EXPLOSION,
+ GADGET_ID_BD_SLIME_IS_PREDICTABLE,
+ GADGET_ID_BD_CHANGE_EXPANDING_WALL,
+ 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_AMOEBA_WAIT_FOR_HATCHING,
ED_CHECKBUTTON_ID_BD_AMOEBA_START_IMMEDIATELY,
ED_CHECKBUTTON_ID_BD_AMOEBA_2_EXPLODE_BY_AMOEBA,
+ ED_CHECKBUTTON_ID_BD_VOODOO_COLLECTS_DIAMONDS,
+ ED_CHECKBUTTON_ID_BD_VOODOO_HURT_KILLS_PLAYER,
+ ED_CHECKBUTTON_ID_BD_VOODOO_DIES_BY_ROCK,
+ ED_CHECKBUTTON_ID_BD_VOODOO_VANISH_BY_EXPLOSION,
+ ED_CHECKBUTTON_ID_BD_SLIME_IS_PREDICTABLE,
+ ED_CHECKBUTTON_ID_BD_CHANGE_EXPANDING_WALL,
+ 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,
ED_DRAWING_ID_MAGIC_BALL_CONTENT_7,
ED_DRAWING_ID_ANDROID_CONTENT,
ED_DRAWING_ID_AMOEBA_CONTENT,
+ ED_DRAWING_ID_BD_SNAP_ELEMENT,
ED_DRAWING_ID_BD_AMOEBA_CONTENT_TOO_BIG,
ED_DRAWING_ID_BD_AMOEBA_CONTENT_ENCLOSED,
ED_DRAWING_ID_BD_AMOEBA_2_CONTENT_TOO_BIG,
ED_DRAWING_ID_BD_AMOEBA_2_CONTENT_ENCLOSED,
ED_DRAWING_ID_BD_AMOEBA_2_CONTENT_EXPLODING,
ED_DRAWING_ID_BD_AMOEBA_2_CONTENT_LOOKS_LIKE,
+ ED_DRAWING_ID_BD_ACID_EATS_ELEMENT,
+ ED_DRAWING_ID_BD_ACID_TURNS_TO_ELEMENT,
+ ED_DRAWING_ID_BD_BITER_EATS_ELEMENT,
+ ED_DRAWING_ID_BD_BLADDER_CONVERTS_BY_ELEMENT,
ED_DRAWING_ID_START_ELEMENT,
ED_DRAWING_ID_ARTWORK_ELEMENT,
ED_DRAWING_ID_EXPLOSION_ELEMENT,
{
IMG_GFX_EDITOR_BUTTON_DRAW_SINGLE, GADGET_ID_SINGLE_ITEMS,
&editor.button.draw_single, GD_TYPE_RADIO_BUTTON,
- "draw single items", 's'
+ "Draw single items", 's'
},
{
IMG_GFX_EDITOR_BUTTON_DRAW_CONNECTED, GADGET_ID_CONNECTED_ITEMS,
&editor.button.draw_connected, GD_TYPE_RADIO_BUTTON,
- "draw connected items", 'd'
+ "Draw connected items", 'd'
},
{
IMG_GFX_EDITOR_BUTTON_DRAW_LINE, GADGET_ID_LINE,
&editor.button.draw_line, GD_TYPE_RADIO_BUTTON,
- "draw lines", 'l'
+ "Draw lines", 'l'
},
{
IMG_GFX_EDITOR_BUTTON_DRAW_ARC, GADGET_ID_ARC,
&editor.button.draw_arc, GD_TYPE_RADIO_BUTTON,
- "draw arcs", 'a'
+ "Draw arcs", 'a'
},
{
IMG_GFX_EDITOR_BUTTON_DRAW_RECTANGLE, GADGET_ID_RECTANGLE,
&editor.button.draw_rectangle, GD_TYPE_RADIO_BUTTON,
- "draw outline rectangles", 'r'
+ "Draw outline rectangles", 'r'
},
{
IMG_GFX_EDITOR_BUTTON_DRAW_FILLED_BOX, GADGET_ID_FILLED_BOX,
&editor.button.draw_filled_box, GD_TYPE_RADIO_BUTTON,
- "draw filled rectangles", 'R'
+ "Draw filled rectangles", 'R'
},
{
IMG_GFX_EDITOR_BUTTON_ROTATE_UP, GADGET_ID_WRAP_UP,
&editor.button.rotate_up, GD_TYPE_NORMAL_BUTTON,
- "wrap (rotate) level up", 0
+ "Wrap (rotate) level up", 0
},
{
IMG_GFX_EDITOR_BUTTON_DRAW_TEXT, GADGET_ID_TEXT,
&editor.button.draw_text, GD_TYPE_RADIO_BUTTON,
- "enter text elements", 't'
+ "Enter text elements", 't'
},
{
IMG_GFX_EDITOR_BUTTON_FLOOD_FILL, GADGET_ID_FLOOD_FILL,
&editor.button.flood_fill, GD_TYPE_RADIO_BUTTON,
- "flood fill", 'f'
+ "Flood fill", 'f'
},
{
IMG_GFX_EDITOR_BUTTON_ROTATE_LEFT, GADGET_ID_WRAP_LEFT,
&editor.button.rotate_left, GD_TYPE_NORMAL_BUTTON,
- "wrap (rotate) level left", 0
+ "Wrap (rotate) level left", 0
},
{
IMG_GFX_EDITOR_BUTTON_ZOOM_LEVEL, GADGET_ID_ZOOM,
&editor.button.zoom_level, GD_TYPE_NORMAL_BUTTON,
- "zoom level tile size", '+'
+ "Zoom level tile size", '+'
},
{
IMG_GFX_EDITOR_BUTTON_ROTATE_RIGHT, GADGET_ID_WRAP_RIGHT,
&editor.button.rotate_right, GD_TYPE_NORMAL_BUTTON,
- "wrap (rotate) level right", 0
+ "Wrap (rotate) level right", 0
},
{
IMG_GFX_EDITOR_BUTTON_DRAW_RANDOM, GADGET_ID_RANDOM_PLACEMENT,
&editor.button.draw_random, GD_TYPE_NORMAL_BUTTON,
- "random element placement", 0
+ "Random element placement", 0
},
{
IMG_GFX_EDITOR_BUTTON_GRAB_BRUSH, GADGET_ID_GRAB_BRUSH,
&editor.button.grab_brush, GD_TYPE_RADIO_BUTTON,
- "grab brush", 'b'
+ "Grab brush", 'b'
},
{
IMG_GFX_EDITOR_BUTTON_ROTATE_DOWN, GADGET_ID_WRAP_DOWN,
&editor.button.rotate_down, GD_TYPE_NORMAL_BUTTON,
- "wrap (rotate) level down", 0
+ "Wrap (rotate) level down", 0
},
{
IMG_GFX_EDITOR_BUTTON_PICK_ELEMENT, GADGET_ID_PICK_ELEMENT,
&editor.button.pick_element, GD_TYPE_RADIO_BUTTON,
- "pick drawing element", ','
+ "Pick drawing element", ','
},
// ---------- level control buttons -----------------------------------------
{
IMG_GFX_EDITOR_BUTTON_UNDO, GADGET_ID_UNDO,
&editor.button.undo, GD_TYPE_NORMAL_BUTTON,
- "undo/redo last operation", 'u'
+ "Undo/redo last operation", 'u'
},
{
IMG_GFX_EDITOR_BUTTON_CONF, GADGET_ID_CONF,
&editor.button.conf, GD_TYPE_NORMAL_BUTTON,
- "level and editor settings", 'I'
+ "Level and editor settings", 'I'
},
{
IMG_GFX_EDITOR_BUTTON_SAVE, GADGET_ID_SAVE,
&editor.button.save, GD_TYPE_NORMAL_BUTTON,
- "save level", 'S'
+ "Save level", 'S'
},
{
IMG_GFX_EDITOR_BUTTON_CLEAR, GADGET_ID_CLEAR,
&editor.button.clear, GD_TYPE_NORMAL_BUTTON,
- "clear level", 'C'
+ "Clear level", 'C'
},
{
IMG_GFX_EDITOR_BUTTON_TEST, GADGET_ID_TEST,
&editor.button.test, GD_TYPE_NORMAL_BUTTON,
- "test level", 'T'
+ "Test level", 'T'
},
{
IMG_GFX_EDITOR_BUTTON_EXIT, GADGET_ID_EXIT,
&editor.button.exit, GD_TYPE_NORMAL_BUTTON,
- "exit level editor", 'E'
+ "Exit level editor", 'E'
},
// ---------- CE and GE control buttons -------------------------------------
{
IMG_GFX_EDITOR_BUTTON_CE_COPY_FROM, GADGET_ID_CUSTOM_COPY_FROM,
&editor.button.ce_copy_from, GD_TYPE_RADIO_BUTTON,
- "copy settings from other element", 0
+ "Copy settings from other element", 0
},
{
IMG_GFX_EDITOR_BUTTON_CE_COPY_TO, GADGET_ID_CUSTOM_COPY_TO,
&editor.button.ce_copy_to, GD_TYPE_RADIO_BUTTON,
- "copy settings to other element", 0
+ "Copy settings to other element", 0
},
{
IMG_GFX_EDITOR_BUTTON_CE_SWAP, GADGET_ID_CUSTOM_EXCHANGE,
&editor.button.ce_swap, GD_TYPE_RADIO_BUTTON,
- "exchange element with other element", 0
+ "Exchange element with other element", 0
},
{
IMG_GFX_EDITOR_BUTTON_CE_COPY, GADGET_ID_CUSTOM_COPY,
&editor.button.ce_copy, GD_TYPE_NORMAL_BUTTON,
- "copy settings from this element", 0
+ "Copy settings from this element", 0
},
{
IMG_GFX_EDITOR_BUTTON_CE_PASTE, GADGET_ID_CUSTOM_PASTE,
&editor.button.ce_paste, GD_TYPE_NORMAL_BUTTON,
- "paste settings to this element", 0
+ "Paste settings to this element", 0
},
// ---------- palette control buttons ---------------------------------------
{
IMG_GFX_EDITOR_BUTTON_PROPERTIES, GADGET_ID_PROPERTIES,
&editor.button.properties, GD_TYPE_NORMAL_BUTTON,
- "properties of drawing element", 'p'
+ "Properties of drawing element", 'p'
},
{
IMG_GFX_EDITOR_BUTTON_ELEMENT_LEFT, GADGET_ID_ELEMENT_LEFT,
&editor.button.element_left, GD_TYPE_NORMAL_BUTTON,
- "properties of drawing element 1", '1'
+ "Properties of drawing element 1", '1'
},
{
IMG_GFX_EDITOR_BUTTON_ELEMENT_MIDDLE, GADGET_ID_ELEMENT_MIDDLE,
&editor.button.element_middle, GD_TYPE_NORMAL_BUTTON,
- "properties of drawing element 2", '2'
+ "Properties of drawing element 2", '2'
},
{
IMG_GFX_EDITOR_BUTTON_ELEMENT_RIGHT, GADGET_ID_ELEMENT_RIGHT,
&editor.button.element_right, GD_TYPE_NORMAL_BUTTON,
- "properties of drawing element 3", '3'
+ "Properties of drawing element 3", '3'
},
{
IMG_GFX_EDITOR_BUTTON_PALETTE, GADGET_ID_PALETTE,
&editor.button.palette, GD_TYPE_NORMAL_BUTTON,
- "show list of elements", 'e'
+ "Show list of elements", 'e'
}
};
GADGET_ID_LEVEL_XSIZE_DOWN, GADGET_ID_LEVEL_XSIZE_UP,
GADGET_ID_LEVEL_XSIZE_TEXT, GADGET_ID_NONE,
&level.fieldx,
- "playfield size:", NULL, "width",
+ "Playfield size:", NULL, "Width",
},
{
ED_COUNTER_ID_LEVEL_YSIZE,
GADGET_ID_LEVEL_YSIZE_DOWN, GADGET_ID_LEVEL_YSIZE_UP,
GADGET_ID_LEVEL_YSIZE_TEXT, GADGET_ID_LEVEL_XSIZE_UP,
&level.fieldy,
- NULL, " ", "height",
+ NULL, " ", "Height",
},
{
ED_COUNTER_ID_LEVEL_GEMSLIMIT,
GADGET_ID_LEVEL_GEMSLIMIT_DOWN, GADGET_ID_LEVEL_GEMSLIMIT_UP,
GADGET_ID_LEVEL_GEMSLIMIT_TEXT, GADGET_ID_NONE,
&level.gems_needed,
- NULL, "number of gems to collect:", NULL
+ NULL, "Number of gems to collect:", NULL
},
{
ED_COUNTER_ID_LEVEL_TIMELIMIT,
GADGET_ID_LEVEL_TIMELIMIT_DOWN, GADGET_ID_LEVEL_TIMELIMIT_UP,
GADGET_ID_LEVEL_TIMELIMIT_TEXT, GADGET_ID_NONE,
&level.time,
- "time or step limit to solve level:", NULL, NULL
+ "Time or step limit to solve level:", NULL, NULL
},
{
ED_COUNTER_ID_LEVEL_TIMESCORE,
GADGET_ID_LEVEL_TIMESCORE_DOWN, GADGET_ID_LEVEL_TIMESCORE_UP,
GADGET_ID_LEVEL_TIMESCORE_TEXT, GADGET_ID_NONE,
&level.score[SC_TIME_BONUS],
- "score for time or steps left:", NULL, NULL
+ "Score for time or steps left:", NULL, NULL
},
{
ED_COUNTER_ID_LEVEL_RANDOM_SEED,
GADGET_ID_LEVEL_RANDOM_SEED_DOWN, GADGET_ID_LEVEL_RANDOM_SEED_UP,
GADGET_ID_LEVEL_RANDOM_SEED_TEXT, GADGET_ID_NONE,
&level.random_seed,
- NULL, "random seed:", "(0 => random)"
+ NULL, "Random seed:", "(0 => random)"
},
{
ED_COUNTER_ID_LEVELSET_NUM_LEVELS,
GADGET_ID_LEVELSET_NUM_LEVELS_DOWN, GADGET_ID_LEVELSET_NUM_LEVELS_UP,
GADGET_ID_LEVELSET_NUM_LEVELS_TEXT, GADGET_ID_NONE,
&levelset_num_levels,
- "number of levels:", NULL, NULL,
+ "Number of levels:", NULL, NULL,
},
{
ED_COUNTER_ID_LEVEL_RANDOM,
GADGET_ID_LEVEL_RANDOM_DOWN, GADGET_ID_LEVEL_RANDOM_UP,
GADGET_ID_LEVEL_RANDOM_TEXT, GADGET_ID_NONE,
&random_placement_value,
- "random element placement:", NULL, "in"
+ "Random element placement:", NULL, "in"
},
{
ED_COUNTER_ID_BD_CYCLE_DELAY_MS,
GADGET_ID_BD_CYCLE_DELAY_MS_DOWN, GADGET_ID_BD_CYCLE_DELAY_MS_UP,
GADGET_ID_BD_CYCLE_DELAY_MS_TEXT, GADGET_ID_NONE,
&level.bd_cycle_delay_ms,
- NULL, NULL, "game cycle delay (ms)"
+ NULL, NULL, "Game cycle delay (ms)"
},
{
ED_COUNTER_ID_BD_CYCLE_DELAY_C64,
GADGET_ID_BD_CYCLE_DELAY_C64_DOWN, GADGET_ID_BD_CYCLE_DELAY_C64_UP,
GADGET_ID_BD_CYCLE_DELAY_C64_TEXT, GADGET_ID_NONE,
&level.bd_cycle_delay_c64,
- NULL, NULL, "game cycle delay (C64-style)"
+ NULL, NULL, "Game cycle delay (C64-style)"
},
{
ED_COUNTER_ID_BD_HATCHING_DELAY_CYCLES,
GADGET_ID_BD_HATCHING_DELAY_CYCLES_DOWN, GADGET_ID_BD_HATCHING_DELAY_CYCLES_UP,
GADGET_ID_BD_HATCHING_DELAY_CYCLES_TEXT, GADGET_ID_NONE,
&level.bd_hatching_delay_cycles,
- NULL, NULL, "hatching delay (cycles)"
+ NULL, NULL, "Hatching delay (cycles)"
},
{
ED_COUNTER_ID_BD_HATCHING_DELAY_SECONDS,
GADGET_ID_BD_HATCHING_DELAY_SECONDS_DOWN, GADGET_ID_BD_HATCHING_DELAY_SECONDS_UP,
GADGET_ID_BD_HATCHING_DELAY_SECONDS_TEXT, GADGET_ID_NONE,
&level.bd_hatching_delay_seconds,
- NULL, NULL, "hatching delay (seconds)"
+ NULL, NULL, "Hatching delay (seconds)"
},
// ---------- element settings: configure (various elements) ----------------
GADGET_ID_BD_PUSHING_PROB_DOWN, GADGET_ID_BD_PUSHING_PROB_UP,
GADGET_ID_BD_PUSHING_PROB_TEXT, GADGET_ID_NONE,
&level.bd_pushing_prob,
- NULL, NULL, "push probability"
+ NULL, NULL, "Push probability"
},
{
ED_COUNTER_ID_BD_PUSHING_PROB_WITH_SWEET,
GADGET_ID_BD_PUSHING_PROB_WITH_SWEET_DOWN, GADGET_ID_BD_PUSHING_PROB_WITH_SWEET_UP,
GADGET_ID_BD_PUSHING_PROB_WITH_SWEET_TEXT, GADGET_ID_NONE,
&level.bd_pushing_prob_with_sweet,
- NULL, NULL, "push probability with sweet"
+ NULL, NULL, "Push probability with sweet"
},
{
ED_COUNTER_ID_ELEMENT_VALUE1,
GADGET_ID_YAMYAM_CONTENT_DOWN, GADGET_ID_YAMYAM_CONTENT_UP,
GADGET_ID_YAMYAM_CONTENT_TEXT, GADGET_ID_NONE,
&level.num_yamyam_contents,
- NULL, NULL, "number of content areas"
+ NULL, NULL, "Number of content areas"
},
{
ED_COUNTER_ID_BALL_CONTENT,
GADGET_ID_BALL_CONTENT_DOWN, GADGET_ID_BALL_CONTENT_UP,
GADGET_ID_BALL_CONTENT_TEXT, GADGET_ID_NONE,
&level.num_ball_contents,
- NULL, NULL, "number of content areas"
+ NULL, NULL, "Number of content areas"
},
{
ED_COUNTER_ID_ANDROID_CONTENT,
GADGET_ID_ANDROID_CONTENT_DOWN, GADGET_ID_ANDROID_CONTENT_UP,
GADGET_ID_ANDROID_CONTENT_TEXT, GADGET_ID_NONE,
&level.num_android_clone_elements,
- NULL, NULL, "number of clonable elements"
+ NULL, NULL, "Number of clonable elements"
},
{
ED_COUNTER_ID_ENVELOPE_XSIZE,
GADGET_ID_ENVELOPE_XSIZE_DOWN, GADGET_ID_ENVELOPE_XSIZE_UP,
GADGET_ID_ENVELOPE_XSIZE_TEXT, GADGET_ID_NONE,
NULL, // will be set when used
- NULL, NULL, "width",
+ NULL, NULL, "Width",
},
{
ED_COUNTER_ID_ENVELOPE_YSIZE,
GADGET_ID_ENVELOPE_YSIZE_DOWN, GADGET_ID_ENVELOPE_YSIZE_UP,
GADGET_ID_ENVELOPE_YSIZE_TEXT, GADGET_ID_ENVELOPE_XSIZE_UP,
NULL, // will be set when used
- NULL, " ", "height",
+ NULL, " ", "Height",
},
{
ED_COUNTER_ID_INVENTORY_SIZE,
GADGET_ID_INVENTORY_SIZE_DOWN, GADGET_ID_INVENTORY_SIZE_UP,
GADGET_ID_INVENTORY_SIZE_TEXT, GADGET_ID_NONE,
&level.initial_inventory_size[0],
- NULL, NULL, "number of inventory elements"
+ NULL, NULL, "Number of inventory elements"
},
{
ED_COUNTER_ID_MM_BALL_CONTENT,
GADGET_ID_MM_BALL_CONTENT_DOWN, GADGET_ID_MM_BALL_CONTENT_UP,
GADGET_ID_MM_BALL_CONTENT_TEXT, GADGET_ID_NONE,
&level.num_mm_ball_contents,
- NULL, NULL, "number of content elements"
+ NULL, NULL, "Number of content elements"
},
// ---------- element settings: configure 1 (custom elements) ---------------
GADGET_ID_PUSH_DELAY_FIX_DOWN, GADGET_ID_PUSH_DELAY_FIX_UP,
GADGET_ID_PUSH_DELAY_FIX_TEXT, GADGET_ID_NONE,
&custom_element.push_delay_fixed,
- NULL, "push delay", NULL
+ NULL, "Push delay", NULL
},
{
ED_COUNTER_ID_PUSH_DELAY_RND,
GADGET_ID_DROP_DELAY_FIX_DOWN, GADGET_ID_DROP_DELAY_FIX_UP,
GADGET_ID_DROP_DELAY_FIX_TEXT, GADGET_ID_NONE,
&custom_element.drop_delay_fixed,
- NULL, "drop delay", NULL
+ NULL, "Drop delay", NULL
},
{
ED_COUNTER_ID_DROP_DELAY_RND,
GADGET_ID_MOVE_DELAY_FIX_DOWN, GADGET_ID_MOVE_DELAY_FIX_UP,
GADGET_ID_MOVE_DELAY_FIX_TEXT, GADGET_ID_NONE,
&custom_element.move_delay_fixed,
- NULL, "move delay", NULL
+ NULL, "Move delay", NULL
},
{
ED_COUNTER_ID_MOVE_DELAY_RND,
GADGET_ID_STEP_DELAY_FIX_DOWN, GADGET_ID_STEP_DELAY_FIX_UP,
GADGET_ID_STEP_DELAY_FIX_TEXT, GADGET_ID_NONE,
&custom_element.step_delay_fixed,
- NULL, "step delay", NULL
+ NULL, "Step delay", NULL
},
{
ED_COUNTER_ID_STEP_DELAY_RND,
GADGET_ID_EXPLOSION_DELAY_DOWN, GADGET_ID_EXPLOSION_DELAY_UP,
GADGET_ID_EXPLOSION_DELAY_TEXT, GADGET_ID_NONE,
&custom_element.explosion_delay,
- NULL, "explosion delay", NULL
+ NULL, "Explosion delay", NULL
},
{
ED_COUNTER_ID_IGNITION_DELAY,
GADGET_ID_IGNITION_DELAY_DOWN, GADGET_ID_IGNITION_DELAY_UP,
GADGET_ID_IGNITION_DELAY_TEXT, GADGET_ID_NONE,
&custom_element.ignition_delay,
- NULL, "ignition delay", "(by fire)"
+ NULL, "Ignition delay", "(by fire)"
},
// ---------- element settings: configure (group elements) ------------------
GADGET_ID_GROUP_CONTENT_DOWN, GADGET_ID_GROUP_CONTENT_UP,
GADGET_ID_GROUP_CONTENT_TEXT, GADGET_ID_NONE,
&group_element_info.num_elements,
- NULL, NULL, "number of elements in group"
+ NULL, NULL, "Number of elements in group"
},
// ---------- element settings: advanced (custom elements) ------------------
GADGET_ID_CHANGE_CONT_RND_DOWN, GADGET_ID_CHANGE_CONT_RND_UP,
GADGET_ID_CHANGE_CONT_RND_TEXT, GADGET_ID_NONE,
&custom_element_change.random_percentage,
- NULL, "use random replace:", "%"
+ NULL, "Use random replace:", "%"
},
};
-1,
options_time_or_steps,
&level.use_step_counter,
- NULL, NULL, "(0 => no limit)", "time or step limit"
+ NULL, NULL, "(0 => no limit)", "Select time or step limit"
},
{
ED_SELECTBOX_ID_TIME_SCORE_BASE,
-1,
options_time_score_base,
&level.time_score_base,
- NULL, NULL, NULL, "time score for 1 or 10 seconds/steps"
+ NULL, NULL, NULL, "Select time score for 1 or 10 seconds/steps"
},
{
ED_SELECTBOX_ID_GAME_ENGINE_TYPE,
-1,
options_game_engine_type,
&level.game_engine_type,
- NULL, "game engine:", NULL, "game engine"
+ NULL, "Game engine:", NULL, "Select game engine"
},
{
ED_SELECTBOX_ID_BD_SCHEDULING_TYPE,
-1,
options_bd_scheduling_type,
&level.bd_scheduling_type,
- NULL, "scheduling type:", NULL, "level timing"
+ NULL, "Scheduling type:", NULL, "Select level timing"
},
{
ED_SELECTBOX_ID_LEVELSET_SAVE_MODE,
-1,
options_levelset_save_mode,
&levelset_save_mode,
- "Action:", NULL, NULL, "action when saving level set"
+ "Action:", NULL, NULL, "Select action when saving level set"
},
// ---------- element settings: configure (several elements) ----------------
-1,
options_wind_direction,
&level.wind_direction_initial,
- NULL, "initial wind direction:", NULL, "initial wind direction"
+ NULL, "Initial wind direction:", NULL, "Select initial wind direction"
},
{
ED_SELECTBOX_ID_PLAYER_SPEED,
-1,
options_player_speed,
&level.initial_player_stepsize[0],
- NULL, "initial player speed:", NULL, "initial player speed"
+ NULL, "Initial player speed:", NULL, "Select initial player speed"
},
{
ED_SELECTBOX_ID_MM_BALL_CHOICE_MODE,
-1,
options_group_choice_mode,
&level.mm_ball_choice_mode,
- NULL, "choice type:", NULL, "type of content choice"
+ NULL, "Choice type:", NULL, "Select type of content choice"
},
// ---------- element settings: configure 1 (custom elements) ---------------
-1,
options_access_type,
&custom_element.access_type,
- NULL, NULL, NULL, "type of access to this field"
+ NULL, NULL, NULL, "Select type of access to this field"
},
{
ED_SELECTBOX_ID_CUSTOM_ACCESS_LAYER,
-1,
options_access_layer,
&custom_element.access_layer,
- NULL, NULL, NULL, "layer of access for this field"
+ NULL, NULL, NULL, "Select layer of access for this field"
},
{
ED_SELECTBOX_ID_CUSTOM_ACCESS_PROTECTED,
-1,
options_access_protected,
&custom_element.access_protected,
- NULL, NULL, NULL, "protected access for this field"
+ NULL, NULL, NULL, "Select protected access for this field"
},
{
ED_SELECTBOX_ID_CUSTOM_ACCESS_DIRECTION,
-1,
options_access_direction,
&custom_element.access_direction,
- NULL, "from", NULL, "access direction for this field"
+ NULL, "from", NULL, "Select access direction for this field"
},
{
ED_SELECTBOX_ID_CUSTOM_WALK_TO_ACTION,
-1,
options_walk_to_action,
&custom_element.walk_to_action,
- NULL, NULL, NULL, "diggable/collectible/pushable"
+ NULL, NULL, NULL, "Select diggable/collectible/pushable"
},
// ---------- element settings: configure 2 (custom elements) ---------------
-1,
options_move_pattern,
&custom_element.move_pattern,
- NULL, "can move", NULL, "element move pattern"
+ NULL, "Can move", NULL, "Select element move pattern"
},
{
ED_SELECTBOX_ID_CUSTOM_MOVE_DIRECTION,
-1,
options_move_direction,
&custom_element.move_direction_initial,
- NULL, "starts moving", NULL, "initial element move direction"
+ NULL, "Starts moving", NULL, "Select initial element move direction"
},
{
ED_SELECTBOX_ID_CUSTOM_MOVE_STEPSIZE,
-1,
options_move_stepsize,
&custom_element.move_stepsize,
- NULL, "move/fall speed", NULL, "speed of element movement"
+ NULL, "Move/fall speed", NULL, "Select speed of element movement"
},
{
ED_SELECTBOX_ID_CUSTOM_MOVE_LEAVE_TYPE,
// left text with leading spaces to place gadget next to "can dig" gadget
// (needed because drawing area gadgets created after selectbox gadgets)
// NULL, "can dig: can", ":", "leave behind or change element"
- NULL, " can", ":", "leave behind or change element"
+ NULL, " Can", ":", "Select leave behind or change element"
},
{
ED_SELECTBOX_ID_CUSTOM_SMASH_TARGETS,
-1,
options_smash_targets,
&custom_element.smash_targets,
- NULL, "can smash", NULL, "elements that can be smashed"
+ NULL, "Can smash", NULL, "Select elements that can be smashed"
},
{
ED_SELECTBOX_ID_CUSTOM_SLIPPERY_TYPE,
-1,
options_slippery_type,
&custom_element.slippery_type,
- NULL, "slippery", NULL, "where other elements fall down"
+ NULL, "Slippery", NULL, "Select where other elements fall down"
},
{
ED_SELECTBOX_ID_CUSTOM_DEADLINESS,
-1,
options_deadliness,
&custom_element.deadliness,
- NULL, "deadly when", NULL, "deadliness of element"
+ NULL, "Deadly when", NULL, "Select deadliness of element"
},
{
ED_SELECTBOX_ID_CUSTOM_EXPLOSION_TYPE,
-1,
options_explosion_type,
&custom_element.explosion_type,
- NULL, "can explode", NULL, "explosion type"
+ NULL, "Can explode", NULL, "Select explosion type"
},
// ---------- element settings: advanced (custom elements) ------------------
-1,
options_time_units,
&custom_element_change.delay_frames,
- NULL, "delay time given in", NULL, "delay time units for change"
+ NULL, "Delay time given in", NULL, "Select delay time units for change"
},
{
ED_SELECTBOX_ID_CHANGE_DIRECT_ACTION,
-1,
options_change_direct_action,
&custom_element_change.direct_action,
- NULL, NULL, NULL, "type of direct action"
+ NULL, NULL, NULL, "Select type of direct action"
},
{
ED_SELECTBOX_ID_CHANGE_OTHER_ACTION,
-1,
options_change_other_action,
&custom_element_change.other_action,
- NULL, NULL, "element:", "type of other element action"
+ NULL, NULL, "element:", "Select type of other element action"
},
{
ED_SELECTBOX_ID_CHANGE_SIDE,
-1,
options_change_trigger_side,
&custom_element_change.trigger_side,
- NULL, "at", "side", "element side triggering change"
+ NULL, "at", "side", "Select element side triggering change"
},
{
ED_SELECTBOX_ID_CHANGE_PLAYER,
-1,
options_change_trigger_player,
&custom_element_change.trigger_player,
- NULL, "player:", " ", "player that causes change"
+ NULL, "Player:", " ", "Select player that causes change"
},
{
ED_SELECTBOX_ID_CHANGE_PAGE,
-1,
options_change_trigger_page,
&custom_element_change.trigger_page,
- NULL, "page:", NULL, "change page that causes change"
+ NULL, "Page:", NULL, "Select change page that causes change"
},
{
ED_SELECTBOX_ID_CHANGE_REPLACE_WHEN,
-1,
options_change_replace_when,
&custom_element_change.replace_when,
- NULL, "replace when", NULL, "which elements can be replaced"
+ NULL, "Replace when", NULL, "Select which elements can be replaced"
},
{
ED_SELECTBOX_ID_ACTION_TYPE,
15,
options_action_type,
&custom_element_change.action_type,
- NULL, NULL, NULL, "action on specified condition"
+ NULL, NULL, NULL, "Select action on specified condition"
},
{
ED_SELECTBOX_ID_ACTION_MODE,
-1,
options_action_mode_none,
&custom_element_change.action_mode,
- NULL, NULL, NULL, "action operator"
+ NULL, NULL, NULL, "Select action operator"
},
{
ED_SELECTBOX_ID_ACTION_ARG,
-1,
options_action_arg_none,
&custom_element_change.action_arg,
- NULL, NULL, NULL, "action parameter"
+ NULL, NULL, NULL, "Select action parameter"
},
{
ED_SELECTBOX_ID_SELECT_CHANGE_PAGE,
3,
options_change_page,
&custom_element.current_change_page,
- NULL, NULL, NULL, "element change page"
+ NULL, NULL, NULL, "Select element change page"
},
// ---------- element settings: configure (group elements) ------------------
-1,
options_group_choice_mode,
&group_element_info.choice_mode,
- NULL, "choice type:", NULL, "type of group element choice"
+ NULL, "Choice type:", NULL, "Select type of group element choice"
},
};
IMG_EDITOR_COUNTER_DOWN,
ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(14),
GADGET_ID_PREV_CHANGE_PAGE, GADGET_ID_NONE,
- NULL, NULL, "select previous change page"
+ NULL, NULL, "Select previous change page"
},
{
ED_GRAPHICBUTTON_ID_NEXT_CHANGE_PAGE,
IMG_EDITOR_COUNTER_UP,
-1, ED_ELEMENT_SETTINGS_YPOS(14),
GADGET_ID_NEXT_CHANGE_PAGE, GADGET_ID_SELECT_CHANGE_PAGE,
- NULL, "change page", "select next change page"
+ NULL, "Change page", "Select next change page"
},
{
ED_GRAPHICBUTTON_ID_COPY_CHANGE_PAGE,
IMG_GFX_EDITOR_BUTTON_CP_COPY,
-1, ED_ELEMENT_SETTINGS_YPOS(14),
GADGET_ID_COPY_CHANGE_PAGE, GADGET_ID_NEXT_CHANGE_PAGE,
- " ", NULL, "copy settings from this change page"
+ " ", NULL, "Copy settings from this change page"
},
{
ED_GRAPHICBUTTON_ID_PASTE_CHANGE_PAGE,
IMG_GFX_EDITOR_BUTTON_CP_PASTE,
-1, ED_ELEMENT_SETTINGS_YPOS(14),
GADGET_ID_PASTE_CHANGE_PAGE, GADGET_ID_COPY_CHANGE_PAGE,
- NULL, NULL, "paste settings to this change page"
+ NULL, NULL, "Paste settings to this change page"
},
};
ED_SCROLLBUTTON_ID_AREA_UP,
IMG_EDITOR_PLAYFIELD_SCROLL_UP,
GADGET_ID_SCROLL_UP,
- "scroll level editing area up"
+ "Scroll level editing area up"
},
{
ED_SCROLLBUTTON_ID_AREA_DOWN,
IMG_EDITOR_PLAYFIELD_SCROLL_DOWN,
GADGET_ID_SCROLL_DOWN,
- "scroll level editing area down"
+ "Scroll level editing area down"
},
{
ED_SCROLLBUTTON_ID_AREA_LEFT,
IMG_EDITOR_PLAYFIELD_SCROLL_LEFT,
GADGET_ID_SCROLL_LEFT,
- "scroll level editing area left"
+ "Scroll level editing area left"
},
{
ED_SCROLLBUTTON_ID_AREA_RIGHT,
IMG_EDITOR_PLAYFIELD_SCROLL_RIGHT,
GADGET_ID_SCROLL_RIGHT,
- "scroll level editing area right"
+ "Scroll level editing area right"
},
{
ED_SCROLLBUTTON_ID_LIST_UP,
IMG_EDITOR_PALETTE_SCROLL_UP,
GADGET_ID_SCROLL_LIST_UP,
- "scroll element list up ('Page Up')"
+ "Scroll element list up ('Page Up')"
},
{
ED_SCROLLBUTTON_ID_LIST_DOWN,
IMG_EDITOR_PALETTE_SCROLL_DOWN,
GADGET_ID_SCROLL_LIST_DOWN,
- "scroll element list down ('Page Down')"
+ "Scroll element list down ('Page Down')"
},
};
IMG_EDITOR_PLAYFIELD_SCROLLBAR,
GD_TYPE_SCROLLBAR_HORIZONTAL,
GADGET_ID_SCROLL_HORIZONTAL,
- "scroll level editing area horizontally"
+ "Scroll level editing area horizontally"
},
{
ED_SCROLLBAR_ID_AREA_VERTICAL,
IMG_EDITOR_PLAYFIELD_SCROLLBAR,
GD_TYPE_SCROLLBAR_VERTICAL,
GADGET_ID_SCROLL_VERTICAL,
- "scroll level editing area vertically"
+ "Scroll level editing area vertically"
},
{
ED_SCROLLBAR_ID_LIST_VERTICAL,
IMG_EDITOR_PALETTE_SCROLLBAR,
GD_TYPE_SCROLLBAR_VERTICAL,
GADGET_ID_SCROLL_LIST_VERTICAL,
- "scroll element list vertically"
+ "Scroll element list vertically"
}
};
GADGET_ID_RANDOM_PERCENTAGE, GADGET_ID_LEVEL_RANDOM_UP,
RADIO_NR_RANDOM_ELEMENTS,
&random_placement_method, RANDOM_USE_PERCENTAGE,
- " ", "percentage", "use percentage for random elements"
+ " ", "percentage", "Use percentage for random elements"
},
{
ED_RADIOBUTTON_ID_QUANTITY,
GADGET_ID_RANDOM_QUANTITY, GADGET_ID_RANDOM_PERCENTAGE,
RADIO_NR_RANDOM_ELEMENTS,
&random_placement_method, RANDOM_USE_QUANTITY,
- " ", "quantity", "use quantity for random elements"
+ " ", "quantity", "Use quantity for random elements"
}
};
GADGET_ID_AUTO_COUNT_GEMS, GADGET_ID_NONE,
&level.auto_count_gems,
NULL, NULL,
- "automatically count gems needed", "set counter to number of gems"
+ "Automatically count gems needed", "Set counter to number of gems"
},
{
ED_CHECKBUTTON_ID_RATE_TIME_OVER_SCORE,
GADGET_ID_RATE_TIME_OVER_SCORE, GADGET_ID_NONE,
&level.rate_time_over_score,
NULL, NULL,
- "rate time/steps used over score", "sort high scores by playing time/steps"
+ "Rate time/steps used over score", "Sort high scores by playing time/steps"
},
{
ED_CHECKBUTTON_ID_USE_LEVELSET_ARTWORK,
GADGET_ID_USE_LEVELSET_ARTWORK, GADGET_ID_NONE,
&levelset_use_levelset_artwork,
NULL, NULL,
- "use current custom artwork", "use custom artwork of this level set"
+ "Use current custom artwork", "Use custom artwork of this level set"
},
{
ED_CHECKBUTTON_ID_COPY_LEVEL_TEMPLATE,
GADGET_ID_COPY_LEVEL_TEMPLATE, GADGET_ID_NONE,
&levelset_copy_level_template,
NULL, NULL,
- "copy current level template", "copy level template of this level set"
+ "Copy current level template", "Copy level template of this level set"
},
{
ED_CHECKBUTTON_ID_RANDOM_RESTRICTED,
GADGET_ID_RANDOM_RESTRICTED, GADGET_ID_NONE,
&random_placement_background_restricted,
NULL, NULL,
- "restrict random placement to:", "set random placement restriction"
+ "Restrict random placement to:", "Set random placement restriction"
},
{
ED_CHECKBUTTON_ID_CUSTOM_USE_TEMPLATE_3,
GADGET_ID_CUSTOM_USE_TEMPLATE_3, GADGET_ID_NONE,
&setup.editor.use_template_for_new_levels,
"Template for new levels and CE/GE:", NULL,
- "use template for new levels", "use template for level properties"
+ "Use template for new levels", "Use template for level properties"
},
{
ED_CHECKBUTTON_ID_CUSTOM_USE_TEMPLATE_2,
GADGET_ID_CUSTOM_USE_TEMPLATE_2, GADGET_ID_NONE,
&level.use_custom_template,
NULL, NULL,
- "use template for custom elements", "use template for custom properties"
+ "Use template for custom elements", "Use template for custom properties"
},
{
ED_CHECKBUTTON_ID_BD_INTERMISSION,
GADGET_ID_BD_INTERMISSION, GADGET_ID_NONE,
&level.bd_intermission,
"Boulder Dash game engine settings:", NULL,
- "intermission", "level is an intermission level"
+ "Intermission", "Level is an intermission level"
},
{
ED_CHECKBUTTON_ID_BD_PAL_TIMING,
GADGET_ID_BD_PAL_TIMING, GADGET_ID_NONE,
&level.bd_pal_timing,
NULL, NULL,
- "PAL timing", "use slower timer (like PAL C64)"
+ "PAL timing", "Use slower timer (like PAL C64)"
},
{
ED_CHECKBUTTON_ID_BD_LINE_SHIFTING_BORDERS,
GADGET_ID_BD_LINE_SHIFTING_BORDERS, GADGET_ID_NONE,
&level.bd_line_shifting_borders,
"Compatibility settings:", NULL,
- "line-shifting borders", "use line-shifting wrap-around"
+ "Line-shifting borders", "Use line-shifting wrap-around"
},
{
ED_CHECKBUTTON_ID_BD_SCAN_FIRST_AND_LAST_ROW,
GADGET_ID_BD_SCAN_FIRST_AND_LAST_ROW, GADGET_ID_NONE,
&level.bd_scan_first_and_last_row,
NULL, NULL,
- "scan first and last row", "also process top/bottom border rows"
+ "Scan first and last row", "Also process top/bottom border rows"
},
{
ED_CHECKBUTTON_ID_BD_SHORT_EXPLOSIONS,
GADGET_ID_BD_SHORT_EXPLOSIONS, GADGET_ID_NONE,
&level.bd_short_explosions,
NULL, NULL,
- "short explosions", "use four game cycles for explosions"
+ "Short explosions", "Use four game cycles for explosions"
},
{
ED_CHECKBUTTON_ID_BD_GRAVITY_AFFECTS_ALL,
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"
+ "Gravity change affects everything", "Gravity affects all falling objects"
},
// ---------- element settings: configure (various elements) ----------------
GADGET_ID_STICK_ELEMENT, GADGET_ID_NONE,
&stick_element_properties_window,
NULL, NULL,
- "stick this screen to edit content","stick this screen to edit content"
+ "Stick this screen to edit content","Stick this screen to edit content"
},
{
ED_CHECKBUTTON_ID_EM_SLIPPERY_GEMS,
GADGET_ID_EM_SLIPPERY_GEMS, GADGET_ID_NONE,
&level.em_slippery_gems,
NULL, NULL,
- "slip down from certain flat walls","use EM/DC style slipping behaviour"
+ "Slip down from certain flat walls","Use EM/DC style slipping behaviour"
},
{
ED_CHECKBUTTON_ID_EM_EXPLODES_BY_FIRE,
GADGET_ID_EM_EXPLODES_BY_FIRE, GADGET_ID_NONE,
&level.em_explodes_by_fire,
NULL, NULL,
- "explodes with chain reaction", "use R'n'D style explosion behaviour"
+ "Explodes with chain reaction", "Use R'n'D style explosion behaviour"
},
{
ED_CHECKBUTTON_ID_USE_SPRING_BUG,
GADGET_ID_USE_SPRING_BUG, GADGET_ID_NONE,
&level.use_spring_bug,
NULL, NULL,
- "use spring pushing bug", "use odd spring pushing behaviour"
+ "Use spring pushing bug", "Use odd spring pushing behaviour"
},
{
ED_CHECKBUTTON_ID_USE_TIME_ORB_BUG,
GADGET_ID_USE_TIME_ORB_BUG, GADGET_ID_NONE,
&level.use_time_orb_bug,
NULL, NULL,
- "use time orb bug", "use odd time orb behaviour"
+ "Use time orb bug", "Use odd time orb behaviour"
},
{
ED_CHECKBUTTON_ID_USE_LIFE_BUGS,
GADGET_ID_USE_LIFE_BUGS, GADGET_ID_NONE,
&level.use_life_bugs,
NULL, NULL,
- "use buggy element behaviour", "use odd (historic) element behaviour"
+ "Use buggy element behaviour", "Use odd (historic) element behaviour"
},
{
ED_CHECKBUTTON_ID_RANDOM_BALL_CONTENT,
GADGET_ID_RANDOM_BALL_CONTENT, GADGET_ID_NONE,
&level.ball_random,
NULL, NULL,
- "create single random element", "only create one element from content"
+ "Create single random element", "Only create one element from content"
},
{
ED_CHECKBUTTON_ID_INITIAL_BALL_ACTIVE,
GADGET_ID_INITIAL_BALL_ACTIVE, GADGET_ID_NONE,
&level.ball_active_initial,
NULL, NULL,
- "magic ball initially activated", "activate magic ball after level start"
+ "Magic ball initially activated", "Activate magic ball after level start"
},
{
ED_CHECKBUTTON_ID_GROW_INTO_DIGGABLE,
GADGET_ID_GROW_INTO_DIGGABLE, GADGET_ID_NONE,
&level.grow_into_diggable,
NULL, NULL,
- "can grow into anything diggable", "grow into more than just sand"
+ "Can grow into anything diggable", "Grow into more than just sand"
},
{
ED_CHECKBUTTON_ID_SB_FIELDS_NEEDED,
GADGET_ID_SB_FIELDS_NEEDED, GADGET_ID_NONE,
&level.sb_fields_needed,
NULL, NULL,
- "all fields need to be filled", "require all SB fields to be solved"
+ "All fields need to be filled", "Require all SB fields to be solved"
},
{
ED_CHECKBUTTON_ID_SB_OBJECTS_NEEDED,
GADGET_ID_SB_OBJECTS_NEEDED, GADGET_ID_NONE,
&level.sb_objects_needed,
NULL, NULL,
- "all objects need to be placed", "require all SB objects to be solved"
+ "All objects need to be placed", "Require all SB objects to be solved"
},
{
ED_CHECKBUTTON_ID_AUTO_EXIT_SOKOBAN,
GADGET_ID_AUTO_EXIT_SOKOBAN, GADGET_ID_NONE,
&level.auto_exit_sokoban,
NULL, NULL,
- "exit level if all tasks solved", "automatically finish Sokoban levels"
+ "Exit level if all tasks solved", "Automatically finish Sokoban levels"
},
{
ED_CHECKBUTTON_ID_SOLVED_BY_ONE_PLAYER,
GADGET_ID_SOLVED_BY_ONE_PLAYER, GADGET_ID_NONE,
&level.solved_by_one_player,
NULL, NULL,
- "only one player must enter exit", "level solved by first player in exit"
+ "Only one player must enter exit", "Level solved by first player in exit"
},
{
ED_CHECKBUTTON_ID_FINISH_DIG_COLLECT,
GADGET_ID_FINISH_DIG_COLLECT, GADGET_ID_NONE,
&level.finish_dig_collect,
NULL, NULL,
- "CE action on finished dig/collect", "only finished dig/collect triggers CE"
+ "CE action on finished dig/collect", "Only finished dig/collect triggers CE"
},
{
ED_CHECKBUTTON_ID_KEEP_WALKABLE_CE,
GADGET_ID_KEEP_WALKABLE_CE, GADGET_ID_NONE,
&level.keep_walkable_ce,
NULL, NULL,
- "keep walkable CE changed to player", "keep CE changing to player if walkable"
+ "Keep walkable CE changed to player", "Keep CE changing to player if walkable"
},
{
ED_CHECKBUTTON_ID_CONTINUOUS_SNAPPING,
GADGET_ID_CONTINUOUS_SNAPPING, GADGET_ID_NONE,
&level.continuous_snapping,
NULL, NULL,
- "continuous snapping", "use snapping without releasing key"
+ "Continuous snapping", "Use snapping without releasing key"
},
{
ED_CHECKBUTTON_ID_BLOCK_SNAP_FIELD,
GADGET_ID_BLOCK_SNAP_FIELD, GADGET_ID_NONE,
&level.block_snap_field,
NULL, NULL,
- "block snapped field when snapping", "use snapping delay to show animation"
+ "Block snapped field when snapping", "Use snapping delay to show animation"
},
{
ED_CHECKBUTTON_ID_BLOCK_LAST_FIELD,
GADGET_ID_BLOCK_LAST_FIELD, GADGET_ID_NONE,
&level.block_last_field,
NULL, NULL,
- "block last field when moving", "player blocks last field when moving"
+ "Block last field when moving", "Player blocks last field when moving"
},
{
ED_CHECKBUTTON_ID_SP_BLOCK_LAST_FIELD,
GADGET_ID_SP_BLOCK_LAST_FIELD, GADGET_ID_NONE,
&level.sp_block_last_field,
NULL, NULL,
- "block last field when moving", "player blocks last field when moving"
+ "Block last field when moving", "Player blocks last field when moving"
},
{
ED_CHECKBUTTON_ID_INSTANT_RELOCATION,
GADGET_ID_INSTANT_RELOCATION, GADGET_ID_NONE,
&level.instant_relocation,
NULL, NULL,
- "no scrolling when relocating", "player gets relocated without delay"
+ "No scrolling when relocating", "Player gets relocated without delay"
},
{
ED_CHECKBUTTON_ID_SHIFTED_RELOCATION,
GADGET_ID_SHIFTED_RELOCATION, GADGET_ID_NONE,
&level.shifted_relocation,
NULL, NULL,
- "no centering when relocating", "level not centered after relocation"
+ "No centering when relocating", "Level not centered after relocation"
},
{
ED_CHECKBUTTON_ID_LAZY_RELOCATION,
GADGET_ID_LAZY_RELOCATION, GADGET_ID_NONE,
&level.lazy_relocation,
NULL, NULL,
- "only redraw off-screen relocation","no redraw if relocation target visible"
+ "Only redraw off-screen relocation","No redraw if relocation target visible"
},
{
ED_CHECKBUTTON_ID_USE_START_ELEMENT,
GADGET_ID_USE_START_ELEMENT, GADGET_ID_NONE,
&level.use_start_element[0],
NULL, NULL,
- "use level start element:", "start level at this element's position"
+ "Use level start element:", "Start level at this element's position"
},
{
ED_CHECKBUTTON_ID_USE_ARTWORK_ELEMENT,
GADGET_ID_USE_ARTWORK_ELEMENT, GADGET_ID_NONE,
&level.use_artwork_element[0],
NULL, NULL,
- "use artwork from element:", "use player artwork from other element"
+ "Use artwork from element:", "Use player artwork from other element"
},
{
ED_CHECKBUTTON_ID_USE_EXPLOSION_ELEMENT,
GADGET_ID_USE_EXPLOSION_ELEMENT, GADGET_ID_NONE,
&level.use_explosion_element[0],
NULL, NULL,
- "use explosion from element:", "use explosion properties from element"
+ "Use explosion from element:", "Use explosion properties from element"
},
{
ED_CHECKBUTTON_ID_INITIAL_GRAVITY,
GADGET_ID_INITIAL_GRAVITY, GADGET_ID_NONE,
&level.initial_player_gravity[0],
NULL, NULL,
- "use initial gravity", "set initial player gravity"
+ "Use initial gravity", "Set initial player gravity"
},
{
ED_CHECKBUTTON_ID_USE_INITIAL_INVENTORY,
GADGET_ID_USE_INITIAL_INVENTORY, GADGET_ID_NONE,
&level.use_initial_inventory[0],
NULL, NULL,
- "use initial inventory:", "use collected elements on level start"
+ "Use initial inventory:", "Use collected elements on level start"
},
{
ED_CHECKBUTTON_ID_CAN_PASS_TO_WALKABLE,
GADGET_ID_CAN_PASS_TO_WALKABLE, GADGET_ID_NONE,
&level.can_pass_to_walkable,
NULL, NULL,
- "can pass to walkable element", "player can pass to empty or walkable"
+ "Can pass to walkable element", "Player can pass to empty or walkable"
},
{
ED_CHECKBUTTON_ID_CAN_FALL_INTO_ACID,
GADGET_ID_CAN_FALL_INTO_ACID, GADGET_ID_NONE,
&custom_element_properties[EP_CAN_MOVE_INTO_ACID],
NULL, NULL,
- "can fall into acid (with gravity)","player can fall into acid pool"
+ "Can fall into acid (with gravity)","Player can fall into acid pool"
},
{
ED_CHECKBUTTON_ID_CAN_MOVE_INTO_ACID,
GADGET_ID_CAN_MOVE_INTO_ACID, GADGET_ID_NONE,
&custom_element_properties[EP_CAN_MOVE_INTO_ACID],
NULL, NULL,
- "can move into acid", "element can move into acid pool"
+ "Can move into acid", "Element can move into acid pool"
},
{
ED_CHECKBUTTON_ID_DONT_COLLIDE_WITH,
GADGET_ID_DONT_COLLIDE_WITH, GADGET_ID_NONE,
&custom_element_properties[EP_DONT_COLLIDE_WITH],
NULL, NULL,
- "deadly when colliding with", "element is deadly when hitting player"
+ "Deadly when colliding with", "Element is deadly when hitting player"
},
{
ED_CHECKBUTTON_ID_BD_DIAGONAL_MOVEMENTS,
GADGET_ID_BD_DIAGONAL_MOVEMENTS, GADGET_ID_NONE,
&level.bd_diagonal_movements,
NULL, NULL,
- "can move diagonally", "player can move diagonally"
+ "Can move diagonally", "Player can move diagonally"
},
{
ED_CHECKBUTTON_ID_BD_TOPMOST_PLAYER_ACTIVE,
GADGET_ID_BD_TOPMOST_PLAYER_ACTIVE, GADGET_ID_NONE,
&level.bd_topmost_player_active,
NULL, NULL,
- "topmost player is active", "use first player found on playfield"
+ "Topmost player is active", "Use first player found on playfield"
},
{
ED_CHECKBUTTON_ID_BD_PUSH_MEGA_ROCK_WITH_SWEET,
GADGET_ID_BD_PUSH_MEGA_ROCK_WITH_SWEET, GADGET_ID_NONE,
&level.bd_push_mega_rock_with_sweet,
NULL, NULL,
- "mega rocks pushable with sweet", "push mega rocks after eating sweet"
+ "Mega rocks pushable with sweet", "Push mega rocks after eating sweet"
},
{
ED_CHECKBUTTON_ID_BD_MAGIC_WALL_WAIT_HATCHING,
GADGET_ID_BD_MAGIC_WALL_WAIT_HATCHING, GADGET_ID_NONE,
&level.bd_magic_wall_wait_hatching,
NULL, NULL,
- "wait for player's birth", "timer start waits for player's birth"
+ "Wait for player's birth", "Timer start waits for player's birth"
},
{
ED_CHECKBUTTON_ID_BD_MAGIC_WALL_STOPS_AMOEBA,
GADGET_ID_BD_MAGIC_WALL_STOPS_AMOEBA, GADGET_ID_NONE,
&level.bd_magic_wall_stops_amoeba,
NULL, NULL,
- "turn amoeba to diamonds", "activation changes amoeba to diamonds"
+ "Turn amoeba to diamonds", "Activation changes amoeba to diamonds"
},
{
ED_CHECKBUTTON_ID_BD_AMOEBA_WAIT_FOR_HATCHING,
GADGET_ID_BD_AMOEBA_WAIT_FOR_HATCHING, GADGET_ID_NONE,
&level.bd_amoeba_wait_for_hatching,
NULL, NULL,
- "wait for player's birth", "timer start waits for player's birth"
+ "Wait for player's birth", "Timer start waits for player's birth"
},
{
ED_CHECKBUTTON_ID_BD_AMOEBA_START_IMMEDIATELY,
GADGET_ID_BD_AMOEBA_START_IMMEDIATELY, GADGET_ID_NONE,
&level.bd_amoeba_start_immediately,
NULL, NULL,
- "start growing immediately", "start slow growth time immediately"
+ "Start growing immediately", "Start slow growth time immediately"
},
{
ED_CHECKBUTTON_ID_BD_AMOEBA_2_EXPLODE_BY_AMOEBA,
GADGET_ID_BD_AMOEBA_2_EXPLODE_BY_AMOEBA, GADGET_ID_NONE,
&level.bd_amoeba_2_explode_by_amoeba,
NULL, NULL,
- "explodes if touched by amoeba", "amoeba 2 explodes if touched by amoeba"
+ "Explodes if touched by amoeba", "Amoeba 2 explodes if touched by amoeba"
+ },
+ {
+ ED_CHECKBUTTON_ID_BD_VOODOO_COLLECTS_DIAMONDS,
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(0),
+ GADGET_ID_BD_VOODOO_COLLECTS_DIAMONDS, GADGET_ID_NONE,
+ &level.bd_voodoo_collects_diamonds,
+ NULL, NULL,
+ "Can collect diamonds", "Can collect diamonds for the player"
+ },
+ {
+ ED_CHECKBUTTON_ID_BD_VOODOO_HURT_KILLS_PLAYER,
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(1),
+ GADGET_ID_BD_VOODOO_HURT_KILLS_PLAYER, GADGET_ID_NONE,
+ &level.bd_voodoo_hurt_kills_player,
+ NULL, NULL,
+ "Player is killed if hurt", "If hurt in any way, player is killed"
+ },
+ {
+ ED_CHECKBUTTON_ID_BD_VOODOO_DIES_BY_ROCK,
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(2),
+ GADGET_ID_BD_VOODOO_DIES_BY_ROCK, GADGET_ID_NONE,
+ &level.bd_voodoo_dies_by_rock,
+ NULL, NULL,
+ "Killed by falling rock", "Can be killed by a falling rock"
+ },
+ {
+ ED_CHECKBUTTON_ID_BD_VOODOO_VANISH_BY_EXPLOSION,
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(3),
+ GADGET_ID_BD_VOODOO_VANISH_BY_EXPLOSION, GADGET_ID_NONE,
+ &level.bd_voodoo_vanish_by_explosion,
+ NULL, NULL,
+ "Disappears in explosions", "Can be destroyed by explosions"
+ },
+ {
+ ED_CHECKBUTTON_ID_BD_SLIME_IS_PREDICTABLE,
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(0),
+ GADGET_ID_BD_SLIME_IS_PREDICTABLE, GADGET_ID_NONE,
+ &level.bd_slime_is_predictable,
+ NULL, NULL,
+ "Slime is predictable", "Use predictable random numbers"
+ },
+ {
+ ED_CHECKBUTTON_ID_BD_CHANGE_EXPANDING_WALL,
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(0),
+ GADGET_ID_BD_CHANGE_EXPANDING_WALL, GADGET_ID_NONE,
+ &level.bd_change_expanding_wall,
+ NULL, NULL,
+ "Change direction", "Switch horizontal/vertical direction"
+ },
+ {
+ ED_CHECKBUTTON_ID_BD_REPLICATORS_ACTIVE,
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(0),
+ GADGET_ID_BD_REPLICATORS_ACTIVE, GADGET_ID_NONE,
+ &level.bd_replicators_active,
+ NULL, NULL,
+ "Active at start", "Replicators start in active state"
+ },
+ {
+ ED_CHECKBUTTON_ID_BD_CONVEYOR_BELTS_ACTIVE,
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(0),
+ GADGET_ID_BD_CONVEYOR_BELTS_ACTIVE, GADGET_ID_NONE,
+ &level.bd_conveyor_belts_active,
+ NULL, NULL,
+ "Active at start", "Conveyor belts start in active state"
+ },
+ {
+ ED_CHECKBUTTON_ID_BD_CONVEYOR_BELTS_CHANGED,
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(1),
+ GADGET_ID_BD_CONVEYOR_BELTS_CHANGED, GADGET_ID_NONE,
+ &level.bd_conveyor_belts_changed,
+ 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,
GADGET_ID_ENVELOPE_AUTOWRAP, GADGET_ID_NONE,
&level.envelope[0].autowrap,
NULL, NULL,
- "auto-wrap", "automatically wrap envelope text"
+ "Auto-wrap", "Automatically wrap envelope text"
},
{
ED_CHECKBUTTON_ID_ENVELOPE_CENTERED,
GADGET_ID_ENVELOPE_CENTERED, GADGET_ID_ENVELOPE_AUTOWRAP,
&level.envelope[0].centered,
NULL, " ",
- "centered", "automatically center envelope text"
+ "Centered", "Automatically center envelope text"
},
{
ED_CHECKBUTTON_ID_MM_LASER_RED,
ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(1),
GADGET_ID_MM_LASER_RED, GADGET_ID_NONE,
&level.mm_laser_red,
- "choose color components for laser:", NULL,
- "red", "use red color components in laser"
+ "Choose color components for laser:", NULL,
+ "Red", "Use red color components in laser"
},
{
ED_CHECKBUTTON_ID_MM_LASER_GREEN,
GADGET_ID_MM_LASER_GREEN, GADGET_ID_NONE,
&level.mm_laser_green,
NULL, NULL,
- "green", "use green color components in laser"
+ "Green", "Use green color components in laser"
},
{
ED_CHECKBUTTON_ID_MM_LASER_BLUE,
GADGET_ID_MM_LASER_BLUE, GADGET_ID_NONE,
&level.mm_laser_blue,
NULL, NULL,
- "blue", "use blue color components in laser"
+ "Blue", "Use blue color components in laser"
},
{
ED_CHECKBUTTON_ID_DF_LASER_RED,
ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(1),
GADGET_ID_DF_LASER_RED, GADGET_ID_NONE,
&level.df_laser_red,
- "choose color components for laser:", NULL,
- "red", "use red color components in laser"
+ "Choose color components for laser:", NULL,
+ "Red", "Use red color components in laser"
},
{
ED_CHECKBUTTON_ID_DF_LASER_GREEN,
GADGET_ID_DF_LASER_GREEN, GADGET_ID_NONE,
&level.df_laser_green,
NULL, NULL,
- "green", "use green color components in laser"
+ "Green", "Use green color components in laser"
},
{
ED_CHECKBUTTON_ID_DF_LASER_BLUE,
GADGET_ID_DF_LASER_BLUE, GADGET_ID_NONE,
&level.df_laser_blue,
NULL, NULL,
- "blue", "use blue color components in laser"
+ "Blue", "Use blue color components in laser"
},
{
ED_CHECKBUTTON_ID_ROTATE_MM_BALL_CONTENT,
GADGET_ID_ROTATE_MM_BALL_CONTENT, GADGET_ID_NONE,
&level.rotate_mm_ball_content,
NULL, NULL,
- "randomly rotate created content", "randomly rotate newly created content"
+ "Randomly rotate created content", "Randomly rotate newly created content"
},
{
ED_CHECKBUTTON_ID_EXPLODE_MM_BALL,
GADGET_ID_EXPLODE_MM_BALL, GADGET_ID_NONE,
&level.explode_mm_ball,
NULL, NULL,
- "explode ball instead of melting", "use explosion to release ball content"
+ "Explode ball instead of melting", "Use explosion to release ball content"
},
// ---------- element settings: configure 1 (custom elements) ---------------
GADGET_ID_CUSTOM_USE_GRAPHIC, GADGET_ID_NONE,
&custom_element.use_gfx_element,
NULL, NULL,
- "use graphic of element:", "use existing element graphic"
+ "Use graphic of element:", "Use existing element graphic"
},
{
ED_CHECKBUTTON_ID_CUSTOM_USE_TEMPLATE_1,
GADGET_ID_CUSTOM_USE_TEMPLATE_1, GADGET_ID_NONE,
&level.use_custom_template,
NULL, NULL,
- "use template", "use template for custom properties"
+ "Use template", "Use template for custom properties"
},
{
ED_CHECKBUTTON_ID_CUSTOM_ACCESSIBLE,
GADGET_ID_CUSTOM_ACCESSIBLE, GADGET_ID_NONE,
&custom_element_properties[EP_ACCESSIBLE],
NULL, NULL,
- NULL, "player can walk to or pass this field"
+ NULL, "Player can walk to or pass this field"
},
{
ED_CHECKBUTTON_ID_CUSTOM_GRAV_REACHABLE,
GADGET_ID_CUSTOM_GRAV_REACHABLE, GADGET_ID_NONE,
&custom_element_properties[EP_GRAVITY_REACHABLE],
NULL, NULL,
- "reachable despite gravity", "player can walk/dig despite gravity"
+ "Reachable despite gravity", "Player can walk/dig despite gravity"
},
{
ED_CHECKBUTTON_ID_CUSTOM_USE_LAST_VALUE,
GADGET_ID_CUSTOM_USE_LAST_VALUE, GADGET_ID_NONE,
&custom_element.use_last_ce_value,
NULL, NULL,
- "use last CE value after change", "use last CE value after change"
+ "Use last CE value after change", "Use last CE value after change"
},
{
ED_CHECKBUTTON_ID_CUSTOM_WALK_TO_OBJECT,
GADGET_ID_CUSTOM_WALK_TO_OBJECT, GADGET_ID_NONE,
&custom_element_properties[EP_WALK_TO_OBJECT],
NULL, NULL,
- NULL, "player can dig/collect/push element"
+ NULL, "Player can dig/collect/push element"
},
{
ED_CHECKBUTTON_ID_CUSTOM_INDESTRUCTIBLE,
GADGET_ID_CUSTOM_INDESTRUCTIBLE, GADGET_ID_NONE,
&custom_element_properties[EP_INDESTRUCTIBLE],
NULL, NULL,
- "indestructible", "element is indestructible"
+ "Indestructible", "Element is indestructible"
},
// ---------- element settings: configure 2 (custom elements) ---------------
GADGET_ID_CUSTOM_CAN_MOVE, GADGET_ID_NONE,
&custom_element_properties[EP_CAN_MOVE],
NULL, NULL,
- NULL, "element can move with some pattern"
+ NULL, "Element can move with some pattern"
},
{
ED_CHECKBUTTON_ID_CUSTOM_CAN_FALL,
GADGET_ID_CUSTOM_CAN_FALL, GADGET_ID_NONE,
&custom_element_properties[EP_CAN_FALL],
NULL, NULL,
- "can fall", "element can fall down"
+ "Can fall", "Element can fall down"
},
{
ED_CHECKBUTTON_ID_CUSTOM_CAN_SMASH,
GADGET_ID_CUSTOM_CAN_SMASH, GADGET_ID_CUSTOM_CAN_FALL,
&custom_element_properties[EP_CAN_SMASH],
NULL, " ",
- NULL, "element can smash other elements"
+ NULL, "Element can smash other elements"
},
{
ED_CHECKBUTTON_ID_CUSTOM_SLIPPERY,
GADGET_ID_CUSTOM_SLIPPERY, GADGET_ID_NONE,
&custom_element_properties[EP_SLIPPERY],
NULL, NULL,
- NULL, "other elements can fall down from it"
+ NULL, "Other elements can fall down from it"
},
{
ED_CHECKBUTTON_ID_CUSTOM_DEADLY,
GADGET_ID_CUSTOM_DEADLY, GADGET_ID_NONE,
&custom_element_properties[EP_DEADLY],
NULL, NULL,
- NULL, "element can kill the player"
+ NULL, "Element can kill the player"
},
{
ED_CHECKBUTTON_ID_CUSTOM_CAN_EXPLODE,
GADGET_ID_CUSTOM_CAN_EXPLODE, GADGET_ID_NONE,
&custom_element_properties[EP_CAN_EXPLODE],
NULL, NULL,
- NULL, "element can explode"
+ NULL, "Element can explode"
},
{
ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_FIRE,
GADGET_ID_CUSTOM_EXPLODE_FIRE, GADGET_ID_NONE,
&custom_element_properties[EP_EXPLODES_BY_FIRE],
NULL, NULL,
- "by fire", "element can explode by fire/explosion"
+ "By fire", "Element can explode by fire/explosion"
},
{
ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_SMASH,
GADGET_ID_CUSTOM_EXPLODE_SMASH, GADGET_ID_CUSTOM_EXPLODE_FIRE,
&custom_element_properties[EP_EXPLODES_SMASHED],
NULL, " ",
- "smashed", "element can explode when smashed"
+ "Smashed", "Element can explode when smashed"
},
{
ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_IMPACT,
GADGET_ID_CUSTOM_EXPLODE_IMPACT, GADGET_ID_CUSTOM_EXPLODE_SMASH,
&custom_element_properties[EP_EXPLODES_IMPACT],
NULL, " ",
- "impact", "element can explode on impact"
+ "Impact", "Element can explode on impact"
},
// ---------- element settings: advanced (custom elements) ------------------
GADGET_ID_CUSTOM_CAN_CHANGE, GADGET_ID_NONE,
&custom_element_change.can_change,
NULL, NULL,
- "element changes to:", "change element on specified condition"
+ "Element changes to:", "Change element on specified condition"
},
{
ED_CHECKBUTTON_ID_CHANGE_DELAY,
GADGET_ID_CHANGE_DELAY, GADGET_ID_NONE,
&custom_element_change_events[CE_DELAY],
NULL, NULL,
- NULL, "element changes after delay"
+ NULL, "Element changes after delay"
},
{
ED_CHECKBUTTON_ID_CHANGE_BY_DIRECT_ACT,
GADGET_ID_CHANGE_BY_DIRECT_ACT, GADGET_ID_NONE,
&custom_element_change_events[CE_BY_DIRECT_ACTION],
NULL, NULL,
- NULL, "element changes by direct action"
+ NULL, "Element changes by direct action"
},
{
ED_CHECKBUTTON_ID_CHANGE_BY_OTHER_ACT,
GADGET_ID_CHANGE_BY_OTHER_ACT, GADGET_ID_NONE,
&custom_element_change_events[CE_BY_OTHER_ACTION],
NULL, NULL,
- NULL, "element changes by other element"
+ NULL, "Element changes by other element"
},
{
ED_CHECKBUTTON_ID_CHANGE_USE_EXPLOSION,
GADGET_ID_CHANGE_USE_EXPLOSION, GADGET_ID_NONE,
&custom_element_change.explode,
NULL, NULL,
- "explode instead of change", "element explodes instead of change"
+ "Explode instead of change", "Element explodes instead of change"
},
{
ED_CHECKBUTTON_ID_CHANGE_USE_CONTENT,
GADGET_ID_CHANGE_USE_CONTENT, GADGET_ID_NONE,
&custom_element_change.use_target_content,
NULL, NULL,
- "use extended change target:", "element changes to more elements"
+ "Use extended change target:", "Element changes to more elements"
},
{
ED_CHECKBUTTON_ID_CHANGE_ONLY_COMPLETE,
GADGET_ID_CHANGE_ONLY_COMPLETE, GADGET_ID_NONE,
&custom_element_change.only_if_complete,
NULL, NULL,
- "replace all or nothing", "only replace when all can be changed"
+ "Replace all or nothing", "Only replace when all can be changed"
},
{
ED_CHECKBUTTON_ID_CHANGE_USE_RANDOM,
GADGET_ID_CHANGE_USE_RANDOM, GADGET_ID_NONE,
&custom_element_change.use_random_replace,
NULL, NULL,
- NULL, "use percentage for random replace"
+ NULL, "Use percentage for random replace"
},
{
ED_CHECKBUTTON_ID_CHANGE_HAS_ACTION,
GADGET_ID_CHANGE_HAS_ACTION, GADGET_ID_NONE,
&custom_element_change.has_action,
NULL, NULL,
- NULL, "execute action on specified condition"
+ NULL, "Execute action on specified condition"
},
};
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_ANDROID_CONTENT, GADGET_ID_NONE,
&level.android_clone_element[0], MAX_ANDROID_ELEMENTS, 1,
- NULL, NULL, "elements:", NULL, "elements android can clone"
+ NULL, NULL, "Elements:", NULL, "Elements android can clone"
},
// ---------- amoeba content ------------------------------------------------
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_AMOEBA_CONTENT, GADGET_ID_NONE,
&level.amoeba_content, 1, 1,
- "content:", NULL, NULL, NULL, "amoeba content"
+ "Content:", NULL, NULL, NULL, "Amoeba content"
+ },
+
+ // ---------- BD snap element -----------------------------------------------
+
+ {
+ ED_DRAWING_ID_BD_SNAP_ELEMENT,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(5),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_SNAP_ELEMENT, GADGET_ID_NONE,
+ &level.bd_snap_element, 1, 1,
+ "Snap element:", NULL, NULL, NULL, "Element created when snapping"
},
- // ---------- BD amoeba content ------------------------------------------------
+ // ---------- BD amoeba content ---------------------------------------------
{
ED_DRAWING_ID_BD_AMOEBA_CONTENT_TOO_BIG,
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_BD_AMOEBA_CONTENT_TOO_BIG, GADGET_ID_NONE,
&level.bd_amoeba_content_too_big, 1, 1,
- "if too big, changes to:", NULL, NULL, NULL, "BD amoeba content if too big"
+ "If too big, changes to:", NULL, NULL, NULL, "BD amoeba content if too big"
},
{
ED_DRAWING_ID_BD_AMOEBA_CONTENT_ENCLOSED,
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_BD_AMOEBA_CONTENT_ENCLOSED, GADGET_ID_NONE,
&level.bd_amoeba_content_enclosed, 1, 1,
- "if enclosed, changes to:", NULL, NULL, NULL, "BD amoeba content if enclosed"
+ "If enclosed, changes to:", NULL, NULL, NULL, "BD amoeba content if enclosed"
},
- // ---------- BD amoeba 2 content ------------------------------------------------
+ // ---------- BD amoeba 2 content -------------------------------------------
{
ED_DRAWING_ID_BD_AMOEBA_2_CONTENT_TOO_BIG,
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_BD_AMOEBA_2_CONTENT_TOO_BIG, GADGET_ID_NONE,
&level.bd_amoeba_2_content_too_big, 1, 1,
- "if too big, changes to:", NULL, NULL, NULL, "BD amoeba 2 content if too big"
+ "If too big, changes to:", NULL, NULL, NULL, "BD amoeba 2 content if too big"
},
{
ED_DRAWING_ID_BD_AMOEBA_2_CONTENT_ENCLOSED,
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_BD_AMOEBA_2_CONTENT_ENCLOSED, GADGET_ID_NONE,
&level.bd_amoeba_2_content_enclosed, 1, 1,
- "if enclosed, changes to:", NULL, NULL, NULL, "BD amoeba 2 content if enclosed"
+ "If enclosed, changes to:", NULL, NULL, NULL, "BD amoeba 2 content if enclosed"
},
{
ED_DRAWING_ID_BD_AMOEBA_2_CONTENT_EXPLODING,
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_BD_AMOEBA_2_CONTENT_EXPLODING, GADGET_ID_NONE,
&level.bd_amoeba_2_content_exploding, 1, 1,
- "if exploding, changes to:", NULL, NULL, NULL, "BD amoeba 2 content if exploding"
+ "If exploding, changes to:", NULL, NULL, NULL, "BD amoeba 2 content if exploding"
},
{
ED_DRAWING_ID_BD_AMOEBA_2_CONTENT_LOOKS_LIKE,
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_BD_AMOEBA_2_CONTENT_LOOKS_LIKE, GADGET_ID_NONE,
&level.bd_amoeba_2_content_looks_like, 1, 1,
- "use graphic of element:", NULL, NULL, NULL, "BD amoeba 2 looks like this element"
+ "Use graphic of element:", NULL, NULL, NULL, "BD amoeba 2 looks like this element"
+ },
+ {
+ ED_DRAWING_ID_BD_ACID_EATS_ELEMENT,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(1),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_ACID_EATS_ELEMENT, GADGET_ID_NONE,
+ &level.bd_acid_eats_element, 1, 1,
+ "Can eat:", NULL, NULL, NULL, "Eats this element when spreading"
+ },
+ {
+ ED_DRAWING_ID_BD_ACID_TURNS_TO_ELEMENT,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(3),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_ACID_TURNS_TO_ELEMENT, GADGET_ID_NONE,
+ &level.bd_acid_turns_to_element, 1, 1,
+ "Can leave behind:", NULL, NULL, NULL, "Turns to this element after spreading"
+ },
+ {
+ ED_DRAWING_ID_BD_BITER_EATS_ELEMENT,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(2),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_BITER_EATS_ELEMENT, GADGET_ID_NONE,
+ &level.bd_biter_eats_element, 1, 1,
+ "Can eat:", NULL, NULL, NULL, "Eats this element when moving"
+ },
+ {
+ ED_DRAWING_ID_BD_BLADDER_CONVERTS_BY_ELEMENT,
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(1),
+ ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
+ GADGET_ID_BD_BLADDER_CONVERTS_BY_ELEMENT, GADGET_ID_NONE,
+ &level.bd_bladder_converts_by_element, 1, 1,
+ "Turns to clock by touching:", NULL, NULL, NULL, "Turns to clock by touching element"
},
// ---------- level start element -------------------------------------------
0, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_START_ELEMENT, GADGET_ID_USE_START_ELEMENT,
&level.start_element[0], 1, 1,
- NULL, NULL, NULL, NULL, "level start element"
+ NULL, NULL, NULL, NULL, "Level start element"
},
// ---------- player artwork element ----------------------------------------
0, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_ARTWORK_ELEMENT, GADGET_ID_USE_ARTWORK_ELEMENT,
&level.artwork_element[0], 1, 1,
- NULL, NULL, NULL, NULL, "element for player artwork"
+ NULL, NULL, NULL, NULL, "Element for player artwork"
},
// ---------- player explosion element --------------------------------------
0, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_EXPLOSION_ELEMENT, GADGET_ID_USE_EXPLOSION_ELEMENT,
&level.explosion_element[0], 1, 1,
- NULL, NULL, NULL, NULL, "element for player explosion"
+ NULL, NULL, NULL, NULL, "Element for player explosion"
},
// ---------- player initial inventory --------------------------------------
0, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_INVENTORY_CONTENT, GADGET_ID_USE_INITIAL_INVENTORY,
&level.initial_inventory_content[0][0], MAX_INITIAL_INVENTORY_SIZE, 1,
- NULL, NULL, NULL, NULL, "content for initial inventory"
+ NULL, NULL, NULL, NULL, "Content for initial inventory"
},
// ---------- gray ball content -----------------------------------------
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_MM_BALL_CONTENT, GADGET_ID_NONE,
&level.mm_ball_content[0], MAX_MM_BALL_CONTENTS, 1,
- "content:", NULL, NULL, NULL, "content for gray ball"
+ "Content:", NULL, NULL, NULL, "Content for gray ball"
},
// ---------- element settings: configure 1 (custom elements) ---------------
0, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_CUSTOM_GRAPHIC, GADGET_ID_CUSTOM_USE_GRAPHIC,
&custom_element.gfx_element_initial, 1, 1,
- NULL, NULL, NULL, NULL, "custom graphic element"
+ NULL, NULL, NULL, NULL, "Custom graphic element"
},
// ---------- element settings: configure 2 (custom elements) ---------------
0, ED_AREA_3X3_SETTINGS_YOFF,
GADGET_ID_CUSTOM_CONTENT, GADGET_ID_NONE, // align three rows
&custom_element.content.e[0][0], 3, 3,
- "content:", NULL, NULL, NULL, NULL
+ "Content:", NULL, NULL, NULL, NULL
},
// ---------- custom enter and leave element (when moving) ------------------
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_CUSTOM_MOVE_ENTER, GADGET_ID_NONE,
&custom_element.move_enter_element, 1, 1,
- "can dig:", " ", NULL, NULL, "element that can be digged/collected"
+ "Can dig:", " ", NULL, NULL, "Element that can be digged/collected"
},
{
ED_DRAWING_ID_CUSTOM_MOVE_LEAVE,
0, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_CUSTOM_MOVE_LEAVE, GADGET_ID_CUSTOM_MOVE_LEAVE_TYPE,
&custom_element.move_leave_element, 1, 1,
- NULL, NULL, NULL, NULL, "element that will be left behind"
+ NULL, NULL, NULL, NULL, "Element that will be left behind"
},
// ---------- element settings: advanced (custom elements) ------------------
0, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_CUSTOM_CHANGE_TARGET, GADGET_ID_CUSTOM_CAN_CHANGE,
&custom_element_change.target_element, 1, 1,
- NULL, "after/when:", NULL, NULL, "new target element after change"
+ NULL, "after/when:", NULL, NULL, "New target element after change"
},
// ---------- custom change content (extended change target) ----------------
0, ED_AREA_3X3_SETTINGS_YOFF,
GADGET_ID_CUSTOM_CHANGE_CONTENT, GADGET_ID_NONE, // align three rows
&custom_element_change.target_content.e[0][0], 3, 3,
- NULL, NULL, NULL, NULL, "new extended elements after change"
+ NULL, NULL, NULL, NULL, "New extended elements after change"
},
// ---------- custom change trigger (element causing change) ----------------
0, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_CUSTOM_CHANGE_TRIGGER, GADGET_ID_CHANGE_OTHER_ACTION,
&custom_element_change.initial_trigger_element, 1, 1,
- NULL, NULL, NULL, NULL, "other element triggering change"
+ NULL, NULL, NULL, NULL, "Other element triggering change"
},
// ---------- custom change action (element used for action) ----------------
0, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_CUSTOM_CHANGE_ACTION, GADGET_ID_ACTION_ARG,
&custom_element_change.action_element, 1, 1,
- NULL, NULL, NULL, NULL, "element used as action parameter"
+ NULL, NULL, NULL, NULL, "Element used as action parameter"
},
// ---------- group element content -----------------------------------------
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_GROUP_CONTENT, GADGET_ID_NONE,
&group_element_info.element[0], MAX_ELEMENTS_IN_GROUP, 1,
- "content:", NULL, NULL, NULL, NULL
+ "Content:", NULL, NULL, NULL, NULL
},
// ---------- random background (for random painting) -----------------------
0, ED_AREA_1X1_LSETTINGS_YOFF,
GADGET_ID_RANDOM_BACKGROUND, GADGET_ID_RANDOM_RESTRICTED,
&random_placement_background_element, 1, 1,
- NULL, NULL, NULL, NULL, "random placement background"
+ NULL, NULL, NULL, NULL, "Random placement background"
},
};
EL_BD_CONVEYOR_LEFT,
EL_BD_CONVEYOR_RIGHT,
EL_BD_CONVEYOR_SWITCH,
- EL_BD_CONVEYOR_DIR_SWITCH_RIGHT,
+ EL_BD_CONVEYOR_DIR_SWITCH_NORMAL,
EL_BD_CLOCK,
EL_BD_TIME_PENALTY,
static int num_editor_hl_boulderdash_native = ARRAY_SIZE(editor_hl_boulderdash_native);
static int num_editor_el_boulderdash_native = ARRAY_SIZE(editor_el_boulderdash_native);
+static int editor_hl_boulderdash_effects[] =
+{
+ EL_INTERNAL_CASCADE_BD_EFFECTS_ACTIVE,
+ EL_CHAR('B'),
+ EL_CHAR('D'),
+ EL_CHAR('E'),
+};
+
+static int editor_el_boulderdash_effects[] =
+{
+ EL_BD_DIAMOND_FALLING,
+ EL_BD_ROCK_FALLING,
+ EL_BD_MEGA_ROCK_FALLING,
+ EL_BD_FLYING_DIAMOND_FLYING,
+
+ EL_BD_FALLING_WALL_FALLING,
+ EL_BD_NITRO_PACK_FALLING,
+ EL_BD_NUT_FALLING,
+ EL_BD_FLYING_ROCK_FLYING,
+
+ EL_BD_PLAYER_GROWING_1,
+ EL_BD_PLAYER_GROWING_2,
+ EL_BD_PLAYER_GROWING_3,
+ EL_BD_PLAYER,
+
+ EL_BD_PLAYER_WITH_BOMB,
+ EL_BD_PLAYER_STIRRING,
+ EL_BD_EXIT_OPEN,
+ EL_BD_INVISIBLE_EXIT_OPEN,
+
+ EL_BD_BLADDER_1,
+ EL_BD_BLADDER_2,
+ EL_BD_BLADDER_3,
+ EL_BD_BLADDER_4,
+
+ EL_BD_BLADDER_5,
+ EL_BD_BLADDER_6,
+ EL_BD_BLADDER_7,
+ EL_BD_BLADDER_8,
+
+ EL_BD_SAND_2,
+ EL_BD_COW_ENCLOSED_1,
+ EL_BD_COW_ENCLOSED_2,
+ EL_BD_COW_ENCLOSED_3,
+
+ EL_BD_COW_ENCLOSED_4,
+ EL_BD_COW_ENCLOSED_5,
+ EL_BD_COW_ENCLOSED_6,
+ EL_BD_COW_ENCLOSED_7,
+
+ EL_BD_WATER_1,
+ EL_BD_WATER_2,
+ EL_BD_WATER_3,
+ EL_BD_WATER_4,
+
+ EL_BD_WATER_5,
+ EL_BD_WATER_6,
+ EL_BD_WATER_7,
+ EL_BD_WATER_8,
+
+ EL_BD_WATER_9,
+ EL_BD_WATER_10,
+ EL_BD_WATER_11,
+ EL_BD_WATER_12,
+
+ EL_BD_WATER_13,
+ EL_BD_WATER_14,
+ EL_BD_WATER_15,
+ EL_BD_WATER_16,
+
+ EL_BD_BOMB_TICKING_1,
+ EL_BD_BOMB_TICKING_2,
+ EL_BD_BOMB_TICKING_3,
+ EL_BD_BOMB_TICKING_4,
+
+ EL_BD_BOMB_TICKING_5,
+ EL_BD_BOMB_TICKING_6,
+ EL_BD_BOMB_TICKING_7,
+ EL_EMPTY,
+
+ EL_BD_BOMB_EXPLODING_1,
+ EL_BD_BOMB_EXPLODING_2,
+ EL_BD_BOMB_EXPLODING_3,
+ EL_BD_BOMB_EXPLODING_4,
+
+ EL_BD_NUT_BREAKING_1,
+ EL_BD_NUT_BREAKING_2,
+ EL_BD_NUT_BREAKING_3,
+ EL_BD_NUT_BREAKING_4,
+
+ EL_BD_EXPLODING_1,
+ EL_BD_EXPLODING_2,
+ EL_BD_EXPLODING_3,
+ EL_BD_EXPLODING_4,
+
+ EL_BD_EXPLODING_5,
+ EL_BD_TIME_PENALTY,
+ EL_BD_DIAMOND_GROWING_1,
+ EL_BD_DIAMOND_GROWING_2,
+
+ EL_BD_DIAMOND_GROWING_3,
+ EL_BD_DIAMOND_GROWING_4,
+ EL_BD_DIAMOND_GROWING_5,
+ EL_BD_NITRO_PACK_EXPLODING,
+
+ EL_BD_NITRO_PACK_EXPLODING_1,
+ EL_BD_NITRO_PACK_EXPLODING_2,
+ EL_BD_NITRO_PACK_EXPLODING_3,
+ EL_BD_NITRO_PACK_EXPLODING_4,
+
+ EL_BD_ROCK_GROWING_1,
+ EL_BD_ROCK_GROWING_2,
+ EL_BD_ROCK_GROWING_3,
+ EL_BD_ROCK_GROWING_4,
+
+ EL_BD_STEELWALL_GROWING_1,
+ EL_BD_STEELWALL_GROWING_2,
+ EL_BD_STEELWALL_GROWING_3,
+ EL_BD_STEELWALL_GROWING_4,
+
+ EL_BD_CLOCK_GROWING_1,
+ EL_BD_CLOCK_GROWING_2,
+ EL_BD_CLOCK_GROWING_3,
+ EL_BD_CLOCK_GROWING_4,
+
+ EL_BD_GHOST_EXPLODING_1,
+ EL_BD_GHOST_EXPLODING_2,
+ EL_BD_GHOST_EXPLODING_3,
+ EL_BD_GHOST_EXPLODING_4,
+};
+static int *editor_hl_boulderdash_effects_ptr = editor_hl_boulderdash_effects;
+static int *editor_el_boulderdash_effects_ptr = editor_el_boulderdash_effects;
+static int num_editor_hl_boulderdash_effects = ARRAY_SIZE(editor_hl_boulderdash_effects);
+static int num_editor_el_boulderdash_effects = ARRAY_SIZE(editor_el_boulderdash_effects);
+
static int editor_hl_emerald_mine[] =
{
EL_INTERNAL_CASCADE_EM_ACTIVE,
static boolean setup_editor_el_players = TRUE;
static boolean setup_editor_el_boulderdash = TRUE;
static boolean setup_editor_el_boulderdash_native = TRUE;
+static boolean setup_editor_el_boulderdash_effects = TRUE;
static boolean setup_editor_el_emerald_mine = TRUE;
static boolean setup_editor_el_emerald_mine_club = TRUE;
static boolean setup_editor_el_more = TRUE;
&editor_hl_boulderdash_native_ptr, &num_editor_hl_boulderdash_native,
&editor_el_boulderdash_native_ptr, &num_editor_el_boulderdash_native
},
+ {
+ &setup_editor_el_boulderdash_effects,
+ &setup.editor_cascade.el_bd_effects,
+ &editor_hl_boulderdash_effects_ptr, &num_editor_hl_boulderdash_effects,
+ &editor_el_boulderdash_effects_ptr, &num_editor_el_boulderdash_effects
+ },
{
&setup_editor_el_emerald_mine,
&setup.editor_cascade.el_em,
setup_editor_el_players = TRUE;
setup_editor_el_boulderdash = TRUE;
setup_editor_el_boulderdash_native = TRUE;
+ setup_editor_el_boulderdash_effects = TRUE;
setup_editor_el_emerald_mine = TRUE;
setup_editor_el_emerald_mine_club = TRUE;
setup_editor_el_more = TRUE;
setup_editor_el_players = FALSE;
setup_editor_el_boulderdash = FALSE;
setup_editor_el_boulderdash_native = FALSE;
+ setup_editor_el_boulderdash_effects = FALSE;
setup_editor_el_emerald_mine = FALSE;
setup_editor_el_emerald_mine_club = FALSE;
setup_editor_el_more = FALSE;
if (level.game_engine_type == GAME_ENGINE_TYPE_RND)
{
setup_editor_el_boulderdash_native = FALSE;
+ setup_editor_el_boulderdash_effects = FALSE;
setup_editor_el_mirror_magic = FALSE;
setup_editor_el_deflektor = FALSE;
}
{
setup_editor_el_boulderdash = FALSE;
setup_editor_el_boulderdash_native = FALSE;
+ setup_editor_el_boulderdash_effects = FALSE;
setup_editor_el_more = FALSE;
setup_editor_el_sokoban = FALSE;
setup_editor_el_supaplex = FALSE;
setup_editor_el_players = FALSE;
setup_editor_el_boulderdash = FALSE;
setup_editor_el_boulderdash_native = FALSE;
+ setup_editor_el_boulderdash_effects = FALSE;
setup_editor_el_emerald_mine = FALSE;
setup_editor_el_emerald_mine_club = FALSE;
setup_editor_el_more = FALSE;
setup_editor_el_players = FALSE;
setup_editor_el_boulderdash = FALSE;
setup_editor_el_boulderdash_native = FALSE;
+ setup_editor_el_boulderdash_effects = FALSE;
setup_editor_el_emerald_mine = FALSE;
setup_editor_el_emerald_mine_club = FALSE;
setup_editor_el_more = FALSE;
static void getEditorGraphicSource(int element, int tile_size, Bitmap **bitmap,
int *x, int *y)
{
- getSizedGraphicSource(el2edimg(element), 0, tile_size, bitmap, x, y);
+ int graphic = el2edimg(element);
+ int frame = 0;
+
+ if (graphic == IMG_UNKNOWN)
+ {
+ // no graphic defined -- if BD style, try to get runtime ("effect") element graphics
+ // (normal BD style elements have graphics, but runtime ("effects") elements do not)
+ int element_bd = map_element_RND_to_BD_cave(element);
+
+ if (element_bd != O_UNKNOWN)
+ {
+ struct GraphicInfo_BD *g_bd = &graphic_info_bd_object[element_bd][0];
+
+ graphic = g_bd->graphic;
+ frame = g_bd->frame;
+ }
+ }
+
+ getSizedGraphicSource(graphic, frame, tile_size, bitmap, x, y);
}
static void CreateControlButtons(void)
gd_y2 = gd->src_y + gd->pressed_yoffset;
sprintf(infotext, "%s counter value by 1, 5 or 10",
- (j == 0 ? "decrease" : "increase"));
+ (j == 0 ? "Decrease" : "Increase"));
gi = CreateGadget(GDI_CUSTOM_ID, id,
GDI_CUSTOM_TYPE_ID, type_id,
gi = CreateGadget(GDI_CUSTOM_ID, id,
GDI_CUSTOM_TYPE_ID, type_id,
GDI_IMAGE_ID, graphic,
- GDI_INFO_TEXT, "enter counter value",
+ GDI_INFO_TEXT, "Enter counter value",
GDI_X, x,
GDI_Y, y,
GDI_TYPE, GD_TYPE_TEXT_INPUT_NUMERIC,
static void CreateSelectboxGadgets(void)
{
int max_infotext_len = getMaxInfoTextLength();
+
int i, j;
for (i = 0; i < ED_NUM_SELECTBOX; i++)
if (selectbox_info[i].text_left != NULL)
x += getTextWidthForGadget(selectbox_info[i].text_left);
- sprintf(infotext, "Select %s", selectbox_info[i].infotext);
+ sprintf(infotext, "%s", selectbox_info[i].infotext);
infotext[max_infotext_len] = '\0';
gi = CreateGadget(GDI_CUSTOM_ID, id,
#define TEXT_GAME_OF_LIFE_3 "Min neighbours to create"
#define TEXT_GAME_OF_LIFE_4 "Max neighbours to create"
#define TEXT_TIME_BONUS "Extra time to solve level"
+#define TEXT_TIME_PENALTY "Time penalty if destroyed"
+#define TEXT_PERMEABILITY_RATE "slime permeability rate"
+#define TEXT_PERMEABILITY_BITS "slime permeability bits"
+#define TEXT_RANDOM_SEED "slime random number seed"
+#define TEXT_ACID_SPREAD_RATE "Spread rate (percent)"
+#define TEXT_BITER_MOVE_DELAY "Move delay (BD frames)"
+#define TEXT_REPLICATION_DELAY "Create delay (BD frames)"
static struct
{
int element;
int *value;
char *text;
+ int min_value;
+ int max_value;
} elements_with_counter[] =
{
{ EL_EMERALD, &level.score[SC_EMERALD], TEXT_COLLECTING },
{ EL_EMC_DRIPPER, &level.amoeba_speed, TEXT_AMOEBA_SPEED },
{ EL_BD_AMOEBA, &level.bd_amoeba_threshold_too_big, TEXT_AMOEBA_THRESHOED },
{ EL_BD_AMOEBA, &level.bd_amoeba_slow_growth_time, TEXT_AMOEBA_SLOW_TIME },
- { EL_BD_AMOEBA, &level.bd_amoeba_slow_growth_rate, TEXT_AMOEBA_SLOW_RATE },
- { EL_BD_AMOEBA, &level.bd_amoeba_fast_growth_rate, TEXT_AMOEBA_FAST_RATE },
+ { EL_BD_AMOEBA, &level.bd_amoeba_slow_growth_rate, TEXT_AMOEBA_SLOW_RATE,
+ 0, 100 },
+ { EL_BD_AMOEBA, &level.bd_amoeba_fast_growth_rate, TEXT_AMOEBA_FAST_RATE,
+ 0, 100 },
{ EL_BD_AMOEBA_2, &level.bd_amoeba_2_threshold_too_big, TEXT_AMOEBA_THRESHOED },
{ EL_BD_AMOEBA_2, &level.bd_amoeba_2_slow_growth_time, TEXT_AMOEBA_SLOW_TIME },
- { EL_BD_AMOEBA_2, &level.bd_amoeba_2_slow_growth_rate, TEXT_AMOEBA_SLOW_RATE },
- { EL_BD_AMOEBA_2, &level.bd_amoeba_2_fast_growth_rate, TEXT_AMOEBA_FAST_RATE },
+ { EL_BD_AMOEBA_2, &level.bd_amoeba_2_slow_growth_rate, TEXT_AMOEBA_SLOW_RATE,
+ 0, 100 },
+ { EL_BD_AMOEBA_2, &level.bd_amoeba_2_fast_growth_rate, TEXT_AMOEBA_FAST_RATE,
+ 0, 100 },
{ EL_MAGIC_WALL, &level.time_magic_wall, TEXT_DURATION },
{ EL_BD_MAGIC_WALL, &level.time_magic_wall, TEXT_DURATION },
{ EL_DC_MAGIC_WALL, &level.time_magic_wall, TEXT_DURATION },
{ EL_LIGHT_SWITCH_ACTIVE, &level.time_light, TEXT_DURATION },
{ EL_SHIELD_NORMAL, &level.shield_normal_time, TEXT_DURATION },
{ EL_SHIELD_DEADLY, &level.shield_deadly_time, TEXT_DURATION },
- { EL_BD_CLOCK, &level.bd_clock_extra_time, TEXT_TIME_BONUS },
+ { EL_BD_CLOCK, &level.bd_clock_extra_time, TEXT_TIME_BONUS,
+ -100, 100 },
+ { EL_BD_VOODOO_DOLL, &level.bd_voodoo_penalty_time, TEXT_TIME_PENALTY,
+ 0, 100 },
+ { EL_BD_SLIME, &level.bd_slime_permeability_rate, TEXT_PERMEABILITY_RATE,
+ 0, 100 },
+ { EL_BD_SLIME, &level.bd_slime_permeability_bits_c64, TEXT_PERMEABILITY_BITS,
+ 0, 255 },
+ { EL_BD_SLIME, &level.bd_slime_random_seed_c64, TEXT_RANDOM_SEED,
+ -1, 65535 },
+ { EL_BD_ACID, &level.bd_acid_spread_rate, TEXT_ACID_SPREAD_RATE,
+ 0, 100 },
+ { EL_BD_BITER, &level.bd_biter_move_delay, TEXT_BITER_MOVE_DELAY,
+ 0, 3 },
+ { EL_BD_BITER_RIGHT, &level.bd_biter_move_delay, TEXT_BITER_MOVE_DELAY,
+ 0, 3 },
+ { EL_BD_BITER_UP, &level.bd_biter_move_delay, TEXT_BITER_MOVE_DELAY,
+ 0, 3 },
+ { EL_BD_BITER_LEFT, &level.bd_biter_move_delay, TEXT_BITER_MOVE_DELAY,
+ 0, 3 },
+ { EL_BD_BITER_DOWN, &level.bd_biter_move_delay, TEXT_BITER_MOVE_DELAY,
+ 0, 3 },
+ { EL_BD_REPLICATOR, &level.bd_replicator_create_delay, TEXT_REPLICATION_DELAY,
+ 0, 100 },
{ 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 },
- { EL_GAME_OF_LIFE, &level.game_of_life[1], TEXT_GAME_OF_LIFE_2 },
- { EL_GAME_OF_LIFE, &level.game_of_life[2], TEXT_GAME_OF_LIFE_3 },
- { EL_GAME_OF_LIFE, &level.game_of_life[3], TEXT_GAME_OF_LIFE_4 },
- { EL_BIOMAZE, &level.biomaze[0], TEXT_GAME_OF_LIFE_1 },
- { EL_BIOMAZE, &level.biomaze[1], TEXT_GAME_OF_LIFE_2 },
- { EL_BIOMAZE, &level.biomaze[2], TEXT_GAME_OF_LIFE_3 },
- { EL_BIOMAZE, &level.biomaze[3], TEXT_GAME_OF_LIFE_4 },
+ { EL_GAME_OF_LIFE, &level.game_of_life[0], TEXT_GAME_OF_LIFE_1,0,8 },
+ { EL_GAME_OF_LIFE, &level.game_of_life[1], TEXT_GAME_OF_LIFE_2,0,8 },
+ { EL_GAME_OF_LIFE, &level.game_of_life[2], TEXT_GAME_OF_LIFE_3,0,8 },
+ { EL_GAME_OF_LIFE, &level.game_of_life[3], TEXT_GAME_OF_LIFE_4,0,8 },
+ { EL_BIOMAZE, &level.biomaze[0], TEXT_GAME_OF_LIFE_1,0,8 },
+ { EL_BIOMAZE, &level.biomaze[1], TEXT_GAME_OF_LIFE_2,0,8 },
+ { EL_BIOMAZE, &level.biomaze[2], TEXT_GAME_OF_LIFE_3,0,8 },
+ { EL_BIOMAZE, &level.biomaze[3], TEXT_GAME_OF_LIFE_4,0,8 },
{ EL_EMC_ANDROID, &level.android_move_time, TEXT_MOVE_SPEED },
{ EL_EMC_ANDROID, &level.android_clone_time, TEXT_CLONE_SPEED },
{ EL_EMC_MAGIC_BALL, &level.ball_time, TEXT_BALL_DELAY },
IS_DF_LASER(element) ||
IS_PLAYER_ELEMENT(element) ||
IS_BD_PLAYER_ELEMENT(element) ||
+ IS_BD_EXPANDABLE_WALL(properties_element) ||
+ IS_BD_CONVEYOR_BELT(properties_element) ||
+ IS_BD_CONVEYOR_BELT_SWITCH(properties_element) ||
IS_SOKOBAN_OBJECT_OR_FIELD(element) ||
HAS_EDITOR_CONTENT(element) ||
CAN_GROW(element) ||
MAYBE_DONT_COLLIDE_WITH(element) ||
element == EL_BD_ROCK ||
element == EL_BD_MEGA_ROCK ||
- element == EL_BD_SWEET)
+ element == EL_BD_SWEET ||
+ element == EL_BD_VOODOO_DOLL ||
+ element == EL_BD_WATER)
{
return TRUE;
}
int xpos = ED_ELEMENT_SETTINGS_X(0);
int ypos = ED_ELEMENT_SETTINGS_Y(0) + ED_GADGET_SMALL_DISTANCE;
- PrintInfoText("No configuration options available.",
- FONT_TEXT_1, xpos, ypos);
+ PrintInfoText("No configuration options available.", FONT_TEXT_1, xpos, ypos);
return;
}
// check if there are elements where a value can be chosen for
for (i = 0; elements_with_counter[i].element != -1; i++)
{
- if (elements_with_counter[i].element == properties_element)
- {
- // special case: score for extra diamonds only available in BD game engine
- if (elements_with_counter[i].element == EL_BD_DIAMOND &&
- elements_with_counter[i].value == &level.score[SC_DIAMOND_EXTRA] &&
- level.game_engine_type != GAME_ENGINE_TYPE_BD)
- continue;
-
- // special case: some amoeba counters only available in BD game engine
- if (elements_with_counter[i].element == EL_BD_AMOEBA &&
- elements_with_counter[i].value != &level.amoeba_speed &&
- level.game_engine_type != GAME_ENGINE_TYPE_BD)
- continue;
-
- // special case: some amoeba counters only available in R'n'D game engine
- if (elements_with_counter[i].element == EL_BD_AMOEBA &&
- elements_with_counter[i].value == &level.amoeba_speed &&
- level.game_engine_type == GAME_ENGINE_TYPE_BD)
- continue;
-
- int counter_id = ED_COUNTER_ID_ELEMENT_VALUE1 + num_element_counters;
-
- counterbutton_info[counter_id].y =
- ED_ELEMENT_SETTINGS_YPOS(
- (HAS_EDITOR_CONTENT(properties_element) ? 1 : 0) +
- (CAN_GROW(properties_element) ? 1 : 0) +
- (COULD_MOVE_INTO_ACID(properties_element) ? 1 : 0) +
- (MAYBE_DONT_COLLIDE_WITH(properties_element) ? 1 : 0) +
- (properties_element == EL_EMC_MAGIC_BALL ? 2 : 0) +
- num_element_counters);
-
- // special case: set amoeba counters for BD game engine separately
- if ((properties_element == EL_BD_AMOEBA && level.game_engine_type == GAME_ENGINE_TYPE_BD) ||
- (properties_element == EL_BD_AMOEBA_2))
- counterbutton_info[counter_id].y =
- ED_ELEMENT_SETTINGS_YPOS(3 + num_element_counters);
+ if (elements_with_counter[i].element != properties_element)
+ continue;
- counterbutton_info[counter_id].value = elements_with_counter[i].value;
- counterbutton_info[counter_id].text_right = elements_with_counter[i].text;
+ // special case: score for extra diamonds only available in BD game engine
+ if (elements_with_counter[i].element == EL_BD_DIAMOND &&
+ elements_with_counter[i].value == &level.score[SC_DIAMOND_EXTRA] &&
+ level.game_engine_type != GAME_ENGINE_TYPE_BD)
+ continue;
- if (properties_element == EL_GAME_OF_LIFE ||
- properties_element == EL_BIOMAZE)
- {
- counterbutton_info[counter_id].min_value = 0; // min neighbours
- counterbutton_info[counter_id].max_value = 8; // max neighbours
- }
- else if (strEqual(elements_with_counter[i].text, TEXT_AMOEBA_SLOW_RATE) ||
- strEqual(elements_with_counter[i].text, TEXT_AMOEBA_FAST_RATE))
- {
- counterbutton_info[counter_id].min_value = 0; // min percent
- counterbutton_info[counter_id].max_value = 100; // max percent
- }
- else
- {
- // !!! CHANGE THIS FOR CERTAIN ELEMENTS !!!
- counterbutton_info[counter_id].min_value = MIN_SCORE;
- counterbutton_info[counter_id].max_value = MAX_SCORE;
- }
+ // special case: some amoeba counters only available in BD game engine
+ if (elements_with_counter[i].element == EL_BD_AMOEBA &&
+ elements_with_counter[i].value != &level.amoeba_speed &&
+ level.game_engine_type != GAME_ENGINE_TYPE_BD)
+ continue;
- MapCounterButtons(counter_id);
+ // special case: some amoeba counters only available in R'n'D game engine
+ if (elements_with_counter[i].element == EL_BD_AMOEBA &&
+ elements_with_counter[i].value == &level.amoeba_speed &&
+ level.game_engine_type == GAME_ENGINE_TYPE_BD)
+ continue;
- num_element_counters++;
- if (num_element_counters >= max_num_element_counters)
- break;
- }
+ int counter_id = ED_COUNTER_ID_ELEMENT_VALUE1 + num_element_counters;
+
+ counterbutton_info[counter_id].y =
+ ED_ELEMENT_SETTINGS_YPOS((HAS_EDITOR_CONTENT(properties_element) ? 1 : 0) +
+ (CAN_GROW(properties_element) ? 1 : 0) +
+ (COULD_MOVE_INTO_ACID(properties_element) ? 1 : 0) +
+ (MAYBE_DONT_COLLIDE_WITH(properties_element) ? 1 : 0) +
+ (properties_element == EL_BD_VOODOO_DOLL ? 4 : 0) +
+ (properties_element == EL_BD_SLIME ? 1 : 0) +
+ (properties_element == EL_BD_ACID ? 1 : 0) +
+ (properties_element == EL_BD_REPLICATOR ? 1 : 0) +
+ (properties_element == EL_EMC_MAGIC_BALL ? 2 : 0) +
+ num_element_counters);
+
+ // special case: set amoeba counters for BD game engine separately
+ if ((properties_element == EL_BD_AMOEBA && level.game_engine_type == GAME_ENGINE_TYPE_BD) ||
+ (properties_element == EL_BD_AMOEBA_2))
+ counterbutton_info[counter_id].y = ED_ELEMENT_SETTINGS_YPOS(3 + num_element_counters);
+
+ counterbutton_info[counter_id].value = elements_with_counter[i].value;
+ counterbutton_info[counter_id].text_right = elements_with_counter[i].text;
+ counterbutton_info[counter_id].min_value = elements_with_counter[i].min_value;
+ counterbutton_info[counter_id].max_value = elements_with_counter[i].max_value;
+
+ // default: counter values between 0 and 999
+ if (counterbutton_info[counter_id].max_value == 0)
+ counterbutton_info[counter_id].max_value = 999;
+
+ MapCounterButtons(counter_id);
+
+ num_element_counters++;
+ if (num_element_counters >= max_num_element_counters)
+ break;
}
if (HAS_EDITOR_CONTENT(properties_element))
}
else if (IS_AMOEBOID(properties_element))
MapDrawingArea(ED_DRAWING_ID_AMOEBA_CONTENT);
+ else if (properties_element == EL_BD_ACID)
+ {
+ MapDrawingArea(ED_DRAWING_ID_BD_ACID_EATS_ELEMENT);
+ MapDrawingArea(ED_DRAWING_ID_BD_ACID_TURNS_TO_ELEMENT);
+ }
+ else if (IS_BD_BITER(properties_element))
+ {
+ MapDrawingArea(ED_DRAWING_ID_BD_BITER_EATS_ELEMENT);
+ }
+ else if (properties_element == EL_BD_BLADDER)
+ {
+ MapDrawingArea(ED_DRAWING_ID_BD_BLADDER_CONVERTS_BY_ELEMENT);
+ }
else if (properties_element == EL_YAMYAM ||
properties_element == EL_YAMYAM_LEFT ||
properties_element == EL_YAMYAM_RIGHT ||
// draw counter gadgets
MapCounterButtons(ED_COUNTER_ID_BD_PUSHING_PROB);
MapCounterButtons(ED_COUNTER_ID_BD_PUSHING_PROB_WITH_SWEET);
+
+ // draw drawing area gadgets
+ MapDrawingArea(ED_DRAWING_ID_BD_SNAP_ELEMENT);
}
if (properties_element == EL_BD_ROCK && level.game_engine_type == GAME_ENGINE_TYPE_BD)
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_PUSH_MEGA_ROCK_WITH_SWEET);
}
+ if (properties_element == EL_BD_VOODOO_DOLL)
+ {
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_VOODOO_COLLECTS_DIAMONDS);
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_VOODOO_HURT_KILLS_PLAYER);
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_VOODOO_DIES_BY_ROCK);
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_VOODOO_VANISH_BY_EXPLOSION);
+ }
+
+ if (properties_element == EL_BD_SLIME)
+ {
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_SLIME_IS_PREDICTABLE);
+ }
+
if (properties_element == EL_BD_MAGIC_WALL)
{
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_MAGIC_WALL_WAIT_HATCHING);
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_MAGIC_WALL_STOPS_AMOEBA);
}
+ if (IS_BD_EXPANDABLE_WALL(properties_element))
+ {
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_CHANGE_EXPANDING_WALL);
+ }
+
+ if (properties_element == EL_BD_REPLICATOR)
+ {
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_REPLICATORS_ACTIVE);
+ }
+
+ if (IS_BD_CONVEYOR_BELT(properties_element) ||
+ IS_BD_CONVEYOR_BELT_SWITCH(properties_element))
+ {
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_CONVEYOR_BELTS_ACTIVE);
+ 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);