diff options
Diffstat (limited to 'src/resources/resourcemanager.cpp')
-rw-r--r-- | src/resources/resourcemanager.cpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/resources/resourcemanager.cpp b/src/resources/resourcemanager.cpp index aea598935..96902cb4c 100644 --- a/src/resources/resourcemanager.cpp +++ b/src/resources/resourcemanager.cpp @@ -34,11 +34,16 @@ #include "resources/soundeffect.h" #include "resources/spritedef.h" +#include "utils/mkdir.h" + #include <physfs.h> #include <SDL_image.h> #include <cassert> +#include <fstream> +#include <iostream> #include <sstream> +#include <sys/stat.h> #include <sys/time.h> #include "debug.h" @@ -299,6 +304,17 @@ bool ResourceManager::exists(const std::string &path) return PHYSFS_exists(path.c_str()); } +bool ResourceManager::existsLocal(const std::string &path) +{ + bool flg(false); + std::fstream file; + file.open(path.c_str(), std::ios::in); + if (file.is_open()) + flg = true; + file.close(); + return flg; +} + bool ResourceManager::isDirectory(const std::string &path) { return PHYSFS_isDirectory(path.c_str()); @@ -644,6 +660,41 @@ std::vector<std::string> ResourceManager::loadTextFile( return lines; } +std::vector<std::string> ResourceManager::loadTextFileLocal( + const std::string &fileName) +{ + std::ifstream file; + char line[501]; + std::vector<std::string> lines; + + file.open(fileName.c_str(), std::ios::in); + + if (!file.is_open()) + { + logger->log("Couldn't load text file: %s", fileName.c_str()); + return lines; + } + + while (file.getline(line, 500)) + lines.push_back(line); + + return lines; +} + +void ResourceManager::saveTextFile(std::string path, std::string name, + std::string text) +{ + if (!mkdir_r(path.c_str())) + { + std::ofstream file; + std::string fileName = path + "/" + name; + + file.open(fileName.c_str(), std::ios::out); + file << text << std::endl; + file.close(); + } +} + SDL_Surface *ResourceManager::loadSDLSurface(const std::string &filename) { int fileSize; |