Improve CGameMovement::TryPlayerMove for Surf purposes #2306
Description
When Surfing on Ramps within GMod, it's possible to have all momentum / velocity lost due to hitting what's known as a "ramp bug" or "pebble". The underlying cause seems to be Source generally thinking in that tick you've hit a wall when in reality you're still 'falling'. It doesn't matter on what axis you're moving on - you can still be tripped up.
It's possible to smooth over this issue to an extent in lua, but realistically there's only so much you can do to smooth it out. Likewise it's possible to fully fix this with a serverside binary, but then the client ends up with "hiccups" as it's forced into the correct state.
Momentum Mod actually has resolved this in their movement code (https://github.com/momentum-mod/game/blob/develop/mp/src/game/shared/momentum/mom_gamemovement.cpp#L2393-L2993) and it'd be neat to see a similar solution in GMod.
I've attached a map which can be incredibly problematic for these ramp bugs. sv_airaccelerate 150; sv_gravity 800
should be enough to get the required movement to replicate this behaviour with.
Hilariously, code_gs actually recorded a video of this a few years ago - https://www.youtube.com/watch?v=wUnMs0RpA9Y which shows the issue.
This issue isn't limited to CS:GO though as it's reproducible in both GMod and CS:S.
Couple more examples: