From 0556b5dfbcf8e3fe26ec4c773367d2f77e2c0ec9 Mon Sep 17 00:00:00 2001 From: Krzysztof Dermont Date: Sun, 22 Jun 2014 16:29:26 +0200 Subject: Added Exist() to resource manager, updated model --- src/common/resources/resourcemanager.cpp | 6 ++++++ src/common/resources/resourcemanager.h | 1 + src/graphics/engine/modelfile.cpp | 14 ++++++++------ 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/common/resources/resourcemanager.cpp b/src/common/resources/resourcemanager.cpp index b01424b..5e8627d 100644 --- a/src/common/resources/resourcemanager.cpp +++ b/src/common/resources/resourcemanager.cpp @@ -130,6 +130,12 @@ CSNDFile* CResourceManager::GetSNDFileHandler(const std::string &filename) } +bool CResourceManager::Exists(const std::string &filename) +{ + return PHYSFS_exists(filename.c_str()); +} + + int CResourceManager::SDLClose(SDL_RWops *context) { if (CheckSDLContext(context)) diff --git a/src/common/resources/resourcemanager.h b/src/common/resources/resourcemanager.h index fec71da..36f6fa5 100644 --- a/src/common/resources/resourcemanager.h +++ b/src/common/resources/resourcemanager.h @@ -33,6 +33,7 @@ public: static std::string GetLanguageLocation(); static SDL_RWops* GetSDLFileHandler(const std::string &filename); static CSNDFile* GetSNDFileHandler(const std::string &filename); + static bool Exists(const std::string &filename); private: static int SDLSeek(SDL_RWops *context, int offset, int whence); diff --git a/src/graphics/engine/modelfile.cpp b/src/graphics/engine/modelfile.cpp index 99496aa..0e3cbf8 100644 --- a/src/graphics/engine/modelfile.cpp +++ b/src/graphics/engine/modelfile.cpp @@ -22,6 +22,8 @@ #include "common/logger.h" #include "common/stringutils.h" +#include "common/resources/inputstream.h" + #include "graphics/engine/engine.h" #include "math/geometry.h" @@ -432,8 +434,8 @@ bool CModelFile::ReadModel(const std::string& fileName) { m_triangles.clear(); - std::ifstream stream; - stream.open(fileName.c_str(), std::ios_base::in | std::ios_base::binary); + CInputStream stream; + stream.open(fileName.c_str()); if (!stream.good()) { GetLogger()->Error("Could not open file '%s'\n", fileName.c_str()); @@ -823,8 +825,8 @@ struct NewModelTriangle1 bool CModelFile::ReadTextModel(const std::string& fileName) { - std::ifstream stream; - stream.open(fileName.c_str(), std::ios_base::in); + CInputStream stream; + stream.open(fileName.c_str()); if (!stream.good()) { GetLogger()->Error("Could not open file '%s'\n", fileName.c_str()); @@ -1020,8 +1022,8 @@ bool CModelFile::WriteTextModel(std::ostream& stream) bool CModelFile::ReadBinaryModel(const std::string& fileName) { - std::ifstream stream; - stream.open(fileName.c_str(), std::ios_base::in | std::ios_base::binary); + CInputStream stream; + stream.open(fileName.c_str()); if (!stream.good()) { GetLogger()->Error("Could not open file '%s'\n", fileName.c_str()); -- cgit v1.2.3-1-g7c22