Uploading the level editor I was working on - It isn't still usable, but it was only...
[supertux.git] / src / level_subset.cpp
index 5d4e24f..5cd4d2a 100644 (file)
@@ -19,6 +19,7 @@
 //  02111-1307, USA.
 
 #include <assert.h>
+#include <unistd.h>
 #include "app/setup.h"
 #include "level.h"
 #include "app/globals.h"
@@ -75,22 +76,22 @@ void LevelSubset::read_info_file(const std::string& info_file)
   lisp_free(root_obj);
 }
 
-void LevelSubset::load(const char* subset)
+void LevelSubset::load(const std::string& subset)
 {
   name = subset;
   
   // Check in which directory our subset is located (ie. ~/.supertux/
   // or SUPERTUX_DATADIR)
-  char filename[1024];
-  snprintf(filename, 1024, "%s/levels/%s/", st_dir, subset);
-  if (access(filename, R_OK) == 0)
+  std::string filename;
+  filename = st_dir + "/levels/" + subset + "/";
+  if (access(filename.c_str(), R_OK) == 0)
     {
       directory = filename;
     }
   else
     {
-      snprintf(filename, 1024, "%s/levels/%s/", datadir.c_str(), subset);
-      if (access(filename, R_OK) == 0)
+      filename = datadir + "/levels/" + subset + "/";
+      if (access(filename.c_str(), R_OK) == 0)
         directory = filename;
       else
         std::cout << "Error: LevelSubset: couldn't find subset: " << subset << std::endl;
@@ -103,14 +104,14 @@ void LevelSubset::load(const char* subset)
       // directory to see what we can find
       std::set<std::string> files;
   
-      snprintf(filename, 1024, "%s/levels/%s/", st_dir, subset);
-      if(access(filename, R_OK) == 0)
+      filename = st_dir + "/levels/" + subset + "/";
+      if(access(filename.c_str(), R_OK) == 0)
         {
           files = FileSystem::read_directory(filename);
         }
       else
         {
-          snprintf(filename, 1024, "%s/levels/%s/", datadir.c_str(), subset);
+          filename = datadir + "/levels/" + subset + "/";
           files = FileSystem::read_directory(filename);
         }
   
@@ -169,6 +170,7 @@ LevelSubset::get_level_filename(unsigned int num)
 {
   assert(num < levels.size());
 
+std::cerr << "levels[" << num << "]: " << levels[num] << std::endl;
   return directory + levels[num];
 }