diff options
| author | SushiTee <weichel.sascha@gmail.com> | 2010-10-19 13:37:36 +0200 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2010-10-19 18:52:16 +0200 |
| commit | 314cda05c7cda9afb05b4b9176dc94dcc16ac760 (patch) | |
| tree | 40c593ca144d76ed7ea57ec8c27f1d74c9a54e39 /src/game/client/components/maplayers.cpp | |
| parent | d7a8b94f772d7811b9b96be0b4f3dd8bff775ac3 (diff) | |
| download | zcatch-314cda05c7cda9afb05b4b9176dc94dcc16ac760.tar.gz zcatch-314cda05c7cda9afb05b4b9176dc94dcc16ac760.zip | |
changed demo animations according to demo speed and added some demo speeds. (fixes #206)
Diffstat (limited to 'src/game/client/components/maplayers.cpp')
| -rw-r--r-- | src/game/client/components/maplayers.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/game/client/components/maplayers.cpp b/src/game/client/components/maplayers.cpp index d3a819c0..5d2e85bd 100644 --- a/src/game/client/components/maplayers.cpp +++ b/src/game/client/components/maplayers.cpp @@ -1,5 +1,6 @@ #include <engine/graphics.h> #include <engine/keys.h> +#include <engine/demo.h> #include <engine/serverbrowser.h> #include <engine/shared/config.h> #include <engine/storage.h> @@ -59,7 +60,22 @@ void CMapLayers::EnvelopeEval(float TimeOffset, int Env, float *pChannels, void return; CMapItemEnvelope *pItem = (CMapItemEnvelope *)pThis->m_pLayers->Map()->GetItem(Start+Env, 0, 0); - pThis->RenderTools()->RenderEvalEnvelope(pPoints+pItem->m_StartPoint, pItem->m_NumPoints, 4, pThis->Client()->LocalTime()+TimeOffset, pChannels); + + if(pThis->Client()->State() == IClient::STATE_DEMOPLAYBACK) + { + const IDemoPlayer::CInfo *pInfo = pThis->DemoPlayer()->BaseInfo(); + static float Time = 0; + static float LastLocalTime = pThis->Client()->LocalTime(); + + if(!pInfo->m_Paused) + Time += (pThis->Client()->LocalTime()-LastLocalTime)*pInfo->m_Speed; + + pThis->RenderTools()->RenderEvalEnvelope(pPoints+pItem->m_StartPoint, pItem->m_NumPoints, 4, Time+TimeOffset, pChannels); + + LastLocalTime = pThis->Client()->LocalTime(); + } + else + pThis->RenderTools()->RenderEvalEnvelope(pPoints+pItem->m_StartPoint, pItem->m_NumPoints, 4, pThis->Client()->LocalTime()+TimeOffset, pChannels); } void CMapLayers::OnRender() |