X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Feditor.c;h=9677a17cfc1e018891b785b05945d7cb31ca1988;hb=d224496c2260b956163980d3546010629472a055;hp=78864c6d34806f4aabb1649b010c71e28707c7f7;hpb=9b469d4246eb3b346aadba8ec3fe20db88340606;p=rocksndiamonds.git diff --git a/src/editor.c b/src/editor.c index 78864c6d..9677a17c 100644 --- a/src/editor.c +++ b/src/editor.c @@ -8236,6 +8236,26 @@ static void InitLevelSetInfo() levelset_save_mode = LEVELSET_SAVE_MODE_UPDATE; } +static void ChangeEditorToLevelSet(char *levelset_subdir) +{ + leveldir_current = getTreeInfoFromIdentifier(leveldir_first, levelset_subdir); + + // the previous level set might have used custom artwork + ReloadCustomArtwork(0); + + LoadLevelSetup_SeriesInfo(); + + SaveLevelSetup_LastSeries(); + SaveLevelSetup_SeriesInfo(); + + TapeErase(); + + LoadLevel(level_nr); + LoadScore(level_nr); + + DrawLevelEd(); +} + void DrawLevelEd() { int fade_mask = REDRAW_FIELD; @@ -12636,16 +12656,17 @@ static void HandleTextbuttonGadgets(struct GadgetInfo *gi) levelset_name, levelset_author, levelset_num_levels, - levelset_first_level_nr)) + 1)) { Request("New level set created!", REQ_CONFIRM); + + AddUserLevelSetToLevelInfo(levelset_subdir); + ChangeEditorToLevelSet(levelset_subdir); } else { Request("Creating new level set failed!", REQ_CONFIRM); } - - DrawLevelInfoWindow(); // update (increment) level set directory name } } else if (type_id == ED_TEXTBUTTON_ID_ADD_CHANGE_PAGE &&