Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions src/game/client/neo/c_neo_player.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -909,12 +909,7 @@ void C_NEO_Player::CalculateSpeed(void)

if (GetFlags() & FL_DUCKING)
{
speed *= NEO_CROUCH_WALK_MODIFIER;
}

if (m_nButtons & IN_WALK)
{
speed *= NEO_CROUCH_WALK_MODIFIER; // They stack
speed *= NEO_CROUCH_MODIFIER;
}

if (IsSprinting())
Expand All @@ -940,6 +935,11 @@ void C_NEO_Player::CalculateSpeed(void)
speed *= NEO_AIM_MODIFIER;
}

if (m_nButtons & IN_WALK)
{
speed = MIN(GetFlags() & FL_DUCKING ? NEO_CROUCH_WALK_SPEED : NEO_WALK_SPEED, speed);
}

Vector absoluteVelocity = GetAbsVelocity();
absoluteVelocity.z = 0.f;
float currentSpeed = absoluteVelocity.Length();
Expand Down Expand Up @@ -1011,7 +1011,7 @@ void C_NEO_Player::HandleSpeedChangesLegacy()
{
StopWalking();
}
else if( !IsWalking() && !IsSprinting() && (m_afButtonPressed & IN_WALK) && !(m_nButtons & IN_DUCK) )
else if( !IsWalking() && !IsSprinting() && (m_afButtonPressed & IN_WALK) )
{
StartWalking();
}
Expand Down Expand Up @@ -1696,7 +1696,7 @@ float C_NEO_Player::GetCrouchSpeed(void) const
case NEO_CLASS_VIP:
return NEO_VIP_CROUCH_SPEED;
default:
return (NEO_BASE_SPEED * NEO_CROUCH_WALK_MODIFIER);
return (NEO_BASE_SPEED * NEO_CROUCH_MODIFIER);
}
}

Expand Down
4 changes: 4 additions & 0 deletions src/game/server/hl2/hl2_player.h
Original file line number Diff line number Diff line change
Expand Up @@ -345,7 +345,11 @@ class CHL2_Player : public BASEPLAYERCLASS
float m_fAutoSprintMinTime; // Minimum time to maintain autosprint regardless of player speed.

CNetworkVar( bool, m_fIsSprinting );
#ifdef NEO
CNetworkVar( bool, m_fIsWalking );
#else
CNetworkVarForDerived( bool, m_fIsWalking );
#endif // NEO

protected: // Jeep: Portal_Player needs access to this variable to overload PlayerUse for picking up objects through portals
bool m_bPlayUseDenySound; // Signaled by PlayerUse, but can be unset by HL2 ladder code...
Expand Down
1 change: 1 addition & 0 deletions src/game/server/hl2mp/hl2mp_player.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ IMPLEMENT_SERVERCLASS_ST(CHL2MP_Player, DT_HL2MP_Player)
SendPropExclude( "DT_BaseFlex", "m_flexWeight" ),
SendPropExclude( "DT_BaseFlex", "m_blinktoggle" ),
SendPropExclude( "DT_BaseFlex", "m_viewtarget" ),
SendPropBool(SENDINFO(m_fIsWalking)),
#endif

#ifndef NEO // NEOTODO (Adam) This is causing the player to have a m_flMaxSpeed value of 0 during prediction, even though client and server set this value correctly, causing the players position to jitter
Expand Down
16 changes: 8 additions & 8 deletions src/game/server/neo/neo_player.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -740,12 +740,7 @@ void CNEO_Player::CalculateSpeed(void)

if (GetFlags() & FL_DUCKING)
{
speed *= NEO_CROUCH_WALK_MODIFIER;
}

if (m_nButtons & IN_WALK)
{
speed *= NEO_CROUCH_WALK_MODIFIER; // They stack
speed *= NEO_CROUCH_MODIFIER;
}

if (IsSprinting())
Expand All @@ -771,6 +766,11 @@ void CNEO_Player::CalculateSpeed(void)
speed *= NEO_AIM_MODIFIER;
}

if (m_nButtons & IN_WALK)
{
speed = MIN(GetFlags() & FL_DUCKING ? NEO_CROUCH_WALK_SPEED : NEO_WALK_SPEED, speed);
}

Vector absoluteVelocity = GetAbsVelocity();
absoluteVelocity.z = 0.f;
float currentSpeed = absoluteVelocity.Length();
Expand Down Expand Up @@ -855,7 +855,7 @@ void CNEO_Player::HandleSpeedChangesLegacy()

if( IsSuitEquipped() )
{
bWantWalking = (m_nButtons & IN_WALK) && !IsSprinting() && !(m_nButtons & IN_DUCK);
bWantWalking = (m_nButtons & IN_WALK) && !IsSprinting();
}
else
{
Expand Down Expand Up @@ -3186,7 +3186,7 @@ float CNEO_Player::GetCrouchSpeed(void) const
case NEO_CLASS_VIP:
return NEO_VIP_CROUCH_SPEED;
default:
return (NEO_BASE_SPEED * NEO_CROUCH_WALK_MODIFIER);
return (NEO_BASE_SPEED * NEO_CROUCH_MODIFIER);
}
}

