about summary refs log tree commit diff
path: root/src/engine/server
diff options
context:
space:
mode:
authoroy <Tom_Adams@web.de>2011-03-31 15:13:49 +0200
committeroy <Tom_Adams@web.de>2011-03-31 15:13:49 +0200
commit2a72c0b38b8c2610001f24340097ad3a1b052263 (patch)
treeaee816df77e1f1ac772d5a797b822d2ffc0c09b5 /src/engine/server
parent59d56cd332ecc86008c27326631566a4d2d94ecb (diff)
downloadzcatch-2a72c0b38b8c2610001f24340097ad3a1b052263.tar.gz
zcatch-2a72c0b38b8c2610001f24340097ad3a1b052263.zip
added a mechanism to check for a valid standard map. Closes #132
Diffstat (limited to 'src/engine/server')
-rw-r--r--src/engine/server/server.cpp8
-rw-r--r--src/engine/server/server.h1
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();