To do paths, you use the DPath class. There's documentation on it in the help file and the class reference.
The only catch is that I forgot to add a "++" in the dpath.sc which I released with SCI Studio 2.1! This means that it won't work unless you change it.
Open up DPATH.SC and replace the setTarget method:
(method (setTarget)
(if(<> (send points:at(value)) $8000)
= x (send points:at(value))
= y (send points:at(++value))
++value
)
)
Once done, compile it, and you're set!
Now, to try it out...
Open up a room (ie. rm001).
At the top, add the line:
(use "dpath")
next, scroll to the bottom of the room's init() method and add:
(send gEgo:
setMotion(DPath
50 50
200 50
200 150
50 150
50 50
)
)
This will make the ego move to (50,50), then to the right, then down, then to the left, then back up, travelling rectangular area.
You set the motion to DPath, and then follow that declaration with x and y points, as many as you want. The actor will move to the first point, then the second, and so on.
Sorry about these bugs, but I'm just one man, programming an entire development system, tens of thousands of lines of code! Making the 63 class, 29 script template game from repetitive byte code 10-20 times longer than the actual produced template, it's remarkable how few errors there are.
Considering how much code SCI Studio has, there really aren't that many bugs. A new version of SCI Studio will be release soon, with new user requested features, bug fixes, and the fixed dpath.sc. It will be much more stable.