Uncross(atom/movable/O,newloc)
The newloc arg would be the location where it is trying to go, much like how turf.Exit() works.
This would be useful for controlling how a player moves when trying to get on top of an obj, such as a staircase or a 3 sided barricade. Currently, the only way to do this is calling get_step(O.dir) but this is very unreliable in games that modify the dir variable outside of movement.
I mean sure I can somehow convert barricades it into a turf or do some hacky way of figuring it out, but there is much more freedom and less bloat in my proposed way.