about summary refs log tree commit diff
path: root/src/game/client
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/client')
-rw-r--r--src/game/client/components/controls.cpp5
-rw-r--r--src/game/client/components/controls.h1
-rw-r--r--src/game/client/gameclient.cpp5
3 files changed, 11 insertions, 0 deletions
diff --git a/src/game/client/components/controls.cpp b/src/game/client/components/controls.cpp
index 7b3f4716..859bb471 100644
--- a/src/game/client/components/controls.cpp
+++ b/src/game/client/components/controls.cpp
@@ -30,6 +30,11 @@ void CControls::OnReset()
 	m_InputDirectionRight = 0;
 }
 
+void CControls::OnPlayerDeath()
+{
+	m_LastData.m_WantedWeapon = m_InputData.m_WantedWeapon = 0;
+}
+
 static void ConKeyInputState(IConsole::IResult *pResult, void *pUserData)
 {
 	((int *)pUserData)[0] = pResult->GetInteger(0);
diff --git a/src/game/client/components/controls.h b/src/game/client/components/controls.h
index 4a1038da..092555d8 100644
--- a/src/game/client/components/controls.h
+++ b/src/game/client/components/controls.h
@@ -21,6 +21,7 @@ public:
 	virtual void OnMessage(int MsgType, void *pRawMsg);
 	virtual bool OnMouseMove(float x, float y);
 	virtual void OnConsoleInit();
+	virtual void OnPlayerDeath();
 	
 	int SnapInput(int *pData);
 };
diff --git a/src/game/client/gameclient.cpp b/src/game/client/gameclient.cpp
index 319cc300..acf29eb7 100644
--- a/src/game/client/gameclient.cpp
+++ b/src/game/client/gameclient.cpp
@@ -764,6 +764,11 @@ void CGameClient::OnNewSnapshot()
 			m_Snap.m_pLocalPrevCharacter = &c->m_Prev;
 			m_LocalCharacterPos = vec2(m_Snap.m_pLocalCharacter->m_X, m_Snap.m_pLocalCharacter->m_Y);
 		}
+		else if(Client()->SnapFindItem(IClient::SNAP_PREV, NETOBJTYPE_CHARACTER, m_Snap.m_LocalCid))
+		{
+			// player died
+			m_pControls->OnPlayerDeath();
+		}
 	}
 	else
 		m_Snap.m_Spectate = true;