Fixes related to leveling & moving in movement().

[FIXED]     When doing both moving and leveling with the movement function:
                - take into account the speed of the target level rather than the source level (since leveling happens first).
                - the cost for the movement is that of the movement path plus that of the leveling.