[Go back to index]

Asobo\Inputs\Templates.xml

Source XML
<ModelBehaviors> <!-- ################################################### --> <!-- #### Templates simplifying setup of InputEvents ### --> <!-- ################################################### --> <!-- Required: --> <!-- WWISE_PREFIX: for sound events (depending on INTERACTION_TYPE) --> <!-- USE_INPUT_EVENT_ID: which InputEvent to use (useInputEvent ID) --> <!-- INPUT_EVENT_ID_SOURCE: The prefix given to the InputEventPreset instance --> <!-- IE_NAME: The suffix given to the InputEventPreset instance --> <!-- INTERACTION_TYPE: One of the following - Push/Switch/Knob/Lever --> <!-- ############ --> <!-- Overridable: --> <!-- > INTERACTION_TYPE:Knob --> <!-- ## KNOB_TYPE: Unspecified:Float IE, X_STATES:Integer IE --> <!-- ## IS_INFINITE: if true the knob can rotate indefinitely --> <!-- > INTERACTION_TYPE:Lever --> <!-- ## LEVER_TYPE: Unspecified:Float IE, 2_STATES:Integer IE --> <!-- ############ --> <!-- Optional: --> <!-- IE_ID_EXTERNAL_X: (starting at 0) additional TOOLTIP_ENTRY_X for the same interaction (IE_NAMES without INPUT_EVENT_ID_SOURCE) --> <Template Name="ASOBO_Interaction_Base_Template"> <Parameters Type="Default"> <WWISE_PREFIX/> <IS_EMISSIVE>True</IS_EMISSIVE> <USE_INPUT_EVENT_TEMPLATE>Default</USE_INPUT_EVENT_TEMPLATE> <CREATE_COMPONENT>True</CREATE_COMPONENT> <IE_PRESET_ID>#INPUT_EVENT_ID_SOURCE#_#IE_NAME#</IE_PRESET_ID> <Switch Param="INTERACTION_TYPE"> <Case Value="Push"> <EXTRA_OPTION/> <NUM_STATES>2</NUM_STATES> </Case> <Case Value="Switch"> <NUM_STATES>2</NUM_STATES> </Case> <Case Value="Knob"> <IS_INFINITE>False</IS_INFINITE> <Switch Param="KNOB_TYPE"> <Case Value="X_STATES"> <NUM_STATES>2</NUM_STATES> <INTERACTION_AXIS>X</INTERACTION_AXIS> </Case> </Switch> </Case> <Case Value="Lever"> <INTERACTION_AXIS>Y</INTERACTION_AXIS> <DRAG_VALUE_TO_EVENT_SET/> </Case> </Switch> </Parameters> <Parameters Type="Override"> <UseParametersFn Name="Compute_First_Available_Bindings"> </UseParametersFn> </Parameters> <Parameters Type="Default"> <Switch Param="INTERACTION_TYPE"> <Case Value="Push"> <BTN_ID>#IE_NAME#</BTN_ID> </Case> <Case Value="Switch"> <BTN_ID>#IE_NAME#</BTN_ID> <ANIM>EXTERNAL</ANIM> </Case> <Case Value="Knob"> <Switch Param="KNOB_TYPE"> <Case Value="X_STATES"> <BTN_ID>#IE_NAME#</BTN_ID> <TT_ICON>ROTATE</TT_ICON> <ANIM>EXTERNAL</ANIM> <Switch Param="NUM_STATES"> <Case Value="2"> <TT_INTERACTION>PRIMARY_DOWN</TT_INTERACTION> <TT_INTERACTION_LOCKABLE>LOCK</TT_INTERACTION_LOCKABLE> </Case> <Default> <TT_INTERACTION>PRIMARY_DOWN+#INTERACTION_AXIS#_AXIS</TT_INTERACTION> <TT_INTERACTION_LOCKABLE>#INTERACTION_AXIS#_AXIS</TT_INTERACTION_LOCKABLE> <Switch Param="INTERACTION_AXIS"> <Case Value="X"> <SWITCH_DIRECTION>Horizontal</SWITCH_DIRECTION> </Case> <Case Value="Y"> <SWITCH_DIRECTION>Vertical</SWITCH_DIRECTION> </Case> </Switch> </Default> </Switch> </Case> <Default> <KNOB_ID>#IE_NAME#</KNOB_ID> <Condition Valid="IS_INFINITE"> <True> <KNOB_INTERACTION_TYPE>Infinite</KNOB_INTERACTION_TYPE> <NO_KNOB_ANIM_VAR_UPDATE>True</NO_KNOB_ANIM_VAR_UPDATE> </True> <False> <Condition NotEmpty="TEMPLATE_VARIANT"> <True> <KNOB_INTERACTION_TYPE>Finite</KNOB_INTERACTION_TYPE> </True> <False> <KNOB_INTERACTION_TYPE>Finite_Code</KNOB_INTERACTION_TYPE> </False> </Condition> </False> </Condition> <Condition> <Test> <And> <Arg NotEmpty="IE_ID_EXTERNAL_0"/> <Arg NotEmpty="IE_ID_EXTERNAL_1"/> </And> </Test> <True> <TEMPLATE_VARIANT>PushPull</TEMPLATE_VARIANT> <IE_ID_EXTERNAL_0_BINDING_NAME>Push</IE_ID_EXTERNAL_0_BINDING_NAME> <IE_ID_EXTERNAL_1_BINDING_NAME>Pull</IE_ID_EXTERNAL_1_BINDING_NAME> </True> <False> <Condition NotEmpty="IE_ID_EXTERNAL_0"> <True> <Condition Valid="IS_TIMED"> <True> <TEMPLATE_VARIANT>Push_Timed</TEMPLATE_VARIANT> <IE_ID_EXTERNAL_0_BINDING_NAME_RELEASE>Release</IE_ID_EXTERNAL_0_BINDING_NAME_RELEASE> </True> <False> <TEMPLATE_VARIANT>Push</TEMPLATE_VARIANT> </False> </Condition> <Condition Valid="IS_PULL"> <True> <IE_ID_EXTERNAL_0_BINDING_NAME>Pull</IE_ID_EXTERNAL_0_BINDING_NAME> </True> <False> <Switch Param="TEMPLATE_VARIANT"> <Case Value="Switch"> <IE_ID_EXTERNAL_0_BINDING_NAME>Toggle</IE_ID_EXTERNAL_0_BINDING_NAME> </Case> <Default> <IE_ID_EXTERNAL_0_BINDING_NAME>Push</IE_ID_EXTERNAL_0_BINDING_NAME> </Default> </Switch> </False> </Condition> </True> <False> <TEMPLATE_VARIANT/> </False> </Condition> </False> </Condition> </Default> </Switch> </Case> <Case Value="Lever"> <Switch Param="LEVER_TYPE"> <Case Value="2_STATES"> <BTN_ID>#IE_NAME#</BTN_ID> <TT_ICON>MOVE_AXIS_#INTERACTION_AXIS#</TT_ICON> <TT_INTERACTION>PRIMARY_DOWN+#INTERACTION_AXIS#_AXIS</TT_INTERACTION> <TT_INTERACTION_LOCKABLE>#INTERACTION_AXIS#_AXIS</TT_INTERACTION_LOCKABLE> <ANIM>EXTERNAL</ANIM> <NUM_STATES>2</NUM_STATES> <ANIM_LAG>400</ANIM_LAG> <DRAG_SCALAR>10</DRAG_SCALAR> <ALWAYS_USE_ANIM_LAG>True</ALWAYS_USE_ANIM_LAG> <STR_STATE_ON>Down</STR_STATE_ON> <STR_STATE_OFF>Up</STR_STATE_OFF> <TT_VALUE_ON>(R:1:@TT_Package.GT_STATE_DOWN)</TT_VALUE_ON> <TT_VALUE_OFF>(R:1:@TT_Package.GT_STATE_UP)</TT_VALUE_OFF> </Case> <Default> <LEVER_ID>#IE_NAME#</LEVER_ID> </Default> </Switch> </Case> <Case Value="Joystick"> <BTN_ID>#IE_NAME#</BTN_ID> <Switch Param="JOYSTICK_TYPE"> <Case Value="5_STATES"> <NUM_STATES>5</NUM_STATES> <STR_STATE_0>Left</STR_STATE_0> <STR_STATE_1>Right</STR_STATE_1> <STR_STATE_2>Down</STR_STATE_2> <STR_STATE_3>Up</STR_STATE_3> <STR_STATE_4>Standby</STR_STATE_4> <TT_VALUE_0>@TT_Package.GT_STATE_LEFT</TT_VALUE_0> <TT_VALUE_1>@TT_Package.GT_STATE_RIGHT</TT_VALUE_1> <TT_VALUE_2>@TT_Package.GT_STATE_DOWN</TT_VALUE_2> <TT_VALUE_3>@TT_Package.GT_STATE_UP</TT_VALUE_3> <TT_VALUE_4>@TT_Package.GT_STATE_STANDBY</TT_VALUE_4> <IE_ID_EXTERNAL_0_BINDING_LEFT>Left</IE_ID_EXTERNAL_0_BINDING_LEFT> <IE_ID_EXTERNAL_0_BINDING_RIGHT>Right</IE_ID_EXTERNAL_0_BINDING_RIGHT> <IE_ID_EXTERNAL_1_BINDING_DOWN>Down</IE_ID_EXTERNAL_1_BINDING_DOWN> <IE_ID_EXTERNAL_1_BINDING_UP>Up</IE_ID_EXTERNAL_1_BINDING_UP> <IE_ID_EXTERNAL_0_BINDING_STANDBY>Standby</IE_ID_EXTERNAL_0_BINDING_STANDBY> <IE_ID_EXTERNAL_1_BINDING_STANDBY>Standby</IE_ID_EXTERNAL_1_BINDING_STANDBY> <GET_STATE_EXTERNAL>(O:#IE_PRESET_ID#_Position) sp0</GET_STATE_EXTERNAL> <ENUM_VAL_TO_POS_EXTERNAL>l0</ENUM_VAL_TO_POS_EXTERNAL> <FREQUENCY>20</FREQUENCY> <ON_POS_LEFT/> <ON_POS_RIGHT/> <ON_POS_DOWN/> <ON_POS_UP/> <ANIM>EXTERNAL</ANIM> </Case> </Switch> <TT_ICON>MOVE_AXIS</TT_ICON> </Case> </Switch> </Parameters> <Parameters Type="Default"> <Switch> <Case NotEmpty="BTN_ID"> <Switch Param="INTERACTION_TYPE"> <Case Value="Push"> <WWISE_EVENT_1>#WWISE_PREFIX#_push_button_on</WWISE_EVENT_1> <NORMALIZED_TIME_1>0.1</NORMALIZED_TIME_1> <WWISE_EVENT_2>#WWISE_PREFIX#_push_button_off</WWISE_EVENT_2> <NORMALIZED_TIME_2>0.5</NORMALIZED_TIME_2> </Case> <Case Value="Lever"> <WWISE_EVENT_1>#WWISE_PREFIX#_lever_on</WWISE_EVENT_1> <NORMALIZED_TIME_1>0.25</NORMALIZED_TIME_1> <WWISE_EVENT_2>#WWISE_PREFIX#_lever_off</WWISE_EVENT_2> <NORMALIZED_TIME_2>0.75</NORMALIZED_TIME_2> </Case> <Case Value="Joystick"> <WWISE_JOYSTICK_EVENT_L>#WWISE_PREFIX#_joystick</WWISE_JOYSTICK_EVENT_L> <WWISE_JOYSTICK_EVENT_R>#WWISE_PREFIX#_joystick</WWISE_JOYSTICK_EVENT_R > <WWISE_JOYSTICK_EVENT_UP>#WWISE_PREFIX#_joystick</WWISE_JOYSTICK_EVENT_UP> <WWISE_JOYSTICK_EVENT_DN>#WWISE_PREFIX#_joystick</WWISE_JOYSTICK_EVENT_DN> <NORMALIZED_TIME_1>0.1</NORMALIZED_TIME_1> <NORMALIZED_TIME_2>0.5</NORMALIZED_TIME_2> </Case> <Default> <Switch Param="NUM_STATES"> <Case Value="2"> <WWISE_EVENT_1>#WWISE_PREFIX#_switch_on</WWISE_EVENT_1> <NORMALIZED_TIME_1>0.1</NORMALIZED_TIME_1> <WWISE_EVENT_2>#WWISE_PREFIX#_switch_off</WWISE_EVENT_2> <NORMALIZED_TIME_2>0.5</NORMALIZED_TIME_2> </Case> <Default> <Switch Param="INTERACTION_TYPE"> <Case Value="Knob"> <WWISE_EVENT>#WWISE_PREFIX#_knob</WWISE_EVENT> </Case> <Default> <WWISE_EVENT>#WWISE_PREFIX#_switch</WWISE_EVENT> </Default> </Switch> <MAX_POS Process="Int">#NUM_STATES# 1 -</MAX_POS> </Default> </Switch> </Default> </Switch> </Case> <Case NotEmpty="KNOB_ID"> <WWISE_EVENT>#WWISE_PREFIX#_knob</WWISE_EVENT> <Switch> <Case NotEmpty="TEMPLATE_VARIANT"> <WWISE_EVENT_1>#WWISE_PREFIX#_push_button_on</WWISE_EVENT_1> <NORMALIZED_TIME_1>0.1</NORMALIZED_TIME_1> <WWISE_EVENT_2>#WWISE_PREFIX#_push_button_off</WWISE_EVENT_2> <NORMALIZED_TIME_2>0.5</NORMALIZED_TIME_2> </Case> </Switch> </Case> <Case NotEmpty="LEVER_ID"> <WWISE_EVENT>#WWISE_PREFIX#_lever</WWISE_EVENT> </Case> </Switch> </Parameters> <Parameters Type="Default"> <Condition> <Test> <Or> <Arg Valid="TOOLTIP_TITLE"/> <Arg Valid="TOOLTIP_TITLE_ID"/> </Or> </Test> <True> <TOOLTIP_ENTRY_0>#IE_PRESET_ID#</TOOLTIP_ENTRY_0> <Loop> <Setup> <Param>CUR_ID</Param> <From>0</From> <Inc>1</Inc> <While> <Arg NotEmpty="IE_ID_EXTERNAL_#CUR_ID#"/> </While> </Setup> <Do> <Parameters Type="Override"> <CUR_TT_ID Process="Int">#CUR_ID# 1 +</CUR_TT_ID> <CUR_IE_ID_EXTERNAL Process="Param">IE_ID_EXTERNAL_#CUR_ID#</CUR_IE_ID_EXTERNAL> </Parameters> <TOOLTIP_ENTRY_#CUR_TT_ID#>#INPUT_EVENT_ID_SOURCE#_#CUR_IE_ID_EXTERNAL#</TOOLTIP_ENTRY_#CUR_TT_ID#> </Do> </Loop> </True> </Condition> <Switch> <Case NotEmpty="BTN_ID"> <Condition NotEmpty="GET_STATE_EXTERNAL"> <True> <Switch Param="NUM_STATES"> <Case Value="2"> <SIM_STATE_IS_ON_EXTERNAL>l0</SIM_STATE_IS_ON_EXTERNAL> <Switch Param="INTERACTION_TYPE"> <Case Value="Push"> <Condition Valid="IS_AIRLINER"> <True> <TEMPLATE_TO_USE>ASOBO_GT_Push_Button_Airliner</TEMPLATE_TO_USE> </True> <False> <TEMPLATE_TO_USE>ASOBO_GT_Push_Button#EXTRA_OPTION#</TEMPLATE_TO_USE> </False> </Condition> <LEFT_SINGLE_CODE>(&gt;B:#IE_PRESET_ID#_Toggle)</LEFT_SINGLE_CODE> </Case> <Case Value="Lever"> <TEMPLATE_TO_USE>ASOBO_GT_Lever_DraggingYAxis_Code</TEMPLATE_TO_USE> <ANIM_CODE>(B:#IE_PRESET_ID#, Bool) 100 *</ANIM_CODE> <UP_CODE>(&gt;B:#IE_PRESET_ID#_#STR_STATE_OFF#)</UP_CODE> <DOWN_CODE>(&gt;B:#IE_PRESET_ID#_#STR_STATE_ON#)</DOWN_CODE> </Case> <Default> <TEMPLATE_TO_USE>ASOBO_GT_Switch_Code</TEMPLATE_TO_USE> <ANIM_CODE>(B:#IE_PRESET_ID#, Bool) 100 *</ANIM_CODE> <LEFT_SINGLE_CODE>(&gt;B:#IE_PRESET_ID#_Toggle)</LEFT_SINGLE_CODE> </Default> </Switch> </Case> <Default> <Switch Param="INTERACTION_TYPE"> <Case Value="Joystick"> <TEMPLATE_TO_USE>ASOBO_GT_Joystick_Interaction_Knob</TEMPLATE_TO_USE> <Switch Param="JOYSTICK_TYPE"> <Case Value="5_STATES"> <JOYSTICK_INTERACTION>PAN_ONLY</JOYSTICK_INTERACTION> <IM_DRAG_ADDITIONAL_EVENT_HANDLING/> <ON_UP_EVENT>(&gt;B:#IE_PRESET_ID#_#STR_STATE_4#)</ON_UP_EVENT> <COMP_INIT_CODE>(&gt;B:#IE_PRESET_ID#_#STR_STATE_4#)</COMP_INIT_CODE> <Switch Param="JOYSTICK_INTERACTION_TYPE"> <Case Value="POSITIONAL"> <USE_PAD_DRAG_IM_LOCK>True</USE_PAD_DRAG_IM_LOCK> <COMP_UPDATE_CODE> (O:#IE_PRESET_ID#_Position) 4 &lt; if{ (O:#IE_PRESET_ID#_Position) 0 == if{ #ON_POS_LEFT# quit } (O:#IE_PRESET_ID#_Position) 1 == if{ #ON_POS_RIGHT# quit } (O:#IE_PRESET_ID#_Position) 2 == if{ #ON_POS_DOWN# quit } (O:#IE_PRESET_ID#_Position) 3 == if{ #ON_POS_UP# quit } } </COMP_UPDATE_CODE> <JOYSTICK_X_CODE_LEFT> (O:#IE_PRESET_ID#_Position) 0 != (O:_IsLimited) ! and if{ 1 (&gt;O:_IsLimited) (O:#IE_PRESET_ID#_Position) 4 != if{ (&gt;B:#IE_PRESET_ID#_#STR_STATE_4#) } els{ (&gt;B:#IE_PRESET_ID#_#STR_STATE_0#) } } </JOYSTICK_X_CODE_LEFT> <JOYSTICK_X_CODE_RIGHT> (O:#IE_PRESET_ID#_Position) 1 != (O:_IsLimited) ! and if{ 1 (&gt;O:_IsLimited) (O:#IE_PRESET_ID#_Position) 4 != if{ (&gt;B:#IE_PRESET_ID#_#STR_STATE_4#) } els{ (&gt;B:#IE_PRESET_ID#_#STR_STATE_1#) } } </JOYSTICK_X_CODE_RIGHT> <JOYSTICK_Y_CODE_DOWN> (O:#IE_PRESET_ID#_Position) 2 != (O:_IsLimited) ! and if{ 1 (&gt;O:_IsLimited) (O:#IE_PRESET_ID#_Position) 4 != if{ (&gt;B:#IE_PRESET_ID#_#STR_STATE_4#) } els{ (&gt;B:#IE_PRESET_ID#_#STR_STATE_2#) } } </JOYSTICK_Y_CODE_DOWN> <JOYSTICK_Y_CODE_UP> (O:#IE_PRESET_ID#_Position) 3 != (O:_IsLimited) ! and if{ 1 (&gt;O:_IsLimited) (O:#IE_PRESET_ID#_Position) 4 != if{ (&gt;B:#IE_PRESET_ID#_#STR_STATE_4#) } els{ (&gt;B:#IE_PRESET_ID#_#STR_STATE_3#) } } </JOYSTICK_Y_CODE_UP> <SET_STATE_0> (&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_LEFT#) (&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_1#_#IE_ID_EXTERNAL_1_BINDING_STANDBY#) </SET_STATE_0> <SET_STATE_1> (&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_RIGHT#) (&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_1#_#IE_ID_EXTERNAL_1_BINDING_STANDBY#) </SET_STATE_1> <SET_STATE_2> (&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_STANDBY#) (&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_1#_#IE_ID_EXTERNAL_1_BINDING_DOWN#) </SET_STATE_2> <SET_STATE_3> (&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_STANDBY#) (&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_1#_#IE_ID_EXTERNAL_1_BINDING_UP#) </SET_STATE_3> <SET_STATE_4> (&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_STANDBY#) (&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_1#_#IE_ID_EXTERNAL_1_BINDING_STANDBY#) </SET_STATE_4> <USE_DEFAULT_ANIMATION>False</USE_DEFAULT_ANIMATION> <ANIM_CODE_AXIS_X>(B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#) 50 *</ANIM_CODE_AXIS_X> <ANIM_CODE_AXIS_Y>(B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_1#) 50 *</ANIM_CODE_AXIS_Y> </Case> <Default> <JOYSTICK_X_CODE_LEFT>(&gt;B:#IE_PRESET_ID#_#STR_STATE_0#)</JOYSTICK_X_CODE_LEFT> <JOYSTICK_X_CODE_RIGHT>(&gt;B:#IE_PRESET_ID#_#STR_STATE_1#)</JOYSTICK_X_CODE_RIGHT> <JOYSTICK_Y_CODE_DOWN>(&gt;B:#IE_PRESET_ID#_#STR_STATE_2#)</JOYSTICK_Y_CODE_DOWN> <JOYSTICK_Y_CODE_UP>(&gt;B:#IE_PRESET_ID#_#STR_STATE_3#)</JOYSTICK_Y_CODE_UP> <SET_STATE_0>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_LEFT#)</SET_STATE_0> <SET_STATE_1>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_RIGHT#)</SET_STATE_1> <SET_STATE_2>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_1#_#IE_ID_EXTERNAL_1_BINDING_DOWN#)</SET_STATE_2> <SET_STATE_3>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_1#_#IE_ID_EXTERNAL_1_BINDING_UP#)</SET_STATE_3> <SET_STATE_4> (&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_STANDBY#) (&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_1#_#IE_ID_EXTERNAL_1_BINDING_STANDBY#) </SET_STATE_4> </Default> </Switch> <TOOLTIP_ENTRY_0>#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#</TOOLTIP_ENTRY_0> <TOOLTIP_ENTRY_1>#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_1#</TOOLTIP_ENTRY_1> <TOOLTIP_ENTRY_2/> </Case> </Switch> </Case> <Default> <TEMPLATE_TO_USE>ASOBO_GT_Switch_XStates</TEMPLATE_TO_USE> <Condition NotEmpty="ON_STATE_CHANGED_EXTERNAL_CODE"> <DISABLE_ON_STATE_CHANGED_EXTERNAL_CODE_IN_MR>True</DISABLE_ON_STATE_CHANGED_EXTERNAL_CODE_IN_MR> </Condition> <Loop> <Setup> <Param>CUR_ID</Param> <From>0</From> <Inc>1</Inc> <To>#MAX_POS#</To> </Setup> <Do> <Parameters Type="Override"> <ID_POS Process="Param">STR_STATE_#CUR_ID#</ID_POS> </Parameters> <Condition NotEmpty="TT_VALUE_#CUR_ID#"> <False> <TT_VALUE_#CUR_ID#>@TT_OverrideMe_Value</TT_VALUE_#CUR_ID#> <TT_VALUE_#CUR_ID#_IS_DYNAMIC>True</TT_VALUE_#CUR_ID#_IS_DYNAMIC> </False> </Condition> <CODE_POS_#CUR_ID#>(&gt;B:#IE_PRESET_ID#_#ID_POS#)</CODE_POS_#CUR_ID#> <STATE#CUR_ID#_TEST>(B:#IE_PRESET_ID#) #CUR_ID# ==</STATE#CUR_ID#_TEST> </Do> </Loop> </Default> </Switch> </Default> </Switch> </True> <False> <Condition Valid="IS_AIRLINER"> <True> <TEMPLATE_TO_USE>ASOBO_GT_Push_Button_Airliner</TEMPLATE_TO_USE> </True> <False> <Condition Valid="NO_PUSH_ANIMATION"> <True> <TEMPLATE_TO_USE>ASOBO_GT_Interaction_LeftSingle_Code</TEMPLATE_TO_USE> </True> <False> <TEMPLATE_TO_USE>ASOBO_GT_Push_Button#EXTRA_OPTION#</TEMPLATE_TO_USE> </False> </Condition> </False> </Condition> <LEFT_SINGLE_CODE>(&gt;B:#IE_PRESET_ID#_Push)</LEFT_SINGLE_CODE> <BINDING_INC_#FIRST_AVAILABLE_INC_BINDING#>Push</BINDING_INC_#FIRST_AVAILABLE_INC_BINDING#> <BINDING_INC_#FIRST_AVAILABLE_INC_BINDING#_PARAM_0>1</BINDING_INC_#FIRST_AVAILABLE_INC_BINDING#_PARAM_0> <Condition NotEmpty="EVENT_ID"> <BINDING_INC_#FIRST_AVAILABLE_INC_BINDING#_EVENT_ID>#EVENT_ID#</BINDING_INC_#FIRST_AVAILABLE_INC_BINDING#_EVENT_ID> </Condition> <Switch Param="EXTRA_OPTION"> <Case Value="_Timed"> <LEFT_LEAVE_CODE>(&gt;B:#IE_PRESET_ID#_Release)</LEFT_LEAVE_CODE> <IS_TIMED>True</IS_TIMED> <Switch Param="TIMED_TYPE"> <Case Value="X_EVENTS"> <RELEASE_EVENT>True</RELEASE_EVENT> <!-- Prevent physically releasing the button allowing to trigger timed release events on a sequence --> <LONG_CLICK_CODE_1>(&gt;B:#IE_PRESET_ID#_Release_Tick)</LONG_CLICK_CODE_1> </Case> <Default> <BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#>Release</BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#> <BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0>0</BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0> </Default> </Switch> </Case> <Case Value="_Held"> <BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#>Release</BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#> <BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0>0</BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0> <ANIM_HANDLED_SEPARATELY>True</ANIM_HANDLED_SEPARATELY> <LEFT_LEAVE_CODE>(&gt;B:#IE_PRESET_ID#_Release)</LEFT_LEAVE_CODE> <IS_TIMED>True</IS_TIMED> </Case> </Switch> </False> </Condition> </Case> <Case NotEmpty="KNOB_ID"> <Condition NotEmpty="TEMPLATE_VARIANT"> <True> <TEMPLATE_TO_USE>ASOBO_GT_Knob_#KNOB_INTERACTION_TYPE#_#TEMPLATE_VARIANT#</TEMPLATE_TO_USE> </True> <False> <TEMPLATE_TO_USE>ASOBO_GT_Knob_#KNOB_INTERACTION_TYPE#</TEMPLATE_TO_USE> </False> </Condition> <CLOCKWISE_CODE>1 (&gt;B:#IE_PRESET_ID#_Inc)</CLOCKWISE_CODE> <ANTICLOCKWISE_CODE>1 (&gt;B:#IE_PRESET_ID#_Dec)</ANTICLOCKWISE_CODE> <Switch Param="TEMPLATE_VARIANT"> <Case Value="Switch"> <LEFT_SINGLE_CODE>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_NAME#)</LEFT_SINGLE_CODE> </Case> <Case Value="Push"> <LEFT_SINGLE_CODE>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_NAME#)</LEFT_SINGLE_CODE> </Case> <Case Value="PushPull"> <PUSH_CODE>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_NAME#)</PUSH_CODE> <PULL_CODE>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_1#_#IE_ID_EXTERNAL_1_BINDING_NAME#)</PULL_CODE> </Case> <Case Value="Push_Timed"> <LEFT_SINGLE_CODE>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_NAME#)</LEFT_SINGLE_CODE> <LEFT_LEAVE_CODE>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_NAME_RELEASE#)</LEFT_LEAVE_CODE> <TIMER_EVENTS_HANDLED_EXTERNALLY>True</TIMER_EVENTS_HANDLED_EXTERNALLY> <LOCKABLE_EVENT_SECONDARY>LeftRelease</LOCKABLE_EVENT_SECONDARY> <NO_LOCK_EVENT_SECONDARY>RightRelease</NO_LOCK_EVENT_SECONDARY> <MOUSEFLAGS_DRAG_IM>RightAll+LeftAll+Wheel+Lock+Unlock</MOUSEFLAGS_DRAG_IM> <LONG_CLICK_TIME>1</LONG_CLICK_TIME> </Case> </Switch> <ANIM_CODE>(B:#IE_PRESET_ID#, percent)</ANIM_CODE> </Case> <Case NotEmpty="LEVER_ID"> <TEMPLATE_TO_USE>ASOBO_GT_Lever_DraggingWheelLeftDrag_Axis</TEMPLATE_TO_USE> <CURSOR>Grab</CURSOR> <NO_ARROWS/> <USE_TRAJECTORY_DRAG_MODE>True</USE_TRAJECTORY_DRAG_MODE> <DRAG_CODE>(M:DragPercent) #DRAG_VALUE_TO_EVENT_SET# (&gt;B:#IE_PRESET_ID#_Set)</DRAG_CODE> <POSITIVE_AXIS_CODE>1 (&gt;B:#IE_PRESET_ID#_Inc)</POSITIVE_AXIS_CODE> <NEGATIVE_AXIS_CODE>1 (&gt;B:#IE_PRESET_ID#_Dec)</NEGATIVE_AXIS_CODE> <ANIM_CODE>(B:#IE_PRESET_ID#, percent)</ANIM_CODE> </Case> </Switch> <Switch Param="USE_INPUT_EVENT_TEMPLATE"> <Case Value="Push"> <IS_DIRECT_EVENT>True</IS_DIRECT_EVENT> </Case> <Case Value="Pull"> <IS_DIRECT_EVENT>True</IS_DIRECT_EVENT> </Case> </Switch> </Parameters> <Parameters Type="Override"> <Switch Param="TEMPLATE_TO_USE"> <Case Value="ASOBO_GT_Push_Button_Airliner"> <CREATE_COMPONENT>Airliner</CREATE_COMPONENT> </Case> </Switch> </Parameters> <Switch Param="CREATE_COMPONENT"> <Case Value="True"> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <UseTemplate Name="ASOBO_Interaction_Base_SubTemplate"/> </Component> </Case> <Case Value="Airliner"> <Component ID="#NODE_ID#_IE_Container"> <UseTemplate Name="ASOBO_Interaction_Base_SubTemplate"> <INPUT_EVENT_ID>#USE_INPUT_EVENT_ID#</INPUT_EVENT_ID> </UseTemplate> </Component> </Case> <Default> <UseTemplate Name="ASOBO_Interaction_Base_SubTemplate"/> </Default> </Switch> </Template> <Template Name="ASOBO_Interaction_Base_SubTemplate"> <Parameters Type="Default"> <Condition> <Test> <And> <Arg Valid="IS_EMISSIVE"/> <Arg NotEmpty="EMISSIVE_CODE"/> </And> </Test> <True> <EMISSIVE_TEMPLATE_TO_USE>ASOBO_GT_Emissive_Gauge</EMISSIVE_TEMPLATE_TO_USE> </True> </Condition> </Parameters> <Condition NotEmpty="COMP_INIT_CODE"> <UseTemplate Name="ASOBO_GT_Update"> <UPDATE_ONCE>True</UPDATE_ONCE> <UPDATE_CODE>#COMP_INIT_CODE#</UPDATE_CODE> </UseTemplate> </Condition> <Condition NotEmpty="COMP_UPDATE_CODE"> <UseTemplate Name="ASOBO_GT_Update"> <UPDATE_CODE>#COMP_UPDATE_CODE#</UPDATE_CODE> </UseTemplate> </Condition> <Condition Valid="INPUT_EVENT_ID"> <False> <Switch Param="USE_INPUT_EVENT_TEMPLATE"> <Case Value="Default"> <UseInputEvent ID="#USE_INPUT_EVENT_ID#"/> </Case> <Case Value="Push"> <UseTemplate Name="ASOBO_Interaction_Push_Event_Base_Template"/> </Case> <Case Value="Pull"> <UseTemplate Name="ASOBO_Interaction_Pull_Event_Base_Template"/> </Case> <Default> <Condition NotEmpty="USE_INPUT_EVENT_TEMPLATE"> <UseTemplate Name="#USE_INPUT_EVENT_TEMPLATE#"/> </Condition> </Default> </Switch> </False> </Condition> <UseTemplate Name="#TEMPLATE_TO_USE#"> <Condition Valid="IS_INOP"> <TOOLTIP_TITLE/> <TOOLTIP_TITLE_ID/> <TOOLTIPID>TT:COCKPIT.TOOLTIPS.INOP</TOOLTIPID> <DISABLE_MOUSERECT>True</DISABLE_MOUSERECT> <TOOLTIP_DISABLED>True</TOOLTIP_DISABLED> </Condition> </UseTemplate> <Condition NotEmpty="EMISSIVE_TEMPLATE_TO_USE"> <UseTemplate Name="#EMISSIVE_TEMPLATE_TO_USE#"/> </Condition> </Template> <Template Name="ASOBO_Interaction_Push_Event_Base_Template"> <UseTemplate Name="ASOBO_Interaction_Single_Event_Base_Template"> <EVENT_TYPE>Push</EVENT_TYPE> <Condition Valid="IS_TIMED"> <Switch Param="TIMED_TYPE"> <Case Value="X_EVENTS"> <Condition NotEmpty="ON_PUSH_EVENT_LONG_1"> <ON_EVENT_LONG_1>#ON_PUSH_EVENT_LONG_1#</ON_EVENT_LONG_1> </Condition> <Condition NotEmpty="ON_PUSH_EVENT_LONG_2"> <ON_EVENT_LONG_2>#ON_PUSH_EVENT_LONG_2#</ON_EVENT_LONG_2> </Condition> </Case> <Default> <Condition NotEmpty="ON_PUSH_EVENT_LONG"> <ON_EVENT_LONG>#ON_PUSH_EVENT_LONG#</ON_EVENT_LONG> </Condition> </Default> </Switch> </Condition> <Condition NotEmpty="ON_PUSH_EVENT"> <ON_EVENT>#ON_PUSH_EVENT#</ON_EVENT> </Condition> </UseTemplate> </Template> <Template Name="ASOBO_Interaction_Pull_Event_Base_Template"> <UseTemplate Name="ASOBO_Interaction_Single_Event_Base_Template"> <EVENT_TYPE>Pull</EVENT_TYPE> <Condition Valid="IS_TIMED"> <Switch Param="TIMED_TYPE"> <Case Value="X_EVENTS"> <Condition NotEmpty="ON_PULL_EVENT_LONG_1"> <ON_EVENT_LONG_1>#ON_PULL_EVENT_LONG_1#</ON_EVENT_LONG_1> </Condition> <Condition NotEmpty="ON_PULL_EVENT_LONG_2"> <ON_EVENT_LONG_2>#ON_PULL_EVENT_LONG_2#</ON_EVENT_LONG_2> </Condition> </Case> <Default> <Condition NotEmpty="ON_PULL_EVENT_LONG"> <ON_EVENT_LONG>#ON_PULL_EVENT_LONG#</ON_EVENT_LONG> </Condition> </Default> </Switch> </Condition> <Condition NotEmpty="ON_PULL_EVENT"> <ON_EVENT>#ON_PULL_EVENT#</ON_EVENT> </Condition> </UseTemplate> </Template> <Template Name="ASOBO_Interaction_Single_Event_Base_Template"> <Parameters Type="Default"> <Switch Param="TIMED_TYPE"> <Case Value="X_EVENTS"> <Loop> <Setup> <Param>CUR_ID</Param> <From>1</From> <Inc>1</Inc> <To>#TIMED_EVENTS_COUNT#</To> </Setup> <Do> <ON_EVENT_LONG_#CUR_ID#/> <LONG_CLICK_TIME_#CUR_ID#>#CUR_ID#</LONG_CLICK_TIME_#CUR_ID#> </Do> </Loop> </Case> <Default> <ON_EVENT_LONG/> <LONG_CLICK_TIME>1</LONG_CLICK_TIME> </Default> </Switch> <ON_EVENT/> <Condition NotEmpty="IE_NAME"> <BTN_ID>#IE_NAME#</BTN_ID> </Condition> <Condition Valid="IS_TIMED"> <RELEASE_EVENT>True</RELEASE_EVENT> </Condition> </Parameters> <Parameters Type="Override"> <UseParametersFn Name="Compute_First_Available_Bindings"> </UseParametersFn> </Parameters> <Parameters Type="Default"> <Condition Valid="IS_TIMED"> <True> <Switch Param="TIMED_TYPE"> <Case Value="X_EVENTS"> <!-- p0: Press/Release, p1:PressDuration, 0 = infinite (if pressing) p2=PressEvent --> <SET_ARG_COUNT>2</SET_ARG_COUNT> <SET_STATE_EXTERNAL>sp0 l0 0 == if{ (O:_PressTime) 0 &gt; if{ (E:SIMULATION TIME, second) (O:_PressTime) - #LONG_CLICK_TIME_1# &lt; if{ #ON_EVENT# 1 (&gt;O:_ReleaseInteraction) } els{ (E:SIMULATION TIME, second) (O:_PressTime) - #LONG_CLICK_TIME_2# &lt; if{ (O:_Process_Step) 0 == if{ #ON_EVENT_LONG_1# (O:_Process_Step) 1 + (&gt;O:_Process_Step) } } els{ (O:_Process_Step) 1 == if{ #ON_EVENT_LONG_2# (O:_Process_Step) 1 + (&gt;O:_Process_Step) } } } (O:_ReleaseInteraction) if{ 0 (&gt;O:_PressTime) 0 (&gt;O:_PressForDuration) 0 (&gt;O:_ReleaseInteraction) 0 (&gt;O:_Process_Step) } } } l0 1 == if{ (E:SIMULATION TIME, second) (&gt;O:_PressTime) p1 (&gt;O:_PressForDuration) 0 (&gt;O:_ReleaseInteraction) 0 (&gt;O:_Process_Step) } </SET_STATE_EXTERNAL> </Case> <Default> <!-- p0: Press/Release, p1:PressDuration, 0 = infinite (if pressing) --> <SET_ARG_COUNT>2</SET_ARG_COUNT> <SET_STATE_EXTERNAL>sp0 l0 0 == if{ (O:_PressTime) 0 &gt; if{ (E:SIMULATION TIME, second) (O:_PressTime) - #LONG_CLICK_TIME# &lt; if{ #ON_EVENT# 0 (&gt;O:_PressTime) } els{ #ON_EVENT_LONG# 0 (&gt;O:_PressTime) } } } l0 1 == if{ (E:SIMULATION TIME, second) (&gt;O:_PressTime) p1 (&gt;O:_PressForDuration) } </SET_STATE_EXTERNAL> </Default> </Switch> </True> <False> <SET_STATE_EXTERNAL>if{ #ON_EVENT# }</SET_STATE_EXTERNAL> </False> </Condition> <DEFAULT_BINDING_STR>#EVENT_TYPE#</DEFAULT_BINDING_STR> <Condition Valid="IS_TIMED"> <ANIM>EXTERNAL</ANIM> <Switch Param="TIMED_TYPE"> <Case Value="X_EVENTS"> <DEFAULT_BINDING_STR_LONG_1>#EVENT_TYPE#_Long_1</DEFAULT_BINDING_STR_LONG_1> <DEFAULT_BINDING_STR_LONG_2>#EVENT_TYPE#_Long_2</DEFAULT_BINDING_STR_LONG_2> </Case> <Default> <DEFAULT_BINDING_STR_LONG>#EVENT_TYPE#_Long</DEFAULT_BINDING_STR_LONG> </Default> </Switch> </Condition> <Switch Param="EVENT_TYPE"> <Case Value="Push"> <Condition Valid="IS_DIRECT_EVENT"> <True> <TT_INTERACTION>PRIMARY_DOWN</TT_INTERACTION> <TT_INTERACTION_LOCKABLE>LOCK</TT_INTERACTION_LOCKABLE> <TT_ICON>Push</TT_ICON> </True> <False> <TT_INTERACTION>PRIMARY_DOWN+SECONDARY_DOWN</TT_INTERACTION> <TT_INTERACTION_LOCKABLE>PRIMARY_DOWN</TT_INTERACTION_LOCKABLE> <ANIM_VAR>_PushAnimVar</ANIM_VAR> <TT_ICON>Push</TT_ICON> </False> </Condition> </Case> <Case Value="Pull"> <Condition Valid="IS_DIRECT_EVENT"> <True> <TT_INTERACTION>PRIMARY_DOWN</TT_INTERACTION> <TT_INTERACTION_LOCKABLE>LOCK</TT_INTERACTION_LOCKABLE> <TT_ICON>Pull</TT_ICON> </True> <False> <TT_INTERACTION>PRIMARY_DOWN+TERTIARY_DOWN</TT_INTERACTION> <TT_INTERACTION_LOCKABLE>SECONDARY_DOWN</TT_INTERACTION_LOCKABLE> <ANIM_VAR>_PullAnimVar</ANIM_VAR> <TT_ICON>Pull</TT_ICON> </False> </Condition> </Case> </Switch> <Condition Valid="IS_DIRECT_EVENT"> <False> <ANIM>HOLD</ANIM> </False> </Condition> <Condition Valid="RELEASE_EVENT"> <DEFAULT_BINDING_STR_RELEASE>Release</DEFAULT_BINDING_STR_RELEASE> </Condition> </Parameters> <UseInputEvent ID="#USE_INPUT_EVENT_ID#"> <BINDING_INC_#FIRST_AVAILABLE_INC_BINDING#>#DEFAULT_BINDING_STR#</BINDING_INC_#FIRST_AVAILABLE_INC_BINDING#> <BINDING_INC_#FIRST_AVAILABLE_INC_BINDING#_PARAM_0>1</BINDING_INC_#FIRST_AVAILABLE_INC_BINDING#_PARAM_0> <Condition Valid="IS_TIMED"> <Switch Param="TIMED_TYPE"> <Case Value="X_EVENTS"> <BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#>#DEFAULT_BINDING_STR_LONG_1#</BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#> <BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#_PARAM_0>1</BINDING_SET_0_PARAM_#FIRST_AVAILABLE_SET_BINDING#_PARAM_0> <BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#_PARAM_1>#LONG_CLICK_TIME_1#</BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#_PARAM_1> <BINDING_SET_#SECOND_AVAILABLE_SET_BINDING#>#DEFAULT_BINDING_STR_LONG_2#</BINDING_SET_#SECOND_AVAILABLE_SET_BINDING#> <BINDING_SET_#SECOND_AVAILABLE_SET_BINDING#_PARAM_0>1</BINDING_SET_#SECOND_AVAILABLE_SET_BINDING#_PARAM_0> <BINDING_SET_#SECOND_AVAILABLE_SET_BINDING#_PARAM_1>#LONG_CLICK_TIME_2#</BINDING_SET_#SECOND_AVAILABLE_SET_BINDING#_PARAM_1> </Case> <Default> <BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#>#DEFAULT_BINDING_STR_LONG#</BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#> <BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#_PARAM_0>1</BINDING_SET_0_PARAM_#FIRST_AVAILABLE_SET_BINDING#> <BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#_PARAM_1>#LONG_CLICK_TIME#</BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#_PARAM_1> </Default> </Switch> <Condition Valid="RELEASE_EVENT"> <Switch Param="TIMED_TYPE"> <Case Value="X_EVENTS"> <BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#>#DEFAULT_BINDING_STR_RELEASE#</BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#> <BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0>1 (&gt;O:_ReleaseInteraction)</BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0> <BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0_IS_DYNAMIC>True</BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0_IS_DYNAMIC> <BINDING_DEC_#SECOND_AVAILABLE_DEC_BINDING#>#DEFAULT_BINDING_STR_RELEASE#_Tick</BINDING_DEC_#SECOND_AVAILABLE_DEC_BINDING#> <BINDING_DEC_#SECOND_AVAILABLE_DEC_BINDING#_PARAM_0>0 (&gt;O:_ReleaseInteraction)</BINDING_DEC_#SECOND_AVAILABLE_DEC_BINDING#_PARAM_0> <BINDING_DEC_#SECOND_AVAILABLE_DEC_BINDING#_PARAM_0_IS_DYNAMIC>True</BINDING_DEC_#SECOND_AVAILABLE_DEC_BINDING#_PARAM_0_IS_DYNAMIC> </Case> <Default> <BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#>#DEFAULT_BINDING_STR_RELEASE#</BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#> <BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0>0</BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0> </Default> </Switch> </Condition> </Condition> </UseInputEvent> </Template> <!-- Req: AXIS --> <Template Name="ASOBO_Interaction_Axis_Event_Base_Template"> <Parameters Type="Default"> <Switch Param="AXIS"> <Case Value="X"> <DEFAULT_BINDING_STR_DEC>Left</DEFAULT_BINDING_STR_DEC> <DEFAULT_BINDING_STR_INC>Right</DEFAULT_BINDING_STR_INC> <Condition NotEmpty="LEFT_CODE_EXTERNAL"> <IE_DEC_CODE>#LEFT_CODE_EXTERNAL#</IE_DEC_CODE> </Condition> <Condition NotEmpty="RIGHT_CODE_EXTERNAL"> <IE_INC_CODE>#RIGHT_CODE_EXTERNAL#</IE_INC_CODE> </Condition> <POS_DEC>0</POS_DEC> <POS_STANDBY>1</POS_STANDBY> <POS_INC>2</POS_INC> </Case> <Case Value="Y"> <DEFAULT_BINDING_STR_INC>Up</DEFAULT_BINDING_STR_INC> <DEFAULT_BINDING_STR_DEC>Down</DEFAULT_BINDING_STR_DEC> <Condition NotEmpty="UP_CODE_EXTERNAL"> <IE_INC_CODE>#UP_CODE_EXTERNAL#</IE_INC_CODE> </Condition> <Condition NotEmpty="DOWN_CODE_EXTERNAL"> <IE_DEC_CODE>#DOWN_CODE_EXTERNAL#</IE_DEC_CODE> </Condition> <POS_INC>0</POS_INC> <POS_STANDBY>1</POS_STANDBY> <POS_DEC>2</POS_DEC> </Case> </Switch> <DEFAULT_BINDING_STR_STANDBY>Standby</DEFAULT_BINDING_STR_STANDBY> <TT_ICON>MOVE_AXIS</TT_ICON> <TT_INTERACTION>PRIMARY_DOWN+#AXIS#_AXIS</TT_INTERACTION> <TT_INTERACTION_LOCKABLE>#AXIS#_AXIS</TT_INTERACTION_LOCKABLE> <Condition Valid="IS_DIRECT_EVENT"> <False> <ANIM>EXTERNAL</ANIM> </False> </Condition> </Parameters> <Parameters Type="Default"> <TT_VALUE_INC/> <TT_VALUE_STANDBY/> <TT_VALUE_DEC/> <NUM_STATES>3</NUM_STATES> <BTN_ID>#IE_NAME#</BTN_ID> <GET_STATE_EXTERNAL>(O:#INPUT_EVENT_ID_SOURCE#_#IE_NAME#_Position) sp0</GET_STATE_EXTERNAL> </Parameters> <Parameters Type="Default"> <IE_INC_CODE>#POS_INC# (&gt;O:#INPUT_EVENT_ID_SOURCE#_#IE_NAME#_Position)</IE_INC_CODE> <IE_STANDBY_CODE>#POS_STANDBY# (&gt;O:#INPUT_EVENT_ID_SOURCE#_#IE_NAME#_Position)</IE_STANDBY_CODE> <IE_DEC_CODE>#POS_DEC# (&gt;O:#INPUT_EVENT_ID_SOURCE#_#IE_NAME#_Position)</IE_DEC_CODE> </Parameters> <UseInputEvent ID="#USE_INPUT_EVENT_ID#"> <STR_STATE_#POS_INC#>#DEFAULT_BINDING_STR_INC#</STR_STATE_#POS_INC#> <STR_STATE_#POS_STANDBY#>#DEFAULT_BINDING_STR_STANDBY#</STR_STATE_#POS_STANDBY#> <STR_STATE_#POS_DEC#>#DEFAULT_BINDING_STR_DEC#</STR_STATE_#POS_DEC#> <SET_STATE_#POS_INC#>#IE_INC_CODE#</SET_STATE_#POS_INC#> <SET_STATE_#POS_STANDBY#>#IE_STANDBY_CODE#</SET_STATE_#POS_STANDBY#> <SET_STATE_#POS_DEC#>#IE_DEC_CODE#</SET_STATE_#POS_DEC#> <Condition NotEmpty="TT_VALUE"> <False> <TT_VALUE_#POS_INC#>#TT_VALUE_INC#</TT_VALUE_#POS_INC#> <TT_VALUE_#POS_STANDBY#>#TT_VALUE_STANDBY#</TT_VALUE_#POS_STANDBY#> <TT_VALUE_#POS_DEC#>#TT_VALUE_DEC#</TT_VALUE_#POS_DEC#> </False> </Condition> </UseInputEvent> </Template> <ParametersFn Name="Compute_First_Available_Bindings"> <Parameters Type="Default"> <MAX_INC_BINDING>-1</MAX_INC_BINDING> <MAX_DEC_BINDING>-1</MAX_DEC_BINDING> <MAX_SET_BINDING>-1</MAX_SET_BINDING> </Parameters> <Parameters Type="Override"> <Loop> <Setup> <Param>CUR_ID</Param> <From>0</From> <Inc>1</Inc> <While> <Arg NotEmpty="BINDING_INC_#CUR_ID#"/> </While> </Setup> <Do> <MAX_INC_BINDING>#CUR_ID#</MAX_INC_BINDING> </Do> </Loop> <Loop> <Setup> <Param>CUR_ID</Param> <From>0</From> <Inc>1</Inc> <While> <Arg NotEmpty="BINDING_DEC_#CUR_ID#"/> </While> </Setup> <Do> <MAX_DEC_BINDING>#CUR_ID#</MAX_DEC_BINDING> </Do> </Loop> <Loop> <Setup> <Param>CUR_ID</Param> <From>0</From> <Inc>1</Inc> <While> <Arg NotEmpty="BINDING_SET_#CUR_ID#"/> </While> </Setup> <Do> <MAX_SET_BINDING>#CUR_ID#</MAX_SET_BINDING> </Do> </Loop> </Parameters> <ReturnParameters> <FIRST_AVAILABLE_INC_BINDING Process="Int">#MAX_INC_BINDING# 1 +</FIRST_AVAILABLE_INC_BINDING> <SECOND_AVAILABLE_INC_BINDING Process="Int">#MAX_INC_BINDING# 2 +</SECOND_AVAILABLE_INC_BINDING> <THIRD_AVAILABLE_INC_BINDING Process="Int">#MAX_INC_BINDING# 3 +</THIRD_AVAILABLE_INC_BINDING> <FIRST_AVAILABLE_DEC_BINDING Process="Int">#MAX_DEC_BINDING# 1 +</FIRST_AVAILABLE_DEC_BINDING> <SECOND_AVAILABLE_DEC_BINDING Process="Int">#MAX_DEC_BINDING# 2 +</SECOND_AVAILABLE_DEC_BINDING> <THIRD_AVAILABLE_DEC_BINDING Process="Int">#MAX_DEC_BINDING# 3 +</THIRD_AVAILABLE_DEC_BINDING> <FIRST_AVAILABLE_SET_BINDING Process="Int">#MAX_SET_BINDING# 1 +</FIRST_AVAILABLE_SET_BINDING> <SECOND_AVAILABLE_SET_BINDING Process="Int">#MAX_SET_BINDING# 2 +</SECOND_AVAILABLE_SET_BINDING> <THIRD_AVAILABLE_SET_BINDING Process="Int">#MAX_SET_BINDING# 3 +</THIRD_AVAILABLE_SET_BINDING> </ReturnParameters> </ParametersFn> </ModelBehaviors>

