From 0bc6352d62e7c871b4220a4a0031067f57ce29b0 Mon Sep 17 00:00:00 2001 From: "wagic.the.homebrew" Date: Mon, 22 Aug 2011 12:33:39 +0000 Subject: [PATCH] - Fix a bug with story mode not able to find (unzipped) campaigns --- projects/mtg/include/utils.h | 1 + projects/mtg/src/GameStateStory.cpp | 7 ++++--- projects/mtg/src/utils.cpp | 12 ++++++++++++ 3 files changed, 17 insertions(+), 3 deletions(-) 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