#define GADGET_ID_TIME_OR_STEPS (GADGET_ID_SELECTBOX_FIRST + 0)
#define GADGET_ID_GAME_ENGINE_TYPE (GADGET_ID_SELECTBOX_FIRST + 1)
#define GADGET_ID_WIND_DIRECTION (GADGET_ID_SELECTBOX_FIRST + 2)
-#define GADGET_ID_CUSTOM_WALK_TO_ACTION (GADGET_ID_SELECTBOX_FIRST + 3)
-#define GADGET_ID_CUSTOM_EXPLOSION_TYPE (GADGET_ID_SELECTBOX_FIRST + 4)
-#define GADGET_ID_CUSTOM_DEADLINESS (GADGET_ID_SELECTBOX_FIRST + 5)
-#define GADGET_ID_CUSTOM_MOVE_PATTERN (GADGET_ID_SELECTBOX_FIRST + 6)
-#define GADGET_ID_CUSTOM_MOVE_DIRECTION (GADGET_ID_SELECTBOX_FIRST + 7)
-#define GADGET_ID_CUSTOM_MOVE_STEPSIZE (GADGET_ID_SELECTBOX_FIRST + 8)
-#define GADGET_ID_CUSTOM_MOVE_LEAVE_TYPE (GADGET_ID_SELECTBOX_FIRST + 9)
-#define GADGET_ID_CUSTOM_SMASH_TARGETS (GADGET_ID_SELECTBOX_FIRST + 10)
-#define GADGET_ID_CUSTOM_SLIPPERY_TYPE (GADGET_ID_SELECTBOX_FIRST + 11)
-#define GADGET_ID_CUSTOM_ACCESS_TYPE (GADGET_ID_SELECTBOX_FIRST + 12)
-#define GADGET_ID_CUSTOM_ACCESS_LAYER (GADGET_ID_SELECTBOX_FIRST + 13)
-#define GADGET_ID_CUSTOM_ACCESS_PROTECTED (GADGET_ID_SELECTBOX_FIRST + 14)
-#define GADGET_ID_CUSTOM_ACCESS_DIRECTION (GADGET_ID_SELECTBOX_FIRST + 15)
-#define GADGET_ID_CHANGE_TIME_UNITS (GADGET_ID_SELECTBOX_FIRST + 16)
-#define GADGET_ID_CHANGE_DIRECT_ACTION (GADGET_ID_SELECTBOX_FIRST + 17)
-#define GADGET_ID_CHANGE_OTHER_ACTION (GADGET_ID_SELECTBOX_FIRST + 18)
-#define GADGET_ID_CHANGE_SIDE (GADGET_ID_SELECTBOX_FIRST + 19)
-#define GADGET_ID_CHANGE_PLAYER (GADGET_ID_SELECTBOX_FIRST + 20)
-#define GADGET_ID_CHANGE_PAGE (GADGET_ID_SELECTBOX_FIRST + 21)
-#define GADGET_ID_CHANGE_REPLACE_WHEN (GADGET_ID_SELECTBOX_FIRST + 22)
-#define GADGET_ID_ACTION_TYPE (GADGET_ID_SELECTBOX_FIRST + 23)
-#define GADGET_ID_ACTION_MODE (GADGET_ID_SELECTBOX_FIRST + 24)
-#define GADGET_ID_ACTION_ARG (GADGET_ID_SELECTBOX_FIRST + 25)
-#define GADGET_ID_SELECT_CHANGE_PAGE (GADGET_ID_SELECTBOX_FIRST + 26)
-#define GADGET_ID_GROUP_CHOICE_MODE (GADGET_ID_SELECTBOX_FIRST + 27)
+#define GADGET_ID_PLAYER_SPEED (GADGET_ID_SELECTBOX_FIRST + 3)
+#define GADGET_ID_CUSTOM_WALK_TO_ACTION (GADGET_ID_SELECTBOX_FIRST + 4)
+#define GADGET_ID_CUSTOM_EXPLOSION_TYPE (GADGET_ID_SELECTBOX_FIRST + 5)
+#define GADGET_ID_CUSTOM_DEADLINESS (GADGET_ID_SELECTBOX_FIRST + 6)
+#define GADGET_ID_CUSTOM_MOVE_PATTERN (GADGET_ID_SELECTBOX_FIRST + 7)
+#define GADGET_ID_CUSTOM_MOVE_DIRECTION (GADGET_ID_SELECTBOX_FIRST + 8)
+#define GADGET_ID_CUSTOM_MOVE_STEPSIZE (GADGET_ID_SELECTBOX_FIRST + 9)
+#define GADGET_ID_CUSTOM_MOVE_LEAVE_TYPE (GADGET_ID_SELECTBOX_FIRST + 10)
+#define GADGET_ID_CUSTOM_SMASH_TARGETS (GADGET_ID_SELECTBOX_FIRST + 11)
+#define GADGET_ID_CUSTOM_SLIPPERY_TYPE (GADGET_ID_SELECTBOX_FIRST + 12)
+#define GADGET_ID_CUSTOM_ACCESS_TYPE (GADGET_ID_SELECTBOX_FIRST + 13)
+#define GADGET_ID_CUSTOM_ACCESS_LAYER (GADGET_ID_SELECTBOX_FIRST + 14)
+#define GADGET_ID_CUSTOM_ACCESS_PROTECTED (GADGET_ID_SELECTBOX_FIRST + 15)
+#define GADGET_ID_CUSTOM_ACCESS_DIRECTION (GADGET_ID_SELECTBOX_FIRST + 16)
+#define GADGET_ID_CHANGE_TIME_UNITS (GADGET_ID_SELECTBOX_FIRST + 17)
+#define GADGET_ID_CHANGE_DIRECT_ACTION (GADGET_ID_SELECTBOX_FIRST + 18)
+#define GADGET_ID_CHANGE_OTHER_ACTION (GADGET_ID_SELECTBOX_FIRST + 19)
+#define GADGET_ID_CHANGE_SIDE (GADGET_ID_SELECTBOX_FIRST + 20)
+#define GADGET_ID_CHANGE_PLAYER (GADGET_ID_SELECTBOX_FIRST + 21)
+#define GADGET_ID_CHANGE_PAGE (GADGET_ID_SELECTBOX_FIRST + 22)
+#define GADGET_ID_CHANGE_REPLACE_WHEN (GADGET_ID_SELECTBOX_FIRST + 23)
+#define GADGET_ID_ACTION_TYPE (GADGET_ID_SELECTBOX_FIRST + 24)
+#define GADGET_ID_ACTION_MODE (GADGET_ID_SELECTBOX_FIRST + 25)
+#define GADGET_ID_ACTION_ARG (GADGET_ID_SELECTBOX_FIRST + 26)
+#define GADGET_ID_SELECT_CHANGE_PAGE (GADGET_ID_SELECTBOX_FIRST + 27)
+#define GADGET_ID_GROUP_CHOICE_MODE (GADGET_ID_SELECTBOX_FIRST + 28)
/* textbutton identifiers */
-#define GADGET_ID_TEXTBUTTON_FIRST (GADGET_ID_SELECTBOX_FIRST + 28)
+#define GADGET_ID_TEXTBUTTON_FIRST (GADGET_ID_SELECTBOX_FIRST + 29)
#define GADGET_ID_PROPERTIES_INFO (GADGET_ID_TEXTBUTTON_FIRST + 0)
#define GADGET_ID_PROPERTIES_CONFIG (GADGET_ID_TEXTBUTTON_FIRST + 1)
#define GADGET_ID_RANDOM_BALL_CONTENT (GADGET_ID_CHECKBUTTON_FIRST + 8)
#define GADGET_ID_INITIAL_BALL_STATE (GADGET_ID_CHECKBUTTON_FIRST + 9)
#define GADGET_ID_GROW_INTO_DIGGABLE (GADGET_ID_CHECKBUTTON_FIRST + 10)
-#define GADGET_ID_DOUBLE_SPEED (GADGET_ID_CHECKBUTTON_FIRST + 11)
+#define GADGET_ID_CONTINUOUS_SNAPPING (GADGET_ID_CHECKBUTTON_FIRST + 11)
#define GADGET_ID_BLOCK_SNAP_FIELD (GADGET_ID_CHECKBUTTON_FIRST + 12)
#define GADGET_ID_BLOCK_LAST_FIELD (GADGET_ID_CHECKBUTTON_FIRST + 13)
#define GADGET_ID_SP_BLOCK_LAST_FIELD (GADGET_ID_CHECKBUTTON_FIRST + 14)
#define ED_SELECTBOX_ID_TIME_OR_STEPS 0
#define ED_SELECTBOX_ID_GAME_ENGINE_TYPE 1
#define ED_SELECTBOX_ID_WIND_DIRECTION 2
-#define ED_SELECTBOX_ID_CUSTOM_ACCESS_TYPE 3
-#define ED_SELECTBOX_ID_CUSTOM_ACCESS_LAYER 4
-#define ED_SELECTBOX_ID_CUSTOM_ACCESS_PROTECTED 5
-#define ED_SELECTBOX_ID_CUSTOM_ACCESS_DIRECTION 6
-#define ED_SELECTBOX_ID_CUSTOM_WALK_TO_ACTION 7
-#define ED_SELECTBOX_ID_CUSTOM_MOVE_PATTERN 8
-#define ED_SELECTBOX_ID_CUSTOM_MOVE_DIRECTION 9
-#define ED_SELECTBOX_ID_CUSTOM_MOVE_STEPSIZE 10
-#define ED_SELECTBOX_ID_CUSTOM_MOVE_LEAVE_TYPE 11
-#define ED_SELECTBOX_ID_CUSTOM_SMASH_TARGETS 12
-#define ED_SELECTBOX_ID_CUSTOM_SLIPPERY_TYPE 13
-#define ED_SELECTBOX_ID_CUSTOM_DEADLINESS 14
-#define ED_SELECTBOX_ID_CUSTOM_EXPLOSION_TYPE 15
-#define ED_SELECTBOX_ID_CHANGE_TIME_UNITS 16
-#define ED_SELECTBOX_ID_CHANGE_DIRECT_ACTION 17
-#define ED_SELECTBOX_ID_CHANGE_OTHER_ACTION 18
-#define ED_SELECTBOX_ID_CHANGE_SIDE 19
-#define ED_SELECTBOX_ID_CHANGE_PLAYER 20
-#define ED_SELECTBOX_ID_CHANGE_PAGE 21
-#define ED_SELECTBOX_ID_CHANGE_REPLACE_WHEN 22
-#define ED_SELECTBOX_ID_ACTION_TYPE 23
-#define ED_SELECTBOX_ID_ACTION_MODE 24
-#define ED_SELECTBOX_ID_ACTION_ARG 25
-#define ED_SELECTBOX_ID_SELECT_CHANGE_PAGE 26
-#define ED_SELECTBOX_ID_GROUP_CHOICE_MODE 27
-
-#define ED_NUM_SELECTBOX 28
+#define ED_SELECTBOX_ID_PLAYER_SPEED 3
+#define ED_SELECTBOX_ID_CUSTOM_ACCESS_TYPE 4
+#define ED_SELECTBOX_ID_CUSTOM_ACCESS_LAYER 5
+#define ED_SELECTBOX_ID_CUSTOM_ACCESS_PROTECTED 6
+#define ED_SELECTBOX_ID_CUSTOM_ACCESS_DIRECTION 7
+#define ED_SELECTBOX_ID_CUSTOM_WALK_TO_ACTION 8
+#define ED_SELECTBOX_ID_CUSTOM_MOVE_PATTERN 9
+#define ED_SELECTBOX_ID_CUSTOM_MOVE_DIRECTION 10
+#define ED_SELECTBOX_ID_CUSTOM_MOVE_STEPSIZE 11
+#define ED_SELECTBOX_ID_CUSTOM_MOVE_LEAVE_TYPE 12
+#define ED_SELECTBOX_ID_CUSTOM_SMASH_TARGETS 13
+#define ED_SELECTBOX_ID_CUSTOM_SLIPPERY_TYPE 14
+#define ED_SELECTBOX_ID_CUSTOM_DEADLINESS 15
+#define ED_SELECTBOX_ID_CUSTOM_EXPLOSION_TYPE 16
+#define ED_SELECTBOX_ID_CHANGE_TIME_UNITS 17
+#define ED_SELECTBOX_ID_CHANGE_DIRECT_ACTION 18
+#define ED_SELECTBOX_ID_CHANGE_OTHER_ACTION 19
+#define ED_SELECTBOX_ID_CHANGE_SIDE 20
+#define ED_SELECTBOX_ID_CHANGE_PLAYER 21
+#define ED_SELECTBOX_ID_CHANGE_PAGE 22
+#define ED_SELECTBOX_ID_CHANGE_REPLACE_WHEN 23
+#define ED_SELECTBOX_ID_ACTION_TYPE 24
+#define ED_SELECTBOX_ID_ACTION_MODE 25
+#define ED_SELECTBOX_ID_ACTION_ARG 26
+#define ED_SELECTBOX_ID_SELECT_CHANGE_PAGE 27
+#define ED_SELECTBOX_ID_GROUP_CHOICE_MODE 28
+
+#define ED_NUM_SELECTBOX 29
#define ED_SELECTBOX_ID_LEVEL_FIRST ED_SELECTBOX_ID_TIME_OR_STEPS
#define ED_SELECTBOX_ID_LEVEL_LAST ED_SELECTBOX_ID_WIND_DIRECTION
#define ED_CHECKBUTTON_ID_RANDOM_BALL_CONTENT 6
#define ED_CHECKBUTTON_ID_INITIAL_BALL_STATE 7
#define ED_CHECKBUTTON_ID_GROW_INTO_DIGGABLE 8
-#define ED_CHECKBUTTON_ID_DOUBLE_SPEED 9
+#define ED_CHECKBUTTON_ID_CONTINUOUS_SNAPPING 9
#define ED_CHECKBUTTON_ID_BLOCK_SNAP_FIELD 10
#define ED_CHECKBUTTON_ID_BLOCK_LAST_FIELD 11
#define ED_CHECKBUTTON_ID_SP_BLOCK_LAST_FIELD 12
{ -1, NULL }
};
+static struct ValueTextInfo options_player_speed[] =
+{
+ { 0, "frozen" },
+ { 1, "very slow" },
+ { 2, "slow" },
+ { 4, "normal" },
+ { 8, "fast" },
+ { 16, "very fast" },
+ { 32, "ultrafast" },
+
+ { -1, NULL }
+};
+
static struct ValueTextInfo options_access_type[] =
{
{ EP_WALKABLE, "walkable" },
{ CE_IMPACT, "impact (on something)" },
{ CE_SMASHED, "smashed (from above)" },
{ CE_VALUE_GETS_ZERO, "CE value gets 0" },
+ { CE_SCORE_GETS_ZERO, "CE score gets 0" },
{ -1, NULL }
};
{ CE_MOVE_OF_X, "move of" },
{ CE_CREATION_OF_X, "creation of" },
{ CE_VALUE_GETS_ZERO_OF_X, "CE value gets 0 of" },
+ { CE_SCORE_GETS_ZERO_OF_X, "CE score gets 0 of" },
{ -1, NULL }
};
{ CA_ARG_NUMBER_LEVEL_GEMS, "gems" },
{ CA_ARG_NUMBER_LEVEL_SCORE, "score" },
{ CA_ARG_UNDEFINED, " " },
- { CA_ARG_ELEMENT_HEADLINE, "[CE value" },
- { CA_ARG_ELEMENT_HEADLINE, " of" },
- { CA_ARG_ELEMENT_HEADLINE, " element]" },
- { CA_ARG_ELEMENT_TARGET, "target" },
- { CA_ARG_ELEMENT_TRIGGER, "trigger" },
+ { CA_ARG_ELEMENT_CV_HEADLINE, "[CE value]" },
+ { CA_ARG_ELEMENT_CV_TARGET, "target" },
+ { CA_ARG_ELEMENT_CV_TRIGGER, "trigger" },
+ { CA_ARG_UNDEFINED, " " },
+ { CA_ARG_ELEMENT_CS_HEADLINE, "[CE score]" },
+ { CA_ARG_ELEMENT_CS_TARGET, "target" },
+ { CA_ARG_ELEMENT_CS_TRIGGER, "trigger" },
+
+ { -1, NULL }
+};
+
+static struct ValueTextInfo options_action_arg_value[] =
+{
+ { CA_ARG_NUMBER_HEADLINE, "[number]" },
+ { CA_ARG_0, "0" },
+ { CA_ARG_1, "1" },
+ { CA_ARG_2, "2" },
+ { CA_ARG_3, "3" },
+ { CA_ARG_4, "4" },
+ { CA_ARG_5, "5" },
+ { CA_ARG_10, "10" },
+ { CA_ARG_100, "100" },
+ { CA_ARG_1000, "1000" },
+ { CA_ARG_UNDEFINED, " " },
+ { CA_ARG_NUMBER_MIN, "min" },
+ { CA_ARG_NUMBER_MAX, "max" },
+ { CA_ARG_UNDEFINED, " " },
+ { CA_ARG_NUMBER_RESET, "reset" },
+ { CA_ARG_UNDEFINED, " " },
+ { CA_ARG_NUMBER_CE_DELAY, "CE delay" },
+ { CA_ARG_NUMBER_CE_SCORE, "CE score" },
+ { CA_ARG_NUMBER_CE_VALUE, "CE value" },
+ { CA_ARG_UNDEFINED, " " },
+ { CA_ARG_NUMBER_LEVEL_TIME, "time" },
+ { CA_ARG_NUMBER_LEVEL_GEMS, "gems" },
+ { CA_ARG_NUMBER_LEVEL_SCORE, "score" },
+ { CA_ARG_UNDEFINED, " " },
+ { CA_ARG_ELEMENT_CV_HEADLINE, "[CE value]" },
+ { CA_ARG_ELEMENT_CV_TARGET, "target" },
+ { CA_ARG_ELEMENT_CV_TRIGGER, "trigger" },
+ { CA_ARG_UNDEFINED, " " },
+ { CA_ARG_ELEMENT_CS_HEADLINE, "[CE score]" },
+ { CA_ARG_ELEMENT_CS_TARGET, "target" },
+ { CA_ARG_ELEMENT_CS_TRIGGER, "trigger" },
+ { CA_ARG_UNDEFINED, " " },
+ { CA_ARG_ELEMENT_NR_HEADLINE, "[element]" },
+ { CA_ARG_ELEMENT_NR_TARGET, "target" },
+ { CA_ARG_ELEMENT_NR_TRIGGER, "trigger" },
{ -1, NULL }
};
{ CA_SET_PLAYER_SPEED, 1, options_action_arg_speed, },
{ CA_SET_PLAYER_SHIELD, 1, options_action_arg_shield, },
{ CA_SET_PLAYER_ARTWORK, 1, options_action_arg_artwork, },
- { CA_SET_CE_SCORE, 3, options_action_arg_number, },
- { CA_SET_CE_VALUE, 3, options_action_arg_number, },
+ { CA_SET_CE_SCORE, 3, options_action_arg_value, },
+ { CA_SET_CE_VALUE, 3, options_action_arg_value, },
{ CA_SET_ENGINE_SCAN_MODE, 1, options_action_arg_scan_mode, },
{ -1, FALSE, NULL }
/* ---------- element settings: configure (several elements) ------------- */
+ {
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(5),
+ GADGET_ID_PLAYER_SPEED, GADGET_ID_NONE,
+ -1,
+ options_player_speed,
+ &level.initial_player_stepsize,
+ "initial player speed:", NULL, "initial player speed"
+ },
+
/* ---------- element settings: configure 1 (custom elements) ------------ */
{
"slip down from certain flat walls","use EM style slipping behaviour"
},
{
- ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(1),
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(2),
GADGET_ID_USE_SPRING_BUG, GADGET_ID_NONE,
&level.use_spring_bug,
NULL,
"can grow into anything diggable", "grow into more than just sand"
},
{
- ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(5),
- GADGET_ID_DOUBLE_SPEED, GADGET_ID_NONE,
- &level.double_speed,
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(7),
+ GADGET_ID_CONTINUOUS_SNAPPING, GADGET_ID_NONE,
+ &level.continuous_snapping,
NULL,
- "double speed movement", "set initial movement speed of player"
+ "continuos snapping", "use snapping without releasing key"
},
{
ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(6),
"no scrolling when relocating", "player gets relocated without delay"
},
{
- ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(7),
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(8),
GADGET_ID_USE_START_ELEMENT, GADGET_ID_NONE,
&level.use_start_element[0],
NULL,
"use level start element:", "start level at this element's position"
},
{
- ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(8),
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(9),
GADGET_ID_USE_ARTWORK_ELEMENT, GADGET_ID_NONE,
&level.use_artwork_element[0],
NULL,
"use artwork from element:", "use player artwork from other element"
},
{
- ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(9),
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(10),
GADGET_ID_USE_EXPLOSION_ELEMENT, GADGET_ID_NONE,
&level.use_explosion_element[0],
NULL,
/* ---------- level start element ---------------------------------------- */
{
- -1, ED_AREA_1X1_SETTINGS_YPOS(7),
+ -1, ED_AREA_1X1_SETTINGS_YPOS(8),
GADGET_ID_START_ELEMENT, GADGET_ID_USE_START_ELEMENT,
&level.start_element[0], 1, 1,
NULL, NULL, NULL, "level start element"
/* ---------- player artwork element ------------------------------------- */
{
- -1, ED_AREA_1X1_SETTINGS_YPOS(8),
+ -1, ED_AREA_1X1_SETTINGS_YPOS(9),
GADGET_ID_ARTWORK_ELEMENT, GADGET_ID_USE_ARTWORK_ELEMENT,
&level.artwork_element[0], 1, 1,
NULL, NULL, NULL, "element for player artwork"
/* ---------- player explosion element ----------------------------------- */
{
- -1, ED_AREA_1X1_SETTINGS_YPOS(9),
+ -1, ED_AREA_1X1_SETTINGS_YPOS(10),
GADGET_ID_EXPLOSION_ELEMENT, GADGET_ID_USE_EXPLOSION_ELEMENT,
&level.explosion_element[0], 1, 1,
NULL, NULL, NULL, "element for player explosion"
EL_SPRING,
EL_EMC_SPRING_BUMPER,
-#if 0
EL_EMC_DRIPPER,
-#else
- EL_EMPTY,
-#endif
EL_EMC_FAKE_GRASS,
EL_EMPTY,
EL_EMPTY,
+
+ EL_EM_DYNAMITE,
+ EL_EM_DYNAMITE_ACTIVE,
+ EL_EMPTY,
+ EL_EMPTY,
+
+ EL_YAMYAM_LEFT,
+ EL_YAMYAM_RIGHT,
+ EL_YAMYAM_UP,
+ EL_YAMYAM_DOWN,
};
static int *editor_hl_emerald_mine_club_ptr = editor_hl_emerald_mine_club;
static int *editor_el_emerald_mine_club_ptr = editor_el_emerald_mine_club;
EL_CUSTOM_START + 254,
EL_CUSTOM_START + 255,
- EL_TRIGGER_ELEMENT,
EL_TRIGGER_PLAYER,
+ EL_TRIGGER_ELEMENT,
+ EL_TRIGGER_CE_VALUE,
+ EL_TRIGGER_CE_SCORE,
+
EL_EMPTY,
- EL_EMPTY
+ EL_EMPTY,
+ EL_CURRENT_CE_VALUE,
+ EL_CURRENT_CE_SCORE
};
static int *editor_hl_custom_ptr = editor_hl_custom;
static int *editor_el_custom_ptr = editor_el_custom;
if (element >= NUM_FILE_ELEMENTS)
Error(ERR_WARN, "editor element %d is runtime element", element);
- if (strcmp(getElementInfoText(element), INFOTEXT_UNKNOWN_ELEMENT) == 0)
+ if (strEqual(getElementInfoText(element), INFOTEXT_UNKNOWN_ELEMENT))
Error(ERR_WARN, "no element description for element %d", element);
}
}
ei_to->description[i] = ei_from->description[i];
/* ---------- copy element base properties ---------- */
+#if 1
+ ei_to->properties[EP_BITFIELD_BASE] = ei_from->properties[EP_BITFIELD_BASE];
+#else
Properties[element_to][EP_BITFIELD_BASE] =
Properties[element_from][EP_BITFIELD_BASE];
+#endif
/* ---------- copy custom property values ---------- */
HAS_CHANGE_EVENT(element, CE_IMPACT) ? CE_IMPACT :
HAS_CHANGE_EVENT(element, CE_SMASHED) ? CE_SMASHED :
HAS_CHANGE_EVENT(element, CE_VALUE_GETS_ZERO) ? CE_VALUE_GETS_ZERO :
+ HAS_CHANGE_EVENT(element, CE_SCORE_GETS_ZERO) ? CE_SCORE_GETS_ZERO :
custom_element_change.direct_action);
/* set "change by other element action" selectbox help value */
HAS_CHANGE_EVENT(element, CE_MOVE_OF_X) ? CE_MOVE_OF_X :
HAS_CHANGE_EVENT(element, CE_CREATION_OF_X) ? CE_CREATION_OF_X :
HAS_CHANGE_EVENT(element, CE_VALUE_GETS_ZERO_OF_X) ? CE_VALUE_GETS_ZERO_OF_X :
+ HAS_CHANGE_EVENT(element, CE_SCORE_GETS_ZERO_OF_X) ? CE_SCORE_GETS_ZERO_OF_X :
custom_element_change.other_action);
}
custom_element_change_events[CE_IMPACT] = FALSE;
custom_element_change_events[CE_SMASHED] = FALSE;
custom_element_change_events[CE_VALUE_GETS_ZERO] = FALSE;
+ custom_element_change_events[CE_SCORE_GETS_ZERO] = FALSE;
custom_element_change_events[custom_element_change.direct_action] =
custom_element_change_events[CE_BY_DIRECT_ACTION];
custom_element_change_events[CE_MOVE_OF_X] = FALSE;
custom_element_change_events[CE_CREATION_OF_X] = FALSE;
custom_element_change_events[CE_VALUE_GETS_ZERO_OF_X] = FALSE;
+ custom_element_change_events[CE_SCORE_GETS_ZERO_OF_X] = FALSE;
custom_element_change_events[custom_element_change.other_action] =
custom_element_change_events[CE_BY_OTHER_ACTION];
#define TEXT_COLLECTING "Score for collecting"
#define TEXT_SMASHING "Score for smashing"
-#define TEXT_SLURPING "Score for slurping"
+#define TEXT_SLURPING "Score for slurping robot"
#define TEXT_CRACKING "Score for cracking"
#define TEXT_AMOEBA_SPEED "Speed of amoeba growth"
#define TEXT_DURATION "Duration when activated"
{ EL_BD_FIREFLY_DOWN, &level.score[SC_SPACESHIP], TEXT_SMASHING },
{ EL_SP_SNIKSNAK, &level.score[SC_SPACESHIP], TEXT_SMASHING },
{ EL_YAMYAM, &level.score[SC_YAMYAM], TEXT_SMASHING },
+ { EL_YAMYAM_LEFT, &level.score[SC_YAMYAM], TEXT_SMASHING },
+ { EL_YAMYAM_RIGHT, &level.score[SC_YAMYAM], TEXT_SMASHING },
+ { EL_YAMYAM_UP, &level.score[SC_YAMYAM], TEXT_SMASHING },
+ { EL_YAMYAM_DOWN, &level.score[SC_YAMYAM], TEXT_SMASHING },
{ EL_DARK_YAMYAM, &level.score[SC_YAMYAM], TEXT_SMASHING },
{ EL_ROBOT, &level.score[SC_ROBOT], TEXT_SMASHING },
{ EL_PACMAN, &level.score[SC_PACMAN], TEXT_SMASHING },
{ EL_PACMAN_DOWN, &level.score[SC_PACMAN], TEXT_SMASHING },
{ EL_NUT, &level.score[SC_NUT], TEXT_CRACKING },
{ EL_DYNAMITE, &level.score[SC_DYNAMITE], TEXT_COLLECTING },
+ { EL_EM_DYNAMITE, &level.score[SC_DYNAMITE], TEXT_COLLECTING },
{ EL_DYNABOMB_INCREASE_NUMBER,&level.score[SC_DYNAMITE],TEXT_COLLECTING },
{ EL_DYNABOMB_INCREASE_SIZE, &level.score[SC_DYNAMITE],TEXT_COLLECTING },
{ EL_DYNABOMB_INCREASE_POWER, &level.score[SC_DYNAMITE],TEXT_COLLECTING },
{ EL_AMOEBA_DRY, &level.amoeba_speed, TEXT_AMOEBA_SPEED },
{ EL_AMOEBA_FULL, &level.amoeba_speed, TEXT_AMOEBA_SPEED },
{ EL_BD_AMOEBA, &level.amoeba_speed, TEXT_AMOEBA_SPEED },
+ { EL_EMC_DRIPPER, &level.amoeba_speed, TEXT_AMOEBA_SPEED },
{ EL_MAGIC_WALL, &level.time_magic_wall, TEXT_DURATION },
{ EL_BD_MAGIC_WALL, &level.time_magic_wall, TEXT_DURATION },
{ EL_ROBOT_WHEEL, &level.time_wheel, TEXT_DURATION },
{ EL_EMC_MAGIC_BALL, &level.ball_time, TEXT_BALL_DELAY },
{ EL_EMC_LENSES, &level.lenses_score, TEXT_COLLECTING },
{ EL_EMC_MAGNIFIER, &level.magnify_score, TEXT_COLLECTING },
- { EL_ROBOT, &level.slurp_score, TEXT_SLURPING },
+ { EL_SPRING, &level.slurp_score, TEXT_SLURPING },
{ EL_EMC_LENSES, &level.lenses_time, TEXT_DURATION },
{ EL_EMC_MAGNIFIER, &level.magnify_time, TEXT_DURATION },
#endif
if (IS_AMOEBOID(properties_element))
MapDrawingArea(ED_DRAWING_ID_AMOEBA_CONTENT);
- else if (properties_element == EL_YAMYAM)
+ else if (properties_element == EL_YAMYAM ||
+ properties_element == EL_YAMYAM_LEFT ||
+ properties_element == EL_YAMYAM_RIGHT ||
+ properties_element == EL_YAMYAM_UP ||
+ properties_element == EL_YAMYAM_DOWN)
DrawYamYamContentAreas();
else if (properties_element == EL_EMC_MAGIC_BALL)
{
ED_CHECKBUTTON_ID_SP_BLOCK_LAST_FIELD :
ED_CHECKBUTTON_ID_BLOCK_LAST_FIELD);
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BLOCK_SNAP_FIELD);
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_CONTINUOUS_SNAPPING);
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_INSTANT_RELOCATION);
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_USE_START_ELEMENT);
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_USE_ARTWORK_ELEMENT);
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_USE_EXPLOSION_ELEMENT);
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_CAN_PASS_TO_WALKABLE);
- MapCheckbuttonGadget(ED_CHECKBUTTON_ID_DOUBLE_SPEED);
MapDrawingArea(ED_DRAWING_ID_START_ELEMENT);
MapDrawingArea(ED_DRAWING_ID_ARTWORK_ELEMENT);
MapDrawingArea(ED_DRAWING_ID_EXPLOSION_ELEMENT);
+
+ MapSelectboxGadget(ED_SELECTBOX_ID_PLAYER_SPEED);
}
if (IS_GEM(properties_element))
button = MB_RIGHTBUTTON;
break;
+ case KSYM_Home:
+ case KSYM_End:
+ element_shift = (key == KSYM_Home ? 0 :
+ num_editor_elements - ED_NUM_ELEMENTLIST_BUTTONS);
+
+ ModifyGadget(level_editor_gadget[GADGET_ID_SCROLL_LIST_VERTICAL],
+ GDI_SCROLLBAR_ITEM_POSITION,
+ element_shift / ED_ELEMENTLIST_BUTTONS_HORIZ, GDI_END);
+
+ ModifyEditorElementList();
+
+ break;
+
+ case KSYM_Insert:
+ case KSYM_Delete:
+ for (i = 0; i < num_editor_elements; i++)
+ {
+ int e = editor_elements[i];
+
+ if ((key == KSYM_Insert &&
+ (e == EL_INTERNAL_CASCADE_CE ||
+ e == EL_INTERNAL_CASCADE_CE_ACTIVE)) ||
+ (key == KSYM_Delete &&
+ (e == EL_INTERNAL_CASCADE_GE ||
+ e == EL_INTERNAL_CASCADE_GE_ACTIVE)))
+ break;
+ }
+
+ if (i < num_editor_elements)
+ {
+ element_shift = i;
+
+ if (element_shift > num_editor_elements - ED_NUM_ELEMENTLIST_BUTTONS)
+ element_shift = num_editor_elements - ED_NUM_ELEMENTLIST_BUTTONS;
+
+ ModifyGadget(level_editor_gadget[GADGET_ID_SCROLL_LIST_VERTICAL],
+ GDI_SCROLLBAR_ITEM_POSITION,
+ element_shift / ED_ELEMENTLIST_BUTTONS_HORIZ, GDI_END);
+
+ ModifyEditorElementList();
+ }
+
+ break;
+
case KSYM_Escape:
if (edit_mode == ED_MODE_DRAWING)
{
- RequestExitLevelEditor(setup.ask_on_escape);
+ RequestExitLevelEditor(setup.ask_on_escape_editor);
}
else if (edit_mode == ED_MODE_INFO)
{