X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Feditor.c;h=6509cbbea2be3bc11221ad335ad693412d4a0db8;hb=7eb9afbda870a52bfef66b5d1750696a6add61c4;hp=3512218ee6bbb0fd3c4d1372c5b3d5fa53810bab;hpb=4dad971280a07058d01449d5e6db2b036470015d;p=rocksndiamonds.git diff --git a/src/editor.c b/src/editor.c index 3512218e..6509cbbe 100644 --- a/src/editor.c +++ b/src/editor.c @@ -7612,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); @@ -7690,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); @@ -12264,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 {