Oh and one small thought on your VPhysics function:

What if the player jumps and touches a wall, this will make onfloor:=true; will he be able to "powerjump" to climb the wall in that case ?