summaryrefslogtreecommitdiffstats
path: root/src/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/common')
-rw-r--r--src/common/iman.cpp4
-rw-r--r--src/common/profile.cpp39
-rw-r--r--src/common/profile.h124
-rw-r--r--src/common/singleton.h5
4 files changed, 88 insertions, 84 deletions
diff --git a/src/common/iman.cpp b/src/common/iman.cpp
index 88fbb9b..edfa9c7 100644
--- a/src/common/iman.cpp
+++ b/src/common/iman.cpp
@@ -42,9 +42,7 @@ void CInstanceManager::Flush()
{
for (int i = 0; i < CLASS_MAX; i++)
{
- if (m_table[i].instances != nullptr)
- delete[] m_table[i].instances;
-
+ delete[] m_table[i].instances;
m_table[i].instances = nullptr;
}
}
diff --git a/src/common/profile.cpp b/src/common/profile.cpp
index 9947769..5ecb804 100644
--- a/src/common/profile.cpp
+++ b/src/common/profile.cpp
@@ -17,12 +17,12 @@
#include "common/profile.h"
-#include "common/logger.h"
#include "common/resources/inputstream.h"
#include "common/resources/outputstream.h"
-
#include "app/system.h"
+#include "common/logger.h"
+
#include <utility>
#include <cstring>
#include <boost/property_tree/ini_parser.hpp>
@@ -33,19 +33,24 @@ template<> CProfile* CSingleton<CProfile>::m_instance = nullptr;
namespace bp = boost::property_tree;
-CProfile::CProfile() :
- m_profileNeedSave(false)
+CProfile::CProfile()
+ : m_profileNeedSave(false)
+ , m_useCurrentDirectory(false)
{
}
CProfile::~CProfile()
{
- SaveCurrentDirectory();
+ Save();
}
+void CProfile::SetUseCurrentDirectory(bool useCurrentDirectory)
+{
+ m_useCurrentDirectory = useCurrentDirectory;
+}
-bool CProfile::InitCurrentDirectory()
+bool CProfile::Init()
{
try
{
@@ -67,7 +72,7 @@ bool CProfile::InitCurrentDirectory()
return true;
}
-bool CProfile::SaveCurrentDirectory()
+bool CProfile::Save()
{
if (m_profileNeedSave)
{
@@ -92,7 +97,7 @@ bool CProfile::SaveCurrentDirectory()
return true;
}
-bool CProfile::SetLocalProfileString(std::string section, std::string key, std::string value)
+bool CProfile::SetStringProperty(std::string section, std::string key, std::string value)
{
try
{
@@ -108,7 +113,7 @@ bool CProfile::SetLocalProfileString(std::string section, std::string key, std::
}
-bool CProfile::GetLocalProfileString(std::string section, std::string key, std::string &buffer)
+bool CProfile::GetStringProperty(std::string section, std::string key, std::string &buffer)
{
try
{
@@ -123,7 +128,7 @@ bool CProfile::GetLocalProfileString(std::string section, std::string key, std::
}
-bool CProfile::SetLocalProfileInt(std::string section, std::string key, int value)
+bool CProfile::SetIntProperty(std::string section, std::string key, int value)
{
try
{
@@ -139,7 +144,7 @@ bool CProfile::SetLocalProfileInt(std::string section, std::string key, int valu
}
-bool CProfile::GetLocalProfileInt(std::string section, std::string key, int &value)
+bool CProfile::GetIntProperty(std::string section, std::string key, int &value)
{
try
{
@@ -154,7 +159,7 @@ bool CProfile::GetLocalProfileInt(std::string section, std::string key, int &val
}
-bool CProfile::SetLocalProfileFloat(std::string section, std::string key, float value)
+bool CProfile::SetFloatProperty(std::string section, std::string key, float value)
{
try
{
@@ -170,7 +175,7 @@ bool CProfile::SetLocalProfileFloat(std::string section, std::string key, float
}
-bool CProfile::GetLocalProfileFloat(std::string section, std::string key, float &value)
+bool CProfile::GetFloatProperty(std::string section, std::string key, float &value)
{
try
{
@@ -185,7 +190,7 @@ bool CProfile::GetLocalProfileFloat(std::string section, std::string key, float
}
-std::vector< std::string > CProfile::GetLocalProfileSection(std::string section, std::string key)
+std::vector< std::string > CProfile::GetSection(std::string section, std::string key)
{
std::vector< std::string > ret_list;
boost::regex re(key + "[0-9]*"); //we want to match all key followed by any number
@@ -215,13 +220,13 @@ void CProfile::SetUserDir(std::string dir)
}
-std::string CProfile::GetUserBasedPath(std::string dir, std::string default_dir)
+std::string CProfile::GetUserBasedPath(std::string dir, std::string defaultDir)
{
std::string path = dir;
boost::replace_all(path, "\\", "/");
if (dir.find("/") == std::string::npos)
{
- path = default_dir + "/" + dir;
+ path = defaultDir + "/" + dir;
}
if (m_userDirectory.length() > 0)
@@ -230,7 +235,7 @@ std::string CProfile::GetUserBasedPath(std::string dir, std::string default_dir)
}
else
{
- boost::replace_all(path, "%user%", default_dir);
+ boost::replace_all(path, "%user%", defaultDir);
}
return fs::path(path).make_preferred().string();
diff --git a/src/common/profile.h b/src/common/profile.h
index f084ece..ee17591 100644
--- a/src/common/profile.h
+++ b/src/common/profile.h
@@ -45,94 +45,98 @@ public:
CProfile();
virtual ~CProfile();
+ /** Set flag to force using ini file from current directory */
+ void SetUseCurrentDirectory(bool useCurrentDirectory);
+
/** Loads colobot.ini from current directory
- * \return return true on success
- */
- bool InitCurrentDirectory();
+ * \return return true on success
+ */
+ bool Init();
/** Saves colobot.ini to current directory
- * \return return true on success
- */
- bool SaveCurrentDirectory();
+ * \return return true on success
+ */
+ bool Save();
/** Sets string value in section under specified key
- * \param section
- * \param key
- * \param value
- * \return return true on success
- */
- bool SetLocalProfileString(std::string section, std::string key, std::string value);
+ * \param section
+ * \param key
+ * \param value
+ * \return return true on success
+ */
+ bool SetStringProperty(std::string section, std::string key, std::string value);
/** Gets string value in section under specified key
- * \param section
- * \param key
- * \param buffer
- * \return return true on success
- */
- bool GetLocalProfileString(std::string section, std::string key, std::string& buffer);
+ * \param section
+ * \param key
+ * \param buffer
+ * \return return true on success
+ */
+ bool GetStringProperty(std::string section, std::string key, std::string& buffer);
/** Sets int value in section under specified key
- * \param section
- * \param key
- * \param value
- * \return return true on success
- */
- bool SetLocalProfileInt(std::string section, std::string key, int value);
+ * \param section
+ * \param key
+ * \param value
+ * \return return true on success
+ */
+ bool SetIntProperty(std::string section, std::string key, int value);
/** Gets int value in section under specified key
- * \param section
- * \param key
- * \param value
- * \return return true on success
- */
- bool GetLocalProfileInt(std::string section, std::string key, int &value);
+ * \param section
+ * \param key
+ * \param value
+ * \return return true on success
+ */
+ bool GetIntProperty(std::string section, std::string key, int &value);
/** Sets float value in section under specified key
- * \param section
- * \param key
- * \param value
- * \return return true on success
- */
- bool SetLocalProfileFloat(std::string section, std::string key, float value);
+ * \param section
+ * \param key
+ * \param value
+ * \return return true on success
+ */
+ bool SetFloatProperty(std::string section, std::string key, float value);
/** Gets float value in section under specified key
- * \param section
- * \param key
- * \param value
- * \return return true on success
- */
- bool GetLocalProfileFloat(std::string section, std::string key, float &value);
+ * \param section
+ * \param key
+ * \param value
+ * \return return true on success
+ */
+ bool GetFloatProperty(std::string section, std::string key, float &value);
/** Gets all values in section under specified key
- * \param section
- * \param key
- * \return vector of values
- */
- std::vector< std::string > GetLocalProfileSection(std::string section, std::string key);
+ * \param section
+ * \param key
+ * \return vector of values
+ */
+ std::vector< std::string > GetSection(std::string section, std::string key);
/** Sets current user directory
- * \param dir
- */
+ * \param dir
+ */
void SetUserDir(std::string dir);
/** Returns path based on current user. Replaces %user% in path with current user dir or
- * uses default_dir param if no user dir is specified
- * \param dir
- * \param default_dir
- * \return path
- */
- std::string GetUserBasedPath(std::string dir, std::string default_dir);
-
- /** opy a file into the temporary folder.
- * \param filename
- * \return true on success
- */
+ * uses default_dir param if no user dir is specified
+ * \param dir
+ * \param default_dir
+ * \return path
+ */
+ std::string GetUserBasedPath(std::string dir, std::string defaultDir);
+
+ /** Copy a file into the temporary folder.
+ * \param filename
+ * \return true on success
+ */
bool CopyFileToTemp(std::string filename);
private:
boost::property_tree::ptree m_propertyTree;
bool m_profileNeedSave;
std::string m_userDirectory;
+ bool m_useCurrentDirectory;
};
//! Global function to get profile instance
diff --git a/src/common/singleton.h b/src/common/singleton.h
index 841759d..bf5bc9d 100644
--- a/src/common/singleton.h
+++ b/src/common/singleton.h
@@ -62,10 +62,7 @@ public:
static void ReplaceInstance(T* newInstance)
{
assert(newInstance != nullptr);
-
- if (m_instance != nullptr)
- delete m_instance;
-
+ delete m_instance;
m_instance = newInstance;
}
#endif