added "please wait" message screen when extracting level set zip file
authorHolger Schemel <info@artsoft.org>
Thu, 29 May 2025 11:51:34 +0000 (13:51 +0200)
committerHolger Schemel <info@artsoft.org>
Thu, 29 May 2025 11:55:21 +0000 (13:55 +0200)
src/events.c
src/screens.c
src/screens.h

index 7a70da6cac8ceb25b8632f88db0a0a4429da89f6..fb5ee85732804f77b0ed44b20a6ccb5680be3357 100644 (file)
@@ -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);
 
index 4e1c05a4c658c0c4fcbdfc07ec1fb987644e3495..4ac66a284d3b5c60dd9cdd7a10795a8b2b795b3f 100644 (file)
@@ -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
index 1ea255ae6c97f49ff20e0e989f49745fd22e2b36..c9b12a94e3961d77621679d4098c53e255dcb617 100644 (file)
@@ -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);