},
{
ED_SETTINGS_XPOS(0), ED_COUNTER_YPOS(4),
- 0, 999,
+ 0, 9999,
GADGET_ID_LEVEL_TIMELIMIT_DOWN, GADGET_ID_LEVEL_TIMELIMIT_UP,
GADGET_ID_LEVEL_TIMELIMIT_TEXT, GADGET_ID_NONE,
&level.time,
"slip down from certain flat walls","use EM style slipping behaviour"
},
{
- ED_SETTINGS_XPOS(0), ED_SETTINGS_YPOS(0),
+ ED_SETTINGS_XPOS(0), ED_SETTINGS_YPOS(1),
GADGET_ID_USE_SPRING_BUG, GADGET_ID_NONE,
&level.use_spring_bug,
NULL,
}
};
+#if 0
+
static struct
{
short element;
{ -1, NULL }
};
+#endif
+
/*
-----------------------------------------------------------------------------
GDI_NUMBER_VALUE, 0,
GDI_NUMBER_MIN, counterbutton_info[i].min_value,
GDI_NUMBER_MAX, counterbutton_info[i].max_value,
- GDI_TEXT_SIZE, 3,
+ GDI_TEXT_SIZE, 3, /* minimal counter text size */
GDI_TEXT_FONT, font_type,
GDI_TEXT_FONT_ACTIVE, font_type_active,
GDI_DESIGN_UNPRESSED, gd_bitmap, gd_x, gd_y,
int x_right = gi_up->x + gi_up->width + xoffset_right;
int y_above = gi_down->y - yoffset_above;
int x = gi_down->x;
- int y = gi_up->y + yoffset;
+ int y; /* set after gadget position was modified */
#endif
-#if 1
- /* special case needed for "score" counter gadget */
+ /* set position for "score" counter gadget */
if (id == ED_COUNTER_ID_ELEMENT_SCORE)
{
ModifyGadget(gi_down, GDI_Y, SY + counterbutton_info[id].y, GDI_END);
ModifyGadget(gi_text, GDI_Y, SY + counterbutton_info[id].y, GDI_END);
ModifyGadget(gi_up, GDI_Y, SY + counterbutton_info[id].y, GDI_END);
- y = gi_up->y + yoffset;
}
-#endif
+
+ y = gi_up->y + yoffset;
if (counterbutton_info[id].text_above)
DrawText(x, y_above, counterbutton_info[id].text_above, FONT_TEXT_1);
int yoffset = ED_BORDER_SIZE;
int x_left = gi->x - xoffset_left;
int x_right = gi->x + gi->width + xoffset_right;
- int y = gi->y + yoffset;
+ int y; /* set after gadget position was modified */
- /* special case needed for "stickybutton" and "can move into acid" gadgets */
+ /* set position for "stickybutton" and "can move into acid" gadgets */
if (id == ED_CHECKBUTTON_ID_STICK_ELEMENT ||
id == ED_CHECKBUTTON_ID_CAN_MOVE_INTO_ACID)
- {
- ModifyGadget(gi, GDI_CHECKED, *checkbutton_info[id].value,
- GDI_Y, SY + checkbutton_info[id].y, GDI_END);
- y = gi->y + yoffset;
- }
+ ModifyGadget(gi, GDI_Y, SY + checkbutton_info[id].y, GDI_END);
+
+ y = gi->y + yoffset;
if (checkbutton_info[id].text_left)
DrawText(x_left, y, checkbutton_info[id].text_left, FONT_TEXT_1);
if (checkbutton_info[id].text_right)
DrawText(x_right, y, checkbutton_info[id].text_right, FONT_TEXT_1);
+ ModifyGadget(gi, GDI_CHECKED, *checkbutton_info[id].value, GDI_END);
+
MapGadget(gi);
}
static void CopyClassicElementPropertiesToEditor(int element)
{
+#if 1
+ if (COULD_MOVE_INTO_ACID(element))
+ custom_element_properties[EP_CAN_MOVE_INTO_ACID] =
+ getMoveIntoAcidProperty(&level, element);
+
+#else
+
if (COULD_MOVE_INTO_ACID(element))
{
int bit_nr = get_special_property_bit(element, EP_CAN_MOVE_INTO_ACID);
custom_element_properties[EP_CAN_MOVE_INTO_ACID] =
((level.can_move_into_acid & (1 << bit_nr)) != 0);
}
+#endif
}
static void CopyElementPropertiesToEditor(int element)
static void CopyClassicElementPropertiesToGame(int element)
{
+#if 1
+ if (COULD_MOVE_INTO_ACID(element))
+ setMoveIntoAcidProperty(&level, element,
+ custom_element_properties[EP_CAN_MOVE_INTO_ACID]);
+
+#else
+
if (COULD_MOVE_INTO_ACID(element))
{
int bit_nr = get_special_property_bit(element, EP_CAN_MOVE_INTO_ACID);
level.can_move_into_acid |= (1 << bit_nr);
}
}
+#endif
}
static void CopyElementPropertiesToGame(int element)
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_EM_SLIPPERY_GEMS);
if (COULD_MOVE_INTO_ACID(properties_element) &&
- !IS_CUSTOM_ELEMENT(properties_element))
+ (!IS_CUSTOM_ELEMENT(properties_element) ||
+ edit_mode_properties == ED_MODE_PROPERTIES_CONFIG_2))
{
checkbutton_info[ED_CHECKBUTTON_ID_CAN_MOVE_INTO_ACID].y =
- ED_SETTINGS_YPOS(HAS_CONTENT(properties_element) ? 1 : 0);
+ ED_SETTINGS_YPOS(IS_CUSTOM_ELEMENT(properties_element) ? 6 :
+ HAS_CONTENT(properties_element) ? 1 : 0);
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_CAN_MOVE_INTO_ACID);
}
}
else if (edit_mode_properties == ED_MODE_PROPERTIES_CONFIG_2)
{
+ /* set position for special checkbutton for "can move into acid" */
+
/* draw checkbutton gadgets */
for (i = ED_CHECKBUTTON_ID_CUSTOM2_FIRST;
i <= ED_CHECKBUTTON_ID_CUSTOM2_LAST; i++)
{
int element = brush_buffer[x][y];
int element_mapped = element;
+
+#if 0
char *element_string = "?";
int k;
}
printf("`%s", element_string);
+
+#else
+
+ if (IS_CUSTOM_ELEMENT(element))
+ element_mapped = EL_CUSTOM_START;
+ else if (element > EL_ENVELOPE_4)
+ element_mapped = EL_CHAR_QUESTION; /* change to EL_UNKNOWN ... */
+
+ printf("`%03d", element_mapped);
+#endif
}
printf("\n");