diff options
Diffstat (limited to 'src/engine/server')
| -rw-r--r-- | src/engine/server/server.cpp | 8 | ||||
| -rw-r--r-- | src/engine/server/server.h | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/engine/server/server.cpp b/src/engine/server/server.cpp index f1d2e6e1..f170b1c8 100644 --- a/src/engine/server/server.cpp +++ b/src/engine/server/server.cpp @@ -15,6 +15,7 @@ #include <engine/shared/config.h> #include <engine/shared/datafile.h> #include <engine/shared/demo.h> +#include <engine/shared/mapchecker.h> #include <engine/shared/network.h> #include <engine/shared/packer.h> #include <engine/shared/protocol.h> @@ -1049,6 +1050,13 @@ int CServer::LoadMap(const char *pMapName) /*df = datafile_load(buf); if(!df) return 0;*/ + + // check for valid standard map + if(!m_MapChecker.ReadAndValidateMap(Storage(), aBuf, IStorage::TYPE_ALL)) + { + Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "mapchecker", "invalid standard map"); + return 0; + } if(!m_pMap->Load(aBuf)) return 0; diff --git a/src/engine/server/server.h b/src/engine/server/server.h index 00c1c648..abd86f92 100644 --- a/src/engine/server/server.h +++ b/src/engine/server/server.h @@ -121,6 +121,7 @@ public: CDemoRecorder m_DemoRecorder; CRegister m_Register; + CMapChecker m_MapChecker; CServer(); |