/* yamyam content */
#define ED_AREA_YAMYAM_CONTENT_XPOS(n) (2 * MINI_TILEX + \
5 * ((n) % 4) * MINI_TILEX)
-#define ED_AREA_YAMYAM_CONTENT_YPOS(n) (17 * MINI_TILEY + \
+#define ED_AREA_YAMYAM_CONTENT_YPOS(n) (11 * ED_SETTINGS_YOFFSET + \
6 * ((n) / 4) * MINI_TILEY)
/* magic ball content */
#define ED_AREA_MAGIC_BALL_CONTENT_XPOS(n) (2 * MINI_TILEX + \
5 * ((n) % 4) * MINI_TILEX)
-#define ED_AREA_MAGIC_BALL_CONTENT_YPOS(n) (17 * MINI_TILEY + \
+#define ED_AREA_MAGIC_BALL_CONTENT_YPOS(n) (12 * ED_SETTINGS_YOFFSET + \
6 * ((n) / 4) * MINI_TILEY)
/* values for scrolling gadgets for drawing area */
#define GADGET_ID_YAMYAM_CONTENT_DOWN (GADGET_ID_COUNTER_FIRST + 33)
#define GADGET_ID_YAMYAM_CONTENT_TEXT (GADGET_ID_COUNTER_FIRST + 34)
#define GADGET_ID_YAMYAM_CONTENT_UP (GADGET_ID_COUNTER_FIRST + 35)
-#define GADGET_ID_ENVELOPE_XSIZE_DOWN (GADGET_ID_COUNTER_FIRST + 36)
-#define GADGET_ID_ENVELOPE_XSIZE_TEXT (GADGET_ID_COUNTER_FIRST + 37)
-#define GADGET_ID_ENVELOPE_XSIZE_UP (GADGET_ID_COUNTER_FIRST + 38)
-#define GADGET_ID_ENVELOPE_YSIZE_DOWN (GADGET_ID_COUNTER_FIRST + 39)
-#define GADGET_ID_ENVELOPE_YSIZE_TEXT (GADGET_ID_COUNTER_FIRST + 40)
-#define GADGET_ID_ENVELOPE_YSIZE_UP (GADGET_ID_COUNTER_FIRST + 41)
-#define GADGET_ID_CUSTOM_SCORE_DOWN (GADGET_ID_COUNTER_FIRST + 42)
-#define GADGET_ID_CUSTOM_SCORE_TEXT (GADGET_ID_COUNTER_FIRST + 43)
-#define GADGET_ID_CUSTOM_SCORE_UP (GADGET_ID_COUNTER_FIRST + 44)
-#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_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)
+#define GADGET_ID_BALL_CONTENT_DOWN (GADGET_ID_COUNTER_FIRST + 36)
+#define GADGET_ID_BALL_CONTENT_TEXT (GADGET_ID_COUNTER_FIRST + 37)
+#define GADGET_ID_BALL_CONTENT_UP (GADGET_ID_COUNTER_FIRST + 38)
+#define GADGET_ID_ENVELOPE_XSIZE_DOWN (GADGET_ID_COUNTER_FIRST + 39)
+#define GADGET_ID_ENVELOPE_XSIZE_TEXT (GADGET_ID_COUNTER_FIRST + 40)
+#define GADGET_ID_ENVELOPE_XSIZE_UP (GADGET_ID_COUNTER_FIRST + 41)
+#define GADGET_ID_ENVELOPE_YSIZE_DOWN (GADGET_ID_COUNTER_FIRST + 42)
+#define GADGET_ID_ENVELOPE_YSIZE_TEXT (GADGET_ID_COUNTER_FIRST + 43)
+#define GADGET_ID_ENVELOPE_YSIZE_UP (GADGET_ID_COUNTER_FIRST + 44)
+#define GADGET_ID_CUSTOM_SCORE_DOWN (GADGET_ID_COUNTER_FIRST + 45)
+#define GADGET_ID_CUSTOM_SCORE_TEXT (GADGET_ID_COUNTER_FIRST + 46)
+#define GADGET_ID_CUSTOM_SCORE_UP (GADGET_ID_COUNTER_FIRST + 47)
+#define GADGET_ID_CUSTOM_GEMCOUNT_DOWN (GADGET_ID_COUNTER_FIRST + 48)
+#define GADGET_ID_CUSTOM_GEMCOUNT_TEXT (GADGET_ID_COUNTER_FIRST + 49)
+#define GADGET_ID_CUSTOM_GEMCOUNT_UP (GADGET_ID_COUNTER_FIRST + 50)
+#define GADGET_ID_CUSTOM_VALUE_FIX_DOWN (GADGET_ID_COUNTER_FIRST + 51)
+#define GADGET_ID_CUSTOM_VALUE_FIX_TEXT (GADGET_ID_COUNTER_FIRST + 52)
+#define GADGET_ID_CUSTOM_VALUE_FIX_UP (GADGET_ID_COUNTER_FIRST + 53)
+#define GADGET_ID_CUSTOM_VALUE_RND_DOWN (GADGET_ID_COUNTER_FIRST + 54)
+#define GADGET_ID_CUSTOM_VALUE_RND_TEXT (GADGET_ID_COUNTER_FIRST + 55)
+#define GADGET_ID_CUSTOM_VALUE_RND_UP (GADGET_ID_COUNTER_FIRST + 56)
+#define GADGET_ID_PUSH_DELAY_FIX_DOWN (GADGET_ID_COUNTER_FIRST + 57)
+#define GADGET_ID_PUSH_DELAY_FIX_TEXT (GADGET_ID_COUNTER_FIRST + 58)
+#define GADGET_ID_PUSH_DELAY_FIX_UP (GADGET_ID_COUNTER_FIRST + 59)
+#define GADGET_ID_PUSH_DELAY_RND_DOWN (GADGET_ID_COUNTER_FIRST + 60)
+#define GADGET_ID_PUSH_DELAY_RND_TEXT (GADGET_ID_COUNTER_FIRST + 61)
+#define GADGET_ID_PUSH_DELAY_RND_UP (GADGET_ID_COUNTER_FIRST + 62)
+#define GADGET_ID_DROP_DELAY_FIX_DOWN (GADGET_ID_COUNTER_FIRST + 63)
+#define GADGET_ID_DROP_DELAY_FIX_TEXT (GADGET_ID_COUNTER_FIRST + 64)
+#define GADGET_ID_DROP_DELAY_FIX_UP (GADGET_ID_COUNTER_FIRST + 65)
+#define GADGET_ID_DROP_DELAY_RND_DOWN (GADGET_ID_COUNTER_FIRST + 66)
+#define GADGET_ID_DROP_DELAY_RND_TEXT (GADGET_ID_COUNTER_FIRST + 67)
+#define GADGET_ID_DROP_DELAY_RND_UP (GADGET_ID_COUNTER_FIRST + 68)
+#define GADGET_ID_MOVE_DELAY_FIX_DOWN (GADGET_ID_COUNTER_FIRST + 69)
+#define GADGET_ID_MOVE_DELAY_FIX_TEXT (GADGET_ID_COUNTER_FIRST + 70)
+#define GADGET_ID_MOVE_DELAY_FIX_UP (GADGET_ID_COUNTER_FIRST + 71)
+#define GADGET_ID_MOVE_DELAY_RND_DOWN (GADGET_ID_COUNTER_FIRST + 72)
+#define GADGET_ID_MOVE_DELAY_RND_TEXT (GADGET_ID_COUNTER_FIRST + 73)
+#define GADGET_ID_MOVE_DELAY_RND_UP (GADGET_ID_COUNTER_FIRST + 74)
+#define GADGET_ID_EXPLOSION_DELAY_DOWN (GADGET_ID_COUNTER_FIRST + 75)
+#define GADGET_ID_EXPLOSION_DELAY_TEXT (GADGET_ID_COUNTER_FIRST + 76)
+#define GADGET_ID_EXPLOSION_DELAY_UP (GADGET_ID_COUNTER_FIRST + 77)
+#define GADGET_ID_IGNITION_DELAY_DOWN (GADGET_ID_COUNTER_FIRST + 78)
+#define GADGET_ID_IGNITION_DELAY_TEXT (GADGET_ID_COUNTER_FIRST + 79)
+#define GADGET_ID_IGNITION_DELAY_UP (GADGET_ID_COUNTER_FIRST + 80)
+#define GADGET_ID_CHANGE_DELAY_FIX_DOWN (GADGET_ID_COUNTER_FIRST + 81)
+#define GADGET_ID_CHANGE_DELAY_FIX_TEXT (GADGET_ID_COUNTER_FIRST + 82)
+#define GADGET_ID_CHANGE_DELAY_FIX_UP (GADGET_ID_COUNTER_FIRST + 83)
+#define GADGET_ID_CHANGE_DELAY_RND_DOWN (GADGET_ID_COUNTER_FIRST + 84)
+#define GADGET_ID_CHANGE_DELAY_RND_TEXT (GADGET_ID_COUNTER_FIRST + 85)
+#define GADGET_ID_CHANGE_DELAY_RND_UP (GADGET_ID_COUNTER_FIRST + 86)
+#define GADGET_ID_CHANGE_CONT_RND_DOWN (GADGET_ID_COUNTER_FIRST + 87)
+#define GADGET_ID_CHANGE_CONT_RND_TEXT (GADGET_ID_COUNTER_FIRST + 88)
+#define GADGET_ID_CHANGE_CONT_RND_UP (GADGET_ID_COUNTER_FIRST + 89)
+#define GADGET_ID_GROUP_CONTENT_DOWN (GADGET_ID_COUNTER_FIRST + 90)
+#define GADGET_ID_GROUP_CONTENT_TEXT (GADGET_ID_COUNTER_FIRST + 91)
+#define GADGET_ID_GROUP_CONTENT_UP (GADGET_ID_COUNTER_FIRST + 92)
/* drawing area identifiers */
-#define GADGET_ID_DRAWING_AREA_FIRST (GADGET_ID_COUNTER_FIRST + 90)
+#define GADGET_ID_DRAWING_AREA_FIRST (GADGET_ID_COUNTER_FIRST + 93)
#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_EM_SLIPPERY_GEMS (GADGET_ID_CHECKBUTTON_FIRST + 5)
#define GADGET_ID_USE_SPRING_BUG (GADGET_ID_CHECKBUTTON_FIRST + 6)
#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_USE_START_ELEMENT (GADGET_ID_CHECKBUTTON_FIRST + 14)
-#define GADGET_ID_CAN_PASS_TO_WALKABLE (GADGET_ID_CHECKBUTTON_FIRST + 15)
-#define GADGET_ID_CAN_FALL_INTO_ACID (GADGET_ID_CHECKBUTTON_FIRST + 16)
-#define GADGET_ID_CAN_MOVE_INTO_ACID (GADGET_ID_CHECKBUTTON_FIRST + 17)
-#define GADGET_ID_DONT_COLLIDE_WITH (GADGET_ID_CHECKBUTTON_FIRST + 18)
-#define GADGET_ID_CUSTOM_INDESTRUCTIBLE (GADGET_ID_CHECKBUTTON_FIRST + 19)
-#define GADGET_ID_CUSTOM_CAN_EXPLODE (GADGET_ID_CHECKBUTTON_FIRST + 20)
-#define GADGET_ID_CUSTOM_EXPLODE_FIRE (GADGET_ID_CHECKBUTTON_FIRST + 21)
-#define GADGET_ID_CUSTOM_EXPLODE_SMASH (GADGET_ID_CHECKBUTTON_FIRST + 22)
-#define GADGET_ID_CUSTOM_EXPLODE_IMPACT (GADGET_ID_CHECKBUTTON_FIRST + 23)
-#define GADGET_ID_CUSTOM_WALK_TO_OBJECT (GADGET_ID_CHECKBUTTON_FIRST + 24)
-#define GADGET_ID_CUSTOM_DEADLY (GADGET_ID_CHECKBUTTON_FIRST + 25)
-#define GADGET_ID_CUSTOM_CAN_MOVE (GADGET_ID_CHECKBUTTON_FIRST + 26)
-#define GADGET_ID_CUSTOM_CAN_FALL (GADGET_ID_CHECKBUTTON_FIRST + 27)
-#define GADGET_ID_CUSTOM_CAN_SMASH (GADGET_ID_CHECKBUTTON_FIRST + 28)
-#define GADGET_ID_CUSTOM_SLIPPERY (GADGET_ID_CHECKBUTTON_FIRST + 29)
-#define GADGET_ID_CUSTOM_ACCESSIBLE (GADGET_ID_CHECKBUTTON_FIRST + 30)
-#define GADGET_ID_CUSTOM_GRAV_REACHABLE (GADGET_ID_CHECKBUTTON_FIRST + 31)
-#define GADGET_ID_CUSTOM_USE_LAST_VALUE (GADGET_ID_CHECKBUTTON_FIRST + 32)
-#define GADGET_ID_CUSTOM_USE_GRAPHIC (GADGET_ID_CHECKBUTTON_FIRST + 33)
-#define GADGET_ID_CUSTOM_USE_TEMPLATE (GADGET_ID_CHECKBUTTON_FIRST + 34)
-#define GADGET_ID_CUSTOM_CAN_CHANGE (GADGET_ID_CHECKBUTTON_FIRST + 35)
-#define GADGET_ID_CHANGE_USE_CONTENT (GADGET_ID_CHECKBUTTON_FIRST + 36)
-#define GADGET_ID_CHANGE_USE_EXPLOSION (GADGET_ID_CHECKBUTTON_FIRST + 37)
-#define GADGET_ID_CHANGE_ONLY_COMPLETE (GADGET_ID_CHECKBUTTON_FIRST + 38)
-#define GADGET_ID_CHANGE_USE_RANDOM (GADGET_ID_CHECKBUTTON_FIRST + 39)
-#define GADGET_ID_CHANGE_HAS_ACTION (GADGET_ID_CHECKBUTTON_FIRST + 40)
-#define GADGET_ID_CHANGE_DELAY (GADGET_ID_CHECKBUTTON_FIRST + 41)
-#define GADGET_ID_CHANGE_BY_DIRECT_ACT (GADGET_ID_CHECKBUTTON_FIRST + 42)
-#define GADGET_ID_CHANGE_BY_OTHER_ACT (GADGET_ID_CHECKBUTTON_FIRST + 43)
+#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_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 GADGET_ID_INSTANT_RELOCATION (GADGET_ID_CHECKBUTTON_FIRST + 15)
+#define GADGET_ID_USE_START_ELEMENT (GADGET_ID_CHECKBUTTON_FIRST + 16)
+#define GADGET_ID_CAN_PASS_TO_WALKABLE (GADGET_ID_CHECKBUTTON_FIRST + 17)
+#define GADGET_ID_CAN_FALL_INTO_ACID (GADGET_ID_CHECKBUTTON_FIRST + 18)
+#define GADGET_ID_CAN_MOVE_INTO_ACID (GADGET_ID_CHECKBUTTON_FIRST + 19)
+#define GADGET_ID_DONT_COLLIDE_WITH (GADGET_ID_CHECKBUTTON_FIRST + 20)
+#define GADGET_ID_CUSTOM_INDESTRUCTIBLE (GADGET_ID_CHECKBUTTON_FIRST + 21)
+#define GADGET_ID_CUSTOM_CAN_EXPLODE (GADGET_ID_CHECKBUTTON_FIRST + 22)
+#define GADGET_ID_CUSTOM_EXPLODE_FIRE (GADGET_ID_CHECKBUTTON_FIRST + 23)
+#define GADGET_ID_CUSTOM_EXPLODE_SMASH (GADGET_ID_CHECKBUTTON_FIRST + 24)
+#define GADGET_ID_CUSTOM_EXPLODE_IMPACT (GADGET_ID_CHECKBUTTON_FIRST + 25)
+#define GADGET_ID_CUSTOM_WALK_TO_OBJECT (GADGET_ID_CHECKBUTTON_FIRST + 26)
+#define GADGET_ID_CUSTOM_DEADLY (GADGET_ID_CHECKBUTTON_FIRST + 27)
+#define GADGET_ID_CUSTOM_CAN_MOVE (GADGET_ID_CHECKBUTTON_FIRST + 28)
+#define GADGET_ID_CUSTOM_CAN_FALL (GADGET_ID_CHECKBUTTON_FIRST + 29)
+#define GADGET_ID_CUSTOM_CAN_SMASH (GADGET_ID_CHECKBUTTON_FIRST + 30)
+#define GADGET_ID_CUSTOM_SLIPPERY (GADGET_ID_CHECKBUTTON_FIRST + 31)
+#define GADGET_ID_CUSTOM_ACCESSIBLE (GADGET_ID_CHECKBUTTON_FIRST + 32)
+#define GADGET_ID_CUSTOM_GRAV_REACHABLE (GADGET_ID_CHECKBUTTON_FIRST + 33)
+#define GADGET_ID_CUSTOM_USE_LAST_VALUE (GADGET_ID_CHECKBUTTON_FIRST + 34)
+#define GADGET_ID_CUSTOM_USE_GRAPHIC (GADGET_ID_CHECKBUTTON_FIRST + 35)
+#define GADGET_ID_CUSTOM_USE_TEMPLATE (GADGET_ID_CHECKBUTTON_FIRST + 36)
+#define GADGET_ID_CUSTOM_CAN_CHANGE (GADGET_ID_CHECKBUTTON_FIRST + 37)
+#define GADGET_ID_CHANGE_USE_CONTENT (GADGET_ID_CHECKBUTTON_FIRST + 38)
+#define GADGET_ID_CHANGE_USE_EXPLOSION (GADGET_ID_CHECKBUTTON_FIRST + 39)
+#define GADGET_ID_CHANGE_ONLY_COMPLETE (GADGET_ID_CHECKBUTTON_FIRST + 40)
+#define GADGET_ID_CHANGE_USE_RANDOM (GADGET_ID_CHECKBUTTON_FIRST + 41)
+#define GADGET_ID_CHANGE_HAS_ACTION (GADGET_ID_CHECKBUTTON_FIRST + 42)
+#define GADGET_ID_CHANGE_DELAY (GADGET_ID_CHECKBUTTON_FIRST + 43)
+#define GADGET_ID_CHANGE_BY_DIRECT_ACT (GADGET_ID_CHECKBUTTON_FIRST + 44)
+#define GADGET_ID_CHANGE_BY_OTHER_ACT (GADGET_ID_CHECKBUTTON_FIRST + 45)
/* gadgets for buttons in element list */
-#define GADGET_ID_ELEMENTLIST_FIRST (GADGET_ID_CHECKBUTTON_FIRST + 44)
+#define GADGET_ID_ELEMENTLIST_FIRST (GADGET_ID_CHECKBUTTON_FIRST + 46)
#define GADGET_ID_ELEMENTLIST_LAST (GADGET_ID_ELEMENTLIST_FIRST + \
ED_NUM_ELEMENTLIST_BUTTONS - 1)
#define ED_COUNTER_ID_ELEMENT_VALUE3 9
#define ED_COUNTER_ID_ELEMENT_VALUE4 10
#define ED_COUNTER_ID_YAMYAM_CONTENT 11
-#define ED_COUNTER_ID_ENVELOPE_XSIZE 12
-#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_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_BALL_CONTENT 12
+#define ED_COUNTER_ID_ENVELOPE_XSIZE 13
+#define ED_COUNTER_ID_ENVELOPE_YSIZE 14
+#define ED_COUNTER_ID_CUSTOM_SCORE 15
+#define ED_COUNTER_ID_CUSTOM_GEMCOUNT 16
+#define ED_COUNTER_ID_CUSTOM_VALUE_FIX 17
+#define ED_COUNTER_ID_CUSTOM_VALUE_RND 18
+#define ED_COUNTER_ID_PUSH_DELAY_FIX 19
+#define ED_COUNTER_ID_PUSH_DELAY_RND 20
+#define ED_COUNTER_ID_DROP_DELAY_FIX 21
+#define ED_COUNTER_ID_DROP_DELAY_RND 22
+#define ED_COUNTER_ID_MOVE_DELAY_FIX 23
+#define ED_COUNTER_ID_MOVE_DELAY_RND 24
+#define ED_COUNTER_ID_EXPLOSION_DELAY 25
+#define ED_COUNTER_ID_IGNITION_DELAY 26
+#define ED_COUNTER_ID_GROUP_CONTENT 27
+#define ED_COUNTER_ID_CHANGE_DELAY_FIX 28
+#define ED_COUNTER_ID_CHANGE_DELAY_RND 29
+#define ED_COUNTER_ID_CHANGE_CONT_RND 30
+
+#define ED_NUM_COUNTERBUTTONS 31
#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_EM_SLIPPERY_GEMS 3
#define ED_CHECKBUTTON_ID_USE_SPRING_BUG 4
#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_USE_START_ELEMENT 12
-#define ED_CHECKBUTTON_ID_CAN_PASS_TO_WALKABLE 13
-#define ED_CHECKBUTTON_ID_CAN_FALL_INTO_ACID 14
-#define ED_CHECKBUTTON_ID_CAN_MOVE_INTO_ACID 15
-#define ED_CHECKBUTTON_ID_DONT_COLLIDE_WITH 16
-#define ED_CHECKBUTTON_ID_CUSTOM_USE_GRAPHIC 17
-#define ED_CHECKBUTTON_ID_CUSTOM_USE_TEMPLATE 18
-#define ED_CHECKBUTTON_ID_CUSTOM_ACCESSIBLE 19
-#define ED_CHECKBUTTON_ID_CUSTOM_GRAV_REACHABLE 20
-#define ED_CHECKBUTTON_ID_CUSTOM_USE_LAST_VALUE 21
-#define ED_CHECKBUTTON_ID_CUSTOM_WALK_TO_OBJECT 22
-#define ED_CHECKBUTTON_ID_CUSTOM_INDESTRUCTIBLE 23
-#define ED_CHECKBUTTON_ID_CUSTOM_CAN_MOVE 24
-#define ED_CHECKBUTTON_ID_CUSTOM_CAN_FALL 25
-#define ED_CHECKBUTTON_ID_CUSTOM_CAN_SMASH 26
-#define ED_CHECKBUTTON_ID_CUSTOM_SLIPPERY 27
-#define ED_CHECKBUTTON_ID_CUSTOM_DEADLY 28
-#define ED_CHECKBUTTON_ID_CUSTOM_CAN_EXPLODE 29
-#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_FIRE 30
-#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_SMASH 31
-#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_IMPACT 32
-#define ED_CHECKBUTTON_ID_CUSTOM_CAN_CHANGE 33
-#define ED_CHECKBUTTON_ID_CHANGE_DELAY 34
-#define ED_CHECKBUTTON_ID_CHANGE_BY_DIRECT_ACT 35
-#define ED_CHECKBUTTON_ID_CHANGE_BY_OTHER_ACT 36
-#define ED_CHECKBUTTON_ID_CHANGE_USE_EXPLOSION 37
-#define ED_CHECKBUTTON_ID_CHANGE_USE_CONTENT 38
-#define ED_CHECKBUTTON_ID_CHANGE_ONLY_COMPLETE 39
-#define ED_CHECKBUTTON_ID_CHANGE_USE_RANDOM 40
-#define ED_CHECKBUTTON_ID_CHANGE_HAS_ACTION 41
-
-#define ED_NUM_CHECKBUTTONS 42
+#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_BLOCK_SNAP_FIELD 10
+#define ED_CHECKBUTTON_ID_BLOCK_LAST_FIELD 11
+#define ED_CHECKBUTTON_ID_SP_BLOCK_LAST_FIELD 12
+#define ED_CHECKBUTTON_ID_INSTANT_RELOCATION 13
+#define ED_CHECKBUTTON_ID_USE_START_ELEMENT 14
+#define ED_CHECKBUTTON_ID_CAN_PASS_TO_WALKABLE 15
+#define ED_CHECKBUTTON_ID_CAN_FALL_INTO_ACID 16
+#define ED_CHECKBUTTON_ID_CAN_MOVE_INTO_ACID 17
+#define ED_CHECKBUTTON_ID_DONT_COLLIDE_WITH 18
+#define ED_CHECKBUTTON_ID_CUSTOM_USE_GRAPHIC 19
+#define ED_CHECKBUTTON_ID_CUSTOM_USE_TEMPLATE 20
+#define ED_CHECKBUTTON_ID_CUSTOM_ACCESSIBLE 21
+#define ED_CHECKBUTTON_ID_CUSTOM_GRAV_REACHABLE 22
+#define ED_CHECKBUTTON_ID_CUSTOM_USE_LAST_VALUE 23
+#define ED_CHECKBUTTON_ID_CUSTOM_WALK_TO_OBJECT 24
+#define ED_CHECKBUTTON_ID_CUSTOM_INDESTRUCTIBLE 25
+#define ED_CHECKBUTTON_ID_CUSTOM_CAN_MOVE 26
+#define ED_CHECKBUTTON_ID_CUSTOM_CAN_FALL 27
+#define ED_CHECKBUTTON_ID_CUSTOM_CAN_SMASH 28
+#define ED_CHECKBUTTON_ID_CUSTOM_SLIPPERY 29
+#define ED_CHECKBUTTON_ID_CUSTOM_DEADLY 30
+#define ED_CHECKBUTTON_ID_CUSTOM_CAN_EXPLODE 31
+#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_FIRE 32
+#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_SMASH 33
+#define ED_CHECKBUTTON_ID_CUSTOM_EXPLODE_IMPACT 34
+#define ED_CHECKBUTTON_ID_CUSTOM_CAN_CHANGE 35
+#define ED_CHECKBUTTON_ID_CHANGE_DELAY 36
+#define ED_CHECKBUTTON_ID_CHANGE_BY_DIRECT_ACT 37
+#define ED_CHECKBUTTON_ID_CHANGE_BY_OTHER_ACT 38
+#define ED_CHECKBUTTON_ID_CHANGE_USE_EXPLOSION 39
+#define ED_CHECKBUTTON_ID_CHANGE_USE_CONTENT 40
+#define ED_CHECKBUTTON_ID_CHANGE_ONLY_COMPLETE 41
+#define ED_CHECKBUTTON_ID_CHANGE_USE_RANDOM 42
+#define ED_CHECKBUTTON_ID_CHANGE_HAS_ACTION 43
+
+#define ED_NUM_CHECKBUTTONS 44
#define ED_CHECKBUTTON_ID_LEVEL_FIRST ED_CHECKBUTTON_ID_INITIAL_GRAVITY
#define ED_CHECKBUTTON_ID_LEVEL_LAST ED_CHECKBUTTON_ID_RANDOM_RESTRICTED
&level.num_yamyam_contents,
NULL, NULL, "number of content areas"
},
+ {
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(4),
+ MIN_ELEMENT_CONTENTS, MAX_ELEMENT_CONTENTS,
+ 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"
+ },
{
ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(0),
MIN_ENVELOPE_XSIZE, MAX_ENVELOPE_XSIZE,
NULL,
"use time orb bug", "use odd time orb behaviour"
},
+ {
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(2),
+ GADGET_ID_RANDOM_BALL_CONTENT, GADGET_ID_NONE,
+ &level.ball_random,
+ NULL,
+ "create single random element", "only create one element from content"
+ },
+ {
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(1),
+ GADGET_ID_INITIAL_BALL_STATE, GADGET_ID_NONE,
+ &level.ball_state_initial,
+ NULL,
+ "magic ball initially activated", "activate magic ball after level start"
+ },
{
ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(0),
GADGET_ID_GROW_INTO_DIGGABLE, GADGET_ID_NONE,
#if RELEASE_3_1_2
EL_EMPTY,
#else
+
+#if 0
EL_EMC_DRIPPER,
+#else
+ EL_EMPTY,
+#endif
+
#endif
EL_EMC_FAKE_GRASS,
EL_EMPTY,
int y = SY + ED_AREA_MAGIC_BALL_CONTENT_YPOS(0) + ED_BORDER_AREA_YSIZE;
int i;
+ /* display counter to choose number of element content areas */
+ MapCounterButtons(ED_COUNTER_ID_BALL_CONTENT);
+
for (i = 0; i < MAX_ELEMENT_CONTENTS; i++)
- MapDrawingArea(ED_DRAWING_ID_MAGIC_BALL_CONTENT_0 + i);
+ {
+ int id = ED_DRAWING_ID_MAGIC_BALL_CONTENT_0 + i;
+
+ if (i < level.num_ball_contents)
+ {
+ MapDrawingArea(id);
+ }
+ else
+ {
+ int font_height = getFontHeight(FONT_TEXT_1);
+
+ UnmapDrawingArea(id);
+
+ /* delete content areas in case of reducing number of them */
+ DrawBackground(SX + drawingarea_info[id].x - MINI_TILEX / 2,
+ SY + drawingarea_info[id].y - MINI_TILEY / 2,
+ 4 * MINI_TILEX,
+ 4 * MINI_TILEY + ED_GADGET_TEXT_DISTANCE + font_height);
+ }
+ }
DrawText(x, y + 0 * MINI_TILEY, "generated", FONT_TEXT_1);
DrawText(x, y + 1 * MINI_TILEY, "when", FONT_TEXT_1);
(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);
counterbutton_info[counter_id].value = elements_with_counter[i].value;
MapDrawingArea(ED_DRAWING_ID_AMOEBA_CONTENT);
else if (properties_element == EL_YAMYAM)
DrawYamYamContentAreas();
- }
+ else if (properties_element == EL_EMC_MAGIC_BALL)
+ {
+ DrawMagicBallContentAreas();
- if (properties_element == EL_EMC_MAGIC_BALL)
- DrawMagicBallContentAreas();
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_RANDOM_BALL_CONTENT);
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_INITIAL_BALL_STATE);
+ }
+ }
if (ELEM_IS_PLAYER(properties_element))
{
DrawYamYamContentAreas();
break;
+ case ED_COUNTER_ID_BALL_CONTENT:
+ DrawMagicBallContentAreas();
+ break;
+
case ED_COUNTER_ID_GROUP_CONTENT:
DrawGroupElementArea(properties_element);
CopyGroupElementPropertiesToGame(properties_element);