diff options
| author | oy <Tom_Adams@web.de> | 2010-08-09 14:14:15 +0200 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2010-08-09 14:14:15 +0200 |
| commit | 3797eba179d40473e20f16d46dffc8d69e7e1b74 (patch) | |
| tree | e2f55551275275862f6d196eff2d67decb01f34a /src/engine/client | |
| parent | d471663913390c5243ab946ecd6ee8849af484e1 (diff) | |
| download | zcatch-3797eba179d40473e20f16d46dffc8d69e7e1b74.tar.gz zcatch-3797eba179d40473e20f16d46dffc8d69e7e1b74.zip | |
added demo recording button by fujnky
Diffstat (limited to 'src/engine/client')
| -rw-r--r-- | src/engine/client/client.cpp | 16 | ||||
| -rw-r--r-- | src/engine/client/client.h | 1 |
2 files changed, 12 insertions, 5 deletions
diff --git a/src/engine/client/client.cpp b/src/engine/client/client.cpp index 4ab8ee60..03f31770 100644 --- a/src/engine/client/client.cpp +++ b/src/engine/client/client.cpp @@ -1537,6 +1537,7 @@ void CClient::InitEngine(const char *pAppname) void CClient::RegisterInterfaces() { + Kernel()->RegisterInterface(static_cast<IDemoRecorder*>(&m_DemoRecorder)); Kernel()->RegisterInterface(static_cast<IDemoPlayer*>(&m_DemoPlayer)); Kernel()->RegisterInterface(static_cast<IServerBrowser*>(&m_ServerBrowser)); } @@ -1883,19 +1884,24 @@ void CClient::Con_Play(IConsole::IResult *pResult, void *pUserData) pSelf->DemoPlayer_Play(pResult->GetString(0)); } -void CClient::Con_Record(IConsole::IResult *pResult, void *pUserData) +void CClient::DemoRecorder_Start(const char *pFilename) { - CClient *pSelf = (CClient *)pUserData; - if(pSelf->State() != IClient::STATE_ONLINE) + if(State() != IClient::STATE_ONLINE) dbg_msg("demorec/record", "client is not online"); else { char aFilename[512]; - str_format(aFilename, sizeof(aFilename), "demos/%s.demo", pResult->GetString(0)); - pSelf->m_DemoRecorder.Start(pSelf->Storage(), aFilename, pSelf->GameClient()->NetVersion(), pSelf->m_aCurrentMap, pSelf->m_CurrentMapCrc, "client"); + str_format(aFilename, sizeof(aFilename), "demos/%s.demo", pFilename); + m_DemoRecorder.Start(Storage(), aFilename, GameClient()->NetVersion(), m_aCurrentMap, m_CurrentMapCrc, "client"); } } +void CClient::Con_Record(IConsole::IResult *pResult, void *pUserData) +{ + CClient *pSelf = (CClient *)pUserData; + pSelf->DemoRecorder_Start(pResult->GetString(0)); +} + void CClient::Con_StopRecord(IConsole::IResult *pResult, void *pUserData) { CClient *pSelf = (CClient *)pUserData; diff --git a/src/engine/client/client.h b/src/engine/client/client.h index 9698abbb..a27ec5fd 100644 --- a/src/engine/client/client.h +++ b/src/engine/client/client.h @@ -284,6 +284,7 @@ public: void RegisterCommands(); const char *DemoPlayer_Play(const char *pFilename); + void DemoRecorder_Start(const char *pFilename); virtual class CEngine *Engine() { return &m_Engine; } }; |