diff options
Diffstat (limited to 'src')
| -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() { |