From f5912cf2c80e410755bc71f9a09ac8781ac5c4a8 Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Thu, 29 May 2025 13:51:34 +0200 Subject: [PATCH] added "please wait" message screen when extracting level set zip file --- src/events.c | 3 +++ src/screens.c | 21 +++++++++++++++++++++ src/screens.h | 1 + 3 files changed, 25 insertions(+) diff --git a/src/events.c b/src/events.c index 7a70da6c..fb5ee857 100644 --- a/src/events.c +++ b/src/events.c @@ -1594,6 +1594,9 @@ static int HandleDropFileEvent(char *filename) } } + // show "please wait" message, because extracting zip file may take some time + DrawScreenBeforeAddingSet(tree_type); + // extract level or artwork set from zip file to target directory char *top_dir = ExtractZipFileIntoDirectory(filename, directory, tree_type); diff --git a/src/screens.c b/src/screens.c index 4e1c05a4..4ac66a28 100644 --- a/src/screens.c +++ b/src/screens.c @@ -11855,6 +11855,27 @@ boolean DoScreenAction(int image_id) return FALSE; } +void DrawScreenBeforeAddingSet(int tree_type) +{ + int font_nr_1 = FC_GREEN; + int font_nr_2 = FC_YELLOW; + int ypos_1 = 120; + int ypos_2 = 150; + char message_1[100]; + char message_2[100]; + char *set_type_text = (tree_type == TREE_TYPE_LEVEL_DIR ? "level" : "artwork"); + + sprintf(message_1, "Adding new %s set!", set_type_text); + sprintf(message_2, "Please wait!"); + + ClearField(); + + DrawTextSCentered(ypos_1, font_nr_1, message_1); + DrawTextSCentered(ypos_2, font_nr_2, message_2); + + BackToFront(); +} + void DrawScreenAfterAddingSet(char *tree_subdir_new, int tree_type) { // get tree info node of newly added level or artwork set diff --git a/src/screens.h b/src/screens.h index 1ea255ae..c9b12a94 100644 --- a/src/screens.h +++ b/src/screens.h @@ -23,6 +23,7 @@ void DrawMainMenuExt(int); void DrawAndFadeInMainMenu(int); void DrawMainMenu(void); void DrawHallOfFame(int); +void DrawScreenBeforeAddingSet(int); void DrawScreenAfterAddingSet(char *, int); void DrawInfoScreen_FromMainMenu(int); void DrawInfoScreen_FromInitGame(int); -- 2.34.1