From 9c1e65a1f570f8278c9ab6b0ab1c3aa8949b790c Mon Sep 17 00:00:00 2001 From: def Date: Sun, 19 Apr 2015 14:03:40 +0200 Subject: [PATCH] Clean up a bit and hopefully fix player move on dummy connect --- src/game/client/components/controls.cpp | 50 ++++++++++--------------- src/game/client/components/controls.h | 2 +- src/game/client/gameclient.cpp | 26 ++++++------- src/game/client/gameclient.h | 3 +- 4 files changed, 34 insertions(+), 47 deletions(-) diff --git a/src/game/client/components/controls.cpp b/src/game/client/components/controls.cpp index d06515d1f..62be4575e 100644 --- a/src/game/client/components/controls.cpp +++ b/src/game/client/components/controls.cpp @@ -63,17 +63,8 @@ CControls::CControls() void CControls::OnReset() { - m_LastData[g_Config.m_ClDummy].m_Direction = 0; - //m_LastData.m_Hook = 0; - // simulate releasing the fire button - if((m_LastData[g_Config.m_ClDummy].m_Fire&1) != 0) - m_LastData[g_Config.m_ClDummy].m_Fire++; - m_LastData[g_Config.m_ClDummy].m_Fire &= INPUT_STATE_MASK; - m_LastData[g_Config.m_ClDummy].m_Jump = 0; - m_InputData[g_Config.m_ClDummy] = m_LastData[g_Config.m_ClDummy]; - - m_InputDirectionLeft[g_Config.m_ClDummy] = 0; - m_InputDirectionRight[g_Config.m_ClDummy] = 0; + ResetInput(0); + ResetInput(1); m_JoystickFirePressed = false; m_JoystickRunPressed = false; @@ -83,22 +74,19 @@ void CControls::OnReset() m_OldMouseX = m_OldMouseY = 0.0f; } -void CControls::ResetDummyInput() +void CControls::ResetInput(int dummy) { - m_LastData[!g_Config.m_ClDummy].m_Direction = 0; - if(m_LastData[!g_Config.m_ClDummy].m_Fire & 1) - m_LastData[!g_Config.m_ClDummy].m_Fire++; - m_LastData[!g_Config.m_ClDummy].m_Hook = 0; - m_LastData[!g_Config.m_ClDummy].m_Jump = 0; + m_LastData[dummy].m_Direction = 0; + //m_LastData.m_Hook = 0; + // simulate releasing the fire button + if((m_LastData[dummy].m_Fire&1) != 0) + m_LastData[dummy].m_Fire++; + m_LastData[dummy].m_Fire &= INPUT_STATE_MASK; + m_LastData[dummy].m_Jump = 0; + m_InputData[dummy] = m_LastData[dummy]; - m_InputData[!g_Config.m_ClDummy].m_Direction = 0; - if(m_InputData[!g_Config.m_ClDummy].m_Fire & 1) - m_InputData[!g_Config.m_ClDummy].m_Fire++; - m_InputData[!g_Config.m_ClDummy].m_Hook = 0; - m_InputData[!g_Config.m_ClDummy].m_Jump = 0; - - m_InputDirectionLeft[!g_Config.m_ClDummy] = 0; - m_InputDirectionRight[!g_Config.m_ClDummy] = 0; + m_InputDirectionLeft[dummy] = 0; + m_InputDirectionRight[dummy] = 0; } void CControls::OnRelease() @@ -108,11 +96,11 @@ void CControls::OnRelease() void CControls::OnPlayerDeath() { - if (g_Config.m_ClResetWantedWeaponOnDeath) - m_LastData[g_Config.m_ClDummy].m_WantedWeapon = m_InputData[g_Config.m_ClDummy].m_WantedWeapon = 0; - for( int i = 0; i < NUM_WEAPONS; i++ ) - m_AmmoCount[i] = 0; - m_JoystickTapTime = 0; // Do not launch hook on first tap + if (g_Config.m_ClResetWantedWeaponOnDeath) + m_LastData[g_Config.m_ClDummy].m_WantedWeapon = m_InputData[g_Config.m_ClDummy].m_WantedWeapon = 0; + for( int i = 0; i < NUM_WEAPONS; i++ ) + m_AmmoCount[i] = 0; + m_JoystickTapTime = 0; // Do not launch hook on first tap } struct CInputState @@ -248,7 +236,7 @@ int CControls::SnapInput(int *pData) // we freeze the input if chat or menu is activated if(!(m_InputData[g_Config.m_ClDummy].m_PlayerFlags&PLAYERFLAG_PLAYING)) { - OnReset(); + ResetInput(g_Config.m_ClDummy); mem_copy(pData, &m_InputData[g_Config.m_ClDummy], sizeof(m_InputData[0])); diff --git a/src/game/client/components/controls.h b/src/game/client/components/controls.h index c8e08c266..413091d93 100644 --- a/src/game/client/components/controls.h +++ b/src/game/client/components/controls.h @@ -44,6 +44,6 @@ public: int SnapInput(int *pData); void ClampMousePos(); - void ResetDummyInput(); + void ResetInput(int dummy); }; #endif diff --git a/src/game/client/gameclient.cpp b/src/game/client/gameclient.cpp index 36495d47b..4244b1cce 100644 --- a/src/game/client/gameclient.cpp +++ b/src/game/client/gameclient.cpp @@ -108,7 +108,7 @@ const char *CGameClient::GetItemName(int Type) { return m_NetObjHandler.GetObjNa void CGameClient::ResetDummyInput() { - m_pControls->ResetDummyInput(); + m_pControls->ResetInput(!g_Config.m_ClDummy); } void CGameClient::OnConsoleInit() @@ -581,7 +581,7 @@ void CGameClient::OnRender() // resend player and dummy info if it was filtered by server if(Client()->State() == IClient::STATE_ONLINE && !m_pMenus->IsActive()) { - if(m_CheckInfo == 0) { + if(m_CheckInfo[0] == 0) { if( str_comp(m_aClients[Client()->m_LocalIDs[0]].m_aName, g_Config.m_PlayerName) || str_comp(m_aClients[Client()->m_LocalIDs[0]].m_aClan, g_Config.m_PlayerClan) || @@ -593,14 +593,14 @@ void CGameClient::OnRender() ) SendInfo(false); else - m_CheckInfo = -1; + m_CheckInfo[0] = -1; } - if(m_CheckInfo > 0) - m_CheckInfo--; + if(m_CheckInfo[0] > 0) + m_CheckInfo[0]--; if(Client()->DummyConnected()) { - if(m_CheckDummyInfo == 0) { + if(m_CheckInfo[1] == 0) { if( str_comp(m_aClients[Client()->m_LocalIDs[1]].m_aName, g_Config.m_DummyName) || str_comp(m_aClients[Client()->m_LocalIDs[1]].m_aClan, g_Config.m_DummyClan) || @@ -612,11 +612,11 @@ void CGameClient::OnRender() ) SendDummyInfo(false); else - m_CheckDummyInfo = -1; + m_CheckInfo[1] = -1; } - if(m_CheckDummyInfo > 0) - m_CheckDummyInfo--; + if(m_CheckInfo[1] > 0) + m_CheckInfo[1]--; } } } @@ -1721,7 +1721,7 @@ void CGameClient::SendInfo(bool Start) CMsgPacker Packer(Msg.MsgID()); Msg.Pack(&Packer); Client()->SendMsgExY(&Packer, MSGFLAG_VITAL, false, 0); - m_CheckInfo = -1; + m_CheckInfo[0] = -1; } else { @@ -1736,7 +1736,7 @@ void CGameClient::SendInfo(bool Start) CMsgPacker Packer(Msg.MsgID()); Msg.Pack(&Packer); Client()->SendMsgExY(&Packer, MSGFLAG_VITAL, false, 0); - m_CheckInfo = Client()->GameTickSpeed(); + m_CheckInfo[0] = Client()->GameTickSpeed(); } } @@ -1755,7 +1755,7 @@ void CGameClient::SendDummyInfo(bool Start) CMsgPacker Packer(Msg.MsgID()); Msg.Pack(&Packer); Client()->SendMsgExY(&Packer, MSGFLAG_VITAL, false, 1); - m_CheckDummyInfo = -1; + m_CheckInfo[1] = -1; } else { @@ -1770,7 +1770,7 @@ void CGameClient::SendDummyInfo(bool Start) CMsgPacker Packer(Msg.MsgID()); Msg.Pack(&Packer); Client()->SendMsgExY(&Packer, MSGFLAG_VITAL,false, 1); - m_CheckDummyInfo = Client()->GameTickSpeed(); + m_CheckInfo[1] = Client()->GameTickSpeed(); } } diff --git a/src/game/client/gameclient.h b/src/game/client/gameclient.h index 73506dae3..c3ed565ed 100644 --- a/src/game/client/gameclient.h +++ b/src/game/client/gameclient.h @@ -108,8 +108,7 @@ class CGameClient : public IGameClient int m_PredictedTick; int m_LastNewPredictedTick[2]; - int m_CheckInfo; - int m_CheckDummyInfo; + int m_CheckInfo[2]; static void ConTeam(IConsole::IResult *pResult, void *pUserData); static void ConKill(IConsole::IResult *pResult, void *pUserData);