diff options
| author | oy <Tom_Adams@web.de> | 2010-08-11 00:31:42 +0200 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2010-08-11 00:31:42 +0200 |
| commit | 1cde96ef79a8418a9c34f355ec49d08f1e654213 (patch) | |
| tree | fc7c6298535241e78cdc60acff059711e2017f73 | |
| parent | d37c83962da7e0660d31b70a25587fd8a8ef63f2 (diff) | |
| download | zcatch-1cde96ef79a8418a9c34f355ec49d08f1e654213.tar.gz zcatch-1cde96ef79a8418a9c34f355ec49d08f1e654213.zip | |
restore empty strings in the config to their defaults on startup
| -rw-r--r-- | src/engine/client/client.cpp | 3 | ||||
| -rw-r--r-- | src/engine/config.h | 1 | ||||
| -rw-r--r-- | src/engine/server/server.cpp | 3 | ||||
| -rw-r--r-- | src/engine/shared/config.cpp | 11 |
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() { |