diff --git a/projects/mtg/include/utils.h b/projects/mtg/include/utils.h index 3c142866e..9a5863442 100644 --- a/projects/mtg/include/utils.h +++ b/projects/mtg/include/utils.h @@ -98,5 +98,6 @@ bool fileExists(const char * filename); bool FileExists(const string & filename); std::string buildFilePath(const vector & folders, const string & filename); +std::string ensureFolder(const string & folderName); #endif diff --git a/projects/mtg/src/GameStateStory.cpp b/projects/mtg/src/GameStateStory.cpp index d641a086f..a54e7142f 100644 --- a/projects/mtg/src/GameStateStory.cpp +++ b/projects/mtg/src/GameStateStory.cpp @@ -26,11 +26,12 @@ void GameStateStory::loadStoriesMenu(const char * root) for (size_t i = 0; i < subFolders.size(); ++i) { - string filename = root + subFolders[i] + "story.xml"; + string subfolder = ensureFolder(subFolders[i]); + string filename = root + subfolder + "story.xml"; if (FileExists(filename)) { - subFolders[i].resize(subFolders[i].length() - 1); //remove trailing slash - stories.push_back(subFolders[i]); + subfolder.resize(subfolder.length() - 1); //remove trailing slash + stories.push_back(subfolder); } } diff --git a/projects/mtg/src/utils.cpp b/projects/mtg/src/utils.cpp index ee7215d54..10d52e925 100644 --- a/projects/mtg/src/utils.cpp +++ b/projects/mtg/src/utils.cpp @@ -367,4 +367,16 @@ std::string buildFilePath(const vector & folders, const string & filenam result.append(filename); return result; +} +std::string ensureFolder(const std::string & folderName) +{ + if (!folderName.size()) + return ""; + + string result = folderName; + if (result[result.length()-1] != '/') + { + result.append("/"); + } + return result; } \ No newline at end of file