- printf("World: Read error in %s",filename);
- }
-
- if (strcmp(lisp_symbol(cur), "supertux-level-subset") == 0)
- {
- parse(lisp_cdr(root_obj));
-
- }
-
- lisp_free(root_obj);
- fclose(fi);
-
- snprintf(str, 1024, "%s.png", filename);
- if(faccessible(str))
- {
- delete image;
- image = new Surface(str,IGNORE_ALPHA);
- }
- else
- {
- snprintf(filename, 1024, "%s/images/status/level-subset-info.png", datadir.c_str());
- delete image;
- image = new Surface(filename,IGNORE_ALPHA);
- }
- }
-
- for(i=1; i != -1; ++i)
- {
- /* Get the number of levels in this subset */
- snprintf(filename, 1024, "%s/levels/%s/level%d.stl", st_dir, subset,i);
- if(!faccessible(filename))
- {
- snprintf(filename, 1024, "%s/levels/%s/level%d.stl", datadir.c_str(), subset,i);
- if(!faccessible(filename))
- break;
+ if (has_suffix(*i, ".stl"))
+ levels.push_back(get_resource_filename(
+ std::string("levels/" + subset+ "/" + *i)));