Add support for rendering normals, on by default.
Fix some old things wrong with the mirror, only to discover that it's actually still broken.
Consolidate data by removing the velocity information in the character controller. Remove the idea of goal/move velocity, that acceleration function has been moved to the physics code. Revise the physics code to include friction and acceleration. Also include some new code for the case where the player is moving along flat ground. Only if that trace fails does the code proceed to the uneven ground case.
Generalize a PlayerTrace function for tracing in the player movement code. Add a part to FindGround that moves the player down to ground level if they are moving down a slope or something.
Getting rid of m_vecCurrentPosition and m_vecTargetPosition and using only the ghost object transform. Reduced data duplication -> cleaner code.
Assert if the player has fallen outside of the level, usually the result of invalid values. Also don't push out of walls if the push value is too small.
Consolidate all sweep tests in a single function. Get rid of StepDown() as its job is now done by FindGround().
Assert if ever I try to normalize a zero length vector.
Simplify and somewhat rewrite the step up/step down stuff.