# Option do-special-action Perform a special action without notifying anybody Parameters of that option:
Parameter | Measure | Range | Description
do-special-action.special-action-id | integer | 0.. | Special action ID to perform
do-special-action.target-action-id | integer | 0.. | Target special action ID. If not zero, option reaches target state when this action is executed.
## State Machine ## State do-special-action
If that state is active,
> | The basic behavior special-action is executed. Parameters:
| special-action-id | = | ::do-special-action.special-action-id ;
The decision tree:
Pseudo code of the decision tree:
if ( |
( | executed-motion-request.motion-type == special-action | )
&& |
( | executed-motion-request.special-action-type == ::do-special-action.special-action-id | )
| ) | // special action started
{
transition-to-state(special-action-in-progress);
}
else
{
transition-to-state(do-special-action);
}
## State special-action-in-progress
If that state is active,
> | The basic behavior stand is executed.
The decision tree:
Pseudo code of the decision tree:
if ( |
!( | executed-motion-request.motion-type == special-action | )
| ) | // special action finished
{
transition-to-state(finished);
}
else
{
transition-to-state(special-action-in-progress);
}
## State finished
This state is a target state.
If that state is active,
> | The basic behavior stand is executed.
The decision tree:
Pseudo code of the decision tree:
transition-to-state(finished);