X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Flevel_subset.cpp;h=19edf4772766d1d00fe400717b609b78e889b856;hb=44c614038ecdc2d1b69a6fee255d9c0ebc2a5098;hp=0a67f1dafadf37f7ad4024518b0ea529756dd3f1;hpb=d46c78c842ab4090a3f46e560c891234167f124b;p=supertux.git diff --git a/src/level_subset.cpp b/src/level_subset.cpp index 0a67f1daf..19edf4772 100644 --- a/src/level_subset.cpp +++ b/src/level_subset.cpp @@ -20,10 +20,13 @@ #include +#include +#include #include #include #include "app/setup.h" #include "level.h" +#include "resources.h" #include "app/globals.h" #include "video/surface.h" #include "level_subset.h" @@ -89,14 +92,13 @@ void LevelSubset::load(const std::string& subset) // Check in which directory our subset is located (ie. ~/.supertux/ // or SUPERTUX_DATADIR) - std::string filename; - filename = st_dir + "/levels/" + subset + "/info"; - if (access(filename.c_str(), R_OK) != 0) - { - filename = datadir + "/levels/" + subset + "/info"; - if (access(filename.c_str(), R_OK) != 0) - std::cout << "Error: LevelSubset: couldn't find subset: " << subset << std::endl; - } + std::string filename = get_resource_filename( + std::string("levels/") + subset + "/info"); + if(filename == "") { + std::stringstream msg; + msg << "Couldn't find level subset '" << subset << "'."; + throw new std::runtime_error(msg.str()); + } read_info_file(filename); @@ -115,7 +117,8 @@ void LevelSubset::load(const std::string& subset) for(std::set::iterator i = files.begin(); i != files.end(); ++i) { if (has_suffix(*i, ".stl")) - levels.push_back(subset+ "/" + *i); + levels.push_back(get_resource_filename( + std::string("levels/" + subset+ "/" + *i))); } } } @@ -177,5 +180,3 @@ LevelSubset::get_num_levels() const { return levels.size(); } - -/* EOF */