From http://www.quakedev.com/forums/index.php?topic=1221.0:
bg_pmove.c in function PM_WalkMove:
[snip]
/* this is what causes the rebound bug:
if velocity is { 0, 0, 300 } here, vlen is 300 (duh)
but when you hit the ground the CLIPPED vel is { 0, 0, 0.3 }
that's normalised properly, but then scaled by the ORIGINAL vlen
so you just shoot straight back up
vel = VectorLength(pm->ps->velocity);
// slide along the ground plane
PM_ClipVelocity (pm->ps->velocity, pml.groundTrace.plane.normal, pm->ps->velocity, OVERCLIP );
// don't decrease velocity when going up or down a slope
VectorNormalize(pm->ps->velocity);
VectorScale(pm->ps->velocity, vel, pm->ps->velocity);
*/
PM_ClipVelocity( pm->ps->velocity, pml.groundTrace.plane.normal, pm->ps->velocity, OVERCLIP );
Setting a QA contact on all ioquake3 bugs, even resolved ones. Sorry if you get a flood of email from this, it should only happen once. Apologies for the incovenience.
--ryan.
Created attachment 1217 [details] The Overbounce fix patch This fixes the problem of overbounces in the game and cgame modules