From b49f20b42470f2608c29eaf33def7934e446d52c Mon Sep 17 00:00:00 2001 From: D-AIRY <admin@ds-servers.com> Date: Tue, 24 Dec 2024 16:40:42 +0300 Subject: [PATCH] cvars for player speed --- source/game/GameData.cpp | 8 +++++-- source/game/Player.cpp | 47 +++++++++++++++++++++------------------- 2 files changed, 31 insertions(+), 24 deletions(-) diff --git a/source/game/GameData.cpp b/source/game/GameData.cpp index 251acd8fb..d5e2b3d83 100644 --- a/source/game/GameData.cpp +++ b/source/game/GameData.cpp @@ -663,8 +663,12 @@ GameData::GameData(HWND hWnd, bool isGame): Core_0RegisterCVarBool("cl_bob", true, "View bobbing"); Core_0RegisterCVarFloat("cl_bob_y", 0.1f, "View bobbing base y amplitude"); Core_0RegisterCVarFloat("cl_bob_x", 0.1f, "View bobbing base strafe amplitude"); - Core_0RegisterCVarFloat("cl_bob_period", 0.5f, "View bobbing base period"); - Core_0RegisterCVarFloat("cl_acceleration", 1.7f, "Player acceleration"); + Core_0RegisterCVarFloat("cl_bob_period", 5.0f, "View bobbing base period"); + Core_0RegisterCVarFloat("cl_acceleration", 17.0f, "Player acceleration"); + Core_0RegisterCVarFloat("cl_speed_walk", 3.5f, "Player walk speed"); + Core_0RegisterCVarFloat("cl_speed_run", 7.0f, "Player run speed"); + Core_0RegisterCVarFloat("cl_speed_crouch", 1.05f, "Player crouch speed"); + Core_0RegisterCVarFloat("cl_speed_crawl", 0.175f, "Player crawl speed"); Core_0RegisterCVarFloat("lvl_debris_remove_time_min", 120.0f, "Debris collector time min"); Core_0RegisterCVarFloat("lvl_debris_remove_time_max", 200.0f, "Debris collector time max"); diff --git a/source/game/Player.cpp b/source/game/Player.cpp index 3268ecebb..7e5795e78 100644 --- a/source/game/Player.cpp +++ b/source/game/Player.cpp @@ -140,6 +140,17 @@ void CPlayer::updateInput(float dt) static const bool *editor_mode = GET_PCVAR_BOOL("cl_mode_editor"); static const bool *grab_cursor = GET_PCVAR_BOOL("cl_grab_cursor"); static const bool *invert_y = GET_PCVAR_BOOL("cl_invert_y"); + + static const bool* cl_bob = GET_PCVAR_BOOL("cl_bob"); + static const float* cl_bob_y = GET_PCVAR_FLOAT("cl_bob_y"); + static const float* cl_bob_x = GET_PCVAR_FLOAT("cl_bob_x"); + static const float* cl_bob_period = GET_PCVAR_FLOAT("cl_bob_period"); + + static const float* cl_acceleration = GET_PCVAR_FLOAT("cl_acceleration"); + static const float* cl_speed_walk = GET_PCVAR_FLOAT("cl_speed_walk"); + static const float* cl_speed_run = GET_PCVAR_FLOAT("cl_speed_run"); + static const float* cl_speed_crouch = GET_PCVAR_FLOAT("cl_speed_crouch"); + static const float* cl_speed_crawl = GET_PCVAR_FLOAT("cl_speed_crawl"); if(*editor_mode && !SSInput_GetKeyState(SIK_LCONTROL)) { @@ -206,11 +217,6 @@ void CPlayer::updateInput(float dt) } { - if(m_uMoveDir & PM_RUN) - { - //dt *= 5.0f; - } - //dt *= 10.0f; float3 dir; bool mov = false; if(m_uMoveDir & PM_FORWARD) @@ -265,7 +271,7 @@ void CPlayer::updateInput(float dt) } else { - m_fCurrentHeight += dt * 10.0f; + m_fCurrentHeight += dt * 6.0f; if(m_fCurrentHeight > 1.0f) { m_fCurrentHeight = 1.0f; @@ -274,20 +280,24 @@ void CPlayer::updateInput(float dt) m_pCollideShape->setLocalScaling(float3(1.0f, m_fCurrentHeight, 1.0f)); - dir = SMQuaternion(m_vPitchYawRoll.y, 'y') * (SMVector3Normalize(dir)/* * dt*/); - dir *= 3.5f; + dir = SMQuaternion(m_vPitchYawRoll.y, 'y') * SMVector3Normalize(dir); if(m_uMoveDir & PM_CROUCH) { - dir *= 0.3f; + dir *= *cl_speed_crouch; } else if(m_uMoveDir & PM_CRAWL) { - dir *= 0.05f; + dir *= *cl_speed_crawl; } else if(m_uMoveDir & PM_RUN) { - dir *= 2.0f; + dir *= *cl_speed_run; + } + else + { + dir *= *cl_speed_walk; } + if((m_uMoveDir & PM_JUMP)) { if(m_pCharacter->canJump()) @@ -308,19 +318,12 @@ void CPlayer::updateInput(float dt) { m_canJump = true; } - // m_pCharacter->setWalkDirection(F3_BTVEC(dir)); - m_vTargetSpeed = dir; - - static const bool* cl_bob = GET_PCVAR_BOOL("cl_bob"); - static const float* cl_bob_y = GET_PCVAR_FLOAT("cl_bob_y"); - static const float* cl_bob_x = GET_PCVAR_FLOAT("cl_bob_x"); - static const float* cl_bob_period = GET_PCVAR_FLOAT("cl_bob_period"); - static const float* cl_acceleration = GET_PCVAR_FLOAT("cl_acceleration"); + m_vTargetSpeed = dir; if(onGround()) { - float fAccel = *cl_acceleration * dt * 10.0f; + float fAccel = *cl_acceleration * dt; float3 fAccelDir = m_vTargetSpeed - m_vCurrentSpeed; float fMaxAccel = SMVector3Length(fAccelDir); @@ -334,7 +337,7 @@ void CPlayer::updateInput(float dt) if(*cl_bob) { - float fBobCoeff = SMVector3Length(m_vCurrentSpeed) / 3.5f; + float fBobCoeff = SMVector3Length(m_vCurrentSpeed) / *cl_speed_walk; if(mov && m_pCharacter->onGround()) { const float fFS1 = SM_PIDIV2; @@ -344,7 +347,7 @@ void CPlayer::updateInput(float dt) - m_fViewbobStep += dt * 10.0f * *cl_bob_period * fBobCoeff; + m_fViewbobStep += dt * *cl_bob_period * fBobCoeff; /*if(m_uMoveDir & PM_RUN) -- GitLab