X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Feditor.c;h=c4adb46d42732882e3760085adff74d84712f450;hb=548bc4ec64319d780a7bc38a6d0141bf526c7e16;hp=8e66a623605435b30b6075146aac8b8693c57cfe;hpb=000f4fbffe0d915d1ded9c981a5a2d521cdf7e5e;p=rocksndiamonds.git diff --git a/src/editor.c b/src/editor.c index 8e66a623..c4adb46d 100644 --- a/src/editor.c +++ b/src/editor.c @@ -2516,7 +2516,7 @@ static struct GADGET_ID_EM_SLIPPERY_GEMS, GADGET_ID_NONE, &level.em_slippery_gems, NULL, - "slip down from certain flat walls","use EM style slipping behaviour" + "slip down from certain flat walls","use EM/DC style slipping behaviour" }, { ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(2), @@ -3574,15 +3574,20 @@ static int editor_el_diamond_caves[] = EL_CONVEYOR_BELT_3_SWITCH_RIGHT, EL_CONVEYOR_BELT_4_SWITCH_RIGHT, + EL_TIMEGATE_CLOSED, + EL_TIMEGATE_OPEN, + EL_TIMEGATE_SWITCH, + EL_DC_TIMEGATE_SWITCH, + EL_SWITCHGATE_CLOSED, EL_SWITCHGATE_OPEN, EL_SWITCHGATE_SWITCH_UP, EL_SWITCHGATE_SWITCH_DOWN, - EL_TIMEGATE_CLOSED, - EL_TIMEGATE_OPEN, - EL_TIMEGATE_SWITCH, EL_EMPTY, + EL_EMPTY, + EL_DC_SWITCHGATE_SWITCH_UP, + EL_DC_SWITCHGATE_SWITCH_DOWN, EL_SIGN_EXCLAMATION, EL_SIGN_STOP, @@ -3592,7 +3597,7 @@ static int editor_el_diamond_caves[] = EL_STEELWALL_SLIPPERY, EL_INVISIBLE_SAND, EL_LANDMINE, - EL_EMPTY, + EL_DC_LANDMINE, EL_SHIELD_NORMAL, EL_SHIELD_DEADLY, @@ -3673,6 +3678,26 @@ static int editor_el_diamond_caves[] = EL_DC_STEELWALL_1_TOP, EL_DC_STEELWALL_1_TOPLEFT_2, EL_EMPTY, + + EL_EXPANDABLE_STEELWALL_HORIZONTAL, + EL_EXPANDABLE_STEELWALL_VERTICAL, + EL_EXPANDABLE_STEELWALL_ANY, + EL_EMPTY, + + EL_EM_EXIT_CLOSED, + EL_EM_EXIT_OPEN, + EL_EM_STEEL_EXIT_CLOSED, + EL_EM_STEEL_EXIT_OPEN, + + EL_DC_KEY_WHITE, + EL_DC_GATE_WHITE, + EL_DC_GATE_WHITE_GRAY, + EL_DC_GATE_FAKE_GRAY, + + EL_DC_MAGIC_WALL, + EL_QUICKSAND_FAST_EMPTY, + EL_QUICKSAND_FAST_FULL, + EL_EMPTY, }; static int *editor_hl_diamond_caves_ptr = editor_hl_diamond_caves; static int *editor_el_diamond_caves_ptr = editor_el_diamond_caves; @@ -5298,8 +5323,11 @@ static void CreateCounterButtons() if (i == ED_COUNTER_ID_SELECT_LEVEL) { font_type = FONT_LEVEL_NUMBER; +#if 1 + font_type_active = FONT_LEVEL_NUMBER_ACTIVE; +#else font_type_active = FONT_LEVEL_NUMBER; - +#endif x += 2 * ED_GADGET_DISTANCE; y -= ED_GADGET_DISTANCE; @@ -7496,17 +7524,21 @@ static int PrintElementDescriptionFromFile(char *filename, int start_line) static void DrawPropertiesTabulatorGadgets() { - struct GadgetInfo *gd_gi = level_editor_gadget[GADGET_ID_PROPERTIES_INFO]; - struct GadgetDesign *gd = &gd_gi->alt_design[GD_BUTTON_UNPRESSED]; - int gd_x = gd->x + gd_gi->border.width / 2; - int gd_y = gd->y + gd_gi->height - 1; + struct GadgetInfo *gd_gi1 = level_editor_gadget[GADGET_ID_PROPERTIES_INFO]; + struct GadgetInfo *gd_gi4 = level_editor_gadget[GADGET_ID_PROPERTIES_CHANGE]; + struct GadgetDesign *gd = &gd_gi1->alt_design[GD_BUTTON_UNPRESSED]; + int gd_x = gd->x + gd_gi1->border.width / 2; + int gd_y = gd->y + gd_gi1->height - 1; Pixel tab_color = GetPixel(gd->bitmap, gd_x, gd_y); int id_first = ED_TEXTBUTTON_ID_PROPERTIES_INFO; int id_last = ED_TEXTBUTTON_ID_PROPERTIES_CONFIG; +#if 1 +#else int max_tabs = 4; +#endif int i; - /* draw additional "advanced" tabulator for custom elements */ + /* draw additional "change" tabulator for custom elements */ if (IS_CUSTOM_ELEMENT(properties_element)) id_last = ED_TEXTBUTTON_ID_PROPERTIES_CHANGE; @@ -7522,21 +7554,29 @@ static void DrawPropertiesTabulatorGadgets() continue; /* draw background line below tabulator button */ - ClearRectangleOnBackground(drawto, gi->x, gi->y + gi->height, gi->width,1); + ClearRectangleOnBackground(drawto, gi->x, gi->y + gi->height, gi->width, 1); /* draw solid line below inactive tabulator buttons */ if (!active && tab_color != BLACK_PIXEL) /* black => transparent */ - FillRectangle(drawto, gi->x, gi->y + gi->height, gi->width,1, tab_color); + FillRectangle(drawto, gi->x, gi->y + gi->height, gi->width, 1, tab_color); ModifyGadget(gi, GDI_ACTIVE, active, GDI_END); MapTextbuttonGadget(i); } +#if 1 + /* draw little border line below tabulator buttons */ + if (tab_color != BLACK_PIXEL) /* black => transparent */ + FillRectangle(drawto, gd_gi1->x, gd_gi1->y + gd_gi1->height + 1, + gd_gi4->x - gd_gi1->x + gd_gi4->width, ED_GADGET_DISTANCE, + tab_color); +#else /* draw little border line below tabulator buttons */ if (tab_color != BLACK_PIXEL) /* black => transparent */ - FillRectangle(drawto, gd_gi->x, gd_gi->y + gd_gi->height + 1, - max_tabs * gd_gi->width + (max_tabs -1) * ED_GADGET_DISTANCE, + FillRectangle(drawto, gd_gi1->x, gd_gi1->y + gd_gi1->height + 1, + max_tabs * gd_gi1->width + (max_tabs -1) * ED_GADGET_DISTANCE, ED_GADGET_DISTANCE, tab_color); +#endif } static void DrawPropertiesInfo() @@ -7590,6 +7630,7 @@ static void DrawPropertiesInfo() /* pre-defined properties */ { EP_CAN_PASS_MAGIC_WALL, "- can pass magic walls" }, + { EP_CAN_PASS_DC_MAGIC_WALL,"- can pass magic walls (DC style)" }, { EP_SWITCHABLE, "- can be switched" }, #if 0 { EP_HAS_EDITOR_CONTENT, "- can contain other elements" }, @@ -7757,9 +7798,11 @@ static struct { 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_DC_MAGIC_WALL, &level.time_magic_wall, TEXT_DURATION }, { EL_ROBOT_WHEEL, &level.time_wheel, TEXT_DURATION }, - { EL_TIMEGATE_SWITCH, &level.time_timegate, TEXT_DURATION }, + { EL_TIMEGATE_SWITCH, &level.time_timegate, TEXT_DURATION }, + { EL_DC_TIMEGATE_SWITCH,&level.time_timegate, TEXT_DURATION }, { EL_LIGHT_SWITCH, &level.time_light, TEXT_DURATION }, { EL_LIGHT_SWITCH_ACTIVE, &level.time_light, TEXT_DURATION }, { EL_SHIELD_NORMAL, &level.shield_normal_time, TEXT_DURATION },