about summary refs log tree commit diff
path: root/src/engine/server
diff options
context:
space:
mode:
authorJohannes Loher <ghost91@gmx.net>2011-07-22 23:17:16 +0200
committeroy <Tom_Adams@web.de>2011-07-30 18:23:59 +0200
commite2664c1b00e24158c3e9cee02ab517935be2f8c9 (patch)
tree27349a384e01e626d9a93869877c62e3926da647 /src/engine/server
parent0f11cf014c7a53c20d4432ea26af41123f9f2436 (diff)
downloadzcatch-e2664c1b00e24158c3e9cee02ab517935be2f8c9.tar.gz
zcatch-e2664c1b00e24158c3e9cee02ab517935be2f8c9.zip
Added server sided automatic demo recording
Diffstat (limited to 'src/engine/server')
-rw-r--r--src/engine/server/server.cpp20
-rw-r--r--src/engine/server/server.h2
2 files changed, 22 insertions, 0 deletions
diff --git a/src/engine/server/server.cpp b/src/engine/server/server.cpp
index 46f87840..57be060b 100644
--- a/src/engine/server/server.cpp
+++ b/src/engine/server/server.cpp
@@ -22,6 +22,7 @@
 #include <engine/shared/packer.h>
 #include <engine/shared/protocol.h>
 #include <engine/shared/snapshot.h>
+#include <engine/shared/filecollection.h>
 
 #include <mastersrv/mastersrv.h>
 
@@ -1519,6 +1520,25 @@ void CServer::ConShutdown(IConsole::IResult *pResult, void *pUser)
 	((CServer *)pUser)->m_RunServer = 0;
 }
 
+void CServer::DemoRecorder_HandleAutoStart()
+{
+	if(g_Config.m_SvAutoDemoRecord)
+	{
+		m_DemoRecorder.Stop();
+		char aFilename[128];
+		char aDate[20];
+		str_timestamp(aDate, sizeof(aDate));
+		str_format(aFilename, sizeof(aFilename), "demos/%s_%s.demo", "auto/autorecord", aDate);
+		m_DemoRecorder.Start(Storage(), m_pConsole, aFilename, GameServer()->NetVersion(), m_aCurrentMap, m_CurrentMapCrc, "server");
+		if(g_Config.m_SvAutoDemoMax)
+		{
+			// clean up auto recorded demos
+			CFileCollection AutoDemos;
+			AutoDemos.Init(Storage(), "demos/server", "autorecord", ".demo", g_Config.m_SvAutoDemoMax);
+		}
+	}
+}
+
 void CServer::ConRecord(IConsole::IResult *pResult, void *pUser)
 {
 	CServer* pServer = (CServer *)pUser;
diff --git a/src/engine/server/server.h b/src/engine/server/server.h
index 4e575055..d8fdd8fa 100644
--- a/src/engine/server/server.h
+++ b/src/engine/server/server.h
@@ -148,6 +148,8 @@ public:
 
 	void Kick(int ClientID, const char *pReason);
 
+	void DemoRecorder_HandleAutoStart();
+
 	//int Tick()
 	int64 TickStartTime(int Tick);
 	//int TickSpeed()