The Act class is for actors in the game. These are the characters which bring your game to life.
It calls it's super's init(), then sets the xLast and yLast properties to the x and y properties.
If bit 15 of signal is set, it will return, not doing anything. Otherwise, if the script property is not NULL, it will call the doit() method in script.
Following, it checks to see if bit 2 of signal is set, and bit 1 is not set. If this is TRUE, it returns.
Next, if the view property is not NULL, it will call the doit() method in view.
If the avoider property is not NULL, it will call the doit() method in avoider. Otherwise, if the mover property is not NULL, it will call the doit() method in mover.
If the cycler property is set, is checks to see if the actor has moved, and if it "canBeHere".
Finally, it sets the xLast and yLast properties to the x and y properties.
It calls it's super's posn() method with newX and newY as the parameters. If specified, it send the sendParams to the super as well.
It then sets the xLast and yLast to newX and newY.
Finally, it calls the canBeHere() method. If it returns false, the findPosn() method is called.
If no parameters are given, the super's setLoop() method is called and it returns.
If theLooper is a loop number, the super's setLoop() method is called with theLooper as it's parameter, and the sendParams (if specified).
The old looper property is disposed of. Then, if theLooper is a class, a new instance of it is created and set to the looper property. If it's an instance, the looper property
is set to theLooper. Finally, looper's init() method is called, and any sendParams specified.
If the motion property is not NULL and it's completed property is TRUE, it's motionCue() method is called. Then, the super's motionCue() method is called.
If the mover property is not NULL and not -1, it is disposed of.
Next, if theMover is NULL, mover is set to NULL, and the method returns.
Otherwise, it calls the startUpd() method and if theMover is a class, a new instance of it is created and set to the mover property. If it's an instance, the mover property
is set to theMover. Finally, it calls mover's init() method, and any sendParams specified.
If the avoider property is not NULL, it is disposed of.
If theAvoider is a class, a new instance of it is created and set to the avoider property. If it's an instance, the avoider property is set to theAvoider. Finally, it calls
avoider's init() method, and any sendParams specified.
If no parameters are given, or fIGNORE_HORIZON is TRUE, bit 13 of signal is set. Otherwise, it is cleared.
After, it calls the mover's init() method if it can.