Procedures
For object activity the engine offers various standard procedures which perform typical physical behaviour. In procedure WALK, for instance, the activity automatically changes to "Jump" if the ground under the feet is lost.
Procedure | Description | Behaviour | CNAT |
---|---|---|---|
nil | No procedure | Only gravitational effects or attachment as specified in the activity. | Action.Attach |
DFA_WALK | Walking | According to current ComDir. | CNAT_Bottom |
DFA_FLIGHT | Free fall | Only gravitational effects | CNAT_None |
DFA_KNEEL | Getting up | Behaviour according to activity. | CNAT_Bottom |
DFA_SCALE | Scaling a wall | According to current ComDir. | CNAT_Left/Right |
DFA_HANGLE | Climbing on the ceiling | According to current ComDir. | CNAT_Top |
DFA_DIG | Dig | According to current ComDir. With Data=1 material chunks are dug free. | CNAT_None |
DFA_SWIM | Swimming | According to current ComDir. | CNAT_None |
DFA_THROW | Throw | Behaviour according to activity. | CNAT_Bottom |
DFA_PUSH | Pushing | Pushes the target object according to ComDir. | CNAT_Bottom |
DFA_LIFT | Lifting | Lifts the target object according to ComDir. | CNAT_None |
DFA_FLOAT | Floating in mid-air | According to current ComDir. | CNAT_None |
DFA_ATTACH | Attachment to another object | Adjusts object position at vertex a to the position of vertex b of the target object. a and b are the two low bytes of ActionData (see SetActionData for an example). | CNAT_None |
DFA_CONNECT | Line connections | Only line objects. Connects target object 1 and target object 2. | CNAT_None |
DFA_PULL | Pulling | Pulls the target object according to ComDir. | CNAT_Bottom |
Procedures are hardcoded in the engine and are from older times in which is was not yet possible to implement the same functionality in script. Most procedures represent highly complex behaviour which is useful only for clonks.