about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authoroy <Tom_Adams@web.de>2010-08-11 00:31:42 +0200
committeroy <Tom_Adams@web.de>2010-08-11 00:31:42 +0200
commit1cde96ef79a8418a9c34f355ec49d08f1e654213 (patch)
treefc7c6298535241e78cdc60acff059711e2017f73 /src
parentd37c83962da7e0660d31b70a25587fd8a8ef63f2 (diff)
downloadzcatch-1cde96ef79a8418a9c34f355ec49d08f1e654213.tar.gz
zcatch-1cde96ef79a8418a9c34f355ec49d08f1e654213.zip
restore empty strings in the config to their defaults on startup
Diffstat (limited to 'src')
-rw-r--r--src/engine/client/client.cpp3
-rw-r--r--src/engine/config.h1
-rw-r--r--src/engine/server/server.cpp3
-rw-r--r--src/engine/shared/config.cpp11
4 files changed, 18 insertions, 0 deletions
diff --git a/src/engine/client/client.cpp b/src/engine/client/client.cpp
index 03f31770..78bed263 100644
--- a/src/engine/client/client.cpp
+++ b/src/engine/client/client.cpp
@@ -2031,6 +2031,9 @@ int main(int argc, const char **argv) // ignore_convention
 	if(argc > 1) // ignore_convention
 		pConsole->ParseArguments(argc-1, &argv[1]); // ignore_convention
 
+	// restore empty config strings to their defaults
+	pConfig->RestoreStrings();
+
 	m_Client.Engine()->InitLogfile();
 
 	// run the client
diff --git a/src/engine/config.h b/src/engine/config.h
index 967d3593..b756d16e 100644
--- a/src/engine/config.h
+++ b/src/engine/config.h
@@ -11,6 +11,7 @@ public:
 
 	virtual void Init() = 0;
 	virtual void Reset() = 0;
+	virtual void RestoreStrings() = 0;
 	virtual void Save() = 0;
 	
 	virtual void RegisterCallback(SAVECALLBACKFUNC pfnFunc, void *pUserData) = 0;
diff --git a/src/engine/server/server.cpp b/src/engine/server/server.cpp
index bf7c5086..a849504d 100644
--- a/src/engine/server/server.cpp
+++ b/src/engine/server/server.cpp
@@ -1432,6 +1432,9 @@ int main(int argc, const char **argv) // ignore_convention
 	// parse the command line arguments
 	if(argc > 1) // ignore_convention
 		pConsole->ParseArguments(argc-1, &argv[1]); // ignore_convention
+
+	// restore empty config strings to their defaults
+	pConfig->RestoreStrings();
 	
 	pServer->Engine()->InitLogfile();
 
diff --git a/src/engine/shared/config.cpp b/src/engine/shared/config.cpp
index ca12e8b7..4ff02689 100644
--- a/src/engine/shared/config.cpp
+++ b/src/engine/shared/config.cpp
@@ -58,6 +58,17 @@ public:
 		#undef MACRO_CONFIG_INT 
 		#undef MACRO_CONFIG_STR 		
 	}
+
+	virtual void RestoreStrings()
+	{
+		#define MACRO_CONFIG_INT(Name,ScriptName,def,min,max,flags,desc)	// nop
+		#define MACRO_CONFIG_STR(Name,ScriptName,len,def,flags,desc) if(!g_Config.m_##Name[0] && def[0]) str_copy(g_Config.m_##Name, def, len);
+
+		#include "config_variables.h"
+
+		#undef MACRO_CONFIG_INT
+		#undef MACRO_CONFIG_STR
+	}
 	
 	virtual void Save()
 	{