Templates

Template list
  • ASOBO_Interaction_Base_Template

    Definition from XML
    <Template Name="ASOBO_Interaction_Base_Template"> <Parameters Type="Default"> <WWISE_PREFIX/> <IS_EMISSIVE>True</IS_EMISSIVE> <USE_INPUT_EVENT_TEMPLATE>Default</USE_INPUT_EVENT_TEMPLATE> <CREATE_COMPONENT>True</CREATE_COMPONENT> <IE_PRESET_ID>#INPUT_EVENT_ID_SOURCE#_#IE_NAME#</IE_PRESET_ID> <Switch Param="INTERACTION_TYPE"> <Case Value="Push"> <EXTRA_OPTION/> <NUM_STATES>2</NUM_STATES> </Case> <Case Value="Switch"> <NUM_STATES>2</NUM_STATES> </Case> <Case Value="Knob"> <IS_INFINITE>False</IS_INFINITE> <Switch Param="KNOB_TYPE"> <Case Value="X_STATES"> <NUM_STATES>2</NUM_STATES> <INTERACTION_AXIS>X</INTERACTION_AXIS> </Case> </Switch> </Case> <Case Value="Lever"> <INTERACTION_AXIS>Y</INTERACTION_AXIS> <DRAG_VALUE_TO_EVENT_SET/> </Case> </Switch> </Parameters> <Parameters Type="Override"> <UseParametersFn Name="Compute_First_Available_Bindings"/> </Parameters> <Parameters Type="Default"> <Switch Param="INTERACTION_TYPE"> <Case Value="Push"> <BTN_ID>#IE_NAME#</BTN_ID> </Case> <Case Value="Switch"> <BTN_ID>#IE_NAME#</BTN_ID> <ANIM>EXTERNAL</ANIM> </Case> <Case Value="Knob"> <Switch Param="KNOB_TYPE"> <Case Value="X_STATES"> <BTN_ID>#IE_NAME#</BTN_ID> <TT_ICON>ROTATE</TT_ICON> <ANIM>EXTERNAL</ANIM> <Switch Param="NUM_STATES"> <Case Value="2"> <TT_INTERACTION>PRIMARY_DOWN</TT_INTERACTION> <TT_INTERACTION_LOCKABLE>LOCK</TT_INTERACTION_LOCKABLE> </Case> <Default> <TT_INTERACTION>PRIMARY_DOWN+#INTERACTION_AXIS#_AXIS</TT_INTERACTION> <TT_INTERACTION_LOCKABLE>#INTERACTION_AXIS#_AXIS</TT_INTERACTION_LOCKABLE> <Switch Param="INTERACTION_AXIS"> <Case Value="X"> <SWITCH_DIRECTION>Horizontal</SWITCH_DIRECTION> </Case> <Case Value="Y"> <SWITCH_DIRECTION>Vertical</SWITCH_DIRECTION> </Case> </Switch> </Default> </Switch> </Case> <Default> <KNOB_ID>#IE_NAME#</KNOB_ID> <Condition Valid="IS_INFINITE"> <True> <KNOB_INTERACTION_TYPE>Infinite</KNOB_INTERACTION_TYPE> <NO_KNOB_ANIM_VAR_UPDATE>True</NO_KNOB_ANIM_VAR_UPDATE> </True> <False> <Condition NotEmpty="TEMPLATE_VARIANT"> <True> <KNOB_INTERACTION_TYPE>Finite</KNOB_INTERACTION_TYPE> </True> <False> <KNOB_INTERACTION_TYPE>Finite_Code</KNOB_INTERACTION_TYPE> </False> </Condition> </False> </Condition> <Condition> <Test> <And> <Arg NotEmpty="IE_ID_EXTERNAL_0"/> <Arg NotEmpty="IE_ID_EXTERNAL_1"/> </And> </Test> <True> <TEMPLATE_VARIANT>PushPull</TEMPLATE_VARIANT> <IE_ID_EXTERNAL_0_BINDING_NAME>Push</IE_ID_EXTERNAL_0_BINDING_NAME> <IE_ID_EXTERNAL_1_BINDING_NAME>Pull</IE_ID_EXTERNAL_1_BINDING_NAME> </True> <False> <Condition NotEmpty="IE_ID_EXTERNAL_0"> <True> <Condition Valid="IS_TIMED"> <True> <TEMPLATE_VARIANT>Push_Timed</TEMPLATE_VARIANT> <IE_ID_EXTERNAL_0_BINDING_NAME_RELEASE>Release</IE_ID_EXTERNAL_0_BINDING_NAME_RELEASE> </True> <False> <TEMPLATE_VARIANT>Push</TEMPLATE_VARIANT> </False> </Condition> <Condition Valid="IS_PULL"> <True> <IE_ID_EXTERNAL_0_BINDING_NAME>Pull</IE_ID_EXTERNAL_0_BINDING_NAME> </True> <False> <Switch Param="TEMPLATE_VARIANT"> <Case Value="Switch"> <IE_ID_EXTERNAL_0_BINDING_NAME>Toggle</IE_ID_EXTERNAL_0_BINDING_NAME> </Case> <Default> <IE_ID_EXTERNAL_0_BINDING_NAME>Push</IE_ID_EXTERNAL_0_BINDING_NAME> </Default> </Switch> </False> </Condition> </True> <False> <TEMPLATE_VARIANT/> </False> </Condition> </False> </Condition> </Default> </Switch> </Case> <Case Value="Lever"> <Switch Param="LEVER_TYPE"> <Case Value="2_STATES"> <BTN_ID>#IE_NAME#</BTN_ID> <TT_ICON>MOVE_AXIS_#INTERACTION_AXIS#</TT_ICON> <TT_INTERACTION>PRIMARY_DOWN+#INTERACTION_AXIS#_AXIS</TT_INTERACTION> <TT_INTERACTION_LOCKABLE>#INTERACTION_AXIS#_AXIS</TT_INTERACTION_LOCKABLE> <ANIM>EXTERNAL</ANIM> <NUM_STATES>2</NUM_STATES> <ANIM_LAG>400</ANIM_LAG> <DRAG_SCALAR>10</DRAG_SCALAR> <ALWAYS_USE_ANIM_LAG>True</ALWAYS_USE_ANIM_LAG> <STR_STATE_ON>Down</STR_STATE_ON> <STR_STATE_OFF>Up</STR_STATE_OFF> <TT_VALUE_ON>(R:1:@TT_Package.GT_STATE_DOWN)</TT_VALUE_ON> <TT_VALUE_OFF>(R:1:@TT_Package.GT_STATE_UP)</TT_VALUE_OFF> </Case> <Default> <LEVER_ID>#IE_NAME#</LEVER_ID> </Default> </Switch> </Case> <Case Value="Joystick"> <BTN_ID>#IE_NAME#</BTN_ID> <Switch Param="JOYSTICK_TYPE"> <Case Value="5_STATES"> <NUM_STATES>5</NUM_STATES> <STR_STATE_0>Left</STR_STATE_0> <STR_STATE_1>Right</STR_STATE_1> <STR_STATE_2>Down</STR_STATE_2> <STR_STATE_3>Up</STR_STATE_3> <STR_STATE_4>Standby</STR_STATE_4> <TT_VALUE_0>@TT_Package.GT_STATE_LEFT</TT_VALUE_0> <TT_VALUE_1>@TT_Package.GT_STATE_RIGHT</TT_VALUE_1> <TT_VALUE_2>@TT_Package.GT_STATE_DOWN</TT_VALUE_2> <TT_VALUE_3>@TT_Package.GT_STATE_UP</TT_VALUE_3> <TT_VALUE_4>@TT_Package.GT_STATE_STANDBY</TT_VALUE_4> <IE_ID_EXTERNAL_0_BINDING_LEFT>Left</IE_ID_EXTERNAL_0_BINDING_LEFT> <IE_ID_EXTERNAL_0_BINDING_RIGHT>Right</IE_ID_EXTERNAL_0_BINDING_RIGHT> <IE_ID_EXTERNAL_1_BINDING_DOWN>Down</IE_ID_EXTERNAL_1_BINDING_DOWN> <IE_ID_EXTERNAL_1_BINDING_UP>Up</IE_ID_EXTERNAL_1_BINDING_UP> <IE_ID_EXTERNAL_0_BINDING_STANDBY>Standby</IE_ID_EXTERNAL_0_BINDING_STANDBY> <IE_ID_EXTERNAL_1_BINDING_STANDBY>Standby</IE_ID_EXTERNAL_1_BINDING_STANDBY> <GET_STATE_EXTERNAL>(O:#IE_PRESET_ID#_Position) sp0</GET_STATE_EXTERNAL> <ENUM_VAL_TO_POS_EXTERNAL>l0</ENUM_VAL_TO_POS_EXTERNAL> <FREQUENCY>20</FREQUENCY> <ON_POS_LEFT/> <ON_POS_RIGHT/> <ON_POS_DOWN/> <ON_POS_UP/> <ANIM>EXTERNAL</ANIM> </Case> </Switch> <TT_ICON>MOVE_AXIS</TT_ICON> </Case> </Switch> </Parameters> <Parameters Type="Default"> <Switch> <Case NotEmpty="BTN_ID"> <Switch Param="INTERACTION_TYPE"> <Case Value="Push"> <WWISE_EVENT_1>#WWISE_PREFIX#_push_button_on</WWISE_EVENT_1> <NORMALIZED_TIME_1>0.1</NORMALIZED_TIME_1> <WWISE_EVENT_2>#WWISE_PREFIX#_push_button_off</WWISE_EVENT_2> <NORMALIZED_TIME_2>0.5</NORMALIZED_TIME_2> </Case> <Case Value="Lever"> <WWISE_EVENT_1>#WWISE_PREFIX#_lever_on</WWISE_EVENT_1> <NORMALIZED_TIME_1>0.25</NORMALIZED_TIME_1> <WWISE_EVENT_2>#WWISE_PREFIX#_lever_off</WWISE_EVENT_2> <NORMALIZED_TIME_2>0.75</NORMALIZED_TIME_2> </Case> <Case Value="Joystick"> <WWISE_JOYSTICK_EVENT_L>#WWISE_PREFIX#_joystick</WWISE_JOYSTICK_EVENT_L> <WWISE_JOYSTICK_EVENT_R>#WWISE_PREFIX#_joystick</WWISE_JOYSTICK_EVENT_R> <WWISE_JOYSTICK_EVENT_UP>#WWISE_PREFIX#_joystick</WWISE_JOYSTICK_EVENT_UP> <WWISE_JOYSTICK_EVENT_DN>#WWISE_PREFIX#_joystick</WWISE_JOYSTICK_EVENT_DN> <NORMALIZED_TIME_1>0.1</NORMALIZED_TIME_1> <NORMALIZED_TIME_2>0.5</NORMALIZED_TIME_2> </Case> <Default> <Switch Param="NUM_STATES"> <Case Value="2"> <WWISE_EVENT_1>#WWISE_PREFIX#_switch_on</WWISE_EVENT_1> <NORMALIZED_TIME_1>0.1</NORMALIZED_TIME_1> <WWISE_EVENT_2>#WWISE_PREFIX#_switch_off</WWISE_EVENT_2> <NORMALIZED_TIME_2>0.5</NORMALIZED_TIME_2> </Case> <Default> <Switch Param="INTERACTION_TYPE"> <Case Value="Knob"> <WWISE_EVENT>#WWISE_PREFIX#_knob</WWISE_EVENT> </Case> <Default> <WWISE_EVENT>#WWISE_PREFIX#_switch</WWISE_EVENT> </Default> </Switch> <MAX_POS Process="Int">#NUM_STATES# 1 -</MAX_POS> </Default> </Switch> </Default> </Switch> </Case> <Case NotEmpty="KNOB_ID"> <WWISE_EVENT>#WWISE_PREFIX#_knob</WWISE_EVENT> <Switch> <Case NotEmpty="TEMPLATE_VARIANT"> <WWISE_EVENT_1>#WWISE_PREFIX#_push_button_on</WWISE_EVENT_1> <NORMALIZED_TIME_1>0.1</NORMALIZED_TIME_1> <WWISE_EVENT_2>#WWISE_PREFIX#_push_button_off</WWISE_EVENT_2> <NORMALIZED_TIME_2>0.5</NORMALIZED_TIME_2> </Case> </Switch> </Case> <Case NotEmpty="LEVER_ID"> <WWISE_EVENT>#WWISE_PREFIX#_lever</WWISE_EVENT> </Case> </Switch> </Parameters> <Parameters Type="Default"> <Condition> <Test> <Or> <Arg Valid="TOOLTIP_TITLE"/> <Arg Valid="TOOLTIP_TITLE_ID"/> </Or> </Test> <True> <TOOLTIP_ENTRY_0>#IE_PRESET_ID#</TOOLTIP_ENTRY_0> <Loop> <Setup> <Param>CUR_ID</Param> <From>0</From> <Inc>1</Inc> <While> <Arg NotEmpty="IE_ID_EXTERNAL_#CUR_ID#"/> </While> </Setup> <Do> <Parameters Type="Override"> <CUR_TT_ID Process="Int">#CUR_ID# 1 +</CUR_TT_ID> <CUR_IE_ID_EXTERNAL Process="Param">IE_ID_EXTERNAL_#CUR_ID#</CUR_IE_ID_EXTERNAL> </Parameters> <TOOLTIP_ENTRY_#CUR_TT_ID#>#INPUT_EVENT_ID_SOURCE#_#CUR_IE_ID_EXTERNAL#</TOOLTIP_ENTRY_#CUR_TT_ID#> </Do> </Loop> </True> </Condition> <Switch> <Case NotEmpty="BTN_ID"> <Condition NotEmpty="GET_STATE_EXTERNAL"> <True> <Switch Param="NUM_STATES"> <Case Value="2"> <SIM_STATE_IS_ON_EXTERNAL>l0</SIM_STATE_IS_ON_EXTERNAL> <Switch Param="INTERACTION_TYPE"> <Case Value="Push"> <Condition Valid="IS_AIRLINER"> <True> <TEMPLATE_TO_USE>ASOBO_GT_Push_Button_Airliner</TEMPLATE_TO_USE> </True> <False> <TEMPLATE_TO_USE>ASOBO_GT_Push_Button#EXTRA_OPTION#</TEMPLATE_TO_USE> </False> </Condition> <LEFT_SINGLE_CODE>(&gt;B:#IE_PRESET_ID#_Toggle)</LEFT_SINGLE_CODE> </Case> <Case Value="Lever"> <TEMPLATE_TO_USE>ASOBO_GT_Lever_DraggingYAxis_Code</TEMPLATE_TO_USE> <ANIM_CODE>(B:#IE_PRESET_ID#, Bool) 100 *</ANIM_CODE> <UP_CODE>(&gt;B:#IE_PRESET_ID#_#STR_STATE_OFF#)</UP_CODE> <DOWN_CODE>(&gt;B:#IE_PRESET_ID#_#STR_STATE_ON#)</DOWN_CODE> </Case> <Default> <TEMPLATE_TO_USE>ASOBO_GT_Switch_Code</TEMPLATE_TO_USE> <ANIM_CODE>(B:#IE_PRESET_ID#, Bool) 100 *</ANIM_CODE> <LEFT_SINGLE_CODE>(&gt;B:#IE_PRESET_ID#_Toggle)</LEFT_SINGLE_CODE> </Default> </Switch> </Case> <Default> <Switch Param="INTERACTION_TYPE"> <Case Value="Joystick"> <TEMPLATE_TO_USE>ASOBO_GT_Joystick_Interaction_Knob</TEMPLATE_TO_USE> <Switch Param="JOYSTICK_TYPE"> <Case Value="5_STATES"> <JOYSTICK_INTERACTION>PAN_ONLY</JOYSTICK_INTERACTION> <IM_DRAG_ADDITIONAL_EVENT_HANDLING/> <ON_UP_EVENT>(&gt;B:#IE_PRESET_ID#_#STR_STATE_4#)</ON_UP_EVENT> <COMP_INIT_CODE>(&gt;B:#IE_PRESET_ID#_#STR_STATE_4#)</COMP_INIT_CODE> <Switch Param="JOYSTICK_INTERACTION_TYPE"> <Case Value="POSITIONAL"> <USE_PAD_DRAG_IM_LOCK>True</USE_PAD_DRAG_IM_LOCK> <COMP_UPDATE_CODE> (O:#IE_PRESET_ID#_Position) 4 &lt; if{ (O:#IE_PRESET_ID#_Position) 0 == if{ #ON_POS_LEFT# quit } (O:#IE_PRESET_ID#_Position) 1 == if{ #ON_POS_RIGHT# quit } (O:#IE_PRESET_ID#_Position) 2 == if{ #ON_POS_DOWN# quit } (O:#IE_PRESET_ID#_Position) 3 == if{ #ON_POS_UP# quit } } </COMP_UPDATE_CODE> <JOYSTICK_X_CODE_LEFT> (O:#IE_PRESET_ID#_Position) 0 != (O:_IsLimited) ! and if{ 1 (&gt;O:_IsLimited) (O:#IE_PRESET_ID#_Position) 4 != if{ (&gt;B:#IE_PRESET_ID#_#STR_STATE_4#) } els{ (&gt;B:#IE_PRESET_ID#_#STR_STATE_0#) } } </JOYSTICK_X_CODE_LEFT> <JOYSTICK_X_CODE_RIGHT> (O:#IE_PRESET_ID#_Position) 1 != (O:_IsLimited) ! and if{ 1 (&gt;O:_IsLimited) (O:#IE_PRESET_ID#_Position) 4 != if{ (&gt;B:#IE_PRESET_ID#_#STR_STATE_4#) } els{ (&gt;B:#IE_PRESET_ID#_#STR_STATE_1#) } } </JOYSTICK_X_CODE_RIGHT> <JOYSTICK_Y_CODE_DOWN> (O:#IE_PRESET_ID#_Position) 2 != (O:_IsLimited) ! and if{ 1 (&gt;O:_IsLimited) (O:#IE_PRESET_ID#_Position) 4 != if{ (&gt;B:#IE_PRESET_ID#_#STR_STATE_4#) } els{ (&gt;B:#IE_PRESET_ID#_#STR_STATE_2#) } } </JOYSTICK_Y_CODE_DOWN> <JOYSTICK_Y_CODE_UP> (O:#IE_PRESET_ID#_Position) 3 != (O:_IsLimited) ! and if{ 1 (&gt;O:_IsLimited) (O:#IE_PRESET_ID#_Position) 4 != if{ (&gt;B:#IE_PRESET_ID#_#STR_STATE_4#) } els{ (&gt;B:#IE_PRESET_ID#_#STR_STATE_3#) } } </JOYSTICK_Y_CODE_UP> <SET_STATE_0> (&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_LEFT#) (&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_1#_#IE_ID_EXTERNAL_1_BINDING_STANDBY#) </SET_STATE_0> <SET_STATE_1> (&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_RIGHT#) (&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_1#_#IE_ID_EXTERNAL_1_BINDING_STANDBY#) </SET_STATE_1> <SET_STATE_2> (&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_STANDBY#) (&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_1#_#IE_ID_EXTERNAL_1_BINDING_DOWN#) </SET_STATE_2> <SET_STATE_3> (&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_STANDBY#) (&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_1#_#IE_ID_EXTERNAL_1_BINDING_UP#) </SET_STATE_3> <SET_STATE_4> (&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_STANDBY#) (&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_1#_#IE_ID_EXTERNAL_1_BINDING_STANDBY#) </SET_STATE_4> <USE_DEFAULT_ANIMATION>False</USE_DEFAULT_ANIMATION> <ANIM_CODE_AXIS_X>(B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#) 50 *</ANIM_CODE_AXIS_X> <ANIM_CODE_AXIS_Y>(B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_1#) 50 *</ANIM_CODE_AXIS_Y> </Case> <Default> <JOYSTICK_X_CODE_LEFT>(&gt;B:#IE_PRESET_ID#_#STR_STATE_0#)</JOYSTICK_X_CODE_LEFT> <JOYSTICK_X_CODE_RIGHT>(&gt;B:#IE_PRESET_ID#_#STR_STATE_1#)</JOYSTICK_X_CODE_RIGHT> <JOYSTICK_Y_CODE_DOWN>(&gt;B:#IE_PRESET_ID#_#STR_STATE_2#)</JOYSTICK_Y_CODE_DOWN> <JOYSTICK_Y_CODE_UP>(&gt;B:#IE_PRESET_ID#_#STR_STATE_3#)</JOYSTICK_Y_CODE_UP> <SET_STATE_0>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_LEFT#)</SET_STATE_0> <SET_STATE_1>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_RIGHT#)</SET_STATE_1> <SET_STATE_2>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_1#_#IE_ID_EXTERNAL_1_BINDING_DOWN#)</SET_STATE_2> <SET_STATE_3>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_1#_#IE_ID_EXTERNAL_1_BINDING_UP#)</SET_STATE_3> <SET_STATE_4> (&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_STANDBY#) (&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_1#_#IE_ID_EXTERNAL_1_BINDING_STANDBY#) </SET_STATE_4> </Default> </Switch> <TOOLTIP_ENTRY_0>#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#</TOOLTIP_ENTRY_0> <TOOLTIP_ENTRY_1>#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_1#</TOOLTIP_ENTRY_1> <TOOLTIP_ENTRY_2/> </Case> </Switch> </Case> <Default> <TEMPLATE_TO_USE>ASOBO_GT_Switch_XStates</TEMPLATE_TO_USE> <Condition NotEmpty="ON_STATE_CHANGED_EXTERNAL_CODE"> <DISABLE_ON_STATE_CHANGED_EXTERNAL_CODE_IN_MR>True</DISABLE_ON_STATE_CHANGED_EXTERNAL_CODE_IN_MR> </Condition> <Loop> <Setup> <Param>CUR_ID</Param> <From>0</From> <Inc>1</Inc> <To>#MAX_POS#</To> </Setup> <Do> <Parameters Type="Override"> <ID_POS Process="Param">STR_STATE_#CUR_ID#</ID_POS> </Parameters> <Condition NotEmpty="TT_VALUE_#CUR_ID#"> <False> <TT_VALUE_#CUR_ID#>@TT_OverrideMe_Value</TT_VALUE_#CUR_ID#> <TT_VALUE_#CUR_ID#_IS_DYNAMIC>True</TT_VALUE_#CUR_ID#_IS_DYNAMIC> </False> </Condition> <CODE_POS_#CUR_ID#>(&gt;B:#IE_PRESET_ID#_#ID_POS#)</CODE_POS_#CUR_ID#> <STATE#CUR_ID#_TEST>(B:#IE_PRESET_ID#) #CUR_ID# ==</STATE#CUR_ID#_TEST> </Do> </Loop> </Default> </Switch> </Default> </Switch> </True> <False> <Condition Valid="IS_AIRLINER"> <True> <TEMPLATE_TO_USE>ASOBO_GT_Push_Button_Airliner</TEMPLATE_TO_USE> </True> <False> <Condition Valid="NO_PUSH_ANIMATION"> <True> <TEMPLATE_TO_USE>ASOBO_GT_Interaction_LeftSingle_Code</TEMPLATE_TO_USE> </True> <False> <TEMPLATE_TO_USE>ASOBO_GT_Push_Button#EXTRA_OPTION#</TEMPLATE_TO_USE> </False> </Condition> </False> </Condition> <LEFT_SINGLE_CODE>(&gt;B:#IE_PRESET_ID#_Push)</LEFT_SINGLE_CODE> <BINDING_INC_#FIRST_AVAILABLE_INC_BINDING#>Push</BINDING_INC_#FIRST_AVAILABLE_INC_BINDING#> <BINDING_INC_#FIRST_AVAILABLE_INC_BINDING#_PARAM_0>1</BINDING_INC_#FIRST_AVAILABLE_INC_BINDING#_PARAM_0> <Condition NotEmpty="EVENT_ID"> <BINDING_INC_#FIRST_AVAILABLE_INC_BINDING#_EVENT_ID>#EVENT_ID#</BINDING_INC_#FIRST_AVAILABLE_INC_BINDING#_EVENT_ID> </Condition> <Switch Param="EXTRA_OPTION"> <Case Value="_Timed"> <LEFT_LEAVE_CODE>(&gt;B:#IE_PRESET_ID#_Release)</LEFT_LEAVE_CODE> <IS_TIMED>True</IS_TIMED> <Switch Param="TIMED_TYPE"> <Case Value="X_EVENTS"> <RELEASE_EVENT>True</RELEASE_EVENT> <LONG_CLICK_CODE_1>(&gt;B:#IE_PRESET_ID#_Release_Tick)</LONG_CLICK_CODE_1> </Case> <Default> <BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#>Release</BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#> <BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0>0</BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0> </Default> </Switch> </Case> <Case Value="_Held"> <BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#>Release</BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#> <BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0>0</BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0> <ANIM_HANDLED_SEPARATELY>True</ANIM_HANDLED_SEPARATELY> <LEFT_LEAVE_CODE>(&gt;B:#IE_PRESET_ID#_Release)</LEFT_LEAVE_CODE> <IS_TIMED>True</IS_TIMED> </Case> </Switch> </False> </Condition> </Case> <Case NotEmpty="KNOB_ID"> <Condition NotEmpty="TEMPLATE_VARIANT"> <True> <TEMPLATE_TO_USE>ASOBO_GT_Knob_#KNOB_INTERACTION_TYPE#_#TEMPLATE_VARIANT#</TEMPLATE_TO_USE> </True> <False> <TEMPLATE_TO_USE>ASOBO_GT_Knob_#KNOB_INTERACTION_TYPE#</TEMPLATE_TO_USE> </False> </Condition> <CLOCKWISE_CODE>1 (&gt;B:#IE_PRESET_ID#_Inc)</CLOCKWISE_CODE> <ANTICLOCKWISE_CODE>1 (&gt;B:#IE_PRESET_ID#_Dec)</ANTICLOCKWISE_CODE> <Switch Param="TEMPLATE_VARIANT"> <Case Value="Switch"> <LEFT_SINGLE_CODE>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_NAME#)</LEFT_SINGLE_CODE> </Case> <Case Value="Push"> <LEFT_SINGLE_CODE>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_NAME#)</LEFT_SINGLE_CODE> </Case> <Case Value="PushPull"> <PUSH_CODE>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_NAME#)</PUSH_CODE> <PULL_CODE>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_1#_#IE_ID_EXTERNAL_1_BINDING_NAME#)</PULL_CODE> </Case> <Case Value="Push_Timed"> <LEFT_SINGLE_CODE>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_NAME#)</LEFT_SINGLE_CODE> <LEFT_LEAVE_CODE>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#IE_ID_EXTERNAL_0#_#IE_ID_EXTERNAL_0_BINDING_NAME_RELEASE#)</LEFT_LEAVE_CODE> <TIMER_EVENTS_HANDLED_EXTERNALLY>True</TIMER_EVENTS_HANDLED_EXTERNALLY> <LOCKABLE_EVENT_SECONDARY>LeftRelease</LOCKABLE_EVENT_SECONDARY> <NO_LOCK_EVENT_SECONDARY>RightRelease</NO_LOCK_EVENT_SECONDARY> <MOUSEFLAGS_DRAG_IM>RightAll+LeftAll+Wheel+Lock+Unlock</MOUSEFLAGS_DRAG_IM> <LONG_CLICK_TIME>1</LONG_CLICK_TIME> </Case> </Switch> <ANIM_CODE>(B:#IE_PRESET_ID#, percent)</ANIM_CODE> </Case> <Case NotEmpty="LEVER_ID"> <TEMPLATE_TO_USE>ASOBO_GT_Lever_DraggingWheelLeftDrag_Axis</TEMPLATE_TO_USE> <CURSOR>Grab</CURSOR> <NO_ARROWS/> <USE_TRAJECTORY_DRAG_MODE>True</USE_TRAJECTORY_DRAG_MODE> <DRAG_CODE>(M:DragPercent) #DRAG_VALUE_TO_EVENT_SET# (&gt;B:#IE_PRESET_ID#_Set)</DRAG_CODE> <POSITIVE_AXIS_CODE>1 (&gt;B:#IE_PRESET_ID#_Inc)</POSITIVE_AXIS_CODE> <NEGATIVE_AXIS_CODE>1 (&gt;B:#IE_PRESET_ID#_Dec)</NEGATIVE_AXIS_CODE> <ANIM_CODE>(B:#IE_PRESET_ID#, percent)</ANIM_CODE> </Case> </Switch> <Switch Param="USE_INPUT_EVENT_TEMPLATE"> <Case Value="Push"> <IS_DIRECT_EVENT>True</IS_DIRECT_EVENT> </Case> <Case Value="Pull"> <IS_DIRECT_EVENT>True</IS_DIRECT_EVENT> </Case> </Switch> </Parameters> <Parameters Type="Override"> <Switch Param="TEMPLATE_TO_USE"> <Case Value="ASOBO_GT_Push_Button_Airliner"> <CREATE_COMPONENT>Airliner</CREATE_COMPONENT> </Case> </Switch> </Parameters> <Switch Param="CREATE_COMPONENT"> <Case Value="True"> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <UseTemplate Name="ASOBO_Interaction_Base_SubTemplate"/> </Component> </Case> <Case Value="Airliner"> <Component ID="#NODE_ID#_IE_Container"> <UseTemplate Name="ASOBO_Interaction_Base_SubTemplate"> <INPUT_EVENT_ID>#USE_INPUT_EVENT_ID#</INPUT_EVENT_ID> </UseTemplate> </Component> </Case> <Default> <UseTemplate Name="ASOBO_Interaction_Base_SubTemplate"/> </Default> </Switch> </Template>

    Parameters initialization:

    • Default

      Parameters set:

      • WWISE_PREFIX
      • IS_EMISSIVE
      • USE_INPUT_EVENT_TEMPLATE
      • CREATE_COMPONENT
      • IE_PRESET_ID (using INPUT_EVENT_ID_SOURCE, IE_NAME)

      Condition: Switch(INTERACTION_TYPE)

      • Case: Push

        Parameters set:

        • EXTRA_OPTION
        • NUM_STATES
      • Case: Switch

        Parameters set:

        • NUM_STATES
      • Case: Knob

        Parameters set:

        • IS_INFINITE

        Condition: Switch(KNOB_TYPE)

        • Case: X_STATES

          Parameters set:

          • NUM_STATES
          • INTERACTION_AXIS
      • Case: Lever

        Parameters set:

        • INTERACTION_AXIS
        • DRAG_VALUE_TO_EVENT_SET
    • Override
    • Default

      Condition: Switch(INTERACTION_TYPE)

      • Case: Push

        Parameters set:

        • BTN_ID (using IE_NAME)
      • Case: Switch

        Parameters set:

        • BTN_ID (using IE_NAME)
        • ANIM
      • Case: Knob

        Condition: Switch(KNOB_TYPE)

        • Case: X_STATES

          Parameters set:

          • BTN_ID (using IE_NAME)
          • TT_ICON
          • ANIM

          Condition: Switch(NUM_STATES)

          • Case: 2

            Parameters set:

            • TT_INTERACTION
            • TT_INTERACTION_LOCKABLE
          • Default case:

            Parameters set:

            • TT_INTERACTION (using INTERACTION_AXIS)
            • TT_INTERACTION_LOCKABLE (using INTERACTION_AXIS)

            Condition: Switch(INTERACTION_AXIS)

            • Case: X

              Parameters set:

              • SWITCH_DIRECTION
            • Case: Y

              Parameters set:

              • SWITCH_DIRECTION
        • Default case:

          Parameters set:

          • KNOB_ID (using IE_NAME)

          Condition: Valid(IS_INFINITE)

          • Case: True

            Parameters set:

            • KNOB_INTERACTION_TYPE
            • NO_KNOB_ANIM_VAR_UPDATE
          • Case: False

            Condition: NotEmpty(TEMPLATE_VARIANT)

            • Case: True

              Parameters set:

              • KNOB_INTERACTION_TYPE
            • Case: False

              Parameters set:

              • KNOB_INTERACTION_TYPE

          Condition: Test(IE_ID_EXTERNAL_0, IE_ID_EXTERNAL_1)

          • Case: True

            Parameters set:

            • TEMPLATE_VARIANT
            • IE_ID_EXTERNAL_0_BINDING_NAME
            • IE_ID_EXTERNAL_1_BINDING_NAME
          • Case: False

            Condition: NotEmpty(IE_ID_EXTERNAL_0)

            • Case: True

              Condition: Valid(IS_TIMED)

              • Case: True

                Parameters set:

                • TEMPLATE_VARIANT
                • IE_ID_EXTERNAL_0_BINDING_NAME_RELEASE
              • Case: False

                Parameters set:

                • TEMPLATE_VARIANT

              Condition: Valid(IS_PULL)

              • Case: True

                Parameters set:

                • IE_ID_EXTERNAL_0_BINDING_NAME
              • Case: False

                Condition: Switch(TEMPLATE_VARIANT)

                • Case: Switch

                  Parameters set:

                  • IE_ID_EXTERNAL_0_BINDING_NAME
                • Default case:

                  Parameters set:

                  • IE_ID_EXTERNAL_0_BINDING_NAME
            • Case: False

              Parameters set:

              • TEMPLATE_VARIANT
      • Case: Lever

        Condition: Switch(LEVER_TYPE)

        • Case: 2_STATES

          Parameters set:

          • BTN_ID (using IE_NAME)
          • TT_ICON (using INTERACTION_AXIS)
          • TT_INTERACTION (using INTERACTION_AXIS)
          • TT_INTERACTION_LOCKABLE (using INTERACTION_AXIS)
          • ANIM
          • NUM_STATES
          • ANIM_LAG
          • DRAG_SCALAR
          • ALWAYS_USE_ANIM_LAG
          • STR_STATE_ON
          • STR_STATE_OFF
          • TT_VALUE_ON
          • TT_VALUE_OFF
        • Default case:

          Parameters set:

          • LEVER_ID (using IE_NAME)
      • Case: Joystick

        Parameters set:

        • BTN_ID (using IE_NAME)
        • TT_ICON

        Condition: Switch(JOYSTICK_TYPE)

        • Case: 5_STATES

          Parameters set:

          • NUM_STATES
          • STR_STATE_0
          • STR_STATE_1
          • STR_STATE_2
          • STR_STATE_3
          • STR_STATE_4
          • TT_VALUE_0
          • TT_VALUE_1
          • TT_VALUE_2
          • TT_VALUE_3
          • TT_VALUE_4
          • IE_ID_EXTERNAL_0_BINDING_LEFT
          • IE_ID_EXTERNAL_0_BINDING_RIGHT
          • IE_ID_EXTERNAL_1_BINDING_DOWN
          • IE_ID_EXTERNAL_1_BINDING_UP
          • IE_ID_EXTERNAL_0_BINDING_STANDBY
          • IE_ID_EXTERNAL_1_BINDING_STANDBY
          • GET_STATE_EXTERNAL (using IE_PRESET_ID)
          • ENUM_VAL_TO_POS_EXTERNAL
          • FREQUENCY
          • ON_POS_LEFT
          • ON_POS_RIGHT
          • ON_POS_DOWN
          • ON_POS_UP
          • ANIM
    • Default

      Condition: Switch

      • Case: NotEmpty(BTN_ID)

        Condition: Switch(INTERACTION_TYPE)

        • Case: Push

          Parameters set:

          • WWISE_EVENT_1 (using WWISE_PREFIX)
          • NORMALIZED_TIME_1
          • WWISE_EVENT_2 (using WWISE_PREFIX)
          • NORMALIZED_TIME_2
        • Case: Lever

          Parameters set:

          • WWISE_EVENT_1 (using WWISE_PREFIX)
          • NORMALIZED_TIME_1
          • WWISE_EVENT_2 (using WWISE_PREFIX)
          • NORMALIZED_TIME_2
        • Case: Joystick

          Parameters set:

          • WWISE_JOYSTICK_EVENT_L (using WWISE_PREFIX)
          • WWISE_JOYSTICK_EVENT_R (using WWISE_PREFIX)
          • WWISE_JOYSTICK_EVENT_UP (using WWISE_PREFIX)
          • WWISE_JOYSTICK_EVENT_DN (using WWISE_PREFIX)
          • NORMALIZED_TIME_1
          • NORMALIZED_TIME_2
        • Default case:

          Condition: Switch(NUM_STATES)

          • Case: 2

            Parameters set:

            • WWISE_EVENT_1 (using WWISE_PREFIX)
            • NORMALIZED_TIME_1
            • WWISE_EVENT_2 (using WWISE_PREFIX)
            • NORMALIZED_TIME_2
          • Default case:

            Parameters set:

            • MAX_POS (using NUM_STATES)

            Condition: Switch(INTERACTION_TYPE)

            • Case: Knob

              Parameters set:

              • WWISE_EVENT (using WWISE_PREFIX)
            • Default case:

              Parameters set:

              • WWISE_EVENT (using WWISE_PREFIX)
      • Case: NotEmpty(KNOB_ID)

        Parameters set:

        • WWISE_EVENT (using WWISE_PREFIX)

        Condition: Switch

        • Case: NotEmpty(TEMPLATE_VARIANT)

          Parameters set:

          • WWISE_EVENT_1 (using WWISE_PREFIX)
          • NORMALIZED_TIME_1
          • WWISE_EVENT_2 (using WWISE_PREFIX)
          • NORMALIZED_TIME_2
      • Case: NotEmpty(LEVER_ID)

        Parameters set:

        • WWISE_EVENT (using WWISE_PREFIX)
    • Default

      Condition: Test(TOOLTIP_TITLE, TOOLTIP_TITLE_ID)

      • Case: True

        Parameters read:

        • CUR_ID

        Parameters set:

        • TOOLTIP_ENTRY_0 (using IE_PRESET_ID)
        • CUR_ID
        • CUR_TT_ID (using CUR_ID)
        • CUR_IE_ID_EXTERNAL (using CUR_ID)
        • TOOLTIP_ENTRY_#CUR_TT_ID# (using INPUT_EVENT_ID_SOURCE, CUR_IE_ID_EXTERNAL)

      Condition: Switch

      • Case: NotEmpty(BTN_ID)

        Condition: NotEmpty(GET_STATE_EXTERNAL)

        • Case: True

          Condition: Switch(NUM_STATES)

          • Case: 2

            Parameters set:

            • SIM_STATE_IS_ON_EXTERNAL

            Condition: Switch(INTERACTION_TYPE)

            • Case: Push

              Parameters set:

              • LEFT_SINGLE_CODE (using IE_PRESET_ID)

              Condition: Valid(IS_AIRLINER)

              • Case: True

                Parameters set:

                • TEMPLATE_TO_USE
              • Case: False

                Parameters set:

                • TEMPLATE_TO_USE (using EXTRA_OPTION)
            • Case: Lever

              Parameters set:

              • TEMPLATE_TO_USE
              • ANIM_CODE (using IE_PRESET_ID)
              • UP_CODE (using IE_PRESET_ID, STR_STATE_OFF)
              • DOWN_CODE (using IE_PRESET_ID, STR_STATE_ON)
            • Default case:

              Parameters set:

              • TEMPLATE_TO_USE
              • ANIM_CODE (using IE_PRESET_ID)
              • LEFT_SINGLE_CODE (using IE_PRESET_ID)
          • Default case:

            Condition: Switch(INTERACTION_TYPE)

            • Case: Joystick

              Parameters set:

              • TEMPLATE_TO_USE

              Condition: Switch(JOYSTICK_TYPE)

              • Case: 5_STATES

                Parameters set:

                • JOYSTICK_INTERACTION
                • IM_DRAG_ADDITIONAL_EVENT_HANDLING
                • ON_UP_EVENT (using IE_PRESET_ID, STR_STATE_4)
                • COMP_INIT_CODE (using IE_PRESET_ID, STR_STATE_4)
                • TOOLTIP_ENTRY_0 (using INPUT_EVENT_ID_SOURCE, IE_ID_EXTERNAL_0)
                • TOOLTIP_ENTRY_1 (using INPUT_EVENT_ID_SOURCE, IE_ID_EXTERNAL_1)
                • TOOLTIP_ENTRY_2

                Condition: Switch(JOYSTICK_INTERACTION_TYPE)

                • Case: POSITIONAL

                  Parameters set:

                  • USE_PAD_DRAG_IM_LOCK
                  • COMP_UPDATE_CODE (using IE_PRESET_ID, ON_POS_LEFT, ON_POS_RIGHT, ON_POS_DOWN, ON_POS_UP)
                  • JOYSTICK_X_CODE_LEFT (using IE_PRESET_ID, STR_STATE_4, STR_STATE_0)
                  • JOYSTICK_X_CODE_RIGHT (using IE_PRESET_ID, STR_STATE_4, STR_STATE_1)
                  • JOYSTICK_Y_CODE_DOWN (using IE_PRESET_ID, STR_STATE_4, STR_STATE_2)
                  • JOYSTICK_Y_CODE_UP (using IE_PRESET_ID, STR_STATE_4, STR_STATE_3)
                  • SET_STATE_0 (using INPUT_EVENT_ID_SOURCE, IE_ID_EXTERNAL_0, IE_ID_EXTERNAL_0_BINDING_LEFT, IE_ID_EXTERNAL_1, IE_ID_EXTERNAL_1_BINDING_STANDBY)
                  • SET_STATE_1 (using INPUT_EVENT_ID_SOURCE, IE_ID_EXTERNAL_0, IE_ID_EXTERNAL_0_BINDING_RIGHT, IE_ID_EXTERNAL_1, IE_ID_EXTERNAL_1_BINDING_STANDBY)
                  • SET_STATE_2 (using INPUT_EVENT_ID_SOURCE, IE_ID_EXTERNAL_0, IE_ID_EXTERNAL_0_BINDING_STANDBY, IE_ID_EXTERNAL_1, IE_ID_EXTERNAL_1_BINDING_DOWN)
                  • SET_STATE_3 (using INPUT_EVENT_ID_SOURCE, IE_ID_EXTERNAL_0, IE_ID_EXTERNAL_0_BINDING_STANDBY, IE_ID_EXTERNAL_1, IE_ID_EXTERNAL_1_BINDING_UP)
                  • SET_STATE_4 (using INPUT_EVENT_ID_SOURCE, IE_ID_EXTERNAL_0, IE_ID_EXTERNAL_0_BINDING_STANDBY, IE_ID_EXTERNAL_1, IE_ID_EXTERNAL_1_BINDING_STANDBY)
                  • USE_DEFAULT_ANIMATION
                  • ANIM_CODE_AXIS_X (using INPUT_EVENT_ID_SOURCE, IE_ID_EXTERNAL_0)
                  • ANIM_CODE_AXIS_Y (using INPUT_EVENT_ID_SOURCE, IE_ID_EXTERNAL_1)
                • Default case:

                  Parameters set:

                  • JOYSTICK_X_CODE_LEFT (using IE_PRESET_ID, STR_STATE_0)
                  • JOYSTICK_X_CODE_RIGHT (using IE_PRESET_ID, STR_STATE_1)
                  • JOYSTICK_Y_CODE_DOWN (using IE_PRESET_ID, STR_STATE_2)
                  • JOYSTICK_Y_CODE_UP (using IE_PRESET_ID, STR_STATE_3)
                  • SET_STATE_0 (using INPUT_EVENT_ID_SOURCE, IE_ID_EXTERNAL_0, IE_ID_EXTERNAL_0_BINDING_LEFT)
                  • SET_STATE_1 (using INPUT_EVENT_ID_SOURCE, IE_ID_EXTERNAL_0, IE_ID_EXTERNAL_0_BINDING_RIGHT)
                  • SET_STATE_2 (using INPUT_EVENT_ID_SOURCE, IE_ID_EXTERNAL_1, IE_ID_EXTERNAL_1_BINDING_DOWN)
                  • SET_STATE_3 (using INPUT_EVENT_ID_SOURCE, IE_ID_EXTERNAL_1, IE_ID_EXTERNAL_1_BINDING_UP)
                  • SET_STATE_4 (using INPUT_EVENT_ID_SOURCE, IE_ID_EXTERNAL_0, IE_ID_EXTERNAL_0_BINDING_STANDBY, IE_ID_EXTERNAL_1, IE_ID_EXTERNAL_1_BINDING_STANDBY)
            • Default case:

              Parameters read:

              • MAX_POS

              Parameters set:

              • TEMPLATE_TO_USE
              • CUR_ID
              • ID_POS (using CUR_ID)
              • CODE_POS_#CUR_ID# (using IE_PRESET_ID, ID_POS)
              • STATE#CUR_ID#_TEST (using IE_PRESET_ID, CUR_ID)

              Condition: NotEmpty(ON_STATE_CHANGED_EXTERNAL_CODE)

              • Case: True

                Parameters set:

                • DISABLE_ON_STATE_CHANGED_EXTERNAL_CODE_IN_MR

              Condition: NotEmpty(TT_VALUE_#CUR_ID#)

              • Case: False

                Parameters set:

                • TT_VALUE_#CUR_ID#
                • TT_VALUE_#CUR_ID#_IS_DYNAMIC
        • Case: False

          Parameters set:

          • LEFT_SINGLE_CODE (using IE_PRESET_ID)
          • BINDING_INC_#FIRST_AVAILABLE_INC_BINDING#
          • BINDING_INC_#FIRST_AVAILABLE_INC_BINDING#_PARAM_0

          Condition: Valid(IS_AIRLINER)

          • Case: True

            Parameters set:

            • TEMPLATE_TO_USE
          • Case: False

            Condition: Valid(NO_PUSH_ANIMATION)

            • Case: True

              Parameters set:

              • TEMPLATE_TO_USE
            • Case: False

              Parameters set:

              • TEMPLATE_TO_USE (using EXTRA_OPTION)

          Condition: NotEmpty(EVENT_ID)

          • Case: True

            Parameters set:

            • BINDING_INC_#FIRST_AVAILABLE_INC_BINDING#_EVENT_ID (using EVENT_ID)

          Condition: Switch(EXTRA_OPTION)

          • Case: _Timed

            Parameters set:

            • LEFT_LEAVE_CODE (using IE_PRESET_ID)
            • IS_TIMED

            Condition: Switch(TIMED_TYPE)

            • Case: X_EVENTS

              Parameters set:

              • RELEASE_EVENT
              • LONG_CLICK_CODE_1 (using IE_PRESET_ID)
            • Default case:

              Parameters set:

              • BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#
              • BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0
          • Case: _Held

            Parameters set:

            • BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#
            • BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0
            • ANIM_HANDLED_SEPARATELY
            • LEFT_LEAVE_CODE (using IE_PRESET_ID)
            • IS_TIMED
      • Case: NotEmpty(KNOB_ID)

        Parameters set:

        • CLOCKWISE_CODE (using IE_PRESET_ID)
        • ANTICLOCKWISE_CODE (using IE_PRESET_ID)
        • ANIM_CODE (using IE_PRESET_ID)

        Condition: NotEmpty(TEMPLATE_VARIANT)

        • Case: True

          Parameters set:

          • TEMPLATE_TO_USE (using KNOB_INTERACTION_TYPE, TEMPLATE_VARIANT)
        • Case: False

          Parameters set:

          • TEMPLATE_TO_USE (using KNOB_INTERACTION_TYPE)

        Condition: Switch(TEMPLATE_VARIANT)

        • Case: Switch

          Parameters set:

          • LEFT_SINGLE_CODE (using INPUT_EVENT_ID_SOURCE, IE_ID_EXTERNAL_0, IE_ID_EXTERNAL_0_BINDING_NAME)
        • Case: Push

          Parameters set:

          • LEFT_SINGLE_CODE (using INPUT_EVENT_ID_SOURCE, IE_ID_EXTERNAL_0, IE_ID_EXTERNAL_0_BINDING_NAME)
        • Case: PushPull

          Parameters set:

          • PUSH_CODE (using INPUT_EVENT_ID_SOURCE, IE_ID_EXTERNAL_0, IE_ID_EXTERNAL_0_BINDING_NAME)
          • PULL_CODE (using INPUT_EVENT_ID_SOURCE, IE_ID_EXTERNAL_1, IE_ID_EXTERNAL_1_BINDING_NAME)
        • Case: Push_Timed

          Parameters set:

          • LEFT_SINGLE_CODE (using INPUT_EVENT_ID_SOURCE, IE_ID_EXTERNAL_0, IE_ID_EXTERNAL_0_BINDING_NAME)
          • LEFT_LEAVE_CODE (using INPUT_EVENT_ID_SOURCE, IE_ID_EXTERNAL_0, IE_ID_EXTERNAL_0_BINDING_NAME_RELEASE)
          • TIMER_EVENTS_HANDLED_EXTERNALLY
          • LOCKABLE_EVENT_SECONDARY
          • NO_LOCK_EVENT_SECONDARY
          • MOUSEFLAGS_DRAG_IM
          • LONG_CLICK_TIME
      • Case: NotEmpty(LEVER_ID)

        Parameters set:

        • TEMPLATE_TO_USE
        • CURSOR
        • NO_ARROWS
        • USE_TRAJECTORY_DRAG_MODE
        • DRAG_CODE (using DRAG_VALUE_TO_EVENT_SET, IE_PRESET_ID)
        • POSITIVE_AXIS_CODE (using IE_PRESET_ID)
        • NEGATIVE_AXIS_CODE (using IE_PRESET_ID)
        • ANIM_CODE (using IE_PRESET_ID)

      Condition: Switch(USE_INPUT_EVENT_TEMPLATE)

      • Case: Push

        Parameters set:

        • IS_DIRECT_EVENT
      • Case: Pull

        Parameters set:

        • IS_DIRECT_EVENT
    • Override

      Condition: Switch(TEMPLATE_TO_USE)

      • Case: ASOBO_GT_Push_Button_Airliner

        Parameters set:

        • CREATE_COMPONENT

    Condition: Switch(CREATE_COMPONENT)

  • ASOBO_Interaction_Base_SubTemplate

    Definition from XML
    <Template Name="ASOBO_Interaction_Base_SubTemplate"> <Parameters Type="Default"> <Condition> <Test> <And> <Arg Valid="IS_EMISSIVE"/> <Arg NotEmpty="EMISSIVE_CODE"/> </And> </Test> <True> <EMISSIVE_TEMPLATE_TO_USE>ASOBO_GT_Emissive_Gauge</EMISSIVE_TEMPLATE_TO_USE> </True> </Condition> </Parameters> <Condition NotEmpty="COMP_INIT_CODE"> <UseTemplate Name="ASOBO_GT_Update"> <UPDATE_ONCE>True</UPDATE_ONCE> <UPDATE_CODE>#COMP_INIT_CODE#</UPDATE_CODE> </UseTemplate> </Condition> <Condition NotEmpty="COMP_UPDATE_CODE"> <UseTemplate Name="ASOBO_GT_Update"> <UPDATE_CODE>#COMP_UPDATE_CODE#</UPDATE_CODE> </UseTemplate> </Condition> <Condition Valid="INPUT_EVENT_ID"> <False> <Switch Param="USE_INPUT_EVENT_TEMPLATE"> <Case Value="Default"> <UseInputEvent ID="#USE_INPUT_EVENT_ID#"/> </Case> <Case Value="Push"> <UseTemplate Name="ASOBO_Interaction_Push_Event_Base_Template"/> </Case> <Case Value="Pull"> <UseTemplate Name="ASOBO_Interaction_Pull_Event_Base_Template"/> </Case> <Default> <Condition NotEmpty="USE_INPUT_EVENT_TEMPLATE"> <UseTemplate Name="#USE_INPUT_EVENT_TEMPLATE#"/> </Condition> </Default> </Switch> </False> </Condition> <UseTemplate Name="#TEMPLATE_TO_USE#"> <Condition Valid="IS_INOP"> <TOOLTIP_TITLE/> <TOOLTIP_TITLE_ID/> <TOOLTIPID>TT:COCKPIT.TOOLTIPS.INOP</TOOLTIPID> <DISABLE_MOUSERECT>True</DISABLE_MOUSERECT> <TOOLTIP_DISABLED>True</TOOLTIP_DISABLED> </Condition> </UseTemplate> <Condition NotEmpty="EMISSIVE_TEMPLATE_TO_USE"> <UseTemplate Name="#EMISSIVE_TEMPLATE_TO_USE#"/> </Condition> </Template>

    Parameters initialization:

    • Default

      Condition: Test(IS_EMISSIVE, EMISSIVE_CODE)

      • Case: True

        Parameters set:

        • EMISSIVE_TEMPLATE_TO_USE

    Parameters read:

    • TEMPLATE_TO_USE

    Templates used:

    • #TEMPLATE_TO_USE#
      • (Values for 'TEMPLATE_TO_USE' and templates it may resolve to were not found)

      Condition: Valid(IS_INOP)

      • Case: True

        Parameters set:

        • TOOLTIP_TITLE
        • TOOLTIP_TITLE_ID
        • TOOLTIPID
        • DISABLE_MOUSERECT
        • TOOLTIP_DISABLED

    Condition: NotEmpty(COMP_INIT_CODE)

    • Case: True

      Templates used:

      • ASOBO_GT_Update

        Parameters set:

        • UPDATE_ONCE
        • UPDATE_CODE (using COMP_INIT_CODE)

    Condition: NotEmpty(COMP_UPDATE_CODE)

    • Case: True

      Templates used:

    Condition: Valid(INPUT_EVENT_ID)

    • Case: False

      Condition: Switch(USE_INPUT_EVENT_TEMPLATE)

      • Case: Default

        Parameters read:

        • USE_INPUT_EVENT_ID
      • Case: Push
      • Case: Pull
      • Default case:

        Condition: NotEmpty(USE_INPUT_EVENT_TEMPLATE)

        • Case: True

          Parameters read:

          • USE_INPUT_EVENT_TEMPLATE

          Templates used:

          • #USE_INPUT_EVENT_TEMPLATE#
            • (Values for 'USE_INPUT_EVENT_TEMPLATE' and templates it may resolve to were not found)

    Condition: NotEmpty(EMISSIVE_TEMPLATE_TO_USE)

    • Case: True

      Parameters read:

      • EMISSIVE_TEMPLATE_TO_USE

      Templates used:

  • ASOBO_Interaction_Push_Event_Base_Template

    Definition from XML
    <Template Name="ASOBO_Interaction_Push_Event_Base_Template"> <UseTemplate Name="ASOBO_Interaction_Single_Event_Base_Template"> <EVENT_TYPE>Push</EVENT_TYPE> <Condition Valid="IS_TIMED"> <Switch Param="TIMED_TYPE"> <Case Value="X_EVENTS"> <Condition NotEmpty="ON_PUSH_EVENT_LONG_1"> <ON_EVENT_LONG_1>#ON_PUSH_EVENT_LONG_1#</ON_EVENT_LONG_1> </Condition> <Condition NotEmpty="ON_PUSH_EVENT_LONG_2"> <ON_EVENT_LONG_2>#ON_PUSH_EVENT_LONG_2#</ON_EVENT_LONG_2> </Condition> </Case> <Default> <Condition NotEmpty="ON_PUSH_EVENT_LONG"> <ON_EVENT_LONG>#ON_PUSH_EVENT_LONG#</ON_EVENT_LONG> </Condition> </Default> </Switch> </Condition> <Condition NotEmpty="ON_PUSH_EVENT"> <ON_EVENT>#ON_PUSH_EVENT#</ON_EVENT> </Condition> </UseTemplate> </Template>

    Templates used:

    • ASOBO_Interaction_Single_Event_Base_Template

      Parameters set:

      • EVENT_TYPE

      Condition: Valid(IS_TIMED)

      • Case: True

        Condition: Switch(TIMED_TYPE)

        • Case: X_EVENTS

          Condition: NotEmpty(ON_PUSH_EVENT_LONG_1)

          • Case: True

            Parameters set:

            • ON_EVENT_LONG_1 (using ON_PUSH_EVENT_LONG_1)

          Condition: NotEmpty(ON_PUSH_EVENT_LONG_2)

          • Case: True

            Parameters set:

            • ON_EVENT_LONG_2 (using ON_PUSH_EVENT_LONG_2)
        • Default case:

          Condition: NotEmpty(ON_PUSH_EVENT_LONG)

          • Case: True

            Parameters set:

            • ON_EVENT_LONG (using ON_PUSH_EVENT_LONG)

      Condition: NotEmpty(ON_PUSH_EVENT)

      • Case: True

        Parameters set:

        • ON_EVENT (using ON_PUSH_EVENT)
  • ASOBO_Interaction_Pull_Event_Base_Template

    Definition from XML
    <Template Name="ASOBO_Interaction_Pull_Event_Base_Template"> <UseTemplate Name="ASOBO_Interaction_Single_Event_Base_Template"> <EVENT_TYPE>Pull</EVENT_TYPE> <Condition Valid="IS_TIMED"> <Switch Param="TIMED_TYPE"> <Case Value="X_EVENTS"> <Condition NotEmpty="ON_PULL_EVENT_LONG_1"> <ON_EVENT_LONG_1>#ON_PULL_EVENT_LONG_1#</ON_EVENT_LONG_1> </Condition> <Condition NotEmpty="ON_PULL_EVENT_LONG_2"> <ON_EVENT_LONG_2>#ON_PULL_EVENT_LONG_2#</ON_EVENT_LONG_2> </Condition> </Case> <Default> <Condition NotEmpty="ON_PULL_EVENT_LONG"> <ON_EVENT_LONG>#ON_PULL_EVENT_LONG#</ON_EVENT_LONG> </Condition> </Default> </Switch> </Condition> <Condition NotEmpty="ON_PULL_EVENT"> <ON_EVENT>#ON_PULL_EVENT#</ON_EVENT> </Condition> </UseTemplate> </Template>

    Templates used:

    • ASOBO_Interaction_Single_Event_Base_Template

      Parameters set:

      • EVENT_TYPE

      Condition: Valid(IS_TIMED)

      • Case: True

        Condition: Switch(TIMED_TYPE)

        • Case: X_EVENTS

          Condition: NotEmpty(ON_PULL_EVENT_LONG_1)

          • Case: True

            Parameters set:

            • ON_EVENT_LONG_1 (using ON_PULL_EVENT_LONG_1)

          Condition: NotEmpty(ON_PULL_EVENT_LONG_2)

          • Case: True

            Parameters set:

            • ON_EVENT_LONG_2 (using ON_PULL_EVENT_LONG_2)
        • Default case:

          Condition: NotEmpty(ON_PULL_EVENT_LONG)

          • Case: True

            Parameters set:

            • ON_EVENT_LONG (using ON_PULL_EVENT_LONG)

      Condition: NotEmpty(ON_PULL_EVENT)

      • Case: True

        Parameters set:

        • ON_EVENT (using ON_PULL_EVENT)
  • ASOBO_Interaction_Single_Event_Base_Template

    Definition from XML
    <Template Name="ASOBO_Interaction_Single_Event_Base_Template"> <Parameters Type="Default"> <Switch Param="TIMED_TYPE"> <Case Value="X_EVENTS"> <Loop> <Setup> <Param>CUR_ID</Param> <From>1</From> <Inc>1</Inc> <To>#TIMED_EVENTS_COUNT#</To> </Setup> <Do> <ON_EVENT_LONG_#CUR_ID#/> <LONG_CLICK_TIME_#CUR_ID#>#CUR_ID#</LONG_CLICK_TIME_#CUR_ID#> </Do> </Loop> </Case> <Default> <ON_EVENT_LONG/> <LONG_CLICK_TIME>1</LONG_CLICK_TIME> </Default> </Switch> <ON_EVENT/> <Condition NotEmpty="IE_NAME"> <BTN_ID>#IE_NAME#</BTN_ID> </Condition> <Condition Valid="IS_TIMED"> <RELEASE_EVENT>True</RELEASE_EVENT> </Condition> </Parameters> <Parameters Type="Override"> <UseParametersFn Name="Compute_First_Available_Bindings"/> </Parameters> <Parameters Type="Default"> <Condition Valid="IS_TIMED"> <True> <Switch Param="TIMED_TYPE"> <Case Value="X_EVENTS"> <SET_ARG_COUNT>2</SET_ARG_COUNT> <SET_STATE_EXTERNAL>sp0 l0 0 == if{ (O:_PressTime) 0 &gt; if{ (E:SIMULATION TIME, second) (O:_PressTime) - #LONG_CLICK_TIME_1# &lt; if{ #ON_EVENT# 1 (&gt;O:_ReleaseInteraction) } els{ (E:SIMULATION TIME, second) (O:_PressTime) - #LONG_CLICK_TIME_2# &lt; if{ (O:_Process_Step) 0 == if{ #ON_EVENT_LONG_1# (O:_Process_Step) 1 + (&gt;O:_Process_Step) } } els{ (O:_Process_Step) 1 == if{ #ON_EVENT_LONG_2# (O:_Process_Step) 1 + (&gt;O:_Process_Step) } } } (O:_ReleaseInteraction) if{ 0 (&gt;O:_PressTime) 0 (&gt;O:_PressForDuration) 0 (&gt;O:_ReleaseInteraction) 0 (&gt;O:_Process_Step) } } } l0 1 == if{ (E:SIMULATION TIME, second) (&gt;O:_PressTime) p1 (&gt;O:_PressForDuration) 0 (&gt;O:_ReleaseInteraction) 0 (&gt;O:_Process_Step) } </SET_STATE_EXTERNAL> </Case> <Default> <SET_ARG_COUNT>2</SET_ARG_COUNT> <SET_STATE_EXTERNAL>sp0 l0 0 == if{ (O:_PressTime) 0 &gt; if{ (E:SIMULATION TIME, second) (O:_PressTime) - #LONG_CLICK_TIME# &lt; if{ #ON_EVENT# 0 (&gt;O:_PressTime) } els{ #ON_EVENT_LONG# 0 (&gt;O:_PressTime) } } } l0 1 == if{ (E:SIMULATION TIME, second) (&gt;O:_PressTime) p1 (&gt;O:_PressForDuration) } </SET_STATE_EXTERNAL> </Default> </Switch> </True> <False> <SET_STATE_EXTERNAL>if{ #ON_EVENT# }</SET_STATE_EXTERNAL> </False> </Condition> <DEFAULT_BINDING_STR>#EVENT_TYPE#</DEFAULT_BINDING_STR> <Condition Valid="IS_TIMED"> <ANIM>EXTERNAL</ANIM> <Switch Param="TIMED_TYPE"> <Case Value="X_EVENTS"> <DEFAULT_BINDING_STR_LONG_1>#EVENT_TYPE#_Long_1</DEFAULT_BINDING_STR_LONG_1> <DEFAULT_BINDING_STR_LONG_2>#EVENT_TYPE#_Long_2</DEFAULT_BINDING_STR_LONG_2> </Case> <Default> <DEFAULT_BINDING_STR_LONG>#EVENT_TYPE#_Long</DEFAULT_BINDING_STR_LONG> </Default> </Switch> </Condition> <Switch Param="EVENT_TYPE"> <Case Value="Push"> <Condition Valid="IS_DIRECT_EVENT"> <True> <TT_INTERACTION>PRIMARY_DOWN</TT_INTERACTION> <TT_INTERACTION_LOCKABLE>LOCK</TT_INTERACTION_LOCKABLE> <TT_ICON>Push</TT_ICON> </True> <False> <TT_INTERACTION>PRIMARY_DOWN+SECONDARY_DOWN</TT_INTERACTION> <TT_INTERACTION_LOCKABLE>PRIMARY_DOWN</TT_INTERACTION_LOCKABLE> <ANIM_VAR>_PushAnimVar</ANIM_VAR> <TT_ICON>Push</TT_ICON> </False> </Condition> </Case> <Case Value="Pull"> <Condition Valid="IS_DIRECT_EVENT"> <True> <TT_INTERACTION>PRIMARY_DOWN</TT_INTERACTION> <TT_INTERACTION_LOCKABLE>LOCK</TT_INTERACTION_LOCKABLE> <TT_ICON>Pull</TT_ICON> </True> <False> <TT_INTERACTION>PRIMARY_DOWN+TERTIARY_DOWN</TT_INTERACTION> <TT_INTERACTION_LOCKABLE>SECONDARY_DOWN</TT_INTERACTION_LOCKABLE> <ANIM_VAR>_PullAnimVar</ANIM_VAR> <TT_ICON>Pull</TT_ICON> </False> </Condition> </Case> </Switch> <Condition Valid="IS_DIRECT_EVENT"> <False> <ANIM>HOLD</ANIM> </False> </Condition> <Condition Valid="RELEASE_EVENT"> <DEFAULT_BINDING_STR_RELEASE>Release</DEFAULT_BINDING_STR_RELEASE> </Condition> </Parameters> <UseInputEvent ID="#USE_INPUT_EVENT_ID#"> <BINDING_INC_#FIRST_AVAILABLE_INC_BINDING#>#DEFAULT_BINDING_STR#</BINDING_INC_#FIRST_AVAILABLE_INC_BINDING#> <BINDING_INC_#FIRST_AVAILABLE_INC_BINDING#_PARAM_0>1</BINDING_INC_#FIRST_AVAILABLE_INC_BINDING#_PARAM_0> <Condition Valid="IS_TIMED"> <Switch Param="TIMED_TYPE"> <Case Value="X_EVENTS"> <BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#>#DEFAULT_BINDING_STR_LONG_1#</BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#> <BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#_PARAM_0>1</BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#_PARAM_0> <BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#_PARAM_1>#LONG_CLICK_TIME_1#</BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#_PARAM_1> <BINDING_SET_#SECOND_AVAILABLE_SET_BINDING#>#DEFAULT_BINDING_STR_LONG_2#</BINDING_SET_#SECOND_AVAILABLE_SET_BINDING#> <BINDING_SET_#SECOND_AVAILABLE_SET_BINDING#_PARAM_0>1</BINDING_SET_#SECOND_AVAILABLE_SET_BINDING#_PARAM_0> <BINDING_SET_#SECOND_AVAILABLE_SET_BINDING#_PARAM_1>#LONG_CLICK_TIME_2#</BINDING_SET_#SECOND_AVAILABLE_SET_BINDING#_PARAM_1> </Case> <Default> <BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#>#DEFAULT_BINDING_STR_LONG#</BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#> <BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#_PARAM_0>1</BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#_PARAM_0> <BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#_PARAM_1>#LONG_CLICK_TIME#</BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#_PARAM_1> </Default> </Switch> <Condition Valid="RELEASE_EVENT"> <Switch Param="TIMED_TYPE"> <Case Value="X_EVENTS"> <BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#>#DEFAULT_BINDING_STR_RELEASE#</BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#> <BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0>1 (&gt;O:_ReleaseInteraction)</BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0> <BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0_IS_DYNAMIC>True</BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0_IS_DYNAMIC> <BINDING_DEC_#SECOND_AVAILABLE_DEC_BINDING#>#DEFAULT_BINDING_STR_RELEASE#_Tick</BINDING_DEC_#SECOND_AVAILABLE_DEC_BINDING#> <BINDING_DEC_#SECOND_AVAILABLE_DEC_BINDING#_PARAM_0>0 (&gt;O:_ReleaseInteraction)</BINDING_DEC_#SECOND_AVAILABLE_DEC_BINDING#_PARAM_0> <BINDING_DEC_#SECOND_AVAILABLE_DEC_BINDING#_PARAM_0_IS_DYNAMIC>True</BINDING_DEC_#SECOND_AVAILABLE_DEC_BINDING#_PARAM_0_IS_DYNAMIC> </Case> <Default> <BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#>#DEFAULT_BINDING_STR_RELEASE#</BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#> <BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0>0</BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0> </Default> </Switch> </Condition> </Condition> </UseInputEvent> </Template>

    Parameters initialization:

    • Default

      Parameters set:

      • ON_EVENT

      Condition: Switch(TIMED_TYPE)

      • Case: X_EVENTS

        Parameters read:

        • TIMED_EVENTS_COUNT

        Parameters set:

        • CUR_ID
        • ON_EVENT_LONG_#CUR_ID#
        • LONG_CLICK_TIME_#CUR_ID# (using CUR_ID)
      • Default case:

        Parameters set:

        • ON_EVENT_LONG
        • LONG_CLICK_TIME

      Condition: NotEmpty(IE_NAME)

      • Case: True

        Parameters set:

        • BTN_ID (using IE_NAME)

      Condition: Valid(IS_TIMED)

      • Case: True

        Parameters set:

        • RELEASE_EVENT
    • Override
    • Default

      Parameters set:

      • DEFAULT_BINDING_STR (using EVENT_TYPE)

      Condition: Valid(IS_TIMED)

      • Case: True

        Condition: Switch(TIMED_TYPE)

        • Case: X_EVENTS

          Parameters set:

          • SET_ARG_COUNT
          • SET_STATE_EXTERNAL (using LONG_CLICK_TIME_1, ON_EVENT, LONG_CLICK_TIME_2, ON_EVENT_LONG_1, ON_EVENT_LONG_2)
        • Default case:

          Parameters set:

          • SET_ARG_COUNT
          • SET_STATE_EXTERNAL (using LONG_CLICK_TIME, ON_EVENT, ON_EVENT_LONG)
      • Case: False

        Parameters set:

        • SET_STATE_EXTERNAL (using ON_EVENT)

      Condition: Valid(IS_TIMED)

      • Case: True

        Parameters set:

        • ANIM

        Condition: Switch(TIMED_TYPE)

        • Case: X_EVENTS

          Parameters set:

          • DEFAULT_BINDING_STR_LONG_1 (using EVENT_TYPE)
          • DEFAULT_BINDING_STR_LONG_2 (using EVENT_TYPE)
        • Default case:

          Parameters set:

          • DEFAULT_BINDING_STR_LONG (using EVENT_TYPE)

      Condition: Switch(EVENT_TYPE)

      • Case: Push

        Condition: Valid(IS_DIRECT_EVENT)

        • Case: True

          Parameters set:

          • TT_INTERACTION
          • TT_INTERACTION_LOCKABLE
          • TT_ICON
        • Case: False

          Parameters set:

          • TT_INTERACTION
          • TT_INTERACTION_LOCKABLE
          • ANIM_VAR
          • TT_ICON
      • Case: Pull

        Condition: Valid(IS_DIRECT_EVENT)

        • Case: True

          Parameters set:

          • TT_INTERACTION
          • TT_INTERACTION_LOCKABLE
          • TT_ICON
        • Case: False

          Parameters set:

          • TT_INTERACTION
          • TT_INTERACTION_LOCKABLE
          • ANIM_VAR
          • TT_ICON

      Condition: Valid(IS_DIRECT_EVENT)

      • Case: False

        Parameters set:

        • ANIM

      Condition: Valid(RELEASE_EVENT)

      • Case: True

        Parameters set:

        • DEFAULT_BINDING_STR_RELEASE

    Parameters read:

    • USE_INPUT_EVENT_ID

    Parameters set:

    • BINDING_INC_#FIRST_AVAILABLE_INC_BINDING# (using DEFAULT_BINDING_STR)
    • BINDING_INC_#FIRST_AVAILABLE_INC_BINDING#_PARAM_0

    Condition: Valid(IS_TIMED)

    • Case: True

      Condition: Switch(TIMED_TYPE)

      • Case: X_EVENTS

        Parameters set:

        • BINDING_SET_#FIRST_AVAILABLE_SET_BINDING# (using DEFAULT_BINDING_STR_LONG_1)
        • BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#_PARAM_0
        • BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#_PARAM_1 (using LONG_CLICK_TIME_1)
        • BINDING_SET_#SECOND_AVAILABLE_SET_BINDING# (using DEFAULT_BINDING_STR_LONG_2)
        • BINDING_SET_#SECOND_AVAILABLE_SET_BINDING#_PARAM_0
        • BINDING_SET_#SECOND_AVAILABLE_SET_BINDING#_PARAM_1 (using LONG_CLICK_TIME_2)
      • Default case:

        Parameters set:

        • BINDING_SET_#FIRST_AVAILABLE_SET_BINDING# (using DEFAULT_BINDING_STR_LONG)
        • BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#_PARAM_0
        • BINDING_SET_#FIRST_AVAILABLE_SET_BINDING#_PARAM_1 (using LONG_CLICK_TIME)

      Condition: Valid(RELEASE_EVENT)

      • Case: True

        Condition: Switch(TIMED_TYPE)

        • Case: X_EVENTS

          Parameters set:

          • BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING# (using DEFAULT_BINDING_STR_RELEASE)
          • BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0
          • BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0_IS_DYNAMIC
          • BINDING_DEC_#SECOND_AVAILABLE_DEC_BINDING# (using DEFAULT_BINDING_STR_RELEASE)
          • BINDING_DEC_#SECOND_AVAILABLE_DEC_BINDING#_PARAM_0
          • BINDING_DEC_#SECOND_AVAILABLE_DEC_BINDING#_PARAM_0_IS_DYNAMIC
        • Default case:

          Parameters set:

          • BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING# (using DEFAULT_BINDING_STR_RELEASE)
          • BINDING_DEC_#FIRST_AVAILABLE_DEC_BINDING#_PARAM_0
  • ASOBO_Interaction_Axis_Event_Base_Template

    Definition from XML
    <Template Name="ASOBO_Interaction_Axis_Event_Base_Template"> <Parameters Type="Default"> <Switch Param="AXIS"> <Case Value="X"> <DEFAULT_BINDING_STR_DEC>Left</DEFAULT_BINDING_STR_DEC> <DEFAULT_BINDING_STR_INC>Right</DEFAULT_BINDING_STR_INC> <Condition NotEmpty="LEFT_CODE_EXTERNAL"> <IE_DEC_CODE>#LEFT_CODE_EXTERNAL#</IE_DEC_CODE> </Condition> <Condition NotEmpty="RIGHT_CODE_EXTERNAL"> <IE_INC_CODE>#RIGHT_CODE_EXTERNAL#</IE_INC_CODE> </Condition> <POS_DEC>0</POS_DEC> <POS_STANDBY>1</POS_STANDBY> <POS_INC>2</POS_INC> </Case> <Case Value="Y"> <DEFAULT_BINDING_STR_INC>Up</DEFAULT_BINDING_STR_INC> <DEFAULT_BINDING_STR_DEC>Down</DEFAULT_BINDING_STR_DEC> <Condition NotEmpty="UP_CODE_EXTERNAL"> <IE_INC_CODE>#UP_CODE_EXTERNAL#</IE_INC_CODE> </Condition> <Condition NotEmpty="DOWN_CODE_EXTERNAL"> <IE_DEC_CODE>#DOWN_CODE_EXTERNAL#</IE_DEC_CODE> </Condition> <POS_INC>0</POS_INC> <POS_STANDBY>1</POS_STANDBY> <POS_DEC>2</POS_DEC> </Case> </Switch> <DEFAULT_BINDING_STR_STANDBY>Standby</DEFAULT_BINDING_STR_STANDBY> <TT_ICON>MOVE_AXIS</TT_ICON> <TT_INTERACTION>PRIMARY_DOWN+#AXIS#_AXIS</TT_INTERACTION> <TT_INTERACTION_LOCKABLE>#AXIS#_AXIS</TT_INTERACTION_LOCKABLE> <Condition Valid="IS_DIRECT_EVENT"> <False> <ANIM>EXTERNAL</ANIM> </False> </Condition> </Parameters> <Parameters Type="Default"> <TT_VALUE_INC/> <TT_VALUE_STANDBY/> <TT_VALUE_DEC/> <NUM_STATES>3</NUM_STATES> <BTN_ID>#IE_NAME#</BTN_ID> <GET_STATE_EXTERNAL>(O:#INPUT_EVENT_ID_SOURCE#_#IE_NAME#_Position) sp0</GET_STATE_EXTERNAL> </Parameters> <Parameters Type="Default"> <IE_INC_CODE>#POS_INC# (&gt;O:#INPUT_EVENT_ID_SOURCE#_#IE_NAME#_Position)</IE_INC_CODE> <IE_STANDBY_CODE>#POS_STANDBY# (&gt;O:#INPUT_EVENT_ID_SOURCE#_#IE_NAME#_Position)</IE_STANDBY_CODE> <IE_DEC_CODE>#POS_DEC# (&gt;O:#INPUT_EVENT_ID_SOURCE#_#IE_NAME#_Position)</IE_DEC_CODE> </Parameters> <UseInputEvent ID="#USE_INPUT_EVENT_ID#"> <STR_STATE_#POS_INC#>#DEFAULT_BINDING_STR_INC#</STR_STATE_#POS_INC#> <STR_STATE_#POS_STANDBY#>#DEFAULT_BINDING_STR_STANDBY#</STR_STATE_#POS_STANDBY#> <STR_STATE_#POS_DEC#>#DEFAULT_BINDING_STR_DEC#</STR_STATE_#POS_DEC#> <SET_STATE_#POS_INC#>#IE_INC_CODE#</SET_STATE_#POS_INC#> <SET_STATE_#POS_STANDBY#>#IE_STANDBY_CODE#</SET_STATE_#POS_STANDBY#> <SET_STATE_#POS_DEC#>#IE_DEC_CODE#</SET_STATE_#POS_DEC#> <Condition NotEmpty="TT_VALUE"> <False> <TT_VALUE_#POS_INC#>#TT_VALUE_INC#</TT_VALUE_#POS_INC#> <TT_VALUE_#POS_STANDBY#>#TT_VALUE_STANDBY#</TT_VALUE_#POS_STANDBY#> <TT_VALUE_#POS_DEC#>#TT_VALUE_DEC#</TT_VALUE_#POS_DEC#> </False> </Condition> </UseInputEvent> </Template>

    Parameters initialization:

    • Default

      Parameters set:

      • DEFAULT_BINDING_STR_STANDBY
      • TT_ICON
      • TT_INTERACTION (using AXIS)
      • TT_INTERACTION_LOCKABLE (using AXIS)

      Condition: Switch(AXIS)

      • Case: X

        Parameters set:

        • DEFAULT_BINDING_STR_DEC
        • DEFAULT_BINDING_STR_INC
        • POS_DEC
        • POS_STANDBY
        • POS_INC

        Condition: NotEmpty(LEFT_CODE_EXTERNAL)

        • Case: True

          Parameters set:

          • IE_DEC_CODE (using LEFT_CODE_EXTERNAL)

        Condition: NotEmpty(RIGHT_CODE_EXTERNAL)

        • Case: True

          Parameters set:

          • IE_INC_CODE (using RIGHT_CODE_EXTERNAL)
      • Case: Y

        Parameters set:

        • DEFAULT_BINDING_STR_INC
        • DEFAULT_BINDING_STR_DEC
        • POS_INC
        • POS_STANDBY
        • POS_DEC

        Condition: NotEmpty(UP_CODE_EXTERNAL)

        • Case: True

          Parameters set:

          • IE_INC_CODE (using UP_CODE_EXTERNAL)

        Condition: NotEmpty(DOWN_CODE_EXTERNAL)

        • Case: True

          Parameters set:

          • IE_DEC_CODE (using DOWN_CODE_EXTERNAL)

      Condition: Valid(IS_DIRECT_EVENT)

      • Case: False

        Parameters set:

        • ANIM
    • Default

      Parameters set:

      • TT_VALUE_INC
      • TT_VALUE_STANDBY
      • TT_VALUE_DEC
      • NUM_STATES
      • BTN_ID (using IE_NAME)
      • GET_STATE_EXTERNAL (using INPUT_EVENT_ID_SOURCE, IE_NAME)
    • Default

      Parameters set:

      • IE_INC_CODE (using POS_INC, INPUT_EVENT_ID_SOURCE, IE_NAME)
      • IE_STANDBY_CODE (using POS_STANDBY, INPUT_EVENT_ID_SOURCE, IE_NAME)
      • IE_DEC_CODE (using POS_DEC, INPUT_EVENT_ID_SOURCE, IE_NAME)

    Parameters read:

    • USE_INPUT_EVENT_ID

    Parameters set:

    • STR_STATE_#POS_INC# (using DEFAULT_BINDING_STR_INC)
    • STR_STATE_#POS_STANDBY# (using DEFAULT_BINDING_STR_STANDBY)
    • STR_STATE_#POS_DEC# (using DEFAULT_BINDING_STR_DEC)
    • SET_STATE_#POS_INC# (using IE_INC_CODE)
    • SET_STATE_#POS_STANDBY# (using IE_STANDBY_CODE)
    • SET_STATE_#POS_DEC# (using IE_DEC_CODE)

    Condition: NotEmpty(TT_VALUE)

    • Case: False

      Parameters set:

      • TT_VALUE_#POS_INC# (using TT_VALUE_INC)
      • TT_VALUE_#POS_STANDBY# (using TT_VALUE_STANDBY)
      • TT_VALUE_#POS_DEC# (using TT_VALUE_DEC)

ParametersFn

  • Compute_First_Available_Bindings

    Definition from XML
    <ParametersFn Name="Compute_First_Available_Bindings"> <Parameters Type="Default"> <MAX_INC_BINDING>-1</MAX_INC_BINDING> <MAX_DEC_BINDING>-1</MAX_DEC_BINDING> <MAX_SET_BINDING>-1</MAX_SET_BINDING> </Parameters> <Parameters Type="Override"> <Loop> <Setup> <Param>CUR_ID</Param> <From>0</From> <Inc>1</Inc> <While> <Arg NotEmpty="BINDING_INC_#CUR_ID#"/> </While> </Setup> <Do> <MAX_INC_BINDING>#CUR_ID#</MAX_INC_BINDING> </Do> </Loop> <Loop> <Setup> <Param>CUR_ID</Param> <From>0</From> <Inc>1</Inc> <While> <Arg NotEmpty="BINDING_DEC_#CUR_ID#"/> </While> </Setup> <Do> <MAX_DEC_BINDING>#CUR_ID#</MAX_DEC_BINDING> </Do> </Loop> <Loop> <Setup> <Param>CUR_ID</Param> <From>0</From> <Inc>1</Inc> <While> <Arg NotEmpty="BINDING_SET_#CUR_ID#"/> </While> </Setup> <Do> <MAX_SET_BINDING>#CUR_ID#</MAX_SET_BINDING> </Do> </Loop> </Parameters> <ReturnParameters> <FIRST_AVAILABLE_INC_BINDING Process="Int">#MAX_INC_BINDING# 1 +</FIRST_AVAILABLE_INC_BINDING> <SECOND_AVAILABLE_INC_BINDING Process="Int">#MAX_INC_BINDING# 2 +</SECOND_AVAILABLE_INC_BINDING> <THIRD_AVAILABLE_INC_BINDING Process="Int">#MAX_INC_BINDING# 3 +</THIRD_AVAILABLE_INC_BINDING> <FIRST_AVAILABLE_DEC_BINDING Process="Int">#MAX_DEC_BINDING# 1 +</FIRST_AVAILABLE_DEC_BINDING> <SECOND_AVAILABLE_DEC_BINDING Process="Int">#MAX_DEC_BINDING# 2 +</SECOND_AVAILABLE_DEC_BINDING> <THIRD_AVAILABLE_DEC_BINDING Process="Int">#MAX_DEC_BINDING# 3 +</THIRD_AVAILABLE_DEC_BINDING> <FIRST_AVAILABLE_SET_BINDING Process="Int">#MAX_SET_BINDING# 1 +</FIRST_AVAILABLE_SET_BINDING> <SECOND_AVAILABLE_SET_BINDING Process="Int">#MAX_SET_BINDING# 2 +</SECOND_AVAILABLE_SET_BINDING> <THIRD_AVAILABLE_SET_BINDING Process="Int">#MAX_SET_BINDING# 3 +</THIRD_AVAILABLE_SET_BINDING> </ReturnParameters> </ParametersFn>

    Parameters initialization:

    • Default

      Parameters set:

      • MAX_INC_BINDING
      • MAX_DEC_BINDING
      • MAX_SET_BINDING
    • Override

      Parameters read:

      • CUR_ID

      Parameters set:

      • CUR_ID
      • MAX_INC_BINDING (using CUR_ID)
      • MAX_DEC_BINDING (using CUR_ID)
      • MAX_SET_BINDING (using CUR_ID)

    Return parameters:

    Parameters set:

    • FIRST_AVAILABLE_INC_BINDING (using MAX_INC_BINDING)
    • SECOND_AVAILABLE_INC_BINDING (using MAX_INC_BINDING)
    • THIRD_AVAILABLE_INC_BINDING (using MAX_INC_BINDING)
    • FIRST_AVAILABLE_DEC_BINDING (using MAX_DEC_BINDING)
    • SECOND_AVAILABLE_DEC_BINDING (using MAX_DEC_BINDING)
    • THIRD_AVAILABLE_DEC_BINDING (using MAX_DEC_BINDING)
    • FIRST_AVAILABLE_SET_BINDING (using MAX_SET_BINDING)
    • SECOND_AVAILABLE_SET_BINDING (using MAX_SET_BINDING)
    • THIRD_AVAILABLE_SET_BINDING (using MAX_SET_BINDING)