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.
Sven2, 2002-04
Marky, 2019-04