summaryrefslogtreecommitdiffstats
path: root/src/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/common')
-rw-r--r--src/common/profile.cpp26
-rw-r--r--src/common/profile.h7
2 files changed, 21 insertions, 12 deletions
diff --git a/src/common/profile.cpp b/src/common/profile.cpp
index ee3e873..a63a772 100644
--- a/src/common/profile.cpp
+++ b/src/common/profile.cpp
@@ -31,8 +31,9 @@ template<> CProfile* CSingleton<CProfile>::m_instance = nullptr;
namespace bp = boost::property_tree;
-CProfile::CProfile() :
- m_profileNeedSave(false)
+CProfile::CProfile()
+ : m_profileNeedSave(false)
+ , m_useLocalDirectory(false)
{
}
@@ -42,16 +43,21 @@ CProfile::~CProfile()
SaveCurrentDirectory();
}
+void CProfile::SetUseLocalDirectory(bool useLocalDirectory)
+{
+ m_useLocalDirectory = useLocalDirectory;
+}
+
+std::string CProfile::GetIniFileLocation()
+{
+ return m_useLocalDirectory ? "colobot.ini" : GetSystemUtils()->GetProfileFileLocation();
+}
bool CProfile::InitCurrentDirectory()
{
try
{
- #if DEV_BUILD
- bp::ini_parser::read_ini("colobot.ini", m_propertyTree);
- #else
- bp::ini_parser::read_ini(GetSystemUtils()->GetProfileFileLocation(), m_propertyTree);
- #endif
+ bp::ini_parser::read_ini(GetIniFileLocation(), m_propertyTree);
}
catch (std::exception & e)
{
@@ -67,11 +73,7 @@ bool CProfile::SaveCurrentDirectory()
{
try
{
- #if DEV_BUILD
- bp::ini_parser::write_ini("colobot.ini", m_propertyTree);
- #else
- bp::ini_parser::write_ini(GetSystemUtils()->GetProfileFileLocation(), m_propertyTree);
- #endif
+ bp::ini_parser::write_ini(GetIniFileLocation(), m_propertyTree);
}
catch (std::exception & e)
{
diff --git a/src/common/profile.h b/src/common/profile.h
index f084ece..52f9f15 100644
--- a/src/common/profile.h
+++ b/src/common/profile.h
@@ -45,6 +45,9 @@ public:
CProfile();
virtual ~CProfile();
+ /** Set flag to force using ini file from local directory */
+ void SetUseLocalDirectory(bool useLocalDirectory);
+
/** Loads colobot.ini from current directory
* \return return true on success
*/
@@ -130,9 +133,13 @@ public:
bool CopyFileToTemp(std::string filename);
private:
+ std::string GetIniFileLocation();
+
+private:
boost::property_tree::ptree m_propertyTree;
bool m_profileNeedSave;
std::string m_userDirectory;
+ bool m_useLocalDirectory;
};
//! Global function to get profile instance