added calculateNextDesiredPosition to CWalker and refactored CWorld