diff options
Diffstat (limited to 'src/common/profile.cpp')
-rw-r--r-- | src/common/profile.cpp | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/src/common/profile.cpp b/src/common/profile.cpp index 79d7152..5ecb804 100644 --- a/src/common/profile.cpp +++ b/src/common/profile.cpp @@ -17,6 +17,8 @@ #include "common/profile.h" +#include "common/resources/inputstream.h" +#include "common/resources/outputstream.h" #include "app/system.h" #include "common/logger.h" @@ -48,16 +50,19 @@ void CProfile::SetUseCurrentDirectory(bool useCurrentDirectory) m_useCurrentDirectory = useCurrentDirectory; } -std::string CProfile::GetIniFileLocation() -{ - return m_useCurrentDirectory ? "colobot.ini" : GetSystemUtils()->GetProfileFileLocation(); -} - bool CProfile::Init() { try { - bp::ini_parser::read_ini(GetIniFileLocation(), m_propertyTree); + CInputStream stream; + stream.open("colobot.ini"); + if(stream.is_open()) { + bp::ini_parser::read_ini(stream, m_propertyTree); + } else { + GetLogger()->Error("Error on parsing profile: failed to open file\n"); + return false; + } + stream.close(); } catch (std::exception & e) { @@ -73,7 +78,15 @@ bool CProfile::Save() { try { - bp::ini_parser::write_ini(GetIniFileLocation(), m_propertyTree); + COutputStream stream; + stream.open("colobot.ini"); + if(stream.is_open()) { + bp::ini_parser::write_ini(stream, m_propertyTree); + } else { + GetLogger()->Error("Error on storing profile: failed to open file\n"); + return false; + } + stream.close(); } catch (std::exception & e) { |