As to what I think the reference says, the correct order would(Logically) be
1.Cross
2.Crossed
and if the movement continues
3.Uncross
4.Uncrossed
But experimentally I have not found this true.
Code:
obj
Cross(atom/movable/O)
world<<"[O] tries to cross [src] -- ([world.time])"
Crossed(atom/movable/O)
world<<"[O] crossed [src] -- ([world.time])"
Uncross(atom/movable/O)
world<<"[O] tries to uncross [src] -- ([world.time])"
Uncrossed(atom/movable/O)
world<<"[O] uncrossed [src] -- ([world.time])"
Problem description:
Experimentally it goes like
1.Cross
2.Crossed
and if the movement continues
3.Uncrossed //?
4.Uncross
Compiling and running it gives the order as mentioned above..
I want to know whether 'that is how they are called' or because 'either of the operation is delayed/slept'!