diff options
Diffstat (limited to 'src/engine/server/server.cpp')
| -rw-r--r-- | src/engine/server/server.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/engine/server/server.cpp b/src/engine/server/server.cpp index 16efe84d..d73fe4df 100644 --- a/src/engine/server/server.cpp +++ b/src/engine/server/server.cpp @@ -1405,9 +1405,18 @@ void CServer::ConShutdown(IConsole::IResult *pResult, void *pUser) void CServer::ConRecord(IConsole::IResult *pResult, void *pUser) { - char aFilename[512]; - str_format(aFilename, sizeof(aFilename), "demos/%s.demo", pResult->GetString(0)); - ((CServer *)pUser)->m_DemoRecorder.Start(((CServer *)pUser)->Storage(), ((CServer *)pUser)->Console(), aFilename, ((CServer *)pUser)->GameServer()->NetVersion(), ((CServer *)pUser)->m_aCurrentMap, ((CServer *)pUser)->m_CurrentMapCrc, "server"); + CServer* pServer = (CServer *)pUser; + char aFilename[128]; + + if(pResult->NumArguments()) + str_format(aFilename, sizeof(aFilename), "demos/%s.demo", pResult->GetString(0)); + else + { + char aDate[20]; + str_timestamp(aDate, sizeof(aDate)); + str_format(aFilename, sizeof(aFilename), "demos/demo_%s.demo", aDate); + } + pServer->m_DemoRecorder.Start(pServer->Storage(), pServer->Console(), aFilename, pServer->GameServer()->NetVersion(), pServer->m_aCurrentMap, pServer->m_CurrentMapCrc, "server"); } void CServer::ConStopRecord(IConsole::IResult *pResult, void *pUser) @@ -1445,7 +1454,7 @@ void CServer::RegisterCommands() Console()->Register("status", "", CFGFLAG_SERVER, ConStatus, this, ""); Console()->Register("shutdown", "", CFGFLAG_SERVER, ConShutdown, this, ""); - Console()->Register("record", "s", CFGFLAG_SERVER|CFGFLAG_STORE, ConRecord, this, ""); + Console()->Register("record", "?s", CFGFLAG_SERVER|CFGFLAG_STORE, ConRecord, this, ""); Console()->Register("stoprecord", "", CFGFLAG_SERVER, ConStopRecord, this, ""); Console()->Register("reload", "", CFGFLAG_SERVER, ConMapReload, this, ""); |