Expand Down
23 changes: 20 additions & 3 deletions src/game/shared/baseplayer_shared.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -560,7 +560,8 @@ void CBasePlayer::UpdateStepSound( surfacedata_t *psurface, const Vector &vecOri
return;

#ifdef NEO
if (static_cast<CNEO_Player*>(this)->GetNeoFlags() & NEO_FL_FREEZETIME)
auto neoPlayer = static_cast<CNEO_Player*>(this);
if (neoPlayer->GetNeoFlags() & NEO_FL_FREEZETIME)
return;
#endif

Expand All @@ -580,7 +581,11 @@ void CBasePlayer::UpdateStepSound( surfacedata_t *psurface, const Vector &vecOri

bool onground = ( GetFlags() & FL_ONGROUND );
bool movingalongground = ( groundspeed > 0.0001f );
#ifdef NEO
const bool moving_fast_enough = speed >= 50.f; // Support crouched with a supa7 aimed in has a speed of 55.f
#else
bool moving_fast_enough = ( speed >= velwalk );
#endif // NEO

#ifdef PORTAL
// In Portal we MUST play footstep sounds even when the player is moving very slowly
Expand All @@ -597,7 +602,11 @@ void CBasePlayer::UpdateStepSound( surfacedata_t *psurface, const Vector &vecOri

// MoveHelper()->PlayerSetAnimation( PLAYER_WALK );

#ifdef NEO
bWalking = speed < velrun && !neoPlayer->IsSprinting();
#else
bWalking = speed < velrun;
#endif // NEO

VectorCopy( vecOrigin, knee );
VectorCopy( vecOrigin, feet );
Expand Down Expand Up @@ -683,22 +692,30 @@ void CBasePlayer::UpdateStepSound( surfacedata_t *psurface, const Vector &vecOri
}
}

#ifdef NEO
// Changing movement direction, looking around, wall-running accelerate the player. Raise the threshold.
// Throwing the mouse around quickly while changing direction will still result in footstep sounds, and wall running (as it should)
constexpr float SILENT_THRESHOLD_GRACE = 1.25;
#endif //NEO
// play the sound
// 65% volume if ducking
if ( GetFlags() & FL_DUCKING )
{
fvol *= 0.65;
#ifdef NEO
if (speed <= 60)
if (neoPlayer->IsWalking() && speed <= NEO_CROUCH_WALK_SPEED * SILENT_THRESHOLD_GRACE)
{
return;
}
#endif // NEO
}
#ifdef NEO
else if ( speed <= 90) {

else if (neoPlayer->IsWalking() && speed <= NEO_WALK_SPEED * SILENT_THRESHOLD_GRACE)
{
return;
}

#endif
PlayStepSound( feet, psurface, fvol, false );
}
Expand Down
12 changes: 7 additions & 5 deletions src/game/shared/neo/neo_player_shared.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,25 +41,27 @@

// Aim Modifier
#define NEO_AIM_MODIFIER 0.6
// Crouch/Walk Modifier
#define NEO_CROUCH_WALK_MODIFIER 0.75
// Crouch Modifier
#define NEO_CROUCH_MODIFIER 0.75
#define NEO_WALK_SPEED 90
#define NEO_CROUCH_WALK_SPEED 60


// Movement Calculations
// Recon
#define NEO_RECON_BASE_SPEED (NEO_BASE_SPEED * NEO_RECON_MODIFIER)
#define NEO_RECON_SPRINT_SPEED (NEO_RECON_BASE_SPEED * NEO_RECON_SPRINT_MODIFIER)
#define NEO_RECON_CROUCH_SPEED (NEO_RECON_BASE_SPEED * NEO_CROUCH_WALK_MODIFIER)
#define NEO_RECON_CROUCH_SPEED (NEO_RECON_BASE_SPEED * NEO_CROUCH_MODIFIER)
#define NEO_RECON_WALK_SPEED NEO_RECON_CROUCH_SPEED
// Assault
#define NEO_ASSAULT_BASE_SPEED (NEO_BASE_SPEED * NEO_ASSAULT_MODIFIER)
#define NEO_ASSAULT_SPRINT_SPEED (NEO_ASSAULT_BASE_SPEED * NEO_ASSAULT_SPRINT_MODIFIER)
#define NEO_ASSAULT_CROUCH_SPEED (NEO_ASSAULT_BASE_SPEED * NEO_CROUCH_WALK_MODIFIER)
#define NEO_ASSAULT_CROUCH_SPEED (NEO_ASSAULT_BASE_SPEED * NEO_CROUCH_MODIFIER)
#define NEO_ASSAULT_WALK_SPEED NEO_ASSAULT_CROUCH_SPEED
// Support
#define NEO_SUPPORT_BASE_SPEED (NEO_BASE_SPEED * NEO_SUPPORT_MODIFIER)
#define NEO_SUPPORT_SPRINT_SPEED (NEO_SUPPORT_BASE_SPEED * NEO_SUPPORT_SPRINT_MODIFIER) // Redundant, but for future usecases
#define NEO_SUPPORT_CROUCH_SPEED (NEO_SUPPORT_BASE_SPEED * NEO_CROUCH_WALK_MODIFIER)
#define NEO_SUPPORT_CROUCH_SPEED (NEO_SUPPORT_BASE_SPEED * NEO_CROUCH_MODIFIER)
#define NEO_SUPPORT_WALK_SPEED NEO_SUPPORT_CROUCH_SPEED
// VIP
#define NEO_VIP_BASE_SPEED NEO_ASSAULT_BASE_SPEED
Expand Down