act approach() { int x; start patrol(-1) timeout 300 noblock; checking: if (timedout(patrol) || sfIsStalled()) fail; x = sfObjInFront(); if (x > 2000) goto checking; suspend patrol; Move(x - 200); succeed; }