diff --git a/Source/Client/Draw.c b/Source/Client/Draw.c index 087136a6..f3bb0619 100755 --- a/Source/Client/Draw.c +++ b/Source/Client/Draw.c @@ -157,8 +157,7 @@ void CSQC_CalcViewport( int s, float fWinWidth, float fWinHeight ) { //as a general rule, you won't notice unless there's some big drawfills. switch ( numclientseats ) { case 3: - if (!s) - { + if ( !s ) { case 2: vVideoResolution = [ fWinWidth, fWinHeight * 0.5 ]; vVideoMins = [ 0, ( s & 1 ) * vVideoResolution_y ]; diff --git a/Source/Server/Player.c b/Source/Server/Player.c index 1edc9291..91eaa649 100755 --- a/Source/Server/Player.c +++ b/Source/Server/Player.c @@ -128,6 +128,10 @@ void Player_Death( int iHitBody ) { } } + if ( self.flags & FL_CROUCHING ) { + self.flags -= FL_CROUCHING; + self.maxspeed = Player_GetMaxSpeed( 0 ); + } Spawn_MakeSpectator(); self.classname = "player"; @@ -205,11 +209,11 @@ void Player_CrouchDown( void ) { if ( !( self.flags & FL_CROUCHING ) ) { setsize( self, VEC_CHULL_MIN, VEC_CHULL_MAX ); + setorigin( self, self.origin - '0 0 18' ); self.flags = self.flags | FL_CROUCHING; self.view_ofs = VEC_PLAYER_CVIEWPOS; - self.velocity_z = self.velocity_z + 50; self.maxspeed = Player_GetMaxSpeed( self.weapon ); - self.iCrouchAttempt = 1; + self.iCrouchAttempt = TRUE; return; } @@ -228,9 +232,8 @@ void Player_CrouchUp( void ) { if ( ( self.flags & FL_CROUCHING ) && ( Player_CrouchCheck( self ) ) ) { setsize( self, VEC_HULL_MIN, VEC_HULL_MAX ); - - setorigin( self, self.origin + '0 0 18'); - self.velocity_z = self.velocity_z + 16; + setorigin( self, self.origin + '0 0 18' ); + self.velocity_z = self.velocity_z + 25; self.view_ofs = VEC_PLAYER_VIEWPOS; self.flags = ( self.flags - FL_CROUCHING ); self.iCrouchAttempt = FALSE; diff --git a/Source/Server/Spawn.c b/Source/Server/Spawn.c index 544b9d85..92ec6a42 100755 --- a/Source/Server/Spawn.c +++ b/Source/Server/Spawn.c @@ -154,6 +154,7 @@ void Spawn_RespawnClient( float fTeam ) { self.view_ofs = VEC_PLAYER_VIEWPOS; self.velocity = '0 0 0'; + self.maxspeed = Player_GetMaxSpeed( self.weapon ); self.frame = 1; // Idle frame self.fBombProgress = 0; diff --git a/freecs/csprogs.dat b/freecs/csprogs.dat index 626dc589..5f66dea5 100755 Binary files a/freecs/csprogs.dat and b/freecs/csprogs.dat differ diff --git a/freecs/progs.dat b/freecs/progs.dat index 8cf34a4a..0402c8a9 100755 Binary files a/freecs/progs.dat and b/freecs/progs.dat differ