implemented main SA movement features and defcheck
This commit is contained in:
parent
3b0319d009
commit
3404d7f306
@ -36,6 +36,13 @@ extern IFileSystem *filesystem;
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#define SA_MOVEMENT
|
||||
ConVar sa_sv_pogostick("sv_pogostick", "0", FCVAR_REPLICATED, "queue jumps", 1, 0, 1, 1);
|
||||
ConVar sa_sv_queuejump("sv_queuejump", "1", FCVAR_REPLICATED, "auto bunny hopping", 1, 0, 1, 1);
|
||||
|
||||
|
||||
|
||||
// tickcount currently isn't set during prediction, although gpGlobals->curtime and
|
||||
// gpGlobals->frametime are. We should probably set tickcount (to player->m_nTickBase),
|
||||
// but we're REALLY close to shipping, so we can change that later and people can use
|
||||
@ -1199,6 +1206,14 @@ void CGameMovement::FinishTrackPredictionErrors( CBasePlayer *pPlayer )
|
||||
//-----------------------------------------------------------------------------
|
||||
void CGameMovement::FinishMove( void )
|
||||
{
|
||||
ConVar* pPogoStick = cvar->FindVar("sv_pogostick");
|
||||
ConVar* pQueueJump = cvar->FindVar("sv_queuejump");
|
||||
if (!(mv->m_nButtons & IN_JUMP) && pQueueJump->GetInt() == 1) {
|
||||
mv->m_bRejumpAllowed = true;
|
||||
}
|
||||
else if (pPogoStick->GetInt() == 1) {
|
||||
mv->m_bRejumpAllowed = true;
|
||||
}
|
||||
mv->m_nOldButtons = mv->m_nButtons;
|
||||
}
|
||||
|
||||
@ -1889,6 +1904,12 @@ void CGameMovement::StayOnGround( void )
|
||||
}
|
||||
}
|
||||
|
||||
// Camera Bob
|
||||
ConVar cl_camtilt_enabled("cl_camtilt_enabled", "1", 0, "Oscillation Toggle", true, 0, true, 1);
|
||||
ConVar cl_viewbob_timer("cl_viewbob_timer", "1", 0, "Speed of Oscillation");
|
||||
ConVar cl_camtilt_scale("cl_camtilt_scale", "2.5", 0, "Magnitude of Oscillation");
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//-----------------------------------------------------------------------------
|
||||
@ -1915,6 +1936,16 @@ void CGameMovement::WalkMove( void )
|
||||
fmove = mv->m_flForwardMove;
|
||||
smove = mv->m_flSideMove;
|
||||
|
||||
if (cl_camtilt_enabled.GetInt() == 1 && !engine->IsPaused())
|
||||
{
|
||||
float offset = 2 * cl_viewbob_timer.GetFloat() * player->GetAbsVelocity().Length() * cl_camtilt_scale.GetFloat() / 4000000 * smove;
|
||||
QAngle playerAngles = mv->m_vecViewAngles;
|
||||
QAngle camTilt(0, 0, offset);
|
||||
QAngle resultAngles(playerAngles.x, playerAngles.y, playerAngles.z + camTilt.z);
|
||||
player->ViewPunch(camTilt);
|
||||
|
||||
}
|
||||
|
||||
// Zero out z components of movement vectors
|
||||
if ( g_bMovementOptimizations )
|
||||
{
|
||||
@ -2074,7 +2105,8 @@ void CGameMovement::FullWalkMove( )
|
||||
// If we are on ground, no downward velocity.
|
||||
if ( player->GetGroundEntity() != NULL )
|
||||
{
|
||||
mv->m_vecVelocity[2] = 0;
|
||||
mv->m_vecVelocity[2] = 0;
|
||||
mv->m_bRejumpAllowed = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -2353,6 +2385,8 @@ void CGameMovement::PlaySwimSound()
|
||||
//-----------------------------------------------------------------------------
|
||||
bool CGameMovement::CheckJumpButton( void )
|
||||
{
|
||||
ConVar* pPogoStick = cvar->FindVar("sv_pogostick");
|
||||
ConVar* pQueueJump = cvar->FindVar("sv_queuejump");
|
||||
if (player->pl.deadflag)
|
||||
{
|
||||
mv->m_nOldButtons |= IN_JUMP ; // don't jump again until released
|
||||
@ -2365,13 +2399,13 @@ bool CGameMovement::CheckJumpButton( void )
|
||||
player->m_flWaterJumpTime -= gpGlobals->frametime;
|
||||
if (player->m_flWaterJumpTime < 0)
|
||||
player->m_flWaterJumpTime = 0;
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// If we are in the water most of the way...
|
||||
if ( player->GetWaterLevel() >= 2 )
|
||||
{
|
||||
{
|
||||
// swimming, not jumping
|
||||
SetGroundEntity( NULL );
|
||||
|
||||
@ -2379,7 +2413,7 @@ bool CGameMovement::CheckJumpButton( void )
|
||||
mv->m_vecVelocity[2] = 100;
|
||||
else if (player->GetWaterType() == CONTENTS_SLIME)
|
||||
mv->m_vecVelocity[2] = 80;
|
||||
|
||||
|
||||
// play swiming sound
|
||||
if ( player->m_flSwimSoundTime <= 0 )
|
||||
{
|
||||
@ -2392,11 +2426,13 @@ bool CGameMovement::CheckJumpButton( void )
|
||||
}
|
||||
|
||||
// No more effect
|
||||
if (player->GetGroundEntity() == NULL)
|
||||
if (player->GetGroundEntity() == NULL)
|
||||
{
|
||||
mv->m_nOldButtons |= IN_JUMP;
|
||||
//Removed because we don't want the jump button to become 'unpressed'
|
||||
// mv->m_nOldButtons |= IN_JUMP;
|
||||
return false; // in air, so no effect
|
||||
}
|
||||
DevMsg("Got past getGroundEntity() == NULL \n");
|
||||
|
||||
// Don't allow jumping when the player is in a stasis field.
|
||||
#ifndef HL2_EPISODIC
|
||||
@ -2404,35 +2440,47 @@ bool CGameMovement::CheckJumpButton( void )
|
||||
return false;
|
||||
#endif
|
||||
|
||||
if ( mv->m_nOldButtons & IN_JUMP )
|
||||
//pressed jump on last tick/frame and both autojump and queuejump are disabled through console.
|
||||
if ( mv->m_nOldButtons & IN_JUMP && !(mv->m_bRejumpAllowed ) ) {
|
||||
return false; // don't pogo stick
|
||||
|
||||
}
|
||||
//DevMsg("Got past dont pogo \n");
|
||||
// Cannot jump will in the unduck transition.
|
||||
if ( player->m_Local.m_bDucking && ( player->GetFlags() & FL_DUCKING ) )
|
||||
return false;
|
||||
//if ( player->m_Local.m_bDucking && ( player->GetFlags() & FL_DUCKING ) )
|
||||
//return false;
|
||||
|
||||
// Still updating the eye position.
|
||||
if ( player->m_Local.m_flDuckJumpTime > 0.0f )
|
||||
return false;
|
||||
//if ( player->m_Local.m_flDuckJumpTime > 0.0f )
|
||||
//return false;
|
||||
|
||||
|
||||
if (pPogoStick->GetInt() == 0) {
|
||||
DevMsg("rejump disabled \n");
|
||||
mv->m_bRejumpAllowed = false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// In the air now.
|
||||
SetGroundEntity( NULL );
|
||||
|
||||
SetGroundEntity( NULL );
|
||||
|
||||
player->PlayStepSound( (Vector &)mv->GetAbsOrigin(), player->m_pSurfaceData, 1.0, true );
|
||||
|
||||
|
||||
MoveHelper()->PlayerSetAnimation( PLAYER_JUMP );
|
||||
|
||||
float flGroundFactor = 1.0f;
|
||||
if (player->m_pSurfaceData)
|
||||
{
|
||||
flGroundFactor = player->m_pSurfaceData->game.jumpFactor;
|
||||
flGroundFactor = player->m_pSurfaceData->game.jumpFactor;
|
||||
}
|
||||
|
||||
float flMul;
|
||||
if ( g_bMovementOptimizations )
|
||||
{
|
||||
#if defined(HL2_DLL) || defined(HL2_CLIENT_DLL)
|
||||
#if defined(HL2_DLL) &!defined(SArena_DLL) || defined(HL2_CLIENT_DLL) &!defined(SArena_DLL)
|
||||
Assert( GetCurrentGravity() == 600.0f );
|
||||
flMul = 160.0f; // approx. 21 units.
|
||||
#else
|
||||
@ -2443,7 +2491,10 @@ bool CGameMovement::CheckJumpButton( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
flMul = sqrt(2 * GetCurrentGravity() * GAMEMOVEMENT_JUMP_HEIGHT);
|
||||
//flMul = sqrt(2 * GetCurrentGravity() * GAMEMOVEMENT_JUMP_HEIGHT);
|
||||
//We need these
|
||||
Assert(GetCurrentGravity() == 800.0f);
|
||||
flMul = 268.3281572999747f;
|
||||
}
|
||||
|
||||
// Acclerate upward
|
||||
@ -2473,7 +2524,7 @@ bool CGameMovement::CheckJumpButton( void )
|
||||
AngleVectors( mv->m_vecViewAngles, &vecForward );
|
||||
vecForward.z = 0;
|
||||
VectorNormalize( vecForward );
|
||||
|
||||
|
||||
// We give a certain percentage of the current forward movement as a bonus to the jump speed. That bonus is clipped
|
||||
// to not accumulate over time.
|
||||
float flSpeedBoostPerc = ( !pMoveData->m_bIsSprinting && !player->m_Local.m_bDucked ) ? 0.5f : 0.1f;
|
||||
@ -2523,9 +2574,13 @@ bool CGameMovement::CheckJumpButton( void )
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
// Flag that we jumped.
|
||||
mv->m_nOldButtons |= IN_JUMP; // don't jump again until released
|
||||
|
||||
//Commented out because idk why
|
||||
//else if (pPogoStick->GetInt() == 0 && pQueueJump->GetInt() == 1 && player->GetGroundEntity() != NULL) {
|
||||
// Flag that we jumped.
|
||||
// mv->m_nOldButtons |= IN_JUMP; // don't jump again until released
|
||||
//}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -2840,7 +2895,7 @@ inline bool CGameMovement::OnLadder( trace_t &trace )
|
||||
// HPE_BEGIN
|
||||
// [sbodenbender] make ladders easier to climb in cstrike
|
||||
//=============================================================================
|
||||
#if defined (CSTRIKE_DLL)
|
||||
#if defined (CSTRIKE_DLL) || defined( SArena_DLL )
|
||||
ConVar sv_ladder_dampen ( "sv_ladder_dampen", "0.2", FCVAR_REPLICATED, "Amount to dampen perpendicular movement on a ladder", true, 0.0f, true, 1.0f );
|
||||
ConVar sv_ladder_angle( "sv_ladder_angle", "-0.707", FCVAR_REPLICATED, "Cos of angle of incidence to ladder perpendicular for applying ladder_dampen", true, -1.0f, true, 1.0f );
|
||||
#endif
|
||||
@ -2977,7 +3032,7 @@ bool CGameMovement::LadderMove( void )
|
||||
// HPE_BEGIN
|
||||
// [sbodenbender] make ladders easier to climb in cstrike
|
||||
//=============================================================================
|
||||
#if defined (CSTRIKE_DLL)
|
||||
#if defined (CSTRIKE_DLL) || defined( SArena_DLL )
|
||||
// break lateral into direction along tmp (up the ladder) and direction along perp (perpendicular to ladder)
|
||||
float tmpDist = DotProduct ( tmp, lateral );
|
||||
float perpDist = DotProduct ( perp, lateral );
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
#include "tier0/memdbgon.h"
|
||||
|
||||
// some cvars used by player movement system
|
||||
#if defined( HL2_DLL ) || defined( HL2_CLIENT_DLL )
|
||||
#if defined( HL2_DLL ) &! defined( SArena_DLL ) || defined( HL2_CLIENT_DLL ) &! defined( SArena_DLL )
|
||||
#define DEFAULT_GRAVITY_STRING "600"
|
||||
#else
|
||||
#define DEFAULT_GRAVITY_STRING "800"
|
||||
@ -36,7 +36,7 @@ float GetCurrentGravity( void )
|
||||
|
||||
ConVar sv_gravity ( "sv_gravity", DEFAULT_GRAVITY_STRING, FCVAR_NOTIFY | FCVAR_REPLICATED, "World gravity." );
|
||||
|
||||
#if defined( DOD_DLL ) || defined( CSTRIKE_DLL ) || defined( HL1MP_DLL )
|
||||
#if defined( DOD_DLL ) || defined( CSTRIKE_DLL ) || defined( HL1MP_DLL ) || defined( SArena_DLL )
|
||||
ConVar sv_stopspeed ( "sv_stopspeed","100", FCVAR_NOTIFY | FCVAR_REPLICATED, "Minimum stopping speed when on ground." );
|
||||
#else
|
||||
ConVar sv_stopspeed ( "sv_stopspeed","100", FCVAR_NOTIFY | FCVAR_REPLICATED | FCVAR_DEVELOPMENTONLY, "Minimum stopping speed when on ground." );
|
||||
@ -48,7 +48,7 @@ ConVar sv_specaccelerate( "sv_specaccelerate", "5", FCVAR_NOTIFY | FCVAR_ARCHIVE
|
||||
ConVar sv_specspeed ( "sv_specspeed", "3", FCVAR_ARCHIVE | FCVAR_NOTIFY | FCVAR_REPLICATED);
|
||||
ConVar sv_specnoclip ( "sv_specnoclip", "1", FCVAR_ARCHIVE | FCVAR_NOTIFY | FCVAR_REPLICATED);
|
||||
|
||||
#if defined( CSTRIKE_DLL ) || defined( HL1MP_DLL )
|
||||
#if defined( CSTRIKE_DLL ) || defined( HL1MP_DLL ) || defined( SArena_DLL )
|
||||
ConVar sv_maxspeed ( "sv_maxspeed", "320", FCVAR_NOTIFY | FCVAR_REPLICATED);
|
||||
#else
|
||||
ConVar sv_maxspeed ( "sv_maxspeed", "320", FCVAR_NOTIFY | FCVAR_REPLICATED | FCVAR_DEVELOPMENTONLY);
|
||||
@ -58,7 +58,7 @@ ConVar sv_maxspeed ( "sv_maxspeed", "320", FCVAR_NOTIFY | FCVAR_REPLICATED | FC
|
||||
ConVar sv_accelerate ( "sv_accelerate", "7", FCVAR_NOTIFY | FCVAR_REPLICATED);
|
||||
#else
|
||||
|
||||
#if defined( CSTRIKE_DLL ) || defined( HL1MP_DLL )
|
||||
#if defined( CSTRIKE_DLL ) || defined( HL1MP_DLL ) || defined( SArena_DLL )
|
||||
ConVar sv_accelerate ( "sv_accelerate", "10", FCVAR_NOTIFY | FCVAR_REPLICATED);
|
||||
#else
|
||||
ConVar sv_accelerate ( "sv_accelerate", "10", FCVAR_NOTIFY | FCVAR_REPLICATED | FCVAR_DEVELOPMENTONLY);
|
||||
@ -66,7 +66,7 @@ ConVar sv_maxspeed ( "sv_maxspeed", "320", FCVAR_NOTIFY | FCVAR_REPLICATED | FC
|
||||
|
||||
#endif//_XBOX
|
||||
|
||||
#if defined( CSTRIKE_DLL ) || defined( HL1MP_DLL )
|
||||
#if defined( CSTRIKE_DLL ) || defined( HL1MP_DLL ) || defined( SArena_DLL ) //we need these to not be hidden
|
||||
ConVar sv_airaccelerate( "sv_airaccelerate", "10", FCVAR_NOTIFY | FCVAR_REPLICATED);
|
||||
ConVar sv_wateraccelerate( "sv_wateraccelerate", "10", FCVAR_NOTIFY | FCVAR_REPLICATED);
|
||||
ConVar sv_waterfriction( "sv_waterfriction", "1", FCVAR_NOTIFY | FCVAR_REPLICATED);
|
||||
@ -82,13 +82,13 @@ ConVar sv_rollspeed ( "sv_rollspeed", "200", FCVAR_NOTIFY | FCVAR_REPLICATED | F
|
||||
ConVar sv_rollangle ( "sv_rollangle", "0", FCVAR_NOTIFY | FCVAR_REPLICATED | FCVAR_DEVELOPMENTONLY, "Max view roll angle");
|
||||
#endif // CSTRIKE_DLL
|
||||
|
||||
#if defined( DOD_DLL ) || defined( CSTRIKE_DLL ) || defined( HL1MP_DLL )
|
||||
#if defined( DOD_DLL ) || defined( CSTRIKE_DLL ) || defined( HL1MP_DLL ) || defined( SArena_DLL ) //need these too
|
||||
ConVar sv_friction ( "sv_friction","4", FCVAR_NOTIFY | FCVAR_REPLICATED, "World friction." );
|
||||
#else
|
||||
ConVar sv_friction ( "sv_friction","4", FCVAR_NOTIFY | FCVAR_REPLICATED | FCVAR_DEVELOPMENTONLY, "World friction." );
|
||||
#endif // DOD_DLL || CSTRIKE_DLL
|
||||
|
||||
#if defined( CSTRIKE_DLL ) || defined( HL1MP_DLL )
|
||||
#if defined( CSTRIKE_DLL ) || defined( HL1MP_DLL ) || defined( SArena_DLL ) //need these too
|
||||
ConVar sv_bounce ( "sv_bounce","0", FCVAR_NOTIFY | FCVAR_REPLICATED, "Bounce multiplier for when physically simulated objects collide with other objects." );
|
||||
ConVar sv_maxvelocity ( "sv_maxvelocity","3500", FCVAR_REPLICATED, "Maximum speed any ballistically moving object is allowed to attain per axis." );
|
||||
ConVar sv_stepsize ( "sv_stepsize","18", FCVAR_NOTIFY | FCVAR_REPLICATED );
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user