X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Feditor.c;h=828ebd7fd9987128d896279f0636d60d51720582;hp=091bbd7c4faa47fc49e933fd4193846773a1f554;hb=6f5b701331e07bdd3e02eeb61f66bfa14d5b530f;hpb=70fab7480fcedd8f51015d592fc94f3ce50172d0 diff --git a/src/editor.c b/src/editor.c index 091bbd7c..828ebd7f 100644 --- a/src/editor.c +++ b/src/editor.c @@ -79,7 +79,7 @@ #define IMG_BORDER_2 IMG_EDITOR_ELEMENT_BORDER_INPUT #define ED_ELEMENT_BORDER (graphic_info[IMG_BORDER_1].border_size) #define ED_DRAWINGAREA_BORDER_SIZE (graphic_info[IMG_BORDER_2].border_size) -#define ED_DRAWINGAREA_TILE_SIZE (graphic_info[IMG_BORDER_2].tile_size) +#define ED_DRAWINGAREA_TILE_SIZE (editor.drawingarea.tile_size) /* values for checkbutton gadgets */ #define ED_CHECKBUTTON_XSIZE (graphic_info[IMG_EDITOR_CHECKBOX].width) @@ -1055,7 +1055,7 @@ static struct { IMG_EDITOR_BUTTON_GFX_ZOOM_LEVEL, GADGET_ID_ZOOM, &editor.button.zoom_level, GD_TYPE_NORMAL_BUTTON, - "zoom level tile size", '-' + "zoom level tile size", '+' }, { IMG_EDITOR_BUTTON_GFX_ROTATE_RIGHT, GADGET_ID_WRAP_RIGHT, @@ -3424,10 +3424,6 @@ static int new_element3 = EL_SAND; #define BUTTON_ELEMENT(button) ((button) == 1 ? new_element1 : \ (button) == 2 ? new_element2 : \ (button) == 3 ? new_element3 : EL_EMPTY) -#define BUTTON_STEPSIZE(button) ((button) == 1 ? 1 : \ - (button) == 2 ? 5 : \ - (button) == 3 ? 10 : \ - (button)) /* forward declaration for internal use */ static void ModifyEditorCounterValue(int, int); @@ -5221,9 +5217,9 @@ void PrintEditorElementList() int cascade_element_show = EL_CASCADE_INACTIVE(cascade_element); char *headline = element_info[cascade_element_show].editor_description; - printf_line_with_prefix("# ", "-", 77); - printf("# %s\n", headline); - printf_line_with_prefix("# ", "-", 77); + PrintLineWithPrefix("# ", "-", 77); + Print("# %s\n", headline); + PrintLineWithPrefix("# ", "-", 77); } for (j = 0; j < *editor_elements_info[i].headline_list_size; j++) @@ -5233,21 +5229,21 @@ void PrintEditorElementList() if (IS_EDITOR_CASCADE(element)) element = EL_CHAR_MINUS; - printf("# %s\n", element_info[element].token_name); + Print("# %s\n", element_info[element].token_name); } if (j > 0) - printf("#\n"); + Print("#\n"); for (j = 0; j < *editor_elements_info[i].element_list_size; j++) { int element = (*editor_elements_info[i].element_list)[j]; - printf("# %s\n", element_info[element].token_name); + Print("# %s\n", element_info[element].token_name); } if (j > 0) - printf("#\n"); + Print("#\n"); } } @@ -7616,25 +7612,23 @@ void InitZoomLevelSettings() MAX_ED_FIELDY = getMaxEdFieldY(FALSE); } -static boolean playfield_area_changed = FALSE; - void DrawLevelEd() { - StopAnimation(); + int fade_mask = REDRAW_FIELD; CloseDoor(DOOR_CLOSE_ALL); - FadeOut(REDRAW_FIELD); - - /* needed after playing if editor playfield area has different size */ - ClearRectangle(drawto, REAL_SX, REAL_SY, FULL_SXSIZE, FULL_SYSIZE); - /* needed if different viewport properties defined for editor */ ChangeViewportPropertiesIfNeeded(); - InitZoomLevelSettings(); + if (CheckIfGlobalBorderHasChanged()) + fade_mask = REDRAW_ALL; - playfield_area_changed = DrawingAreaChanged(); + FadeOut(fade_mask); + + ClearField(); + + InitZoomLevelSettings(); OpenDoor(DOOR_OPEN_1 | DOOR_OPEN_2 | DOOR_NO_DELAY); @@ -7694,7 +7688,9 @@ void DrawLevelEd() DrawEditModeWindow(); - FadeIn(playfield_area_changed ? REDRAW_ALL : REDRAW_FIELD); + DrawMaskedBorder(fade_mask); + + FadeIn(fade_mask); /* copy actual editor door content to door double buffer for OpenDoor() */ BlitBitmap(drawto, bitmap_db_door_1, DX, DY, DXSIZE, DYSIZE, 0, 0); @@ -10925,7 +10921,7 @@ static void HandleDrawingAreas(struct GadgetInfo *gi) DrawFixedGraphicExt(drawto, gi->x + sx * TILEX, gi->y + sy * TILEY, - el2img(new_element), 0); + el2edimg(new_element), 0); if (id == GADGET_ID_CUSTOM_GRAPHIC) new_element = GFX_ELEMENT(new_element); @@ -11987,12 +11983,12 @@ void HandleLevelEditorKeyInput(Key key) ClickOnGadget(level_editor_gadget[GADGET_ID_SINGLE_ITEMS], button); else if (letter == 'U') ClickOnGadget(level_editor_gadget[GADGET_ID_UNDO], 3); - else if (key == KSYM_KP_Subtract) - ClickOnGadget(level_editor_gadget[GADGET_ID_ZOOM], 1); + else if (key == KSYM_KP_Subtract || letter == '-') + ClickOnGadget(level_editor_gadget[GADGET_ID_ZOOM], 3); else if (key == KSYM_KP_0 || letter == '0') ClickOnGadget(level_editor_gadget[GADGET_ID_ZOOM], 2); - else if (key == KSYM_KP_Add || letter == '+') - ClickOnGadget(level_editor_gadget[GADGET_ID_ZOOM], 3); + else if (key == KSYM_KP_Add) + ClickOnGadget(level_editor_gadget[GADGET_ID_ZOOM], 1); else if (key == KSYM_Return || key == KSYM_space || key == setup.shortcut.toggle_pause) @@ -12268,7 +12264,7 @@ void RequestExitLevelEditor(boolean ask_if_level_has_changed, game_status = GAME_MODE_MAIN; - DrawAndFadeInMainMenu(playfield_area_changed ? REDRAW_ALL : REDRAW_FIELD); + DrawMainMenu(); } else {