X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Feditor.c;h=6682acf0e50264e188fc1f5213d67856b4f00b44;hb=3be7c7dc2af1580d9ba24118ed36fb001d09ebc1;hp=4705b53c874e0b252049170f6676c948fb3b35de;hpb=be789d9a341f5d7369f4aa2f74e2f85f3e004a4c;p=rocksndiamonds.git diff --git a/src/editor.c b/src/editor.c index 4705b53c..6682acf0 100644 --- a/src/editor.c +++ b/src/editor.c @@ -7625,8 +7625,6 @@ void DrawLevelEd() { int fade_mask = REDRAW_FIELD; - CloseDoor(DOOR_CLOSE_ALL); - /* needed if different viewport properties defined for editor */ ChangeViewportPropertiesIfNeeded(); @@ -12267,7 +12265,26 @@ void RequestExitLevelEditor(boolean ask_if_level_has_changed, Request("Level has changed! Exit without saving?", REQ_ASK | REQ_STAY_OPEN)) { - SetDoorState(DOOR_CLOSE_2); + struct RectWithBorder *vp_door_1 = &viewport.door_1[GAME_MODE_MAIN]; + struct RectWithBorder *vp_door_2 = &viewport.door_2[GAME_MODE_MAIN]; + + /* draw normal door */ + UndrawSpecialEditorDoor(); + + // close editor doors if viewport definition is the same as in main menu + if (vp_door_1->x == DX && + vp_door_1->y == DY && + vp_door_1->width == DXSIZE && + vp_door_1->height == DYSIZE && + vp_door_2->x == VX && + vp_door_2->y == VY && + vp_door_2->width == VXSIZE && + vp_door_2->height == VYSIZE) + CloseDoor(DOOR_CLOSE_ALL | DOOR_NO_DELAY); + else + SetDoorState(DOOR_CLOSE_2); + + BackToFront(); if (quick_quit) FadeSkipNextFadeIn();