First of all, cutting entity horizontal movement is not a good idea. I only used it for limiting player movement to edges...
Using c_move always work fine with me...
And using
c_move(my,nullvector,vector(0,0,-5 * time_step),GLIDE); repeatedly
is not a good idea either, since you will have your entity moving around in the sloped floor, unless you intended to do so

...