+ Error(ERR_WARN, "cannot read current level directory '%s'", directory);
+
+ return basename;
+ }
+
+ while ((dir_entry = readdir(dir)) != NULL) /* loop until last dir entry */
+ {
+ char *entry_basename = dir_entry->d_name;
+ boolean valid_entry_found = FALSE;
+
+ switch (type)
+ {
+ case LEVEL_FILE_TYPE_SP:
+ if (strlen(entry_basename) == 10 &&
+ (strncmp(entry_basename, "levels.d", 8) == 0 ||
+ strncmp(entry_basename, "LEVELS.D", 8) == 0))
+ {
+ /* looks like a typical filename of a Supaplex level package file */
+ strcpy(basename, entry_basename);
+ valid_entry_found = TRUE;
+ }
+ break;
+
+ default:
+ valid_entry_found = TRUE;
+ break;
+ }
+
+ if (valid_entry_found)