Fixes direction

-Added this check to reflexive_types.cpp, because planar_object
propagate_locals() function is only called in some localsweep event,
which seems to happen once per step. This means that if I set direction
= -4000 in draw event and then the next line draw_sprite() draws it,
then it will crash. Now the check will happen every time the direction
variable is changed, which is often actually less than once per step. So
this should also be faster and fix the bug.
-Turns out if we just flip the order of the two operations, we get
correct result for any negative number.