+static struct ValueTextInfo options_walk_to_action[] =
+{
+ { EP_DIGGABLE, "diggable" },
+ { EP_COLLECTIBLE, "collectible" },
+ { EP_PUSHABLE, "pushable" },
+ { -1, NULL }
+};
+static int value_walk_to_action = 0;
+
+static struct ValueTextInfo options_move_pattern[] =
+{
+ { MV_LEFT, "left" },
+ { MV_RIGHT, "right" },
+ { MV_UP, "up" },
+ { MV_DOWN, "down" },
+ { MV_HORIZONTAL, "horizontal" },
+ { MV_VERTICAL, "vertical" },
+ { MV_ALL_DIRECTIONS, "all directions" },
+ { MV_TOWARDS_PLAYER, "towards player" },
+ { MV_AWAY_FROM_PLAYER, "away from player" },
+ { MV_ALONG_LEFT_SIDE, "along left side" },
+ { MV_ALONG_RIGHT_SIDE, "along right side" },
+ { -1, NULL }
+};
+
+static struct ValueTextInfo options_move_direction[] =
+{
+ { MV_NO_MOVING, "automatic" },
+ { MV_LEFT, "left" },
+ { MV_RIGHT, "right" },
+ { MV_UP, "up" },
+ { MV_DOWN, "down" },
+ { -1, NULL }
+};
+
+static struct ValueTextInfo options_move_stepsize[] =
+{
+ { 1, "very slow" },
+ { 2, "slow" },
+ { 4, "normal" },
+ { 8, "fast" },
+ { 16, "very fast" },
+ { -1, NULL }
+};
+
+static struct ValueTextInfo options_consistency[] =
+{
+ { EP_CAN_EXPLODE, "can explode" },
+ { EP_INDESTRUCTIBLE, "indestructible" },
+ { -1, NULL }
+};
+static int value_consistency = 0;
+
+static struct ValueTextInfo options_deadliness[] =
+{
+ { EP_DONT_RUN_INTO, "running into" },
+ { EP_DONT_COLLIDE_WITH, "colliding with" },
+ { EP_DONT_TOUCH, "touching" },
+ { -1, NULL }
+};
+static int value_deadliness = 0;
+
+static struct ValueTextInfo options_smash_targets[] =
+{
+ { EP_CAN_SMASH_FRIENDS, "friends" },
+ { EP_CAN_SMASH_ENEMIES, "enemies" },
+ { EP_CAN_SMASH_EXPLOSIVES, "explosives" },
+ { -1, NULL }
+};
+static int value_smash_targets = 0;
+
+static struct ValueTextInfo options_walkable_layer[] =
+{
+ { EP_WALKABLE_OVER, "over" },
+ { EP_WALKABLE_INSIDE, "inside" },
+ { EP_WALKABLE_UNDER, "under" },
+ { -1, NULL }
+};
+static int value_walkable_layer = 0;
+
+static struct ValueTextInfo options_time_units[] =
+{
+ { 50, "seconds" },
+ { 1, "frames" },
+ { -1, NULL }
+};
+
+static struct ValueTextInfo options_change_player_action[] =
+{
+ { CE_PRESSED_BY_PLAYER, "pressed" },
+ { CE_TOUCHED_BY_PLAYER, "touched" },
+ { -1, NULL }
+};
+static int value_change_player_action = 0;
+
+static struct ValueTextInfo options_change_cause[] =
+{
+ { 1, "specified delay" },
+ { 2, "impact (active)" },
+ { 3, "impact (passive)" },
+ { 4, "touched by player" },
+ { 5, "pressed by player" },
+ { -1, NULL }
+};
+static int value_change_cause = 0;
+
+static struct
+{
+ int x, y;
+ int gadget_id;
+ int size; /* char size of selectbox or '-1' (dynamically determined) */
+ struct ValueTextInfo *options;
+ int *value;
+ char *text_left, *text_right, *infotext;
+} selectbox_info[ED_NUM_SELECTBOX] =
+{
+ {
+ ED_SETTINGS_XPOS(1), ED_SETTINGS_YPOS(4),
+ GADGET_ID_CUSTOM_WALK_TO_ACTION,
+ -1,
+ options_walk_to_action,
+ &value_walk_to_action,
+ NULL, NULL, "diggable/collectible/pushable"
+ },
+ {
+ ED_SETTINGS_XPOS(1), ED_SETTINGS_YPOS(2),
+ GADGET_ID_CUSTOM_CONSISTENCY,
+ -1,
+ options_consistency,
+ &value_consistency,
+ NULL, "explodes to:", "consistency/destructibility"
+ },
+ {
+ ED_SETTINGS_XPOS(1), ED_SETTINGS_YPOS(1),
+ GADGET_ID_CUSTOM_DEADLINESS,
+ -1,
+ options_deadliness,
+ &value_deadliness,
+ "deadly when", NULL, "deadliness of element"
+ },
+ {
+ ED_SETTINGS_XPOS(1), ED_SETTINGS_YPOS(6),
+ GADGET_ID_CUSTOM_MOVE_PATTERN,
+ -1,
+ options_move_pattern,
+ &custom_element.move_pattern,
+ "can move", NULL, "element move direction"
+ },
+ {
+ ED_SETTINGS_XPOS(1), ED_SETTINGS_YPOS(7),
+ GADGET_ID_CUSTOM_MOVE_DIRECTION,
+ -1,
+ options_move_direction,
+ &custom_element.move_direction_initial,
+ "starts moving", NULL, "initial element move direction"
+ },
+ {
+ ED_SETTINGS_XPOS(1), ED_SETTINGS_YPOS(9),
+ GADGET_ID_CUSTOM_MOVE_STEPSIZE,
+ -1,
+ options_move_stepsize,
+ &custom_element.move_stepsize,
+ "move speed", NULL, "speed of element movement"
+ },
+ {
+ ED_SETTINGS_XPOS(7), ED_SETTINGS_YPOS(10),
+ GADGET_ID_CUSTOM_SMASH_TARGETS,
+ -1,
+ options_smash_targets,
+ &value_smash_targets,
+ "can smash", NULL, "elements that can be smashed"
+ },
+ {
+ ED_SETTINGS_XPOS(1), ED_SETTINGS_YPOS(12),
+ GADGET_ID_CUSTOM_WALKABLE_LAYER,
+ -1,
+ options_walkable_layer,
+ &value_walkable_layer,
+ "player can walk", NULL, "layer where player can walk"
+ },
+ {
+ ED_SETTINGS_XPOS(2), ED_SETTINGS_YPOS(4),
+ GADGET_ID_CHANGE_TIME_UNITS,
+ -1,
+ options_time_units,
+ &custom_element.change.delay_frames,
+ "delay time given in", NULL, "delay time units for change"
+ },
+ {
+ ED_SETTINGS_XPOS(2), ED_SETTINGS_YPOS(5),
+ GADGET_ID_CHANGE_PLAYER_ACTION,
+ -1,
+ options_change_player_action,
+ &value_change_player_action,
+ NULL, "by player", "type of player contact"
+ },
+ {
+ ED_SETTINGS_XPOS(0), ED_SETTINGS_YPOS(10),
+ GADGET_ID_CHANGE_CAUSE,
+ -1,
+ options_change_cause,
+ &value_change_cause,
+ "test:", NULL, "test-selectbox entry"
+ },
+};
+