#define GADGET_ID_CUSTOM_GEMCOUNT_DOWN (GADGET_ID_COUNTER_FIRST + 45)
#define GADGET_ID_CUSTOM_GEMCOUNT_TEXT (GADGET_ID_COUNTER_FIRST + 46)
#define GADGET_ID_CUSTOM_GEMCOUNT_UP (GADGET_ID_COUNTER_FIRST + 47)
-#define GADGET_ID_PUSH_DELAY_FIX_DOWN (GADGET_ID_COUNTER_FIRST + 48)
-#define GADGET_ID_PUSH_DELAY_FIX_TEXT (GADGET_ID_COUNTER_FIRST + 49)
-#define GADGET_ID_PUSH_DELAY_FIX_UP (GADGET_ID_COUNTER_FIRST + 50)
-#define GADGET_ID_PUSH_DELAY_RND_DOWN (GADGET_ID_COUNTER_FIRST + 51)
-#define GADGET_ID_PUSH_DELAY_RND_TEXT (GADGET_ID_COUNTER_FIRST + 52)
-#define GADGET_ID_PUSH_DELAY_RND_UP (GADGET_ID_COUNTER_FIRST + 53)
-#define GADGET_ID_DROP_DELAY_FIX_DOWN (GADGET_ID_COUNTER_FIRST + 54)
-#define GADGET_ID_DROP_DELAY_FIX_TEXT (GADGET_ID_COUNTER_FIRST + 55)
-#define GADGET_ID_DROP_DELAY_FIX_UP (GADGET_ID_COUNTER_FIRST + 56)
-#define GADGET_ID_DROP_DELAY_RND_DOWN (GADGET_ID_COUNTER_FIRST + 57)
-#define GADGET_ID_DROP_DELAY_RND_TEXT (GADGET_ID_COUNTER_FIRST + 58)
-#define GADGET_ID_DROP_DELAY_RND_UP (GADGET_ID_COUNTER_FIRST + 59)
-#define GADGET_ID_MOVE_DELAY_FIX_DOWN (GADGET_ID_COUNTER_FIRST + 60)
-#define GADGET_ID_MOVE_DELAY_FIX_TEXT (GADGET_ID_COUNTER_FIRST + 61)
-#define GADGET_ID_MOVE_DELAY_FIX_UP (GADGET_ID_COUNTER_FIRST + 62)
-#define GADGET_ID_MOVE_DELAY_RND_DOWN (GADGET_ID_COUNTER_FIRST + 63)
-#define GADGET_ID_MOVE_DELAY_RND_TEXT (GADGET_ID_COUNTER_FIRST + 64)
-#define GADGET_ID_MOVE_DELAY_RND_UP (GADGET_ID_COUNTER_FIRST + 65)
-#define GADGET_ID_EXPLOSION_DELAY_DOWN (GADGET_ID_COUNTER_FIRST + 66)
-#define GADGET_ID_EXPLOSION_DELAY_TEXT (GADGET_ID_COUNTER_FIRST + 67)
-#define GADGET_ID_EXPLOSION_DELAY_UP (GADGET_ID_COUNTER_FIRST + 68)
-#define GADGET_ID_IGNITION_DELAY_DOWN (GADGET_ID_COUNTER_FIRST + 69)
-#define GADGET_ID_IGNITION_DELAY_TEXT (GADGET_ID_COUNTER_FIRST + 70)
-#define GADGET_ID_IGNITION_DELAY_UP (GADGET_ID_COUNTER_FIRST + 71)
-#define GADGET_ID_CHANGE_DELAY_FIX_DOWN (GADGET_ID_COUNTER_FIRST + 72)
-#define GADGET_ID_CHANGE_DELAY_FIX_TEXT (GADGET_ID_COUNTER_FIRST + 73)
-#define GADGET_ID_CHANGE_DELAY_FIX_UP (GADGET_ID_COUNTER_FIRST + 74)
-#define GADGET_ID_CHANGE_DELAY_RND_DOWN (GADGET_ID_COUNTER_FIRST + 75)
-#define GADGET_ID_CHANGE_DELAY_RND_TEXT (GADGET_ID_COUNTER_FIRST + 76)
-#define GADGET_ID_CHANGE_DELAY_RND_UP (GADGET_ID_COUNTER_FIRST + 77)
-#define GADGET_ID_CHANGE_CONT_RND_DOWN (GADGET_ID_COUNTER_FIRST + 78)
-#define GADGET_ID_CHANGE_CONT_RND_TEXT (GADGET_ID_COUNTER_FIRST + 79)
-#define GADGET_ID_CHANGE_CONT_RND_UP (GADGET_ID_COUNTER_FIRST + 80)
-#define GADGET_ID_GROUP_CONTENT_DOWN (GADGET_ID_COUNTER_FIRST + 81)
-#define GADGET_ID_GROUP_CONTENT_TEXT (GADGET_ID_COUNTER_FIRST + 82)
-#define GADGET_ID_GROUP_CONTENT_UP (GADGET_ID_COUNTER_FIRST + 83)
+#define GADGET_ID_CUSTOM_VALUE_FIX_DOWN (GADGET_ID_COUNTER_FIRST + 48)
+#define GADGET_ID_CUSTOM_VALUE_FIX_TEXT (GADGET_ID_COUNTER_FIRST + 49)
+#define GADGET_ID_CUSTOM_VALUE_FIX_UP (GADGET_ID_COUNTER_FIRST + 50)
+#define GADGET_ID_CUSTOM_VALUE_RND_DOWN (GADGET_ID_COUNTER_FIRST + 51)
+#define GADGET_ID_CUSTOM_VALUE_RND_TEXT (GADGET_ID_COUNTER_FIRST + 52)
+#define GADGET_ID_CUSTOM_VALUE_RND_UP (GADGET_ID_COUNTER_FIRST + 53)
+#define GADGET_ID_PUSH_DELAY_FIX_DOWN (GADGET_ID_COUNTER_FIRST + 54)
+#define GADGET_ID_PUSH_DELAY_FIX_TEXT (GADGET_ID_COUNTER_FIRST + 55)
+#define GADGET_ID_PUSH_DELAY_FIX_UP (GADGET_ID_COUNTER_FIRST + 56)
+#define GADGET_ID_PUSH_DELAY_RND_DOWN (GADGET_ID_COUNTER_FIRST + 57)
+#define GADGET_ID_PUSH_DELAY_RND_TEXT (GADGET_ID_COUNTER_FIRST + 58)
+#define GADGET_ID_PUSH_DELAY_RND_UP (GADGET_ID_COUNTER_FIRST + 59)
+#define GADGET_ID_DROP_DELAY_FIX_DOWN (GADGET_ID_COUNTER_FIRST + 60)
+#define GADGET_ID_DROP_DELAY_FIX_TEXT (GADGET_ID_COUNTER_FIRST + 61)
+#define GADGET_ID_DROP_DELAY_FIX_UP (GADGET_ID_COUNTER_FIRST + 62)
+#define GADGET_ID_DROP_DELAY_RND_DOWN (GADGET_ID_COUNTER_FIRST + 63)
+#define GADGET_ID_DROP_DELAY_RND_TEXT (GADGET_ID_COUNTER_FIRST + 64)
+#define GADGET_ID_DROP_DELAY_RND_UP (GADGET_ID_COUNTER_FIRST + 65)
+#define GADGET_ID_MOVE_DELAY_FIX_DOWN (GADGET_ID_COUNTER_FIRST + 66)
+#define GADGET_ID_MOVE_DELAY_FIX_TEXT (GADGET_ID_COUNTER_FIRST + 67)
+#define GADGET_ID_MOVE_DELAY_FIX_UP (GADGET_ID_COUNTER_FIRST + 68)
+#define GADGET_ID_MOVE_DELAY_RND_DOWN (GADGET_ID_COUNTER_FIRST + 69)
+#define GADGET_ID_MOVE_DELAY_RND_TEXT (GADGET_ID_COUNTER_FIRST + 70)
+#define GADGET_ID_MOVE_DELAY_RND_UP (GADGET_ID_COUNTER_FIRST + 71)
+#define GADGET_ID_EXPLOSION_DELAY_DOWN (GADGET_ID_COUNTER_FIRST + 72)
+#define GADGET_ID_EXPLOSION_DELAY_TEXT (GADGET_ID_COUNTER_FIRST + 73)
+#define GADGET_ID_EXPLOSION_DELAY_UP (GADGET_ID_COUNTER_FIRST + 74)
+#define GADGET_ID_IGNITION_DELAY_DOWN (GADGET_ID_COUNTER_FIRST + 75)
+#define GADGET_ID_IGNITION_DELAY_TEXT (GADGET_ID_COUNTER_FIRST + 76)
+#define GADGET_ID_IGNITION_DELAY_UP (GADGET_ID_COUNTER_FIRST + 77)
+#define GADGET_ID_CHANGE_DELAY_FIX_DOWN (GADGET_ID_COUNTER_FIRST + 78)
+#define GADGET_ID_CHANGE_DELAY_FIX_TEXT (GADGET_ID_COUNTER_FIRST + 79)
+#define GADGET_ID_CHANGE_DELAY_FIX_UP (GADGET_ID_COUNTER_FIRST + 80)
+#define GADGET_ID_CHANGE_DELAY_RND_DOWN (GADGET_ID_COUNTER_FIRST + 81)
+#define GADGET_ID_CHANGE_DELAY_RND_TEXT (GADGET_ID_COUNTER_FIRST + 82)
+#define GADGET_ID_CHANGE_DELAY_RND_UP (GADGET_ID_COUNTER_FIRST + 83)
+#define GADGET_ID_CHANGE_CONT_RND_DOWN (GADGET_ID_COUNTER_FIRST + 84)
+#define GADGET_ID_CHANGE_CONT_RND_TEXT (GADGET_ID_COUNTER_FIRST + 85)
+#define GADGET_ID_CHANGE_CONT_RND_UP (GADGET_ID_COUNTER_FIRST + 86)
+#define GADGET_ID_GROUP_CONTENT_DOWN (GADGET_ID_COUNTER_FIRST + 87)
+#define GADGET_ID_GROUP_CONTENT_TEXT (GADGET_ID_COUNTER_FIRST + 88)
+#define GADGET_ID_GROUP_CONTENT_UP (GADGET_ID_COUNTER_FIRST + 89)
/* drawing area identifiers */
-#define GADGET_ID_DRAWING_AREA_FIRST (GADGET_ID_COUNTER_FIRST + 84)
+#define GADGET_ID_DRAWING_AREA_FIRST (GADGET_ID_COUNTER_FIRST + 90)
#define GADGET_ID_DRAWING_LEVEL (GADGET_ID_DRAWING_AREA_FIRST + 0)
#define GADGET_ID_YAMYAM_CONTENT_0 (GADGET_ID_DRAWING_AREA_FIRST + 1)
#define GADGET_ID_STICK_ELEMENT (GADGET_ID_CHECKBUTTON_FIRST + 4)
#define GADGET_ID_EM_SLIPPERY_GEMS (GADGET_ID_CHECKBUTTON_FIRST + 5)
#define GADGET_ID_USE_SPRING_BUG (GADGET_ID_CHECKBUTTON_FIRST + 6)
-#define GADGET_ID_GROW_INTO_DIGGABLE (GADGET_ID_CHECKBUTTON_FIRST + 7)
-#define GADGET_ID_DOUBLE_SPEED (GADGET_ID_CHECKBUTTON_FIRST + 8)
-#define GADGET_ID_BLOCK_LAST_FIELD (GADGET_ID_CHECKBUTTON_FIRST + 9)
-#define GADGET_ID_SP_BLOCK_LAST_FIELD (GADGET_ID_CHECKBUTTON_FIRST + 10)
-#define GADGET_ID_INSTANT_RELOCATION (GADGET_ID_CHECKBUTTON_FIRST + 11)
-#define GADGET_ID_CAN_PASS_TO_WALKABLE (GADGET_ID_CHECKBUTTON_FIRST + 12)
-#define GADGET_ID_CAN_FALL_INTO_ACID (GADGET_ID_CHECKBUTTON_FIRST + 13)
-#define GADGET_ID_CAN_MOVE_INTO_ACID (GADGET_ID_CHECKBUTTON_FIRST + 14)
-#define GADGET_ID_DONT_COLLIDE_WITH (GADGET_ID_CHECKBUTTON_FIRST + 15)
-#define GADGET_ID_CUSTOM_INDESTRUCTIBLE (GADGET_ID_CHECKBUTTON_FIRST + 16)
-#define GADGET_ID_CUSTOM_CAN_EXPLODE (GADGET_ID_CHECKBUTTON_FIRST + 17)
-#define GADGET_ID_CUSTOM_EXPLODE_FIRE (GADGET_ID_CHECKBUTTON_FIRST + 18)
-#define GADGET_ID_CUSTOM_EXPLODE_SMASH (GADGET_ID_CHECKBUTTON_FIRST + 19)
-#define GADGET_ID_CUSTOM_EXPLODE_IMPACT (GADGET_ID_CHECKBUTTON_FIRST + 20)
-#define GADGET_ID_CUSTOM_WALK_TO_OBJECT (GADGET_ID_CHECKBUTTON_FIRST + 21)
-#define GADGET_ID_CUSTOM_DEADLY (GADGET_ID_CHECKBUTTON_FIRST + 22)
-#define GADGET_ID_CUSTOM_CAN_MOVE (GADGET_ID_CHECKBUTTON_FIRST + 23)
-#define GADGET_ID_CUSTOM_CAN_FALL (GADGET_ID_CHECKBUTTON_FIRST + 24)
-#define GADGET_ID_CUSTOM_CAN_SMASH (GADGET_ID_CHECKBUTTON_FIRST + 25)
-#define GADGET_ID_CUSTOM_SLIPPERY (GADGET_ID_CHECKBUTTON_FIRST + 26)
-#define GADGET_ID_CUSTOM_ACCESSIBLE (GADGET_ID_CHECKBUTTON_FIRST + 27)
-#define GADGET_ID_CUSTOM_GRAV_REACHABLE (GADGET_ID_CHECKBUTTON_FIRST + 28)
-#define GADGET_ID_CUSTOM_USE_GRAPHIC (GADGET_ID_CHECKBUTTON_FIRST + 29)
-#define GADGET_ID_CUSTOM_USE_TEMPLATE (GADGET_ID_CHECKBUTTON_FIRST + 30)
-#define GADGET_ID_CUSTOM_CAN_CHANGE (GADGET_ID_CHECKBUTTON_FIRST + 31)
-#define GADGET_ID_CHANGE_USE_CONTENT (GADGET_ID_CHECKBUTTON_FIRST + 32)
-#define GADGET_ID_CHANGE_USE_EXPLOSION (GADGET_ID_CHECKBUTTON_FIRST + 33)
-#define GADGET_ID_CHANGE_ONLY_COMPLETE (GADGET_ID_CHECKBUTTON_FIRST + 34)
-#define GADGET_ID_CHANGE_USE_RANDOM (GADGET_ID_CHECKBUTTON_FIRST + 35)
-#define GADGET_ID_CHANGE_HAS_ACTION (GADGET_ID_CHECKBUTTON_FIRST + 36)
-#define GADGET_ID_CHANGE_DELAY (GADGET_ID_CHECKBUTTON_FIRST + 37)
-#define GADGET_ID_CHANGE_BY_DIRECT_ACT (GADGET_ID_CHECKBUTTON_FIRST + 38)
-#define GADGET_ID_CHANGE_BY_OTHER_ACT (GADGET_ID_CHECKBUTTON_FIRST + 39)
+#define GADGET_ID_USE_TIME_ORB_BUG (GADGET_ID_CHECKBUTTON_FIRST + 7)
+#define GADGET_ID_GROW_INTO_DIGGABLE (GADGET_ID_CHECKBUTTON_FIRST + 8)
+#define GADGET_ID_DOUBLE_SPEED (GADGET_ID_CHECKBUTTON_FIRST + 9)
+#define GADGET_ID_BLOCK_SNAP_FIELD (GADGET_ID_CHECKBUTTON_FIRST + 10)
+#define GADGET_ID_BLOCK_LAST_FIELD (GADGET_ID_CHECKBUTTON_FIRST + 11)
+#define GADGET_ID_SP_BLOCK_LAST_FIELD (GADGET_ID_CHECKBUTTON_FIRST + 12)
+#define GADGET_ID_INSTANT_RELOCATION (GADGET_ID_CHECKBUTTON_FIRST + 13)
+#define GADGET_ID_CAN_PASS_TO_WALKABLE (GADGET_ID_CHECKBUTTON_FIRST + 14)
+#define GADGET_ID_CAN_FALL_INTO_ACID (GADGET_ID_CHECKBUTTON_FIRST + 15)
+#define GADGET_ID_CAN_MOVE_INTO_ACID (GADGET_ID_CHECKBUTTON_FIRST + 16)
+#define GADGET_ID_DONT_COLLIDE_WITH (GADGET_ID_CHECKBUTTON_FIRST + 17)
+#define GADGET_ID_CUSTOM_INDESTRUCTIBLE (GADGET_ID_CHECKBUTTON_FIRST + 18)
+#define GADGET_ID_CUSTOM_CAN_EXPLODE (GADGET_ID_CHECKBUTTON_FIRST + 19)
+#define GADGET_ID_CUSTOM_EXPLODE_FIRE (GADGET_ID_CHECKBUTTON_FIRST + 20)
+#define GADGET_ID_CUSTOM_EXPLODE_SMASH (GADGET_ID_CHECKBUTTON_FIRST + 21)
+#define GADGET_ID_CUSTOM_EXPLODE_IMPACT (GADGET_ID_CHECKBUTTON_FIRST + 22)
+#define GADGET_ID_CUSTOM_WALK_TO_OBJECT (GADGET_ID_CHECKBUTTON_FIRST + 23)
+#define GADGET_ID_CUSTOM_DEADLY (GADGET_ID_CHECKBUTTON_FIRST + 24)
+#define GADGET_ID_CUSTOM_CAN_MOVE (GADGET_ID_CHECKBUTTON_FIRST + 25)
+#define GADGET_ID_CUSTOM_CAN_FALL (GADGET_ID_CHECKBUTTON_FIRST + 26)
+#define GADGET_ID_CUSTOM_CAN_SMASH (GADGET_ID_CHECKBUTTON_FIRST + 27)
+#define GADGET_ID_CUSTOM_SLIPPERY (GADGET_ID_CHECKBUTTON_FIRST + 28)
+#define GADGET_ID_CUSTOM_ACCESSIBLE (GADGET_ID_CHECKBUTTON_FIRST + 29)
+#define GADGET_ID_CUSTOM_GRAV_REACHABLE (GADGET_ID_CHECKBUTTON_FIRST + 30)
+#define GADGET_ID_CUSTOM_USE_LAST_VALUE (GADGET_ID_CHECKBUTTON_FIRST + 31)
+#define GADGET_ID_CUSTOM_USE_GRAPHIC (GADGET_ID_CHECKBUTTON_FIRST + 32)
+#define GADGET_ID_CUSTOM_USE_TEMPLATE (GADGET_ID_CHECKBUTTON_FIRST + 33)
+#define GADGET_ID_CUSTOM_CAN_CHANGE (GADGET_ID_CHECKBUTTON_FIRST + 34)
+#define GADGET_ID_CHANGE_USE_CONTENT (GADGET_ID_CHECKBUTTON_FIRST + 35)
+#define GADGET_ID_CHANGE_USE_EXPLOSION (GADGET_ID_CHECKBUTTON_FIRST + 36)
+#define GADGET_ID_CHANGE_ONLY_COMPLETE (GADGET_ID_CHECKBUTTON_FIRST + 37)
+#define GADGET_ID_CHANGE_USE_RANDOM (GADGET_ID_CHECKBUTTON_FIRST + 38)
+#define GADGET_ID_CHANGE_HAS_ACTION (GADGET_ID_CHECKBUTTON_FIRST + 39)
+#define GADGET_ID_CHANGE_DELAY (GADGET_ID_CHECKBUTTON_FIRST + 40)
+#define GADGET_ID_CHANGE_BY_DIRECT_ACT (GADGET_ID_CHECKBUTTON_FIRST + 41)
+#define GADGET_ID_CHANGE_BY_OTHER_ACT (GADGET_ID_CHECKBUTTON_FIRST + 42)
/* gadgets for buttons in element list */
-#define GADGET_ID_ELEMENTLIST_FIRST (GADGET_ID_CHECKBUTTON_FIRST + 40)
+#define GADGET_ID_ELEMENTLIST_FIRST (GADGET_ID_CHECKBUTTON_FIRST + 43)
#define GADGET_ID_ELEMENTLIST_LAST (GADGET_ID_ELEMENTLIST_FIRST + \
ED_NUM_ELEMENTLIST_BUTTONS - 1)
#define ED_COUNTER_ID_ENVELOPE_YSIZE 13
#define ED_COUNTER_ID_CUSTOM_SCORE 14
#define ED_COUNTER_ID_CUSTOM_GEMCOUNT 15
-#define ED_COUNTER_ID_PUSH_DELAY_FIX 16
-#define ED_COUNTER_ID_PUSH_DELAY_RND 17
-#define ED_COUNTER_ID_DROP_DELAY_FIX 18
-#define ED_COUNTER_ID_DROP_DELAY_RND 19
-#define ED_COUNTER_ID_MOVE_DELAY_FIX 20
-#define ED_COUNTER_ID_MOVE_DELAY_RND 21
-#define ED_COUNTER_ID_EXPLOSION_DELAY 22
-#define ED_COUNTER_ID_IGNITION_DELAY 23
-#define ED_COUNTER_ID_GROUP_CONTENT 24
-#define ED_COUNTER_ID_CHANGE_DELAY_FIX 25
-#define ED_COUNTER_ID_CHANGE_DELAY_RND 26
-#define ED_COUNTER_ID_CHANGE_CONT_RND 27
-
-#define ED_NUM_COUNTERBUTTONS 28
+#define ED_COUNTER_ID_CUSTOM_VALUE_FIX 16
+#define ED_COUNTER_ID_CUSTOM_VALUE_RND 17
+#define ED_COUNTER_ID_PUSH_DELAY_FIX 18
+#define ED_COUNTER_ID_PUSH_DELAY_RND 19
+#define ED_COUNTER_ID_DROP_DELAY_FIX 20
+#define ED_COUNTER_ID_DROP_DELAY_RND 21
+#define ED_COUNTER_ID_MOVE_DELAY_FIX 22
+#define ED_COUNTER_ID_MOVE_DELAY_RND 23
+#define ED_COUNTER_ID_EXPLOSION_DELAY 24
+#define ED_COUNTER_ID_IGNITION_DELAY 25
+#define ED_COUNTER_ID_GROUP_CONTENT 26
+#define ED_COUNTER_ID_CHANGE_DELAY_FIX 27
+#define ED_COUNTER_ID_CHANGE_DELAY_RND 28
+#define ED_COUNTER_ID_CHANGE_CONT_RND 29
+
+#define ED_NUM_COUNTERBUTTONS 30
#define ED_COUNTER_ID_LEVEL_FIRST ED_COUNTER_ID_LEVEL_XSIZE
#define ED_COUNTER_ID_LEVEL_LAST ED_COUNTER_ID_LEVEL_RANDOM
#define ED_CHECKBUTTON_ID_STICK_ELEMENT 2
#define ED_CHECKBUTTON_ID_EM_SLIPPERY_GEMS 3
#define ED_CHECKBUTTON_ID_USE_SPRING_BUG 4
-#define ED_CHECKBUTTON_ID_GROW_INTO_DIGGABLE 5
-#define ED_CHECKBUTTON_ID_DOUBLE_SPEED 6
-#define ED_CHECKBUTTON_ID_BLOCK_LAST_FIELD 7
-#define ED_CHECKBUTTON_ID_SP_BLOCK_LAST_FIELD 8
-#define ED_CHECKBUTTON_ID_INSTANT_RELOCATION 9
-#define ED_CHECKBUTTON_ID_CAN_PASS_TO_WALKABLE 10
-#define ED_CHECKBUTTON_ID_CAN_FALL_INTO_ACID 11
-#define ED_CHECKBUTTON_ID_CAN_MOVE_INTO_ACID 12
-#define ED_CHECKBUTTON_ID_DONT_COLLIDE_WITH 13
-#define ED_CHECKBUTTON_ID_CUSTOM_USE_GRAPHIC 14
-#define ED_CHECKBUTTON_ID_CUSTOM_USE_TEMPLATE 15
-#define ED_CHECKBUTTON_ID_CUSTOM_ACCESSIBLE 16
-#define ED_CHECKBUTTON_ID_CUSTOM_GRAV_REACHABLE 17
-#define ED_CHECKBUTTON_ID_CUSTOM_WALK_TO_OBJECT 18
-#define ED_CHECKBUTTON_ID_CUSTOM_INDESTRUCTIBLE 19
-#define ED_CHECKBUTTON_ID_CUSTOM_CAN_MOVE 20
-#define ED_CHECKBUTTON_ID_CUSTOM_CAN_FALL 21
-#define ED_CHECKBUTTON_ID_CUSTOM_CAN_SMASH 22
-#define ED_CHECKBUTTON_ID_CUSTOM_SLIPPERY 23
-#define ED_CHECKBUTTON_ID_CUSTOM_DEADLY 24
-#define ED_CHECKBUTTON_ID_CUSTOM_CAN_EXPLODE 25
-#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_FIRE 26
-#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_SMASH 27
-#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_IMPACT 28
-#define ED_CHECKBUTTON_ID_CUSTOM_CAN_CHANGE 29
-#define ED_CHECKBUTTON_ID_CHANGE_DELAY 30
-#define ED_CHECKBUTTON_ID_CHANGE_BY_DIRECT_ACT 31
-#define ED_CHECKBUTTON_ID_CHANGE_BY_OTHER_ACT 32
-#define ED_CHECKBUTTON_ID_CHANGE_USE_EXPLOSION 33
-#define ED_CHECKBUTTON_ID_CHANGE_USE_CONTENT 34
-#define ED_CHECKBUTTON_ID_CHANGE_ONLY_COMPLETE 35
-#define ED_CHECKBUTTON_ID_CHANGE_USE_RANDOM 36
-#define ED_CHECKBUTTON_ID_CHANGE_HAS_ACTION 37
-
-#define ED_NUM_CHECKBUTTONS 38
+#define ED_CHECKBUTTON_ID_USE_TIME_ORB_BUG 5
+#define ED_CHECKBUTTON_ID_GROW_INTO_DIGGABLE 6
+#define ED_CHECKBUTTON_ID_DOUBLE_SPEED 7
+#define ED_CHECKBUTTON_ID_BLOCK_SNAP_FIELD 8
+#define ED_CHECKBUTTON_ID_BLOCK_LAST_FIELD 9
+#define ED_CHECKBUTTON_ID_SP_BLOCK_LAST_FIELD 10
+#define ED_CHECKBUTTON_ID_INSTANT_RELOCATION 11
+#define ED_CHECKBUTTON_ID_CAN_PASS_TO_WALKABLE 12
+#define ED_CHECKBUTTON_ID_CAN_FALL_INTO_ACID 13
+#define ED_CHECKBUTTON_ID_CAN_MOVE_INTO_ACID 14
+#define ED_CHECKBUTTON_ID_DONT_COLLIDE_WITH 15
+#define ED_CHECKBUTTON_ID_CUSTOM_USE_GRAPHIC 16
+#define ED_CHECKBUTTON_ID_CUSTOM_USE_TEMPLATE 17
+#define ED_CHECKBUTTON_ID_CUSTOM_ACCESSIBLE 18
+#define ED_CHECKBUTTON_ID_CUSTOM_GRAV_REACHABLE 19
+#define ED_CHECKBUTTON_ID_CUSTOM_USE_LAST_VALUE 20
+#define ED_CHECKBUTTON_ID_CUSTOM_WALK_TO_OBJECT 21
+#define ED_CHECKBUTTON_ID_CUSTOM_INDESTRUCTIBLE 22
+#define ED_CHECKBUTTON_ID_CUSTOM_CAN_MOVE 23
+#define ED_CHECKBUTTON_ID_CUSTOM_CAN_FALL 24
+#define ED_CHECKBUTTON_ID_CUSTOM_CAN_SMASH 25
+#define ED_CHECKBUTTON_ID_CUSTOM_SLIPPERY 26
+#define ED_CHECKBUTTON_ID_CUSTOM_DEADLY 27
+#define ED_CHECKBUTTON_ID_CUSTOM_CAN_EXPLODE 28
+#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_FIRE 29
+#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_SMASH 30
+#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_IMPACT 31
+#define ED_CHECKBUTTON_ID_CUSTOM_CAN_CHANGE 32
+#define ED_CHECKBUTTON_ID_CHANGE_DELAY 33
+#define ED_CHECKBUTTON_ID_CHANGE_BY_DIRECT_ACT 34
+#define ED_CHECKBUTTON_ID_CHANGE_BY_OTHER_ACT 35
+#define ED_CHECKBUTTON_ID_CHANGE_USE_EXPLOSION 36
+#define ED_CHECKBUTTON_ID_CHANGE_USE_CONTENT 37
+#define ED_CHECKBUTTON_ID_CHANGE_ONLY_COMPLETE 38
+#define ED_CHECKBUTTON_ID_CHANGE_USE_RANDOM 39
+#define ED_CHECKBUTTON_ID_CHANGE_HAS_ACTION 40
+
+#define ED_NUM_CHECKBUTTONS 41
#define ED_CHECKBUTTON_ID_LEVEL_FIRST ED_CHECKBUTTON_ID_INITIAL_GRAVITY
#define ED_CHECKBUTTON_ID_LEVEL_LAST ED_CHECKBUTTON_ID_RANDOM_RESTRICTED
GADGET_ID_CUSTOM_SCORE_DOWN, GADGET_ID_CUSTOM_SCORE_UP,
GADGET_ID_CUSTOM_SCORE_TEXT, GADGET_ID_NONE,
&custom_element.collect_score_initial,
- NULL, "score", " "
+ NULL, "CE score", " "
},
{
-1, ED_ELEMENT_SETTINGS_YPOS(6),
GADGET_ID_CUSTOM_GEMCOUNT_DOWN, GADGET_ID_CUSTOM_GEMCOUNT_UP,
GADGET_ID_CUSTOM_GEMCOUNT_TEXT, GADGET_ID_CUSTOM_SCORE_UP,
&custom_element.collect_count_initial,
- NULL, "count", NULL
+ NULL, "CE count", NULL
+ },
+ {
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(12),
+ 0, 9999,
+ GADGET_ID_CUSTOM_VALUE_FIX_DOWN, GADGET_ID_CUSTOM_VALUE_FIX_UP,
+ GADGET_ID_CUSTOM_VALUE_FIX_TEXT, GADGET_ID_NONE,
+ &custom_element.ce_value_fixed_initial,
+ NULL, "CE value", NULL
+ },
+ {
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(12),
+ 0, 9999,
+ GADGET_ID_CUSTOM_VALUE_RND_DOWN, GADGET_ID_CUSTOM_VALUE_RND_UP,
+ GADGET_ID_CUSTOM_VALUE_RND_TEXT, GADGET_ID_CUSTOM_VALUE_FIX_UP,
+ &custom_element.ce_value_random_initial,
+ NULL, "+random", NULL
},
{
ED_ELEMENT_SETTINGS_XPOS(1), ED_ELEMENT_SETTINGS_YPOS(7),
GADGET_ID_CHANGE_DELAY_FIX_DOWN, GADGET_ID_CHANGE_DELAY_FIX_UP,
GADGET_ID_CHANGE_DELAY_FIX_TEXT, GADGET_ID_NONE,
&custom_element_change.delay_fixed,
- NULL, "delay", NULL,
+ NULL, "CE delay", NULL,
},
{
-1, ED_ELEMENT_SETTINGS_YPOS(2),
#endif
{ CE_IMPACT, "impact (on something)" },
{ CE_SMASHED, "smashed (from above)" },
- { CE_COUNT_AT_ZERO, "CE count at zero" },
+ { CE_VALUE_GETS_ZERO, "CE value gets 0" },
{ -1, NULL }
};
{ CE_SWITCH_OF_X, "switch of" },
{ CE_CHANGE_OF_X, "change by page of" },
{ CE_EXPLOSION_OF_X, "explosion of" },
- { CE_COUNT_AT_ZERO_OF_X, "CE count at zero of" },
+ { CE_VALUE_GETS_ZERO_OF_X, "CE value gets 0 of" },
{ -1, NULL }
};
{ CA_NO_ACTION, "no action" },
{ CA_EXIT_PLAYER, "exit player" },
{ CA_KILL_PLAYER, "kill player" },
+ { CA_MOVE_PLAYER, "move player" },
{ CA_RESTART_LEVEL, "restart level" },
{ CA_SHOW_ENVELOPE, "show envelope" },
- { CA_ADD_KEY, "add key" },
- { CA_DEL_KEY, "remove key" },
- { CA_SET_GEMS, "set gems" },
- { CA_SET_TIME, "set time" },
- { CA_SET_SCORE, "set score" },
+ { CA_SET_TIME, "set level time" },
+ { CA_SET_GEMS, "set needed gems" },
+ { CA_SET_SCORE, "set level score" },
+ { CA_SET_KEYS, "set player keys" },
+ { CA_SET_SPEED, "set player speed" },
+ { CA_SET_GRAVITY, "set gravity" },
+ { CA_SET_WIND, "set wind dir." },
{ CA_SET_CE_SCORE, "set CE score" },
- { CA_SET_CE_COUNT, "set CE count" },
- { CA_SET_PLAYER_SPEED, "set player speed" },
- { CA_SET_PLAYER_GRAVITY, "set gravity" },
- { CA_SET_WIND_DIRECTION, "set wind dir." },
+ { CA_SET_CE_VALUE, "set CE value" },
#if 0
{ CA_SET_DYNABOMB_NUMBER, "set bomb number" },
{ CA_SET_DYNABOMB_SIZE, "set bomb size" },
{ -1, NULL }
};
-static struct ValueTextInfo options_action_mode_set[] =
+static struct ValueTextInfo options_action_mode_assign[] =
{
{ CA_MODE_SET, "=" },
{ -1, NULL }
};
-static struct ValueTextInfo options_action_mode_calc[] =
+static struct ValueTextInfo options_action_mode_add_remove[] =
+{
+ { CA_MODE_ADD, "+" },
+ { CA_MODE_SUBTRACT, "-" },
+
+ { -1, NULL }
+};
+
+static struct ValueTextInfo options_action_mode_calculate[] =
{
{ CA_MODE_SET, "=" },
{ CA_MODE_ADD, "+" },
{ CA_ARG_UNDEFINED, " " },
{ CA_ARG_NUMBER_RESET, "reset" },
{ CA_ARG_UNDEFINED, " " },
- { CA_ARG_NUMBER_CE_SCORE, "CE score" },
- { CA_ARG_NUMBER_CE_COUNT, "CE count" },
{ 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_ELEMENT_HEADLINE, "[CE value" },
+ { CA_ARG_ELEMENT_HEADLINE, " of" },
+ { CA_ARG_ELEMENT_HEADLINE, " element]" },
+ { CA_ARG_ELEMENT_TARGET, "target" },
+ { CA_ARG_ELEMENT_TRIGGER, "trigger" },
{ -1, NULL }
};
-static struct ValueTextInfo options_action_arg_element[] =
+static struct ValueTextInfo options_action_arg_key[] =
{
- { CA_ARG_ELEMENT_HEADLINE, "[element]" },
- { CA_ARG_ELEMENT_TARGET, "target" },
- { CA_ARG_ELEMENT_TRIGGER, "trigger" },
- { CA_ARG_UNDEFINED, " " },
{ CA_ARG_NUMBER_HEADLINE, "[number]" },
{ CA_ARG_1, "1" },
{ CA_ARG_2, "2" },
{ CA_ARG_6, "6" },
{ CA_ARG_7, "7" },
{ CA_ARG_8, "8" },
+ { CA_ARG_UNDEFINED, " " },
+ { CA_ARG_ELEMENT_HEADLINE, "[element]" },
+ { CA_ARG_ELEMENT_TARGET, "target" },
+ { CA_ARG_ELEMENT_TRIGGER, "trigger" },
+
+ { -1, NULL }
+};
+
+static struct ValueTextInfo options_action_arg_envelope[] =
+{
+ { CA_ARG_NUMBER_HEADLINE, "[number]" },
+ { CA_ARG_1, "1" },
+ { CA_ARG_2, "2" },
+ { CA_ARG_3, "3" },
+ { CA_ARG_4, "4" },
+ { CA_ARG_UNDEFINED, " " },
+ { CA_ARG_ELEMENT_HEADLINE, "[element]" },
+ { CA_ARG_ELEMENT_TARGET, "target" },
+ { CA_ARG_ELEMENT_TRIGGER, "trigger" },
{ -1, NULL }
};
static struct ValueTextInfo options_action_arg_speed[] =
{
{ CA_ARG_SPEED_HEADLINE, "[speed]" },
+ { CA_ARG_SPEED_NOT_MOVING, "frozen" },
{ CA_ARG_SPEED_VERY_SLOW, "very slow" },
{ CA_ARG_SPEED_SLOW, "slow" },
{ CA_ARG_SPEED_NORMAL, "normal" },
{ CA_ARG_DIRECTION_UP, "up" },
{ CA_ARG_DIRECTION_DOWN, "down" },
{ CA_ARG_DIRECTION_TRIGGER, "trigger" },
+ { CA_ARG_DIRECTION_TRIGGER_BACK, "-trigger" },
{ -1, NULL }
};
static struct ValueTextInfo *action_arg_modes[] =
{
options_action_mode_none,
- options_action_mode_set,
- options_action_mode_calc,
+ options_action_mode_assign,
+ options_action_mode_add_remove,
+ options_action_mode_calculate,
};
static struct
{ CA_NO_ACTION, 0, options_action_arg_none, },
{ CA_EXIT_PLAYER, 0, options_action_arg_player, },
{ CA_KILL_PLAYER, 0, options_action_arg_player, },
+ { CA_MOVE_PLAYER, 0, options_action_arg_direction, },
{ CA_RESTART_LEVEL, 0, options_action_arg_none, },
- { CA_SHOW_ENVELOPE, 0, options_action_arg_element, },
- { CA_ADD_KEY, 0, options_action_arg_element, },
- { CA_DEL_KEY, 0, options_action_arg_element, },
- { CA_SET_PLAYER_SPEED, 1, options_action_arg_speed, },
- { CA_SET_GEMS, 2, options_action_arg_number, },
- { CA_SET_TIME, 2, options_action_arg_number, },
- { CA_SET_SCORE, 2, options_action_arg_number, },
- { CA_SET_CE_SCORE, 2, options_action_arg_number, },
- { CA_SET_CE_COUNT, 2, options_action_arg_number, },
- { CA_SET_PLAYER_GRAVITY, 1, options_action_arg_gravity, },
- { CA_SET_WIND_DIRECTION, 1, options_action_arg_direction, },
+ { CA_SHOW_ENVELOPE, 0, options_action_arg_envelope, },
+ { CA_SET_TIME, 3, options_action_arg_number, },
+ { CA_SET_GEMS, 3, options_action_arg_number, },
+ { CA_SET_SCORE, 3, options_action_arg_number, },
+ { CA_SET_KEYS, 2, options_action_arg_key, },
+ { CA_SET_SPEED, 1, options_action_arg_speed, },
+ { CA_SET_GRAVITY, 1, options_action_arg_gravity, },
+ { CA_SET_WIND, 1, options_action_arg_direction, },
+ { CA_SET_CE_SCORE, 3, options_action_arg_number, },
+ { CA_SET_CE_VALUE, 3, options_action_arg_number, },
{ -1, FALSE, NULL }
};
-1,
options_change_trigger_side,
&custom_element_change.trigger_side,
- "at", "side", "element side that causes change"
+ "at", "side", "element side triggering change"
},
{
ED_ELEMENT_SETTINGS_XPOS(2), ED_ELEMENT_SETTINGS_YPOS(7),
NULL,
"use spring pushing bug", "use odd spring pushing behaviour"
},
+ {
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(1),
+ GADGET_ID_USE_TIME_ORB_BUG, GADGET_ID_NONE,
+ &level.use_time_orb_bug,
+ NULL,
+ "use time orb bug", "use odd time orb behaviour"
+ },
{
ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(0),
GADGET_ID_GROW_INTO_DIGGABLE, GADGET_ID_NONE,
NULL,
"double speed movement", "set initial movement speed of player"
},
+ {
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(5),
+ GADGET_ID_BLOCK_SNAP_FIELD, GADGET_ID_NONE,
+ &level.block_snap_field,
+ NULL,
+ "block snap field when snapping", "use snapping delay to show animation"
+ },
{
ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(1),
GADGET_ID_BLOCK_LAST_FIELD, GADGET_ID_NONE,
&custom_element_properties[EP_GRAVITY_REACHABLE],
NULL, "reachable despite gravity", "player can walk/dig despite gravity"
},
+ {
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(13),
+ GADGET_ID_CUSTOM_USE_LAST_VALUE, GADGET_ID_NONE,
+ &custom_element.use_last_ce_value,
+ NULL, "use last CE value after change", "use last CE value after change"
+ },
{
ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(5),
GADGET_ID_CUSTOM_WALK_TO_OBJECT, GADGET_ID_NONE,
int yoffset_above = MINI_TILEX + ED_GADGET_DISTANCE;
int yoffset = ED_BORDER_SIZE;
int x_left = gi_down->x - xoffset_left;
+#if 1
+ int x_right; /* set after gadget position was modified */
+#else
int x_right = gi_up->x + gi_up->width + xoffset_right;
+#endif
int y_above = gi_down->y - yoffset_above;
int x = gi_down->x;
int y; /* set after gadget position was modified */
ModifyEditorCounterLimits(id, counterbutton_info[id].min_value,
counterbutton_info[id].max_value);
+ /* right text position might have changed after setting position above */
+ x_right = gi_up->x + gi_up->width + xoffset_right;
+
ModifyEditorCounterValue(id, *counterbutton_info[id].value);
/* set position for "value[1,2,3,4]" counter gadgets (score in most cases) */
ModifyGadget(gi_up, GDI_Y, SY + counterbutton_info[id].y, GDI_END);
}
+ /* vertical position might have changed after setting position above */
y = gi_up->y + yoffset;
if (counterbutton_info[id].text_above)
return new_index_value;
}
+static void setSelectboxSpecialActionOptions()
+{
+ int i;
+
+ /* change action mode and arg selectbox according to action type selectbox */
+ for (i = 0; action_arg_options[i].value != -1; i++)
+ {
+ if (action_arg_options[i].value == custom_element_change.action_type)
+ {
+ int mode = action_arg_options[i].mode;
+
+ ModifyEditorSelectboxOptions(ED_SELECTBOX_ID_ACTION_MODE,
+ action_arg_modes[mode]);
+ ModifyEditorSelectboxValue(ED_SELECTBOX_ID_ACTION_MODE,
+ custom_element_change.action_mode);
+
+ ModifyEditorSelectboxOptions(ED_SELECTBOX_ID_ACTION_ARG,
+ action_arg_options[i].options);
+ ModifyEditorSelectboxValue(ED_SELECTBOX_ID_ACTION_ARG,
+ custom_element_change.action_arg);
+ }
+ }
+}
+
static void copy_custom_element_settings(int element_from, int element_to)
{
struct ElementInfo *ei_from = &element_info[element_from];
ei_to->collect_score_initial = ei_from->collect_score_initial;
ei_to->collect_count_initial = ei_from->collect_count_initial;
+ ei_to->ce_value_fixed_initial = ei_from->ce_value_fixed_initial;
+ ei_to->ce_value_random_initial = ei_from->ce_value_random_initial;
+ ei_to->use_last_ce_value = ei_from->use_last_ce_value;
+
ei_to->push_delay_fixed = ei_from->push_delay_fixed;
ei_to->push_delay_random = ei_from->push_delay_random;
ei_to->drop_delay_fixed = ei_from->drop_delay_fixed;
custom_element = element_info[element];
custom_element_change = *element_info[element].change;
+ /* needed to initially set selectbox options for special action options */
+ setSelectboxSpecialActionOptions();
+
/* needed to initially set selectbox value variables to reliable defaults */
for (i = 0; i < ED_NUM_SELECTBOX; i++)
setSelectboxValue(i, *selectbox_info[i].value);
HAS_CHANGE_EVENT(element, CE_BLOCKED) ? CE_BLOCKED :
HAS_CHANGE_EVENT(element, CE_IMPACT) ? CE_IMPACT :
HAS_CHANGE_EVENT(element, CE_SMASHED) ? CE_SMASHED :
- HAS_CHANGE_EVENT(element, CE_COUNT_AT_ZERO) ? CE_COUNT_AT_ZERO :
+ HAS_CHANGE_EVENT(element, CE_VALUE_GETS_ZERO) ? CE_VALUE_GETS_ZERO :
custom_element_change.direct_action);
/* set "change by other element action" selectbox help value */
HAS_CHANGE_EVENT(element, CE_SWITCH_OF_X) ? CE_SWITCH_OF_X :
HAS_CHANGE_EVENT(element, CE_CHANGE_OF_X) ? CE_CHANGE_OF_X :
HAS_CHANGE_EVENT(element, CE_EXPLOSION_OF_X) ? CE_EXPLOSION_OF_X :
- HAS_CHANGE_EVENT(element, CE_COUNT_AT_ZERO_OF_X) ? CE_COUNT_AT_ZERO_OF_X :
+ HAS_CHANGE_EVENT(element, CE_VALUE_GETS_ZERO_OF_X) ? CE_VALUE_GETS_ZERO_OF_X :
custom_element_change.other_action);
}
custom_element_change_events[CE_BLOCKED] = FALSE;
custom_element_change_events[CE_IMPACT] = FALSE;
custom_element_change_events[CE_SMASHED] = FALSE;
- custom_element_change_events[CE_COUNT_AT_ZERO] = FALSE;
+ custom_element_change_events[CE_VALUE_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_SWITCH_OF_X] = FALSE;
custom_element_change_events[CE_CHANGE_OF_X] = FALSE;
custom_element_change_events[CE_EXPLOSION_OF_X] = FALSE;
- custom_element_change_events[CE_COUNT_AT_ZERO_OF_X] = FALSE;
+ custom_element_change_events[CE_VALUE_GETS_ZERO_OF_X] = FALSE;
custom_element_change_events[custom_element_change.other_action] =
custom_element_change_events[CE_BY_OTHER_ACTION];
struct GadgetInfo *gi = level_editor_gadget[gadget_id];
ModifyGadget(gi, GDI_NUMBER_MIN, min, GDI_NUMBER_MAX, max, GDI_END);
+
+ if (counter_id >= ED_COUNTER_ID_ELEMENT_VALUE1 &&
+ counter_id <= ED_COUNTER_ID_ELEMENT_VALUE4)
+ {
+ int gadget_id_up = counterbutton_info[counter_id].gadget_id_up;
+ struct GadgetInfo *gi_up = level_editor_gadget[gadget_id_up];
+
+ ModifyGadget(gi, GDI_TEXT_SIZE, (max < 10 ? 1 : 3), GDI_END);
+ ModifyGadget(gi_up, GDI_X, gi->x + gi->width + ED_GADGET_DISTANCE,GDI_END);
+ }
}
static void ModifyEditorSelectboxValue(int selectbox_id, int new_value)
MapCheckbuttonGadget(properties_element == EL_SP_MURPHY ?
ED_CHECKBUTTON_ID_SP_BLOCK_LAST_FIELD :
ED_CHECKBUTTON_ID_BLOCK_LAST_FIELD);
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BLOCK_SNAP_FIELD);
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_INSTANT_RELOCATION);
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_CAN_PASS_TO_WALKABLE);
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_DOUBLE_SPEED);
if (properties_element == EL_SPRING)
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_USE_SPRING_BUG);
+ if (properties_element == EL_TIME_ORB_FULL)
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_USE_TIME_ORB_BUG);
+
#if 0
if (properties_element == EL_BALLOON)
MapSelectboxGadget(ED_SELECTBOX_ID_WIND_DIRECTION);
{
int i;
- for (i = 0; action_arg_options[i].value != -1; i++)
- {
- if (action_arg_options[i].value == custom_element_change.action_type)
- {
- int mode = action_arg_options[i].mode;
-
- ModifyEditorSelectboxOptions(ED_SELECTBOX_ID_ACTION_MODE,
- action_arg_modes[mode]);
- ModifyEditorSelectboxValue(ED_SELECTBOX_ID_ACTION_MODE,
- custom_element_change.action_mode);
-
- ModifyEditorSelectboxOptions(ED_SELECTBOX_ID_ACTION_ARG,
- action_arg_options[i].options);
- ModifyEditorSelectboxValue(ED_SELECTBOX_ID_ACTION_ARG,
- custom_element_change.action_arg);
- }
- }
+ /* needed to initially set selectbox options for special action options */
+ setSelectboxSpecialActionOptions();
/* draw stickybutton gadget */
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_STICK_ELEMENT);
static void HandleSelectboxGadgets(struct GadgetInfo *gi)
{
int type_id = gi->custom_type_id;
+ int value_old = *selectbox_info[type_id].value;
int value_new = selectbox_info[type_id].options[gi->selectbox.index].value;
*selectbox_info[type_id].value = value_new;
(type_id == ED_SELECTBOX_ID_GROUP_CHOICE_MODE))
{
if (type_id == ED_SELECTBOX_ID_ACTION_TYPE)
+ {
+ /* when changing action type, reset action mode and action arg */
+ if (value_old != value_new)
+ {
+ custom_element_change.action_mode = -1;
+ custom_element_change.action_arg = -1;
+ }
+
DrawPropertiesChange();
+ }
CopyElementPropertiesToGame(properties_element);
else if (id == GADGET_ID_CUSTOM_MOVE_LEAVE)
strcpy(infotext, "Element that will be left behind");
else if (id == GADGET_ID_CUSTOM_CHANGE_TARGET)
- strcpy(infotext, "New element after change");
+ strcpy(infotext, "New target element after change");
else if (id == GADGET_ID_CUSTOM_CHANGE_CONTENT)
strcpy(infotext, "New extended elements after change");
else if (id == GADGET_ID_CUSTOM_CHANGE_TRIGGER)