From 46a3e729db6531fc9c778a0e176b90fd4cab7141 Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Thu, 3 May 2018 17:43:26 +0300 Subject: [PATCH] Fix collision being calculated on unlagged value for both players and bots. --- engine/server/sv_pmove.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/engine/server/sv_pmove.c b/engine/server/sv_pmove.c index e73e4823..3c6fbada 100644 --- a/engine/server/sv_pmove.c +++ b/engine/server/sv_pmove.c @@ -67,17 +67,19 @@ qboolean SV_CopyEdictToPhysEnt( physent_t *pe, edict_t *ed ) VectorCopy( ed->v.origin, pe->origin ); VectorCopy( ed->v.angles, pe->angles ); - if( FBitSet( ed->v.flags, FL_FAKECLIENT )) - { - // bot - Q_strncpy( pe->name, "bot", sizeof( pe->name )); - pe->player = pe->info; - } - else if( FBitSet( ed->v.flags, FL_CLIENT )) + if( FBitSet( ed->v.flags, FL_CLIENT )) { // client SV_GetTrueOrigin( &svs.clients[pe->info - 1], pe->info, pe->origin ); - Q_strncpy( pe->name, "player", sizeof( pe->name )); + if( FBitSet( ed->v.flags, FL_FAKECLIENT )) // fakeclients have client flag too + { + // bot + Q_strncpy( pe->name, "bot", sizeof( pe->name )); + } + else + { + Q_strncpy( pe->name, "player", sizeof( pe->name )); + } pe->player = pe->info; } else @@ -177,7 +179,7 @@ void SV_GetTrueOrigin( sv_client_t *cl, int edictnum, vec3_t origin ) return; if( svgame.interp[edictnum-1].active && svgame.interp[edictnum-1].moving ) - VectorCopy( svgame.interp[edictnum-1].newpos, origin ); + VectorCopy( svgame.interp[edictnum-1].oldpos, origin ); } void SV_GetTrueMinMax( sv_client_t *cl, int edictnum, vec3_t mins, vec3_t maxs )