If you look in BG_PlayerStateToEntityState() a little ways down you see this:
VectorCopy( ps->origin, s->pos.trBase );
if ( snap ) {
SnapVector( s->pos.trBase );
}
What you don’t see anywhere is this:
VectorCopy( ps->velocity, s->pos.trDelta );
if ( snap ) {
SnapVector( s->pos.trDelta );
}
Anyone know why? I put the latter in because otherwise unlagged’s skip correction has bogus velocities to extrapolate from.
I also noticed that ClientThink_real() has this:
// Gordon: thx to bani for this
// ikkyo - fix leaning players bug
VectorCopy( client->ps.velocity, ent->s.pos.trDelta );
SnapVector( ent->s.pos.trDelta );
// end
Which I removed since I added it to BG_PlayerStateToEntityState().
Is there a good reason for not doing this in BG_PlayerStateToEntityState()? It was done in Quake 3.
