about summary refs log tree commit diff
path: root/src/game/client
diff options
context:
space:
mode:
authorSushiTee <weichel.sascha@gmail.com>2010-09-26 14:53:20 +0200
committeroy <Tom_Adams@web.de>2010-09-26 18:00:29 +0200
commit5faec7c80dd2d22884a63cbbe556965949d2a9df (patch)
tree54669b108a2804c1247d5d17eb8b7086e606be3b /src/game/client
parent4e608965ef2ceff44731cd3cbb585ccca6c6065d (diff)
downloadzcatch-5faec7c80dd2d22884a63cbbe556965949d2a9df.tar.gz
zcatch-5faec7c80dd2d22884a63cbbe556965949d2a9df.zip
changed pickup animation speed for demos according to demospeed (fixes issue 72)
Diffstat (limited to 'src/game/client')
-rw-r--r--src/game/client/components/items.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/game/client/components/items.cpp b/src/game/client/components/items.cpp
index b29bee99..b4d696f7 100644
--- a/src/game/client/components/items.cpp
+++ b/src/game/client/components/items.cpp
@@ -1,4 +1,5 @@
 #include <engine/graphics.h>
+#include <engine/demo.h>
 #include <game/generated/protocol.h>
 #include <game/generated/client_data.h>
 
@@ -111,8 +112,21 @@ void CItems::RenderPickup(const CNetObj_Pickup *pPrev, const CNetObj_Pickup *pCu
 	Graphics()->QuadsSetRotation(Angle);
 
 	float Offset = Pos.y/32.0f + Pos.x/32.0f;
-	Pos.x += cosf(Client()->LocalTime()*2.0f+Offset)*2.5f;
-	Pos.y += sinf(Client()->LocalTime()*2.0f+Offset)*2.5f;
+	if(Client()->State() == IClient::STATE_DEMOPLAYBACK)
+	{
+		const IDemoPlayer::CInfo *pInfo = DemoPlayer()->BaseInfo();
+		
+		if(!pInfo->m_Paused)
+		{
+			Pos.x += cosf(Client()->LocalTime()*pInfo->m_Speed*2.0f+Offset)*2.5f;
+			Pos.y += sinf(Client()->LocalTime()*pInfo->m_Speed*2.0f+Offset)*2.5f;
+		}
+	}
+	else
+	{
+		Pos.x += cosf(Client()->LocalTime()*2.0f+Offset)*2.5f;
+		Pos.y += sinf(Client()->LocalTime()*2.0f+Offset)*2.5f;
+	}
 	RenderTools()->DrawSprite(Pos.x, Pos.y, Size);
 	Graphics()->QuadsEnd();
 }