diff options
Diffstat (limited to 'src/engine/shared/config.cpp')
| -rw-r--r-- | src/engine/shared/config.cpp | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/src/engine/shared/config.cpp b/src/engine/shared/config.cpp index f531fa5a..b9aa1320 100644 --- a/src/engine/shared/config.cpp +++ b/src/engine/shared/config.cpp @@ -10,21 +10,21 @@ class CConfig : public IConfig { IStorage *m_pStorage; IOHANDLE m_ConfigFile; - + struct CCallback { SAVECALLBACKFUNC m_pfnFunc; void *m_pUserData; }; - + enum { MAX_CALLBACKS = 16 }; - + CCallback m_aCallbacks[MAX_CALLBACKS]; int m_NumCallbacks; - + void EscapeParam(char *pDst, const char *pSrc, int size) { for(int i = 0; *pSrc && i < size - 1; ++i) @@ -43,22 +43,22 @@ public: m_ConfigFile = 0; m_NumCallbacks = 0; } - + virtual void Init() { m_pStorage = Kernel()->RequestInterface<IStorage>(); Reset(); } - + virtual void Reset() { #define MACRO_CONFIG_INT(Name,ScriptName,def,min,max,flags,desc) g_Config.m_##Name = def; #define MACRO_CONFIG_STR(Name,ScriptName,len,def,flags,desc) str_copy(g_Config.m_##Name, def, len); - #include "config_variables.h" + #include "config_variables.h" - #undef MACRO_CONFIG_INT - #undef MACRO_CONFIG_STR + #undef MACRO_CONFIG_INT + #undef MACRO_CONFIG_STR } virtual void RestoreStrings() @@ -71,34 +71,34 @@ public: #undef MACRO_CONFIG_INT #undef MACRO_CONFIG_STR } - + virtual void Save() { if(!m_pStorage) return; m_ConfigFile = m_pStorage->OpenFile("settings.cfg", IOFLAG_WRITE, IStorage::TYPE_SAVE); - + if(!m_ConfigFile) return; - + char aLineBuf[1024*2]; char aEscapeBuf[1024*2]; #define MACRO_CONFIG_INT(Name,ScriptName,def,min,max,flags,desc) if((flags)&CFGFLAG_SAVE){ str_format(aLineBuf, sizeof(aLineBuf), "%s %i", #ScriptName, g_Config.m_##Name); WriteLine(aLineBuf); } #define MACRO_CONFIG_STR(Name,ScriptName,len,def,flags,desc) if((flags)&CFGFLAG_SAVE){ EscapeParam(aEscapeBuf, g_Config.m_##Name, sizeof(aEscapeBuf)); str_format(aLineBuf, sizeof(aLineBuf), "%s \"%s\"", #ScriptName, aEscapeBuf); WriteLine(aLineBuf); } - #include "config_variables.h" + #include "config_variables.h" + + #undef MACRO_CONFIG_INT + #undef MACRO_CONFIG_STR - #undef MACRO_CONFIG_INT - #undef MACRO_CONFIG_STR - for(int i = 0; i < m_NumCallbacks; i++) m_aCallbacks[i].m_pfnFunc(this, m_aCallbacks[i].m_pUserData); - + io_close(m_ConfigFile); m_ConfigFile = 0; } - + virtual void RegisterCallback(SAVECALLBACKFUNC pfnFunc, void *pUserData) { dbg_assert(m_NumCallbacks < MAX_CALLBACKS, "too many config callbacks"); @@ -106,7 +106,7 @@ public: m_aCallbacks[m_NumCallbacks].m_pUserData = pUserData; m_NumCallbacks++; } - + virtual void WriteLine(const char *pLine) { if(!m_ConfigFile) @@ -117,7 +117,7 @@ public: static const char Newline[] = "\n"; #endif io_write(m_ConfigFile, pLine, str_length(pLine)); - io_write(m_ConfigFile, Newline, sizeof(Newline)-1); + io_write(m_ConfigFile, Newline, sizeof(Newline)-1); } }; |