summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/client.cpp1
-rw-r--r--src/configuration.cpp10
-rw-r--r--src/configuration.h2
3 files changed, 13 insertions, 0 deletions
diff --git a/src/client.cpp b/src/client.cpp
index ceff605ff..4fcfaa081 100644
--- a/src/client.cpp
+++ b/src/client.cpp
@@ -1707,6 +1707,7 @@ int Client::gameExec()
Net::getGameHandler()->disconnect();
Net::getGameHandler()->clear();
mServerName.clear();
+ serverConfig.unload();
mState = STATE_CHOOSE_SERVER;
BLOCK_END("Client::gameExec STATE_SWITCH_SERVER")
diff --git a/src/configuration.cpp b/src/configuration.cpp
index ca2281a71..66615d12d 100644
--- a/src/configuration.cpp
+++ b/src/configuration.cpp
@@ -367,6 +367,16 @@ Configuration::~Configuration()
cleanDefaults();
}
+void Configuration::unload()
+{
+ cleanDefaults();
+ mConfigPath.clear();
+ mDirectory.clear();
+ mFilename.clear();
+ mUseResManager = false;
+ ConfigurationObject::clear();
+}
+
void Configuration::setDefaultValues(DefaultsData *const defaultsData)
{
cleanDefaults();
diff --git a/src/configuration.h b/src/configuration.h
index f2215147b..d14171dbb 100644
--- a/src/configuration.h
+++ b/src/configuration.h
@@ -251,6 +251,8 @@ class Configuration final : public ConfigurationObject
void reInit();
+ void unload();
+
/**
* Set the default values for each keys.
*