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/game | |
| parent | d471663913390c5243ab946ecd6ee8849af484e1 (diff) | |
| download | zcatch-3797eba179d40473e20f16d46dffc8d69e7e1b74.tar.gz zcatch-3797eba179d40473e20f16d46dffc8d69e7e1b74.zip | |
added demo recording button by fujnky
Diffstat (limited to 'src/game')
| -rw-r--r-- | src/game/client/component.h | 1 | ||||
| -rw-r--r-- | src/game/client/components/menus_ingame.cpp | 23 | ||||
| -rw-r--r-- | src/game/client/gameclient.cpp | 1 | ||||
| -rw-r--r-- | src/game/client/gameclient.h | 2 |
4 files changed, 26 insertions, 1 deletions
diff --git a/src/game/client/component.h b/src/game/client/component.h index 410be623..6e4b3715 100644 --- a/src/game/client/component.h +++ b/src/game/client/component.h @@ -23,6 +23,7 @@ protected: class CRenderTools *RenderTools() const { return m_pClient->RenderTools(); } class IConsole *Console() const { return m_pClient->Console(); } class IDemoPlayer *DemoPlayer() const { return m_pClient->DemoPlayer(); } + class IDemoRecorder *DemoRecorder() const { return m_pClient->DemoRecorder(); } class IServerBrowser *ServerBrowser() const { return m_pClient->ServerBrowser(); } class CLayers *Layers() const { return m_pClient->Layers(); } class CCollision *Collision() const { return m_pClient->Collision(); } diff --git a/src/game/client/components/menus_ingame.cpp b/src/game/client/components/menus_ingame.cpp index b5543162..f1a4b0dd 100644 --- a/src/game/client/components/menus_ingame.cpp +++ b/src/game/client/components/menus_ingame.cpp @@ -1,7 +1,8 @@ +#include <time.h> #include <base/math.h> - +#include <engine/demo.h> #include <engine/serverbrowser.h> #include <engine/textrender.h> #include <engine/shared/config.h> @@ -89,6 +90,26 @@ void CMenus::RenderGame(CUIRect MainView) } } } + + MainView.VSplitLeft(100.0f, &Button, &MainView); + MainView.VSplitLeft(150.0f, &Button, &MainView); + + static int s_DemoButton = 0; + bool Recording = DemoRecorder()->IsRecording(); + if(DoButton_Menu(&s_DemoButton, Localize(Recording ? "Stop record" : "Record demo"), 0, &Button)) // Localize("Stop record");Localize("Record demo"); + { + if(!Recording) + { + char aFilename[128]; + time_t Time; + time(&Time); + tm* TimeInfo = localtime(&Time); + strftime(aFilename, sizeof(aFilename), "demo-%Y-%m-%d_%H-%M-%S", TimeInfo); + Client()->DemoRecorder_Start(aFilename); + } + else + DemoRecorder()->Stop(); + } /* CUIRect bars; diff --git a/src/game/client/gameclient.cpp b/src/game/client/gameclient.cpp index 2b47af1f..319cc300 100644 --- a/src/game/client/gameclient.cpp +++ b/src/game/client/gameclient.cpp @@ -115,6 +115,7 @@ void CGameClient::OnConsoleInit() m_pConsole = Kernel()->RequestInterface<IConsole>(); m_pStorage = Kernel()->RequestInterface<IStorage>(); m_pDemoPlayer = Kernel()->RequestInterface<IDemoPlayer>(); + m_pDemoRecorder = Kernel()->RequestInterface<IDemoRecorder>(); m_pServerBrowser = Kernel()->RequestInterface<IServerBrowser>(); // setup pointers diff --git a/src/game/client/gameclient.h b/src/game/client/gameclient.h index b91b4b50..28043794 100644 --- a/src/game/client/gameclient.h +++ b/src/game/client/gameclient.h @@ -37,6 +37,7 @@ class CGameClient : public IGameClient class IConsole *m_pConsole; class IStorage *m_pStorage; class IDemoPlayer *m_pDemoPlayer; + class IDemoRecorder *m_pDemoRecorder; class IServerBrowser *m_pServerBrowser; CLayers m_Layers; @@ -68,6 +69,7 @@ public: class IConsole *Console() { return m_pConsole; } class ITextRender *TextRender() const { return m_pTextRender; } class IDemoPlayer *DemoPlayer() const { return m_pDemoPlayer; } + class IDemoRecorder *DemoRecorder() const { return m_pDemoRecorder; } class IServerBrowser *ServerBrowser() const { return m_pServerBrowser; } class CRenderTools *RenderTools() { return &m_RenderTools; } class CLayers *Layers() { return &m_Layers; }; |