# Handling_Subtemplates [Go back to index]

Asobo\Common\Subtemplates\Handling_Subtemplates.xml

Source XML
<ModelBehaviors> <!-- Do not call directly unless facing a specific case, prefer using HANDLING_Yoke_Hideable_Template instead --> <Template Name="ASOBO_HANDLING_Yoke_Hider_Template"> <Parameters Type="Default"> <ID>1</ID> <MOUSERECT_DISABLED_WITH_MOTION_CONTROLLERS>True</MOUSERECT_DISABLED_WITH_MOTION_CONTROLLERS> </Parameters> <Parameters Type="Default"> <NODE_ID>HANDLING_YOKE_Hider_#ID#</NODE_ID> </Parameters> <Parameters Type="Default"> <TOOLTIP_TITLE>@TT_Package.YOKE_VISIBILITY_TITLE</TOOLTIP_TITLE> <TOOLTIP_ENTRY_0>HANDLING_Yoke_Hider_#ID#</TOOLTIP_ENTRY_0> </Parameters> <!-- <Parameters Type="Override"> --> <!-- <TOOLTIP_TITLE>#TOOLTIP_YOKE_VISIBILITY_TITLE#</TOOLTIP_TITLE> --> <!-- <TOOLTIP_ENTRY_0>HANDLING_Yoke_Hider_#ID#</TOOLTIP_ENTRY_0> --> <!-- </Parameters> --> <Component ID="#NODE_ID#_Hider" Node="#NODE_ID#"> <UseInputEvent ID="HANDLING"> <HIDER_ID>#ID#</HIDER_ID> </UseInputEvent> <UseTemplate Name="ASOBO_GT_Interaction_LeftSingle_Code"> <LEFT_SINGLE_CODE>(&gt;B:HANDLING_Yoke_Hider_#ID#_Toggle)</LEFT_SINGLE_CODE> </UseTemplate> </Component> </Template> <!-- Yoke that cannot be hidden --> <!-- NODE_ID: Node that should be highlighted during checklist optional: CREATE_TWO_NODES: create both yoke nodes and there respective highlight NODE_ID2: other Node that should be highlighted during checklist (ex: copilot yoke) --> <Template Name="ASOBO_HANDLING_Yoke_SubTemplate"> <DefaultTemplateParameters> <Condition Check="CREATE_TWO_NODES"> <True> <NODE_ID>HANDLING_Yoke_1</NODE_ID> <NODE_ID2>HANDLING_Yoke_2</NODE_ID2> </True> <False> <NODE_ID>HANDLING_Yoke_#ID#</NODE_ID> </False> </Condition> <Condition Valid="AP_CAN_DRIVE_ANIMATION"> <True> <ANIM_SIMVAR_X>YOKE X POSITION WITH AP</ANIM_SIMVAR_X> <ANIM_SIMVAR_X_LINEAR>YOKE X POSITION WITH AP LINEAR</ANIM_SIMVAR_X_LINEAR> <ANIM_SIMVAR_Y>YOKE Y POSITION WITH AP</ANIM_SIMVAR_Y> </True> <False> <ANIM_SIMVAR_X>YOKE X POSITION</ANIM_SIMVAR_X> <ANIM_SIMVAR_X_LINEAR>YOKE X POSITION LINEAR</ANIM_SIMVAR_X_LINEAR> <ANIM_SIMVAR_Y>YOKE Y POSITION</ANIM_SIMVAR_Y> </False> </Condition> <ANIM_NAME_YOKE_X>HANDLING_YOKE_Lever_StickLR</ANIM_NAME_YOKE_X> <ANIM_NAME_YOKE_Y>HANDLING_YOKE_Lever_StickForeAft</ANIM_NAME_YOKE_Y> <PART_ID>HANDLING_Yoke</PART_ID> <ANIM_LENGTH>200</ANIM_LENGTH> <!-- [-100, 100] --> <ANIM_SIMVAR_BIAS>100</ANIM_SIMVAR_BIAS> <!-- [-100, 100] + 100 => [0, 200] --> </DefaultTemplateParameters> <Component ID="#NODE_ID#_#ID#" Node="#NODE_ID#"> <UseTemplate Name="ASOBO_GT_Anim_Code"> <ANIM_NAME>#ANIM_NAME_YOKE_X#</ANIM_NAME> <ANIM_CODE>(E:IS IN VR, Bool) if{ (A:#ANIM_SIMVAR_X_LINEAR#, percent over 100) } els{ (A:#ANIM_SIMVAR_X#, percent over 100) } #ANIM_LENGTH# 0.5 * * #ANIM_SIMVAR_BIAS# +</ANIM_CODE> </UseTemplate> <UseTemplate Name="ASOBO_GT_Anim_Sim"> <ANIM_NAME>#ANIM_NAME_YOKE_Y#</ANIM_NAME> <ANIM_SIMVAR>#ANIM_SIMVAR_Y#</ANIM_SIMVAR> <ANIM_SIMVAR_UNITS>percent</ANIM_SIMVAR_UNITS> </UseTemplate> </Component> <Condition Check="CREATE_TWO_NODES"> <UseTemplate Name="ASOBO_GT_ComponentWith_PART_ID"> <NODE_ID>#NODE_ID2#</NODE_ID> </UseTemplate> </Condition> </Template> <Template Name="ASOBO_HANDLING_Yoke_Hideable_SubTemplate"> <DefaultTemplateParameters> <NODE_ID>HANDLING_YOKE_Hideable_#ID#</NODE_ID> <YOKE_HIDER_NODE_ID>HANDLING_YOKE_Hider_#ID#</YOKE_HIDER_NODE_ID> <YOKE_NODE_ID>HANDLING_Yoke_#ID#</YOKE_NODE_ID> <TOOLTIPID>TT:COCKPIT.TOOLTIPS.YOKE_VISIBILITY</TOOLTIPID> </DefaultTemplateParameters> <Component ID="#NODE_ID#_VisibilityNode" Node="#NODE_ID#"> <UseTemplate Name="ASOBO_GT_Visibility_Code"> <VISIBILITY_CODE>(L:XMLVAR_YokeHidden#ID#) !</VISIBILITY_CODE> </UseTemplate> </Component> <Condition Check="ONLY_DECORATIVE"> <False> <UseTemplate Name="ASOBO_HANDLING_Yoke_Hider_Template"> <NODE_ID>#YOKE_HIDER_NODE_ID#</NODE_ID> </UseTemplate> <Condition Check="ONLY_HIDEABLE"> <True> <UseTemplate Name="ASOBO_GT_ComponentWith_PART_ID"> <NODE_ID>#YOKE_NODE_ID#</NODE_ID> <PART_ID>HANDLING_YOKE</PART_ID> </UseTemplate> </True> <False> <UseTemplate Name="ASOBO_HANDLING_Yoke_Template"> <NODE_ID>#YOKE_NODE_ID#</NODE_ID> </UseTemplate> </False> </Condition> </False> </Condition> </Template> <Template Name="ASOBO_HANDLING_Joystick_YawPitch_SubTemplate"> <Parameters Type="Default"> <NODE_ID>HANDLING_Joystick_YawPitch_#ID#</NODE_ID> <ANIM_NAME_L_R>HANDLING_Joystick_YawPitch_L_R_#ID#</ANIM_NAME_L_R> <ANIM_NAME_DN_UP>HANDLING_Joystick_YawPitch_DN_UP_#ID#</ANIM_NAME_DN_UP> <INPUT_EVENT_ID_SOURCE>HANDLING</INPUT_EVENT_ID_SOURCE> </Parameters> <Parameters Type="Default"> <VAR_NAME>#INPUT_EVENT_ID_SOURCE#_Joystick_#ID#_Interacting</VAR_NAME> <TT_DESCRIPTION_ID_PAN_X>@TT_Package.YOKE_PUSH_NOSE_ACTION</TT_DESCRIPTION_ID_PAN_X> <TT_DESCRIPTION_ID_PAN_Y>@TT_Package.YOKE_PUSH_NOSE_ACTION</TT_DESCRIPTION_ID_PAN_Y> <TT_DESCRIPTION_ID_DISENGAGE>@TT_Package.GT_STATE_DISENGAGE</TT_DESCRIPTION_ID_DISENGAGE> <TOOLTIP_TITLE_EXTERNAL>@TT_Package.YOKE_PUSH_NOSE_TITLE</TOOLTIP_TITLE_EXTERNAL> </Parameters> <Parameters Type="Override"> <KNOB_X_ID>Yaw_Pitch_X</KNOB_X_ID> <KNOB_Y_ID>Yaw_Pitch_Y</KNOB_Y_ID> <BTN_DISENGAGE_ID>Yaw_Pitch_AP_Disengage</BTN_DISENGAGE_ID> </Parameters> <Parameters Type="Override"> <JOYSTICK_X_CODE_LEFT>1 (&gt;B:#INPUT_EVENT_ID_SOURCE#_#KNOB_X_ID#_Left)</JOYSTICK_X_CODE_LEFT> <JOYSTICK_X_CODE_RIGHT>1 (&gt;B:#INPUT_EVENT_ID_SOURCE#_#KNOB_X_ID#_Right)</JOYSTICK_X_CODE_RIGHT> <JOYSTICK_Y_CODE_DOWN>1 (&gt;B:#INPUT_EVENT_ID_SOURCE#_#KNOB_Y_ID#_Up)</JOYSTICK_Y_CODE_DOWN> <JOYSTICK_Y_CODE_UP>1 (&gt;B:#INPUT_EVENT_ID_SOURCE#_#KNOB_Y_ID#_Down)</JOYSTICK_Y_CODE_UP> <LEFT_SINGLE_CODE_DEFAULT_IM>1 (&gt;B:#INPUT_EVENT_ID_SOURCE#_#BTN_DISENGAGE_ID#_Set)</LEFT_SINGLE_CODE_DEFAULT_IM> <LEFT_RELEASE_CODE_DEFAULT_IM>0 (&gt;B:#INPUT_EVENT_ID_SOURCE#_#BTN_DISENGAGE_ID#_Set)</LEFT_RELEASE_CODE_DEFAULT_IM> <LEFT_SINGLE_CODE_DRAG_IM>1 (&gt;B:#INPUT_EVENT_ID_SOURCE#_#BTN_DISENGAGE_ID#_Set)</LEFT_SINGLE_CODE_DRAG_IM> <LEFT_RELEASE_CODE_DRAG_IM>0 (&gt;B:#INPUT_EVENT_ID_SOURCE#_#BTN_DISENGAGE_ID#_Set)</LEFT_RELEASE_CODE_DRAG_IM> </Parameters> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <Parameters Type="Override"> <TOOLTIP_TITLE>#TOOLTIP_TITLE_EXTERNAL#</TOOLTIP_TITLE> <TOOLTIP_ENTRY_0>#INPUT_EVENT_ID_SOURCE#_#KNOB_X_ID#</TOOLTIP_ENTRY_0> <TOOLTIP_ENTRY_1>#INPUT_EVENT_ID_SOURCE#_#KNOB_Y_ID#</TOOLTIP_ENTRY_1> </Parameters> <UseInputEvent ID="HANDLING"> <BTN_ID>#BTN_DISENGAGE_ID#</BTN_ID> <TT_DESCRIPTION_ID>#TT_DESCRIPTION_ID_DISENGAGE#</TT_DESCRIPTION_ID> <BINDING_INC_0>Push</BINDING_INC_0> <BINDING_INC_0_PARAM_0>1</BINDING_INC_0_PARAM_0> <BINDING_DEC_0>Release</BINDING_DEC_0> <BINDING_DEC_0_PARAM_0>0</BINDING_DEC_0_PARAM_0> <SET_STATE_EXTERNAL>(A:AUTOPILOT DISENGAGED, Bool) != if{ p0 (&gt;K:AUTOPILOT_DISENGAGE_SET) }</SET_STATE_EXTERNAL> <ANIM_EXTERNAL>True</ANIM_EXTERNAL> </UseInputEvent> <UseInputEvent ID="HANDLING"> <KNOB_ID>#KNOB_X_ID#</KNOB_ID> <TT_DESCRIPTION_ID>#TT_DESCRIPTION_ID_PAN_X#</TT_DESCRIPTION_ID> <TT_ICON>MOVE_AXIS</TT_ICON> <SET_STATE_EXTERNAL>0 &gt; if{ (&gt;K:RUDDER_TRIM_RIGHT) } els{ (&gt;K:RUDDER_TRIM_LEFT) }</SET_STATE_EXTERNAL> <BINDING_INC_0>Right</BINDING_INC_0> <BINDING_INC_0_PARAM_0>1</BINDING_INC_0_PARAM_0> <BINDING_DEC_0>Left</BINDING_DEC_0> <BINDING_DEC_0_PARAM_0>1</BINDING_DEC_0_PARAM_0> <NO_ANIM_VAR_UPDATE>True</NO_ANIM_VAR_UPDATE> <GET_TT_VALUE_STATE>(A:RUDDER TRIM, degrees)</GET_TT_VALUE_STATE> <FORMAT_VALUE>'%.1f°' @sprintf</FORMAT_VALUE> </UseInputEvent> <UseInputEvent ID="HANDLING"> <KNOB_ID>#KNOB_Y_ID#</KNOB_ID> <TT_DESCRIPTION_ID>#TT_DESCRIPTION_ID_PAN_X#</TT_DESCRIPTION_ID> <TT_ICON>MOVE_AXIS</TT_ICON> <TT_INTERACTION>PRIMARY_DOWN+Y_AXIS</TT_INTERACTION> <TT_INTERACTION_LOCKABLE>Y_AXIS</TT_INTERACTION_LOCKABLE> <SET_STATE_EXTERNAL>0 &gt; if{ (&gt;K:ELEV_TRIM_UP) } els{ (&gt;K:ELEV_TRIM_DN) } (A:AUTOPILOT DISENGAGED, Bool) ! if{ 1 (&gt;K:AUTOPILOT_DISENGAGE_SET) }</SET_STATE_EXTERNAL> <BINDING_INC_0>Up</BINDING_INC_0> <BINDING_INC_0_PARAM_0>1</BINDING_INC_0_PARAM_0> <BINDING_DEC_0>Down</BINDING_DEC_0> <BINDING_DEC_0_PARAM_0>1</BINDING_DEC_0_PARAM_0> <NO_ANIM_VAR_UPDATE>True</NO_ANIM_VAR_UPDATE> <GET_TT_VALUE_STATE>(A:ELEVATOR TRIM POSITION, degrees)</GET_TT_VALUE_STATE> <FORMAT_VALUE>'%.1f°' @sprintf</FORMAT_VALUE> </UseInputEvent> <UseTemplate Name="ASOBO_GT_Joystick_Interaction_Knob"> <!-- Spacial case for DRAG_IM to condense inputs to only one node --> <JOYSTICK_INTERACTION>PAN_ONLY</JOYSTICK_INTERACTION> <UPDATE_FREQUENCY>20</UPDATE_FREQUENCY> <COUNT>36</COUNT> <THRESHOLD_X_INPUT>0.1</THRESHOLD_X_INPUT> <THRESHOLD_X_MOUSE>0.01</THRESHOLD_X_MOUSE> <THRESHOLD_Y_INPUT>0.1</THRESHOLD_Y_INPUT> <THRESHOLD_Y_MOUSE>0.01</THRESHOLD_Y_MOUSE> <TIMEOUT_DELAY_RESET_AXIS>0.25</TIMEOUT_DELAY_RESET_AXIS> <IM_DRAG_ADDITIONAL_EVENT_HANDLING/> <WWISE_JOYSTICK_EVENT_L>handling_yawpitch_joystick</WWISE_JOYSTICK_EVENT_L> <WWISE_JOYSTICK_EVENT_R>handling_yawpitch_joystick</WWISE_JOYSTICK_EVENT_R > <WWISE_JOYSTICK_EVENT_UP>handling_yawpitch_joystick</WWISE_JOYSTICK_EVENT_UP> <WWISE_JOYSTICK_EVENT_DN>handling_yawpitch_joystick</WWISE_JOYSTICK_EVENT_DN> </UseTemplate> </Component> </Template> <Template Name="ASOBO_HANDLING_Timer_SubTemplate"> <Parameters Type="Default"> <NODE_ID>HANDLING_#INTERACTION_TYPE#_Timer</NODE_ID> <ANIM_NAME>HANDLING_#INTERACTION_TYPE#_Timer</ANIM_NAME> <WWISE_EVENT_1>yoke_push_button_on</WWISE_EVENT_1> <WWISE_EVENT_2>yoke_push_button_off</WWISE_EVENT_2> <TOOLTIP_TITLE>@TT_Package.YOKE_PUSH_TIMER_TITLE</TOOLTIP_TITLE> <TT_DESCRIPTION_ID>@TT_Package.YOKE_PUSH_TIMER_ACTION</TT_DESCRIPTION_ID> </Parameters> <Parameters Type="Override"> <BTN_ID>Timer_Button</BTN_ID> </Parameters> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <UseInputEvent ID="HANDLING"> <SET_STATE_EXTERNAL>if{ (&gt;H:AS1000_PFD_1_TIMER) }</SET_STATE_EXTERNAL> <BINDING_INC_0>Push</BINDING_INC_0> <BINDING_INC_0_PARAM_0>1</BINDING_INC_0_PARAM_0> </UseInputEvent> <UseTemplate Name="ASOBO_GT_Push_Button"> <TOOLTIP_ENTRY_0>HANDLING_#BTN_ID#</TOOLTIP_ENTRY_0> <LEFT_SINGLE_CODE>(&gt;B:HANDLING_#BTN_ID#_Push)</LEFT_SINGLE_CODE> </UseTemplate> </Component> </Template> <Template Name="ASOBO_HANDLING_StormClear_SubTemplate"> <Parameters Type="Default"> <NODE_ID>HANDLING_#INTERACTION_TYPE#_StormClear</NODE_ID> <ANIM_NAME>HANDLING_#INTERACTION_TYPE#_StormClear</ANIM_NAME> <WWISE_EVENT_1>yoke_push_button_on</WWISE_EVENT_1> <WWISE_EVENT_2>yoke_push_button_off</WWISE_EVENT_2> </Parameters> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <UseTemplate Name="ASOBO_GT_Push_Button"> <LEFT_SINGLE_CODE/> <TOOLTIPID>TT:COCKPIT.TOOLTIPS.INOP</TOOLTIPID> </UseTemplate> </Component> </Template> <Template Name="ASOBO_HANDLING_CWS_SubTemplate"> <Parameters Type="Default"> <NODE_ID>HANDLING_#INTERACTION_TYPE#_CWS</NODE_ID> <ANIM_NAME>HANDLING_#INTERACTION_TYPE#_CWS</ANIM_NAME> <WWISE_EVENT_1>yoke_push_button_on</WWISE_EVENT_1> <WWISE_EVENT_2>yoke_push_button_off</WWISE_EVENT_2> </Parameters> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <UseTemplate Name="ASOBO_GT_Push_Button"> <LEFT_SINGLE_CODE/> <TOOLTIPID>TT:COCKPIT.TOOLTIPS.INOP</TOOLTIPID> </UseTemplate> </Component> </Template> <Template Name="ASOBO_HANDLING_Ident_SubTemplate"> <Parameters Type="Default"> <NODE_ID>HANDLING_#INTERACTION_TYPE#_Ident</NODE_ID> <ANIM_NAME>HANDLING_#INTERACTION_TYPE#_Ident</ANIM_NAME> <WWISE_EVENT_1>yoke_push_button_on</WWISE_EVENT_1> <WWISE_EVENT_2>yoke_push_button_off</WWISE_EVENT_2> <TOOLTIP_TITLE>@TT_Package.YOKE_PUSH_IDENT_TITLE</TOOLTIP_TITLE> <TT_DESCRIPTION_ID>@TT_Package.YOKE_PUSH_IDENT_ACTION</TT_DESCRIPTION_ID> </Parameters> <Parameters Type="Override"> <BTN_ID>Radio_NAV#ID#_Swap</BTN_ID> </Parameters> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <UseInputEvent ID="HANDLING"> <SET_STATE_EXTERNAL>if{ (&gt;K:RADIO_VOR#ID#_IDENT_TOGGLE) }</SET_STATE_EXTERNAL> <BINDING_INC_0>Push</BINDING_INC_0> <BINDING_INC_0_PARAM_0>1</BINDING_INC_0_PARAM_0> </UseInputEvent> <UseTemplate Name="ASOBO_GT_Push_Button_Held"> <TOOLTIP_ENTRY_0>HANDLING_#BTN_ID#</TOOLTIP_ENTRY_0> <LEFT_SINGLE_CODE>(&gt;B:HANDLING_#BTN_ID#_Push)</LEFT_SINGLE_CODE> </UseTemplate> </Component> </Template> <Template Name="ASOBO_HANDLING_Swap_SubTemplate"> <Parameters Type="Default"> <NODE_ID>HANDLING_#INTERACTION_TYPE#_Swap</NODE_ID> <ANIM_NAME>HANDLING_#INTERACTION_TYPE#_Swap</ANIM_NAME> <WWISE_EVENT_1>yoke_push_button_on</WWISE_EVENT_1> <WWISE_EVENT_2>yoke_push_button_off</WWISE_EVENT_2> <TOOLTIP_TITLE>@TT_Package.AIRLINER_COM_PUSH_SWAP_TITLE</TOOLTIP_TITLE> <TT_DESCRIPTION_ID>@TT_Package.AIRLINER_COM_PUSH_SWAP_ACTION</TT_DESCRIPTION_ID> </Parameters> <Parameters Type="Override"> <BTN_ID>Radio_COM#ID#_Swap</BTN_ID> </Parameters> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <UseInputEvent ID="HANDLING"> <SET_STATE_EXTERNAL>if{ (&gt;K:COM#ID#_RADIO_SWAP) }</SET_STATE_EXTERNAL> <BINDING_INC_0>Push</BINDING_INC_0> <BINDING_INC_0_PARAM_0>1</BINDING_INC_0_PARAM_0> </UseInputEvent> <UseTemplate Name="ASOBO_GT_Push_Button_Held"> <TOOLTIP_ENTRY_0>HANDLING_#BTN_ID#</TOOLTIP_ENTRY_0> <LEFT_SINGLE_CODE>(&gt;B:HANDLING_#BTN_ID#_Push)</LEFT_SINGLE_CODE> </UseTemplate> </Component> </Template> <Template Name="ASOBO_HANDLING_AntiSkid_SubTemplate"> <Parameters Type="Default"> <NODE_ID>HANDLING_#INTERACTION_TYPE#_AntiSkid</NODE_ID> <ANIM_NAME>HANDLING_#INTERACTION_TYPE#_AntiSkid</ANIM_NAME> <WWISE_EVENT_1>antiskid_switch_on</WWISE_EVENT_1> <WWISE_EVENT_2>antiskid_switch_off</WWISE_EVENT_2> <ON_ANTI_SKID_STATE_CHANGED>(A:ANTISKID BRAKES ACTIVE, Bool) ! if{ 0 (&gt;L:HANDLING_Autobrakes_Position) }</ON_ANTI_SKID_STATE_CHANGED> <TOOLTIP_TITLE>@TT_Package.LANDING_GEAR_SWITCH_AUTOBKR_ASKID_TITLE</TOOLTIP_TITLE> <TT_DESCRIPTION_ID>@TT_Package.LANDING_GEAR_SWITCH_AUTOBKR_ASKID_ACTION</TT_DESCRIPTION_ID> </Parameters> <Parameters Type="Override"> <BTN_ID>Anti_Skid</BTN_ID> </Parameters> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <UseInputEvent ID="HANDLING"> <SET_STATE_EXTERNAL>p0 (A:ANTISKID BRAKES ACTIVE, Bool) != if{ (&gt;K:ANTISKID_BRAKES_TOGGLE) } #ON_ANTI_SKID_STATE_CHANGED#</SET_STATE_EXTERNAL> <GET_STATE_EXTERNAL>(A:ANTISKID BRAKES ACTIVE, Bool) sp0</GET_STATE_EXTERNAL> <SIM_STATE_IS_ON_EXTERNAL>l0</SIM_STATE_IS_ON_EXTERNAL> </UseInputEvent> <UseTemplate Name="ASOBO_GT_Switch_Code"> <TOOLTIP_ENTRY_0>HANDLING_#BTN_ID#</TOOLTIP_ENTRY_0> <LEFT_SINGLE_CODE>(&gt;B:HANDLING_#BTN_ID#_Toggle)</LEFT_SINGLE_CODE> <ANIM_CODE>(B:HANDLING_#BTN_ID#, Bool) 100 *</ANIM_CODE> </UseTemplate> </Component> </Template> <Template Name="ASOBO_HANDLING_GLimiter_SubTemplate"> <Parameters Type="Default"> <NODE_ID>HANDLING_#INTERACTION_TYPE#_GLimiter</NODE_ID> <ANIM_NAME>HANDLING_#INTERACTION_TYPE#_GLimiter</ANIM_NAME> <TOOLTIP_TITLE>@TT_Package.GLIMITER_SWITCH_TITLE</TOOLTIP_TITLE> <TT_DESCRIPTION_ID>@TT_Package.GLIMITER_SWITCH_ACTION</TT_DESCRIPTION_ID> <OVERRIDE_CONDITIONS>p0 1 ==</OVERRIDE_CONDITIONS> <ADDITIONAL_EFFECTS/> </Parameters> <Parameters Type="Override"> <Switch Param="TYPE"> <Case Value="AS04F"> <OVERRIDE_CONDITIONS>#OVERRIDE_CONDITIONS# (A:YOKE Y POSITION, Percent over 100) 0.8 &gt; and</OVERRIDE_CONDITIONS> <ADDITIONAL_EFFECTS>p0 (&gt;K:AUTOPILOT_DISENGAGE_SET) 0 (&gt;K:NOSE_WHEEL_STEERING_LIMIT_SET)</ADDITIONAL_EFFECTS> </Case> </Switch> </Parameters> <Parameters Type="Override"> <BTN_ID>GLimiter</BTN_ID> <Switch Param="TYPE"> <Case Value="AS04F"> <SET_STATE_EXTERNAL>#OVERRIDE_CONDITIONS# if{ 2 } els{ 1 } (&gt;K:G_LIMITER_SET) #ADDITIONAL_EFFECTS#</SET_STATE_EXTERNAL> <GET_STATE_EXTERNAL>(A:G LIMITER SETTING, Enum) 2 == sp0</GET_STATE_EXTERNAL> </Case> </Switch> </Parameters> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <Switch Param="TYPE"> <Case Value="AS04F"> <UseTemplate Name="ASOBO_GT_Update"> <FREQUENCY>2</FREQUENCY> <UPDATE_CODE> (B:HANDLING_#BTN_ID#) (A:YOKE Y POSITION, Percent over 100) abs 0.1 &lt; and if{ 1 (&gt;K:G_LIMITER_SET) 0 (&gt;K:AUTOPILOT_DISENGAGE_SET) 0 (&gt;B:HANDLING_#BTN_ID#) } </UPDATE_CODE> </UseTemplate> </Case> </Switch> <UseTemplate Name="ASOBO_HANDLING_Base_Template"> <IE_NAME>#BTN_ID#</IE_NAME> <CREATE_COMPONENT>False</CREATE_COMPONENT> <SIM_STATE_IS_ON_EXTERNAL>l0</SIM_STATE_IS_ON_EXTERNAL> <BINDING_SET_0>Toggle_KeyEvent</BINDING_SET_0> <BINDING_SET_0_PARAM_0>(B:HANDLING_#BTN_ID#) !</BINDING_SET_0_PARAM_0> <BINDING_SET_0_PARAM_0_IS_DYNAMIC>True</BINDING_SET_0_PARAM_0_IS_DYNAMIC> <BINDING_SET_0_EVENT_ID>G_LIMITER_TOGGLE</BINDING_SET_0_EVENT_ID> <BINDING_SET_1>KeySet</BINDING_SET_1> <BINDING_SET_1_PARAM_0>p0 0 !=</BINDING_SET_1_PARAM_0> <BINDING_SET_1_PARAM_0_IS_DYNAMIC>True</BINDING_SET_1_PARAM_0_IS_DYNAMIC> <BINDING_SET_1_EVENT_ID>G_LIMITER_SET</BINDING_SET_1_EVENT_ID> <BINDING_SET_2>On_KeyEvent</BINDING_SET_2> <BINDING_SET_2_PARAM_0>1</BINDING_SET_2_PARAM_0> <BINDING_SET_2_EVENT_ID>G_LIMITER_ON</BINDING_SET_2_EVENT_ID> <BINDING_SET_3>Off_KeyEvent</BINDING_SET_3> <BINDING_SET_3_PARAM_0>0</BINDING_SET_3_PARAM_0> <BINDING_SET_3_EVENT_ID>G_LIMITER_OFF</BINDING_SET_3_EVENT_ID> <SIMVAR_TO_WATCH_0>G LIMITER SETTING</SIMVAR_TO_WATCH_0> </UseTemplate> </Component> </Template> <Template Name="ASOBO_HANDLING_Steering_Tiller_SubTemplate"> <DefaultTemplateParameters> <NODE_ID>HANDLING_Steering_Tiller_#ID#</NODE_ID> <ANIM_NAME>HANDLING_Steering_Tiller_#ID#</ANIM_NAME> </DefaultTemplateParameters> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <UseTemplate Name="ASOBO_GT_Anim_Code"> <ANIM_CODE> (A:SIM ON GROUND, Bool) if{ (A:GEAR STEER ANGLE PCT, Percent) 100 + } els{ (A:STEER INPUT CONTROL, Percent) 100 + } </ANIM_CODE> <ANIM_LENGTH>200</ANIM_LENGTH> </UseTemplate> </Component> </Template> <Template Name="ASOBO_HANDLING_RudderPedals_SubTemplate"> <DefaultTemplateParameters> <ANIM_NAME>HANDLING_RudderPedals</ANIM_NAME> <ANIM_LAG>400</ANIM_LAG> <Switch Param="RUDDERPEDALS_TYPE"> <Case Value="SPLITTED"> <!-- Separate rudders L & R for pilot & copilot --> <Condition Valid="DIFFERENTIATE_BRAKE_ANIM_L_R"> <True> <NODE_ID>HANDLING_RudderPedals_Left_1_1</NODE_ID> <!-- Any valid node --> <PREFIX_LEFT_PEDALS>HANDLING_RudderPedals_Left_</PREFIX_LEFT_PEDALS> <SUFFIX_LEFT_PEDALS>_1</SUFFIX_LEFT_PEDALS> <PREFIX_RIGHT_PEDALS>HANDLING_RudderPedals_Right_</PREFIX_RIGHT_PEDALS> <SUFFIX_RIGHT_PEDALS>_2</SUFFIX_RIGHT_PEDALS> </True> <False> <NODE_ID>HANDLING_RudderPedals_#ID#_1</NODE_ID> <PART_ID>HANDLING_RudderPedals</PART_ID> <NODE_ID2>HANDLING_RudderPedals_#ID#_2</NODE_ID2> </False> </Condition> </Case> <Case Value="MERGED"> <!-- Each rudder pedal node is shared for pilot & copilot (L & R) --> <NODE_ID>HANDLING_RudderPedals_1</NODE_ID> <!-- any valid node --> <NODE_ID_L_BRAKE>HANDLING_RudderPedals_1_Brake</NODE_ID_L_BRAKE> <NODE_ID_L_RUDDER>HANDLING_RudderPedals_1_Rudder</NODE_ID_L_RUDDER> <NODE_ID_R_BRAKE>HANDLING_RudderPedals_2_Brake</NODE_ID_R_BRAKE> <NODE_ID_R_RUDDER>HANDLING_RudderPedals_2_Rudder</NODE_ID_R_RUDDER> <PART_ID_BRAKES>HANDLING_RudderPedals_Brake</PART_ID_BRAKES> <PART_ID_RUDDERS>HANDLING_RudderPedals_Rudder</PART_ID_RUDDERS> <USE_BRAKE>True</USE_BRAKE> </Case> <Case Value="MIXED"> <!-- Each rudder pedal root node is shared for pilot & copilot (L & R) but brakes are splitted --> <NODE_ID>HANDLING_RudderPedals_1</NODE_ID> <!-- any valid node --> <NODE_ID_L_BRAKE_1>HANDLING_RudderPedals_1_1_Brake</NODE_ID_L_BRAKE_1> <NODE_ID_L_BRAKE_2>HANDLING_RudderPedals_2_1_Brake</NODE_ID_L_BRAKE_2> <NODE_ID_R_BRAKE_1>HANDLING_RudderPedals_1_2_Brake</NODE_ID_R_BRAKE_1> <NODE_ID_R_BRAKE_2>HANDLING_RudderPedals_2_2_Brake</NODE_ID_R_BRAKE_2> <NODE_ID_L_RUDDER>HANDLING_RudderPedals_1</NODE_ID_L_RUDDER> <NODE_ID_R_RUDDER>HANDLING_RudderPedals_2</NODE_ID_R_RUDDER> <PART_ID_BRAKES>HANDLING_RudderPedals</PART_ID_BRAKES> <PART_ID_RUDDERS>HANDLING_RudderPedals</PART_ID_RUDDERS> <DIFFERENTIATE_BRAKE_ANIM_L_R>True</DIFFERENTIATE_BRAKE_ANIM_L_R> <USE_BRAKE>True</USE_BRAKE> </Case> <Default> <PART_ID>HANDLING_RudderPedals</PART_ID> <NODE_ID>HANDLING_RudderPedals_#ID#</NODE_ID> </Default> </Switch> </DefaultTemplateParameters> <OverrideTemplateParameters> <Switch Param="RUDDERPEDALS_TYPE"> <Case Value="SPLITTED"> <Condition Valid="DIFFERENTIATE_BRAKE_ANIM_L_R"> <True> <PART_ID>HANDLING_RudderPedals</PART_ID> <EXIT_TEMPLATE>ASOBO_GT_Highlight_Template</EXIT_TEMPLATE> <MAX_ID>2</MAX_ID> <PARAM1>HIGHLIGHT_NODE_ID</PARAM1> </True> </Condition> </Case> </Switch> </OverrideTemplateParameters> <Switch Param="RUDDERPEDALS_TYPE"> <Case Value="SPLITTED"> <Condition Valid="DIFFERENTIATE_BRAKE_ANIM_L_R"> <True> <Component ID="HANDLING_RudderPedals_Highlights"> <!-- highlights all four pedals --> <UseTemplate Name="ASOBO_GT_Helper_Recursive_ID"> <ID>1</ID> <!-- VV Recursive parameters VV --> <PARAM1_PREFIX>#PREFIX_LEFT_PEDALS#</PARAM1_PREFIX> <PARAM1_SUFFIX>#SUFFIX_LEFT_PEDALS#</PARAM1_SUFFIX> </UseTemplate> <UseTemplate Name="ASOBO_GT_Helper_Recursive_ID"> <ID>2</ID> <!-- VV Recursive parameters VV --> <PARAM1_PREFIX>#PREFIX_RIGHT_PEDALS#</PARAM1_PREFIX> <PARAM1_SUFFIX>#SUFFIX_RIGHT_PEDALS#</PARAM1_SUFFIX> </UseTemplate> </Component> </True> <False> <UseTemplate Name="ASOBO_GT_ComponentWith_PART_ID"> <NODE_ID>#NODE_ID2#</NODE_ID> <ID>2</ID> </UseTemplate> </False> </Condition> </Case> <Case Value="MERGED"> <!-- Each rudder pedal node is shared for pilot & copilot (L & R) --> <Condition Valid="NO_BRAKES_HIGHLIGHT"> <False> <UseTemplate Name="ASOBO_GT_Highlight_Template"> <HIGHLIGHT_NODE_ID>#NODE_ID_L_BRAKE#</HIGHLIGHT_NODE_ID> <PART_ID>#PART_ID_BRAKES#</PART_ID> </UseTemplate> <UseTemplate Name="ASOBO_GT_Highlight_Template"> <HIGHLIGHT_NODE_ID>#NODE_ID_R_BRAKE#</HIGHLIGHT_NODE_ID> <PART_ID>#PART_ID_BRAKES#</PART_ID> </UseTemplate> </False> </Condition> <UseTemplate Name="ASOBO_GT_Highlight_Template"> <HIGHLIGHT_NODE_ID>#NODE_ID_L_RUDDER#</HIGHLIGHT_NODE_ID> <PART_ID>#PART_ID_RUDDERS#</PART_ID> </UseTemplate> <UseTemplate Name="ASOBO_GT_Highlight_Template"> <HIGHLIGHT_NODE_ID>#NODE_ID_R_RUDDER#</HIGHLIGHT_NODE_ID> <PART_ID>#PART_ID_RUDDERS#</PART_ID> </UseTemplate> </Case> <Case Value="MIXED"> <Condition Valid="NO_BRAKES_HIGHLIGHT"> <False> <UseTemplate Name="ASOBO_GT_Highlight_Template"> <HIGHLIGHT_NODE_ID>#NODE_ID_L_BRAKE_1#</HIGHLIGHT_NODE_ID> <PART_ID>#PART_ID_BRAKES#</PART_ID> </UseTemplate> <UseTemplate Name="ASOBO_GT_Highlight_Template"> <HIGHLIGHT_NODE_ID>#NODE_ID_L_BRAKE_2#</HIGHLIGHT_NODE_ID> <PART_ID>#PART_ID_BRAKES#</PART_ID> </UseTemplate> <UseTemplate Name="ASOBO_GT_Highlight_Template"> <HIGHLIGHT_NODE_ID>#NODE_ID_R_BRAKE_1#</HIGHLIGHT_NODE_ID> <PART_ID>#PART_ID_BRAKES#</PART_ID> </UseTemplate> <UseTemplate Name="ASOBO_GT_Highlight_Template"> <HIGHLIGHT_NODE_ID>#NODE_ID_R_BRAKE_2#</HIGHLIGHT_NODE_ID> <PART_ID>#PART_ID_BRAKES#</PART_ID> </UseTemplate> </False> </Condition> <UseTemplate Name="ASOBO_GT_Highlight_Template"> <HIGHLIGHT_NODE_ID>#NODE_ID_L_RUDDER#</HIGHLIGHT_NODE_ID> <PART_ID>#PART_ID_RUDDERS#</PART_ID> </UseTemplate> <UseTemplate Name="ASOBO_GT_Highlight_Template"> <HIGHLIGHT_NODE_ID>#NODE_ID_R_RUDDER#</HIGHLIGHT_NODE_ID> <PART_ID>#PART_ID_RUDDERS#</PART_ID> </UseTemplate> </Case> </Switch> <Condition Check="DONT_CREATE_ANIMATION"> <True> <UseTemplate Name="ASOBO_GT_ComponentWith_PART_ID"> <ID>1</ID> </UseTemplate> </True> <False> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <DefaultTemplateParameters> <ANIM_SIMVAR>RUDDER PEDAL POSITION</ANIM_SIMVAR> <Condition Valid="USE_BRAKE"> <Condition Valid="DIFFERENTIATE_BRAKE_ANIM_L_R"> <True> <BRAKE_ANIM_NAME_L>HANDLING_RudderPedals_Brake_L</BRAKE_ANIM_NAME_L> <BRAKE_ANIM_NAME_R>HANDLING_RudderPedals_Brake_R</BRAKE_ANIM_NAME_R> </True> <False> <BRAKE_ANIM_NAME>HANDLING_RudderPedals_Brake</BRAKE_ANIM_NAME> </False> </Condition> </Condition> </DefaultTemplateParameters> <OverrideTemplateParameters> <Condition Valid="NO_PART_ID_ON_ANIM_NODE"> <PART_ID></PART_ID> </Condition> </OverrideTemplateParameters> <UseTemplate Name="ASOBO_GT_Anim_Sim"> <ID>1</ID> <ANIM_LENGTH>200</ANIM_LENGTH> <ANIM_SIMVAR_UNITS>percent</ANIM_SIMVAR_UNITS> <!-- [-100, 100] --> <ANIM_SIMVAR_BIAS>100</ANIM_SIMVAR_BIAS> <!-- [-100, 100] + 100 => [0, 200] --> </UseTemplate> <Condition Valid="USE_BRAKE"> <UseTemplate Name="ASOBO_HANDLING_RudderPedals_Brake_Template"> <Condition Valid="DIFFERENTIATE_BRAKE_ANIM_L_R"> <True> <ANIM_NAME_L>#BRAKE_ANIM_NAME_L#</ANIM_NAME_L> <ANIM_NAME_R>#BRAKE_ANIM_NAME_R#</ANIM_NAME_R> </True> <False> <ANIM_NAME>#BRAKE_ANIM_NAME#</ANIM_NAME> </False> </Condition> </UseTemplate> </Condition> </Component> </False> </Condition> </Template> <!-- With default use case, you can set TARGET_ANGLE_DEGREE: will light up when flaps reach this degree (default 0) VALUE_RANGE: increase degree range for degree lighting (default 0.1) --> <Template Name="ASOBO_HANDLING_Light_Flaps_SubTemplate"> <Parameters Type="Default"> <NODE_ID>HANDLING_Light_Flaps_#ID#</NODE_ID> <Switch Param="TYPE"> <Case Value="ALWAYS_ONE_LIT"> <ADJUSTED_ID_FLAP Process="Int">#ID# 0 max #MAX_FLAPS_INDEX# min</ADJUSTED_ID_FLAP> <FLAPS_INDEX_COUNT Process="Int">#MAX_FLAPS_INDEX# 1 +</FLAPS_INDEX_COUNT> <ANGLE_DEGREE_1>0</ANGLE_DEGREE_1> <ANGLE_DEGREE_2>15</ANGLE_DEGREE_2> <ANGLE_DEGREE_3>30</ANGLE_DEGREE_3> <ANGLE_DEGREE_4>35</ANGLE_DEGREE_4> <ANGLE_DEGREE_5>42</ANGLE_DEGREE_5> </Case> <Default> <TARGET_ANGLE_DEGREE>0</TARGET_ANGLE_DEGREE> <VALUE_RANGE>0.1</VALUE_RANGE> </Default> </Switch> </Parameters> <Parameters Type="Override"> <Switch Param="TYPE"> <Case Value="ALWAYS_ONE_LIT"> <TARGET_ANGLE Process="Float"> #ANGLE_DEGREE_5# #ANGLE_DEGREE_4# #ANGLE_DEGREE_3# #ANGLE_DEGREE_2# #ANGLE_DEGREE_1# #FLAPS_INDEX_COUNT# #ADJUSTED_ID_FLAP# case </TARGET_ANGLE> </Case> </Switch> </Parameters> <Parameters Type="Default"> <Switch Param="TYPE"> <Case Value="ALWAYS_ONE_LIT"> <TARGET_ANGLE_LIMIT_MIN Process="Float"> #ADJUSTED_ID_FLAP# 1 - 0 max sp0 #ANGLE_DEGREE_5# #ANGLE_DEGREE_4# #ANGLE_DEGREE_3# #ANGLE_DEGREE_2# #ANGLE_DEGREE_1# #FLAPS_INDEX_COUNT# l0 case sp1 #TARGET_ANGLE# l1 - 2 / l1 + </TARGET_ANGLE_LIMIT_MIN> <TARGET_ANGLE_LIMIT_MAX Process="Float"> #ADJUSTED_ID_FLAP# 1 + #MAX_FLAPS_INDEX# min sp0 #ANGLE_DEGREE_5# #ANGLE_DEGREE_4# #ANGLE_DEGREE_3# #ANGLE_DEGREE_2# #ANGLE_DEGREE_1# #FLAPS_INDEX_COUNT# l0 case sp1 l1 #TARGET_ANGLE# - 2 / #TARGET_ANGLE# + </TARGET_ANGLE_LIMIT_MAX> </Case> </Switch> </Parameters> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <UseTemplate Name="ASOBO_GT_Emissive_Gauge"> <Switch Param="TYPE"> <Case Value="ALWAYS_ONE_LIT"> <EMISSIVE_CODE>#TARGET_ANGLE_LIMIT_MIN# #TARGET_ANGLE_LIMIT_MAX# (A:TRAILING EDGE FLAPS LEFT ANGLE, degrees) rng</EMISSIVE_CODE> </Case> <Default> <EMISSIVE_CODE>(A:TRAILING EDGE FLAPS LEFT ANGLE, degrees) #TARGET_ANGLE_DEGREE# - abs #VALUE_RANGE# &lt;</EMISSIVE_CODE> </Default> </Switch> </UseTemplate> </Component> </Template> <!-- Light up when the trim is at TARGET_VALUE (0) +- RANGE_DELTA (0.02, that is 2%) Can use a FAILURE condition (but no failure code, unless there is no more TODO in the Emissive template) --> <Template Name="ASOBO_HANDLING_Light_Trim_Subtemplate"> <Parameters Type="Default"> <NODE_ID>HANDLING_Light_Trim</NODE_ID> <Switch Param="TRIM_TYPE"> <Case Value="AILERON"> <TRIM_SIMVAR>AILERON TRIM</TRIM_SIMVAR> </Case> <Case Value="ELEVATOR"> <TRIM_SIMVAR>ELEVATOR TRIM POSITION</TRIM_SIMVAR> </Case> <Case Value="RUDDER"> <TRIM_SIMVAR>RUDDER TRIM</TRIM_SIMVAR> </Case> <Default> <TRIM_SIMVAR>ELEVATOR TRIM POSITION</TRIM_SIMVAR> </Default> </Switch> <RANGE_DELTA>0.3</RANGE_DELTA> </Parameters> <Parameters Type="Default"> <Switch Param="TRIM_TYPE"> <Case Value="ELEVATOR"> <TARGET_VALUE>(A:ELEVATOR TRIM NEUTRAL, degree)</TARGET_VALUE> </Case> <Default> <TARGET_VALUE>0</TARGET_VALUE> </Default> </Switch> </Parameters> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <UseTemplate Name="ASOBO_GT_Emissive_Gauge"> <EMISSIVE_CODE>(A:#TRIM_SIMVAR#, degree) #TARGET_VALUE# - abs #RANGE_DELTA# &lt;</EMISSIVE_CODE> </UseTemplate> </Component> </Template> <Template Name="ASOBO_HANDLING_AileronTrim_Template"> <Parameters Type="Default"> <ID>1</ID> </Parameters> <Parameters Type="Default"> <Condition Check="SECONDARY"> <True> <IE_AILERONS_TRIM>#ID#_Secondary</IE_AILERONS_TRIM> </True> <False> <IE_AILERONS_TRIM>#ID#</IE_AILERONS_TRIM> </False> </Condition> </Parameters> <Parameters Type="Default"> <Switch Param="INTERACTION_TYPE"> <Case Value="KNOB"> <NODE_ID>HANDLING_Knob_AileronTrim</NODE_ID> <ANIM_NAME>HANDLING_Knob_AileronTrim</ANIM_NAME> <PART_ID>HANDLING_Knob_AileronTrim</PART_ID> <WWISE_EVENT_1>aileron_trim_knob_01</WWISE_EVENT_1> <WWISE_EVENT_2>aileron_trim_knob_02</WWISE_EVENT_2> <INCREMENT>15</INCREMENT> </Case> <Case Value="SWITCH"> <NODE_ID>HANDLING_Switch_AileronTrim</NODE_ID> <ANIM_NAME>HANDLING_Switch_AileronTrim</ANIM_NAME> <PART_ID>HANDLING_Switch_AileronTrim_LR</PART_ID> <OTHER_PART_ID>HANDLING_Switch_AileronTrim</OTHER_PART_ID> <WWISE_EVENT>aileron_trim_switch</WWISE_EVENT> <ID>1</ID> <INCREMENT>5</INCREMENT> <SWITCH_DIRECTION>Horizontal</SWITCH_DIRECTION> </Case> </Switch> <DRAG_INCREMENT>1</DRAG_INCREMENT> <Condition Check="NEEDLE_NODE_ID"> <NEEDLE_ANIM_NAME>HANDLING_Knob_AileronTrim_Needle</NEEDLE_ANIM_NAME> </Condition> <ANIM_SIMVAR_MIN>-100</ANIM_SIMVAR_MIN> <ANIM_SIMVAR_MAX>100</ANIM_SIMVAR_MAX> <ANIM_SIMVAR_SCALE>-0.5</ANIM_SIMVAR_SCALE> <TOOLTIPID>TT:COCKPIT.TOOLTIPS.AILERON_TRIM</TOOLTIPID> <THRESHOLD_INPUT>0.00025</THRESHOLD_INPUT> <THRESHOLD_MOUSE>0.005</THRESHOLD_MOUSE> </Parameters> <Parameters Type="Default"> <TOOLTIP_AILERONS_TRIM_TITLE>@TT_Package.HANDLING_KNOB_AILERON_TITLE</TOOLTIP_AILERONS_TRIM_TITLE> </Parameters> <Parameters Type="Override"> <TOOLTIP_TITLE>#TOOLTIP_AILERONS_TRIM_TITLE#</TOOLTIP_TITLE> <TOOLTIP_ENTRY_0>HANDLING_AileronsTrim_#IE_AILERONS_TRIM#</TOOLTIP_ENTRY_0> </Parameters> <Switch Param="INTERACTION_TYPE"> <Case Value="SWITCH"> <UseTemplate Name="ASOBO_HANDLING_Trim_Variable_Speed_Base_Template"> <TRIM_NAME>AileronsTrim</TRIM_NAME> <TRIM_TYPE>Ailerons</TRIM_TYPE> <SWITCH_POSITION_TYPE>L</SWITCH_POSITION_TYPE> <SWITCH_POSITION_VAR>XMLVAR_AileronTrim_Switch_#IE_AILERONS_TRIM#</SWITCH_POSITION_VAR> <SWITCH_POSITION_TYPE_TIMER>L</SWITCH_POSITION_TYPE_TIMER> <SWITCH_POSITION_VAR_TIMER>XMLVAR_AileronTrim_#IE_AILERONS_TRIM#_SwitchStateTimer</SWITCH_POSITION_VAR_TIMER> </UseTemplate> </Case> <Case Value="KNOB"> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <UseInputEvent ID="HANDLING"> <AILERONS_TRIM_ID>1</AILERONS_TRIM_ID> </UseInputEvent> <UseTemplate Name = "ASOBO_GT_Knob_Finite_Code"> <CURSOR>Hand</CURSOR> <CLOCKWISE_CODE> #INCREMENT# (&gt;B:HANDLING_AileronsTrim_#IE_AILERONS_TRIM#_Inc) </CLOCKWISE_CODE> <ANTICLOCKWISE_CODE> #INCREMENT# (&gt;B:HANDLING_AileronsTrim_#IE_AILERONS_TRIM#_Dec) </ANTICLOCKWISE_CODE> <ANIM_CODE>(A:AILERON TRIM PCT, percent) 0.5 * 50 +</ANIM_CODE> <Condition Check="INVERT_KNOB_ANIM"> <INVERT_ANIM>#INVERT_KNOB_ANIM#</INVERT_ANIM> </Condition> <Condition Valid="KNOB_HIGHLIGHT_NODE_ID"> <HIGHLIGHT_NODE_ID>#KNOB_HIGHLIGHT_NODE_ID#</HIGHLIGHT_NODE_ID> </Condition> </UseTemplate> </Component> <Condition Check="NEEDLE_NODE_ID"> <Component ID="#NEEDLE_NODE_ID#" Node="#NEEDLE_NODE_ID#"> <UseTemplate Name="ASOBO_GT_Anim_Sim"> <ANIM_NAME>#NEEDLE_ANIM_NAME#</ANIM_NAME> <ANIM_SIMVAR>AILERON TRIM PCT</ANIM_SIMVAR> <ANIM_SIMVAR_UNITS>percent</ANIM_SIMVAR_UNITS> <ANIM_SIMVAR_SCALE>-0.5</ANIM_SIMVAR_SCALE> <ANIM_SIMVAR_BIAS>50</ANIM_SIMVAR_BIAS> <Condition Check="INVERT_NEEDLE_ANIM"> <INVERT_ANIM>#INVERT_NEEDLE_ANIM#</INVERT_ANIM> </Condition> </UseTemplate> </Component> </Condition> </Case> </Switch> </Template> <!-- On a KNOB interaction, you can set INVERT_EFFECT to True if you want to invert IE key (inc/dec) --> <Template Name="ASOBO_HANDLING_RudderTrim_Template"> <Parameters Type="Default"> <ID>1</ID> </Parameters> <Parameters Type="Default"> <Condition Check="SECONDARY"> <True> <IE_RUDDER_TRIM>#ID#_Secondary</IE_RUDDER_TRIM> </True> <False> <IE_RUDDER_TRIM>#ID#</IE_RUDDER_TRIM> </False> </Condition> </Parameters> <Parameters Type="Default"> <MOUSE_WHEEL_INCREMENT>20</MOUSE_WHEEL_INCREMENT> <NODE_ID>HANDLING_Knob_RudderTrim</NODE_ID> <ANIM_NAME>HANDLING_Knob_RudderTrim</ANIM_NAME> <RESET_PUSH_NODE_ID>HANDLING_Push_RudderTrim_Reset</RESET_PUSH_NODE_ID> <RESET_PUSH_ANIM_NAME>HANDLING_Push_RudderTrim_Reset</RESET_PUSH_ANIM_NAME> <PART_ID>HANDLING_Knob_RudderTrim</PART_ID> <Condition Check="NEEDLE_NODE_ID"> <NEEDLE_ANIM_NAME>HANDLING_Knob_RudderTrim_Needle</NEEDLE_ANIM_NAME> </Condition> <WWISE_EVENT>rudder_trim_knob</WWISE_EVENT> <WWISE_EVENT_1>rudder_trim_knob_01</WWISE_EVENT_1> <WWISE_EVENT_2>rudder_trim_knob_02</WWISE_EVENT_2> <Switch Param="INTERACTION_TYPE"> <Case Value="SWITCH"> <INCREMENT>25</INCREMENT> <Condition Valid="NOT_DISABLED_BY_AP"> <False> <ADDITIONAL_TESTS>(A:AUTOPILOT MASTER, Bool) ! and</ADDITIONAL_TESTS> </False> </Condition> </Case> <Case Value="WHEEL"> <CURSOR>Grab</CURSOR> <INCREMENT>25</INCREMENT> <UPPER_LIMIT>16384</UPPER_LIMIT> <LOWER_LIMIT>-16384</LOWER_LIMIT> </Case> <Case Value="KNOB"> <INCREMENT>10</INCREMENT> <UPPER_LIMIT>16384</UPPER_LIMIT> <LOWER_LIMIT>-16384</LOWER_LIMIT> </Case> </Switch> <TOOLTIP_RUDDER_TRIM_TITLE>@TT_Package.HANDLING_KNOB_RUDDER_TRIM_TITLE</TOOLTIP_RUDDER_TRIM_TITLE> </Parameters> <Parameters Type="Override"> <TOOLTIP_TITLE>#TOOLTIP_RUDDER_TRIM_TITLE#</TOOLTIP_TITLE> <TOOLTIP_ENTRY_0>HANDLING_RudderTrim_#IE_RUDDER_TRIM#</TOOLTIP_ENTRY_0> </Parameters> <Switch Param="INTERACTION_TYPE"> <Case Value="SWITCH"> <UseTemplate Name="ASOBO_HANDLING_Trim_Variable_Speed_Base_Template"> <!-- Trim_Base configuration --> <ARROW_TYPE>Curved</ARROW_TYPE> <TRIM_NAME>RudderTrim</TRIM_NAME> <TRIM_TYPE>Rudder</TRIM_TYPE> <SWITCH_POSITION_TYPE>L</SWITCH_POSITION_TYPE> <SWITCH_POSITION_VAR>XMLVAR_RudderTrim_Switch_#IE_RUDDER_TRIM#</SWITCH_POSITION_VAR> <SWITCH_POSITION_TYPE_TIMER>L</SWITCH_POSITION_TYPE_TIMER> <SWITCH_POSITION_VAR_TIMER>XMLVAR_RudderTrim_#IE_RUDDER_TRIM#_SwitchStateTimer</SWITCH_POSITION_VAR_TIMER> </UseTemplate> <Condition Check="NO_RESET_PUSH"> <False> <UseTemplate Name="ASOBO_HANDLING_Base_Template"> <INTERACTION_TYPE>Push</INTERACTION_TYPE> <TT_ICON>Push</TT_ICON> <IE_NAME>RudderTrim_Reset</IE_NAME> <SET_CODE>0 (&gt;K:RUDDER_TRIM_SET) 1 (&gt;O:_ButtonAnimVar)</SET_CODE> <WWISE_EVENT_1>rudder_trim_rest_push_button_on</WWISE_EVENT_1> <WWISE_EVENT_2>rudder_trim_rest_push_button_on</WWISE_EVENT_2> <TT_DESCRIPTION_ID>@TT_Package.HANDLING_PUSH_RUDDERRESET_ACTION</TT_DESCRIPTION_ID> <TOOLTIP_TITLE>@TT_Package.HANDLING_PUSH_RUDDERRESET_TITLE</TOOLTIP_TITLE> <TOOLTIP_ENTRY_0>HANDLING_RudderTrim_Reset</TOOLTIP_ENTRY_0> <NODE_ID>#RESET_PUSH_NODE_ID#</NODE_ID> <ANIM_NAME>#RESET_PUSH_ANIM_NAME#</ANIM_NAME> <BINDING_INC_0_EVENT_ID>RUDDER_TRIM_RESET</BINDING_INC_0_EVENT_ID> </UseTemplate> </False> </Condition> </Case> <Case Value="WHEEL"> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <UseInputEvent ID="HANDLING"> <RUDDER_TRIM_ID>1</RUDDER_TRIM_ID> </UseInputEvent> <Condition Check="INFINITE"> <True> <UseTemplate Name="ASOBO_GT_Lever_DraggingYAxis_Code"> <UP_CODE>(&gt;B:HANDLING_RudderTrim_#IE_RUDDER_TRIM#_Inc)</UP_CODE> <DOWN_CODE>(&gt;B:HANDLING_RudderTrim_#IE_RUDDER_TRIM#_Dec)</DOWN_CODE> <IS_LOOPING/> </UseTemplate> </True> <False> <UseTemplate Name="ASOBO_GT_Lever_DraggingWheelLeftDrag_Axis"> <NO_ARROWS>True</NO_ARROWS> <CURSOR>Grab</CURSOR> <ANIM_LENGTH>100</ANIM_LENGTH> <ANIM_CODE>(B:HANDLING_RudderTrim_#IE_RUDDER_TRIM#)</ANIM_CODE> <Condition Valid="USE_TRAJECTORY_DRAG_MODE"> <True> <DRAG_CODE> (M:DragPercent) 2 * 1 - 16384 * #UPPER_LIMIT# min #LOWER_LIMIT# max (&gt;B:HANDLING_RudderTrim_#IE_RUDDER_TRIM#_Set) </DRAG_CODE> </True> <False> <DRAG_CODE> (A:RUDDER TRIM PCT, position 16k) #INCREMENT# (O:DragScale) * -1 * + #UPPER_LIMIT# min #LOWER_LIMIT# max (&gt;B:HANDLING_RudderTrim_#IE_RUDDER_TRIM#_Set) </DRAG_CODE> </False> </Condition> <POSITIVE_AXIS_CODE>#MOUSE_WHEEL_INCREMENT# (&gt;B:HANDLING_RudderTrim_#IE_RUDDER_TRIM#_Dec)</POSITIVE_AXIS_CODE> <NEGATIVE_AXIS_CODE>#MOUSE_WHEEL_INCREMENT# (&gt;B:HANDLING_RudderTrim_#IE_RUDDER_TRIM#_Inc)</NEGATIVE_AXIS_CODE> </UseTemplate> </False> </Condition> </Component> </Case> <Case Value="KNOB"> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <UseInputEvent ID="HANDLING"> <RUDDER_TRIM_ID>1</RUDDER_TRIM_ID> </UseInputEvent> <Parameters Type="Override"> <Condition Valid="INVERT_EFFECT"> <False> <INC>Inc</INC> <DEC>Dec</DEC> </False> <True> <INC>Dec</INC> <DEC>Inc</DEC> </True> </Condition> </Parameters> <UseTemplate Name = "ASOBO_GT_Knob_Finite_Code"> <CURSOR>Hand</CURSOR> <CLOCKWISE_CODE> #INCREMENT# (&gt;B:HANDLING_RudderTrim_#IE_RUDDER_TRIM#_#INC#) </CLOCKWISE_CODE> <ANTICLOCKWISE_CODE> #INCREMENT# (&gt;B:HANDLING_RudderTrim_#IE_RUDDER_TRIM#_#DEC#) </ANTICLOCKWISE_CODE> <ANIM_CODE>(B:HANDLING_RudderTrim_#IE_RUDDER_TRIM#)</ANIM_CODE> <Condition Valid="INVERT_KNOB_ANIM"> <INVERT_ANIM>#INVERT_KNOB_ANIM#</INVERT_ANIM> </Condition> <Condition Valid="KNOB_HIGHLIGHT_NODE_ID"> <HIGHLIGHT_NODE_ID>#KNOB_HIGHLIGHT_NODE_ID#</HIGHLIGHT_NODE_ID> </Condition> </UseTemplate> </Component> </Case> </Switch> <Condition Check="NEEDLE_NODE_ID"> <Component ID="#NEEDLE_NODE_ID#" Node="#NEEDLE_NODE_ID#"> <UseTemplate Name="ASOBO_GT_Anim_Sim"> <ANIM_NAME>#NEEDLE_ANIM_NAME#</ANIM_NAME> <ANIM_SIMVAR>RUDDER TRIM PCT</ANIM_SIMVAR> <ANIM_SIMVAR_UNITS>percent</ANIM_SIMVAR_UNITS> <ANIM_SIMVAR_SCALE>0.5</ANIM_SIMVAR_SCALE> <ANIM_SIMVAR_BIAS>50</ANIM_SIMVAR_BIAS> </UseTemplate> </Component> </Condition> </Template> <Template Name="ASOBO_HANDLING_ElevatorTrim_Template"> <Parameters Type="Default"> <ID>1</ID> </Parameters> <Parameters Type="Default"> <Condition Check="SECONDARY"> <True> <IE_ELEVATOR_TRIM>#ID#_Secondary</IE_ELEVATOR_TRIM> </True> <False> <IE_ELEVATOR_TRIM>#ID#</IE_ELEVATOR_TRIM> </False> </Condition> <LIMIT_RATIO Process="Float">(A:ELEVATOR TRIM LIMIT RATIO, number)</LIMIT_RATIO> <LOWER_RATIO>1</LOWER_RATIO> </Parameters> <Parameters Type="Override"> <Condition Valid="RESCALE_LIMITS"> <LOWER_RATIO Process="Float">#LIMIT_RATIO# 1 &gt;= if{ 1 #LIMIT_RATIO# / } els{ 1 }</LOWER_RATIO> </Condition> </Parameters> <Parameters Type="Default"> <Switch Param="INTERACTION_TYPE"> <Case Value="WHEEL"> <ANIM_NAME>HANDLING_Wheel_ElevatorTrim</ANIM_NAME> <NODE_ID>HANDLING_Wheel_ElevatorTrim</NODE_ID> <PART_ID>HANDLING_Wheel_ElevatorTrim</PART_ID> <Condition Check="INFINITE"> <True> <DRAG_SPEED>8</DRAG_SPEED> </True> </Condition> <INCREMENT>30</INCREMENT> <MOUSE_WHEEL_INCREMENT>16</MOUSE_WHEEL_INCREMENT> <UPPER_LIMIT>16384</UPPER_LIMIT> <LOWER_LIMIT Process="Float">-16384 #LOWER_RATIO# *</LOWER_LIMIT> <AXIS>Y</AXIS> <Condition Check="DOUBLE_WHEEL"> <NODE_ID2>HANDLING_Wheel_ElevatorTrim_Pitch_2</NODE_ID2> </Condition> <DRAG_AXIS_SCALE>100</DRAG_AXIS_SCALE> <WWISE_EVENT_1>elevator_trim_lock_on</WWISE_EVENT_1> <WWISE_EVENT_2>elevator_trim_lock_off</WWISE_EVENT_2> <DRAG_SCALAR>0.001</DRAG_SCALAR> <INPUTEVENT_VAR_TYPE>L</INPUTEVENT_VAR_TYPE> <INPUTEVENT_VAR_NAME>HANDLING_ElevatorTrim</INPUTEVENT_VAR_NAME> </Case> <Case Value="SWITCH"> <NODE_ID>HANDLING_Switch_ElevatorTrim_#ID#</NODE_ID> <ANIM_NAME>HANDLING_Switch_ElevatorTrim_#ID#</ANIM_NAME> <PART_ID>HANDLING_Switch_Elevator_Trim</PART_ID> <OTHER_PART_ID>HANDLING_Switch_ElevatorTrim</OTHER_PART_ID> <WWISE_EVENT>elevator_switch</WWISE_EVENT> <COUNT>2</COUNT> <ANIMREF_ID>-1</ANIMREF_ID> <ANIMTIP_0_ON_CURSOR>UpArrow</ANIMTIP_0_ON_CURSOR> <ANIMTIP_1_ON_CURSOR>DownArrow</ANIMTIP_1_ON_CURSOR> <ANIMTIP_0>TT:COCKPIT.TOOLTIPS.MET_PITCH_TRIM_DN</ANIMTIP_0> <ANIMTIP_1>TT:COCKPIT.TOOLTIPS.MET_PITCH_TRIM_UP</ANIMTIP_1> <TRIM_LIMIT>20</TRIM_LIMIT> <!-- elevator_trim_limit in flight_model.cfg --> <SWITCH_POSITION_TYPE>L</SWITCH_POSITION_TYPE> <SWITCH_POSITION_VAR>XMLVAR_ElevatorTrim_Switch_#IE_ELEVATOR_TRIM#</SWITCH_POSITION_VAR> <SWITCH_POSITION_TYPE_TIMER>L</SWITCH_POSITION_TYPE_TIMER> <SWITCH_POSITION_VAR_TIMER>XMLVAR_ElevatorTrim_#IE_ELEVATOR_TRIM#_SwitchStateTimer</SWITCH_POSITION_VAR_TIMER> </Case> </Switch> </Parameters> <Parameters Type="Default"> <TOOLTIP_ELEVATOR_TRIM_TITLE>@TT_Package.HANDLING_SWITCH_YOKE_ELEVATORTRIM_TITLE</TOOLTIP_ELEVATOR_TRIM_TITLE> <TT_DESCRIPTION_ID>@TT_PackageV3.ACTION.POSITION_ADJUST</TT_DESCRIPTION_ID> </Parameters> <Parameters Type="Override"> <TOOLTIP_TITLE>#TOOLTIP_ELEVATOR_TRIM_TITLE#</TOOLTIP_TITLE> <TOOLTIP_ENTRY_0>HANDLING_ElevatorTrim_#IE_ELEVATOR_TRIM#</TOOLTIP_ENTRY_0> <Switch Param="INTERACTION_TYPE"> <Case Value="WHEEL"> <Condition Check="INFINITE"> <True> <UP_CODE>(&gt;B:HANDLING_ElevatorTrim_#IE_ELEVATOR_TRIM#_Inc)</UP_CODE> <DOWN_CODE>(&gt;B:HANDLING_ElevatorTrim_#IE_ELEVATOR_TRIM#_Dec)</DOWN_CODE> </True> <False> <Condition Valid="USE_TRAJECTORY_DRAG_MODE"> <True> <DRAG_CODE> (M:DragPercent) 2 * 1 - 16384 * #UPPER_LIMIT# min #LOWER_LIMIT# max (&gt;B:HANDLING_ElevatorTrim_#IE_ELEVATOR_TRIM#_Set) </DRAG_CODE> </True> <False> <Condition Valid="SLOW_DRAG"> <True> <DRAG_CODE> -1 1 (I:_comparePos) (O:_LastPos) &lt; ? sp0 (#INPUTEVENT_VAR_TYPE#:#INPUTEVENT_VAR_NAME#) #INCREMENT# (O:DragScale) * l0 * + #UPPER_LIMIT# min #LOWER_LIMIT# max (&gt;B:HANDLING_ElevatorTrim_#IE_ELEVATOR_TRIM#_Set) </DRAG_CODE> </True> <False> <DRAG_CODE> (#INPUTEVENT_VAR_TYPE#:#INPUTEVENT_VAR_NAME#) #INCREMENT# (O:DragScale) * -1 * + #UPPER_LIMIT# min #LOWER_LIMIT# max (&gt;B:HANDLING_ElevatorTrim_#IE_ELEVATOR_TRIM#_Set) </DRAG_CODE> </False> </Condition> </False> </Condition> <POSITIVE_AXIS_CODE>#MOUSE_WHEEL_INCREMENT# (&gt;B:HANDLING_ElevatorTrim_#IE_ELEVATOR_TRIM#_Dec)</POSITIVE_AXIS_CODE> <NEGATIVE_AXIS_CODE>#MOUSE_WHEEL_INCREMENT# (&gt;B:HANDLING_ElevatorTrim_#IE_ELEVATOR_TRIM#_Inc)</NEGATIVE_AXIS_CODE> </False> </Condition> </Case> </Switch> </Parameters> <Switch Param="INTERACTION_TYPE"> <Case Value="WHEEL"> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <Condition Valid="SLOW_DRAG"> <True> <UseTemplate Name="ASOBO_GT_Update"> <UPDATE_ONCE>True</UPDATE_ONCE> <UPDATE_CODE>#DRAG_AXIS_SCALE# (&gt;O:DragScale)</UPDATE_CODE> </UseTemplate> <UseTemplate Name="ASOBO_GT_Update"> <FREQUENCY>3</FREQUENCY> <UPDATE_CODE>(O:_LastPos) (&gt;I:_comparePos)</UPDATE_CODE> </UseTemplate> </True> </Condition> <UseInputEvent ID="HANDLING"> <ELEVATOR_TRIM_ID>1</ELEVATOR_TRIM_ID> </UseInputEvent> <DefaultTemplateParameters> <Condition Valid="HIGHLIGHT_NODE_ID_1"> <HIGHLIGHT_NODE_ID>#HIGHLIGHT_NODE_ID_1#</HIGHLIGHT_NODE_ID> </Condition> </DefaultTemplateParameters> <Condition Check="INFINITE"> <True> <UseTemplate Name="ASOBO_GT_Lever_DraggingYAxis_Code"> <IS_LOOPING/> </UseTemplate> </True> <False> <UseTemplate Name="ASOBO_GT_Lever_DraggingWheelLeftDrag_Axis"> <NO_ARROWS>True</NO_ARROWS> <CURSOR>Grab</CURSOR> <ANIM_LENGTH>100</ANIM_LENGTH> <ANIM_CODE>(B:HANDLING_ElevatorTrim_#IE_ELEVATOR_TRIM#)</ANIM_CODE> </UseTemplate> </False> </Condition> </Component> <Condition Check="HIGHLIGHT_NODE_ID"> <UseTemplate Name="ASOBO_GT_ComponentWith_PART_ID"> <NODE_ID>#HIGHLIGHT_NODE_ID#</NODE_ID> </UseTemplate> </Condition> <Condition Check="DOUBLE_WHEEL"> <Component ID="#NODE_ID2#" Node="#NODE_ID2#"> <DefaultTemplateParameters> <Condition Valid="HIGHLIGHT_NODE_ID_2"> <HIGHLIGHT_NODE_ID>#HIGHLIGHT_NODE_ID_2#</HIGHLIGHT_NODE_ID> </Condition> </DefaultTemplateParameters> <Condition Check="INFINITE"> <True> <UseTemplate Name="ASOBO_GT_Interaction_DraggingYAxis_Code"> <HELPID>HELPID_GAUGE_PITCH_TRIM</HELPID> <IS_LOOPING/> </UseTemplate> </True> <False> <UseTemplate Name="ASOBO_GT_Interaction_WheelLeftDrag_Axis"> <NO_ARROWS>True</NO_ARROWS> <CURSOR>Grab</CURSOR> </UseTemplate> </False> </Condition> </Component> </Condition> </Case> <Case Value="SWITCH"> <UseTemplate Name="ASOBO_HANDLING_Trim_Variable_Speed_Base_Template"> <SWITCH_DIRECTION>Vertical</SWITCH_DIRECTION> <!-- Trim_Base configuration --> <TRIM_NAME>ElevatorTrim</TRIM_NAME> <TRIM_TYPE>Elevator</TRIM_TYPE> </UseTemplate> </Case> </Switch> </Template> <!-- req: UP_DN_TRIM_TYPE & L_R_TRIM_TYPE (ELEVATOR, AILERON, RUDDER) --> <Template Name="ASOBO_HANDLING_Combined_Trim_SubTemplate"> <Parameters Type="Default"> <NODE_ID>HANDLING_#INTERACTION_TYPE#_Combined_Trim</NODE_ID> <ANIM_NAME_L_R>HANDLING_#INTERACTION_TYPE#_Combined_Trim_L_R</ANIM_NAME_L_R> <ANIM_NAME_DN_UP>HANDLING_#INTERACTION_TYPE#_Combined_Trim_L_R</ANIM_NAME_DN_UP> <TRIM_UPDATE_FREQUENCY>20</TRIM_UPDATE_FREQUENCY> <WWISE_PREFIX>trim</WWISE_PREFIX> </Parameters> <Parameters Type="Override"> <TRIM_TYPE_0>#L_R_TRIM_TYPE#</TRIM_TYPE_0> <TRIM_TYPE_1>#UP_DN_TRIM_TYPE#</TRIM_TYPE_1> </Parameters> <Parameters Type="Override"> <Loop> <Setup> <Param>CUR_ID</Param> <From>0</From> <Inc>1</Inc> <To>1</To> </Setup> <Do> <Parameters Type="Override"> <TRIM_TYPE Process="Param">TRIM_TYPE_#CUR_ID#</TRIM_TYPE> </Parameters> <Switch Param="TRIM_TYPE"> <Case Value="RUDDER"> <INC_TRIM_#CUR_ID#>(&gt;K:RUDDER_TRIM_RIGHT)</INC_TRIM_#CUR_ID#> <DEC_TRIM_#CUR_ID#>(&gt;K:RUDDER_TRIM_LEFT)</DEC_TRIM_#CUR_ID#> <GET_TRIM_#CUR_ID#>(A:RUDDER TRIM, degrees)</GET_TRIM_#CUR_ID#> <TT_TRIM_#CUR_ID#>@TT_Package.HANDLING_KNOB_RUDDER_TRIM_ACTION</TT_TRIM_#CUR_ID#> </Case> <Case Value="AILERON"> <INC_TRIM_#CUR_ID#>(&gt;K:AILERON_TRIM_RIGHT)</INC_TRIM_#CUR_ID#> <DEC_TRIM_#CUR_ID#>(&gt;K:AILERON_TRIM_LEFT)</DEC_TRIM_#CUR_ID#> <GET_TRIM_#CUR_ID#>(A:AILERON TRIM, degrees)</GET_TRIM_#CUR_ID#> <TT_TRIM_#CUR_ID#>@TT_Package.HANDLING_KNOB_AILERON_ACTION</TT_TRIM_#CUR_ID#> </Case> <Case Value="ELEVATOR"> <INC_TRIM_#CUR_ID#>(&gt;K:ELEV_TRIM_DN)</INC_TRIM_#CUR_ID#> <DEC_TRIM_#CUR_ID#>(&gt;K:ELEV_TRIM_UP)</DEC_TRIM_#CUR_ID#> <GET_TRIM_#CUR_ID#>(A:ELEVATOR TRIM POSITION, degrees)</GET_TRIM_#CUR_ID#> <TT_TRIM_#CUR_ID#>@TT_Package.HANDLING_SWITCH_YOKE_ELEVATORTRIM_ACTION</TT_TRIM_#CUR_ID#> <TT_VALUE_3>@TT_Package.HANDLING_WHEEL_ELEVATOR_STATE_NOSEDOWN</TT_VALUE_3> <TT_VALUE_2>@TT_Package.HANDLING_WHEEL_ELEVATOR_STATE_NOSEUP</TT_VALUE_2> </Case> <Case Value="LONGITUDINAL"> <INC_TRIM_#CUR_ID#>(&gt;K:ROTOR_LONGITUDINAL_TRIM_DEC)</INC_TRIM_#CUR_ID#> <DEC_TRIM_#CUR_ID#>(&gt;K:ROTOR_LONGITUDINAL_TRIM_INC)</DEC_TRIM_#CUR_ID#> <GET_TRIM_#CUR_ID#>(A:ROTOR LONGITUDINAL TRIM PCT, percent)</GET_TRIM_#CUR_ID#> <TT_TRIM_#CUR_ID#>@TT_Package.HANDLING_JOYSTICK_LONGITUDINAL_TRIM_ACTION</TT_TRIM_#CUR_ID#> <FORMAT_VALUE>'%.1f %%' @sprintf</FORMAT_VALUE> </Case> <Case Value="LATERAL"> <INC_TRIM_#CUR_ID#>(&gt;K:ROTOR_LATERAL_TRIM_INC)</INC_TRIM_#CUR_ID#> <DEC_TRIM_#CUR_ID#>(&gt;K:ROTOR_LATERAL_TRIM_DEC)</DEC_TRIM_#CUR_ID#> <GET_TRIM_#CUR_ID#>(A:ROTOR LATERAL TRIM PCT, percent)</GET_TRIM_#CUR_ID#> <TT_TRIM_#CUR_ID#>@TT_Package.HANDLING_JOYSTICK_LATERAL_TRIM_ACTION</TT_TRIM_#CUR_ID#> <FORMAT_VALUE>'%.1f %%' @sprintf</FORMAT_VALUE> </Case> </Switch> </Do> </Loop> </Parameters> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <Parameters Type="Default"> <THRESHOLD_X_INPUT>0.01</THRESHOLD_X_INPUT> <THRESHOLD_X_MOUSE>0.001</THRESHOLD_X_MOUSE> <THRESHOLD_Y_INPUT>0.01</THRESHOLD_Y_INPUT> <THRESHOLD_Y_MOUSE>0.001</THRESHOLD_Y_MOUSE> <TOOLTIP_TITLE>@TT_Package.YOKE_PUSH_NOSE_TITLE</TOOLTIP_TITLE> <TT_DESCRIPTION_ID>@TT_Package.YOKE_PUSH_NOSE_ACTION</TT_DESCRIPTION_ID> <FORMAT_VALUE>'%.1f°' @sprintf</FORMAT_VALUE> <TT_VALUE_IS_DYNAMIC>True</TT_VALUE_IS_DYNAMIC> <STATE_VAR>HANDLING_#TRIM_TYPE_0#_#TRIM_TYPE_1#_Trim_Position</STATE_VAR> </Parameters> <UseTemplate Name="ASOBO_HANDLING_Axis_Event_Base_Template"> <IE_NAME>#TRIM_TYPE_0#_Trim</IE_NAME> <AXIS>X</AXIS> <LEFT_CODE_EXTERNAL>0 (&gt;L:1:#STATE_VAR#)</LEFT_CODE_EXTERNAL> <IE_STANDBY_CODE>4 (&gt;L:1:#STATE_VAR#)</IE_STANDBY_CODE> <RIGHT_CODE_EXTERNAL>1 (&gt;L:1:#STATE_VAR#)</RIGHT_CODE_EXTERNAL> <TT_VALUE>#GET_TRIM_0# #FORMAT_VALUE#</TT_VALUE> <TT_DESCRIPTION_ID>#TT_TRIM_0#</TT_DESCRIPTION_ID> </UseTemplate> <UseTemplate Name="ASOBO_HANDLING_Axis_Event_Base_Template"> <IE_NAME>#TRIM_TYPE_1#_Trim</IE_NAME> <AXIS>Y</AXIS> <LEFT_CODE_EXTERNAL>2 (&gt;L:1:#STATE_VAR#)</LEFT_CODE_EXTERNAL> <IE_STANDBY_CODE>4 (&gt;L:1:#STATE_VAR#)</IE_STANDBY_CODE> <RIGHT_CODE_EXTERNAL>3 (&gt;L:1:#STATE_VAR#)</RIGHT_CODE_EXTERNAL> <TT_VALUE>#GET_TRIM_1# #FORMAT_VALUE#</TT_VALUE> <TT_DESCRIPTION_ID>#TT_TRIM_1#</TT_DESCRIPTION_ID> </UseTemplate> <UseTemplate Name="ASOBO_HANDLING_Base_Template"> <IE_NAME>#TRIM_TYPE_0#_#TRIM_TYPE_1#_Trim</IE_NAME> <JOYSTICK_TYPE>5_STATES</JOYSTICK_TYPE> <JOYSTICK_INTERACTION_TYPE>POSITIONAL</JOYSTICK_INTERACTION_TYPE> <CREATE_COMPONENT>False</CREATE_COMPONENT> <IE_ID_EXTERNAL_0>#TRIM_TYPE_0#_Trim</IE_ID_EXTERNAL_0> <IE_ID_EXTERNAL_1>#TRIM_TYPE_1#_Trim</IE_ID_EXTERNAL_1> <ON_POS_LEFT>#DEC_TRIM_0#</ON_POS_LEFT> <ON_POS_RIGHT>#INC_TRIM_0#</ON_POS_RIGHT> <ON_POS_DOWN>#DEC_TRIM_1#</ON_POS_DOWN> <ON_POS_UP>#INC_TRIM_1#</ON_POS_UP> <GET_STATE_EXTERNAL>(L:1:#STATE_VAR#) sp0</GET_STATE_EXTERNAL> <VAR_TO_WATCH_0>#STATE_VAR#</VAR_TO_WATCH_0> <VAR_TO_WATCH_0_SCOPE>L</VAR_TO_WATCH_0_SCOPE> <FREQUENCY>#TRIM_UPDATE_FREQUENCY#</FREQUENCY> </UseTemplate> </Component> </Template> <!-- Choose what trim you want to disable with variable TYPE Aileron , RudderAileron (both) , Elevator , Electrical (if you want to disable any electrical interaction of a switch type trim) If you need more, add a case that override the SET_TRIM_X variables you need --> <Template Name="ASOBO_HANDLING_AP_Trim_Disc_SubTemplate"> <Parameters Type="Default"> <TYPE>RudderAileron</TYPE> <SET_TRIM_ELEVATOR/> <SET_TRIM_RUDDER/> <SET_TRIM_AILERON/> <SET_TRIM_ELECTRICAL/> <GET_TRIM/> <ELECTRICAL_POWER_VAR_NAME>XMLVAR_Electrical_Trim_Disabled</ELECTRICAL_POWER_VAR_NAME> <ELECTRICAL_POWER_VAR_TYPE>L</ELECTRICAL_POWER_VAR_TYPE> </Parameters> <Parameters Type="Override"> <Switch Param="TYPE"> <Case Value="RudderAileron"> <SET_TRIM_RUDDER>l0 (&gt;K:RUDDER_TRIM_DISABLED_SET)</SET_TRIM_RUDDER> <SET_TRIM_AILERON>l0 (&gt;K:AILERON_TRIM_DISABLED_SET)</SET_TRIM_AILERON> <GET_TRIM>(A:RUDDER TRIM DISABLED, Bool) (A:ELEVATOR TRIM DISABLED, Bool) and</GET_TRIM> </Case> <Case Value="Elevator"> <SET_TRIM_ELEVATOR>l0 (&gt;K:ELEVATOR_TRIM_DISABLED_SET)</SET_TRIM_ELEVATOR> <GET_TRIM>(A:ELEVATOR TRIM DISABLED, Bool)</GET_TRIM> </Case> <Case Value="Aileron"> <SET_TRIM_ELEVATOR>l0 (&gt;K:AILERON_TRIM_DISABLED_SET)</SET_TRIM_ELEVATOR> <GET_TRIM>(A:AILERON TRIM DISABLED, Bool)</GET_TRIM> </Case> <Case Value="Electrical"> <SET_TRIM_ELECTRICAL>l0 (&gt;#ELECTRICAL_POWER_VAR_TYPE#:#ELECTRICAL_POWER_VAR_NAME#)</SET_TRIM_ELECTRICAL> <GET_TRIM>(#ELECTRICAL_POWER_VAR_TYPE#:#ELECTRICAL_POWER_VAR_NAME#)</GET_TRIM> </Case> </Switch> </Parameters> <Parameters Type="Default"> <Condition Valid="USE_AP_STATE_FOR_TT_VALUE_STATE"> <True> <TT_VALUE_STATE>(A:AUTOPILOT MASTER, bool) !</TT_VALUE_STATE> </True> <False> <TT_VALUE_STATE>#GET_TRIM#</TT_VALUE_STATE> </False> </Condition> </Parameters> <Parameters Type="Default"> <NODE_ID>HANDLING_#INTERACTION_TYPE#_AP_Trim_Disc_#ID#</NODE_ID> <ANIM_NAME>HANDLING_#INTERACTION_TYPE#_AP_Trim_Disc_#ID#</ANIM_NAME> <SET_TRIM>sp0 #SET_TRIM_ELEVATOR# #SET_TRIM_RUDDER# #SET_TRIM_AILERON# #SET_TRIM_ELECTRICAL#</SET_TRIM> <Switch Param="INTERACTION_TYPE"> <Case Value="PUSH"> <WWISE_EVENT_1>yoke_push_button_on</WWISE_EVENT_1> <WWISE_EVENT_2>yoke_push_button_off</WWISE_EVENT_2> <TT_VALUE>#TT_VALUE_STATE# if{ (R:1:@TT_Package.GT_STATE_DISCONNECTED) } els{ (R:1:@TT_Package.GT_STATE_CONNECTED) }</TT_VALUE> <TT_VALUE_IS_DYNAMIC>True</TT_VALUE_IS_DYNAMIC> </Case> <Case Value="SWITCH"> <WWISE_EVENT_1>yoke_push_button_on</WWISE_EVENT_1> <WWISE_EVENT_2>yoke_push_button_off</WWISE_EVENT_2> </Case> </Switch> </Parameters> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <Parameters Type="Default"> <ANIM_VAR>_ButtonDown</ANIM_VAR> <ANIM_VAR_TYPE>O</ANIM_VAR_TYPE> <TT_DESCRIPTION_ID_PUSH>@TT_Package.YOKE_PUSH_AP_TRIM_DISC_ACTION</TT_DESCRIPTION_ID_PUSH> <TOOLTIP_TITLE_PUSH>@TT_Package.YOKE_PUSH_AP_TRIM_DISC_TITLE</TOOLTIP_TITLE_PUSH> <TRIM_DISC_IE_NAME>Trim_Disconnect</TRIM_DISC_IE_NAME> </Parameters> <Parameters Type="Override"> <Switch Param="INTERACTION_TYPE"> <Case Value="PUSH"> <Switch Param="VARIATION"> <Case Value="TOGGLE_ON_PUSH"> <PUSH_EVENT> #GET_TRIM# if{ 0 #SET_TRIM# } els{ 1 #SET_TRIM# 1 (&gt;K:AUTOPILOT_OFF) (&gt;H:Generic_Autopilot_Disc) } 100 (&gt;#ANIM_VAR_TYPE#:#ANIM_VAR#) </PUSH_EVENT> <RELEASE_EVENT>0 (&gt;#ANIM_VAR_TYPE#:#ANIM_VAR#)</RELEASE_EVENT> </Case> <Default> <PUSH_EVENT>1 #SET_TRIM# 1 (&gt;K:AUTOPILOT_OFF) (&gt;H:Generic_Autopilot_Disc) 100 (&gt;#ANIM_VAR_TYPE#:#ANIM_VAR#)</PUSH_EVENT> <RELEASE_EVENT>0 #SET_TRIM# 0 (&gt;#ANIM_VAR_TYPE#:#ANIM_VAR#)</RELEASE_EVENT> </Default> </Switch> </Case> </Switch> <BTN_ID>#TRIM_DISC_IE_NAME#</BTN_ID> <TOOLTIP_TITLE>#TOOLTIP_TITLE_PUSH#</TOOLTIP_TITLE> <TOOLTIP_ENTRY_0>HANDLING_#TRIM_DISC_IE_NAME#</TOOLTIP_ENTRY_0> <TT_DESCRIPTION_ID>#TT_DESCRIPTION_ID_PUSH#</TT_DESCRIPTION_ID> </Parameters> <Switch Param="INTERACTION_TYPE"> <Case Value="PUSH"> <UseInputEvent ID="HANDLING"> <BINDING_DEC_0>Release</BINDING_DEC_0> <BINDING_DEC_0_PARAM_0>0</BINDING_DEC_0_PARAM_0> <SET_STATE_EXTERNAL>if{ #PUSH_EVENT# } els{ #RELEASE_EVENT# }</SET_STATE_EXTERNAL> <BINDING_INC_0>Push</BINDING_INC_0> <BINDING_INC_0_PARAM_0>1</BINDING_INC_0_PARAM_0> <ANIM>EXTERNAL</ANIM> </UseInputEvent> <UseTemplate Name="ASOBO_GT_Push_Button_Held"> <LEFT_SINGLE_CODE>(&gt;B:HANDLING_#BTN_ID#_Push)</LEFT_SINGLE_CODE> <LEFT_LEAVE_CODE>(&gt;B:HANDLING_#BTN_ID#_Release)</LEFT_LEAVE_CODE> <OVERRIDE_ANIM_CODE>(#ANIM_VAR_TYPE#:#ANIM_VAR#)</OVERRIDE_ANIM_CODE> </UseTemplate> </Case> <Case Value="SWITCH"> <UseInputEvent ID="HANDLING"> <GET_STATE_EXTERNAL>#GET_TRIM# sp0</GET_STATE_EXTERNAL> <SET_STATE_ON>1 #SET_TRIM#</SET_STATE_ON> <SET_STATE_OFF>0 #SET_TRIM#</SET_STATE_OFF> <SIM_STATE_IS_ON_EXTERNAL>l0</SIM_STATE_IS_ON_EXTERNAL> <ANIM>EXTERNAL</ANIM> </UseInputEvent> <UseTemplate Name="ASOBO_GT_Switch_Code"> <LEFT_SINGLE_CODE>(&gt;B:HANDLING_#BTN_ID#_Toggle)</LEFT_SINGLE_CODE> <ANIM_CODE>(B:HANDLING_#BTN_ID#, Bool) 100 *</ANIM_CODE> </UseTemplate> </Case> </Switch> </Component> </Template> <!-- REQ: NODE_ID, ANIM_NAME, TRIM_LIMIT, TRIM_NAME, TRIM_TYPE --> <Template Name="ASOBO_HANDLING_Trim_Variable_Speed_Base_Template"> <Parameters Type="Default"> <Switch Param="TRIM_TYPE"> <Case Value="Elevator"> <GET_TRIM>(A:ELEVATOR TRIM PCT, percent)</GET_TRIM> <SET_TRIM>(&gt;K:ELEVATOR_TRIM_SET)</SET_TRIM> <ELEVATOR_TRIM_ID>1</ELEVATOR_TRIM_ID> </Case> <Case Value="Rudder"> <GET_TRIM>(A:RUDDER TRIM PCT, Percent)</GET_TRIM> <SET_TRIM>(&gt;K:RUDDER_TRIM_SET_EX1)</SET_TRIM> <RUDDER_TRIM_ID>1</RUDDER_TRIM_ID> </Case> <Case Value="Ailerons"> <GET_TRIM>(A:AILERON TRIM PCT, percent)</GET_TRIM> <SET_TRIM>(&gt;K:AILERON_TRIM_SET_EX1)</SET_TRIM> <TRIM_LIMIT>10</TRIM_LIMIT> <!-- hardcoded in cpp --> <AILERONS_TRIM_ID>1</AILERONS_TRIM_ID> </Case> </Switch> <UPDATE_FREQ>10</UPDATE_FREQ> <!-- How many updates per second --> <UPDATE_COUNT_BEFORE_FAST_MODE>40</UPDATE_COUNT_BEFORE_FAST_MODE> <UPDATE_COUNT_BEFORE_REPEAT>5</UPDATE_COUNT_BEFORE_REPEAT> <MOMENTARY_MIN_DURATION>0.1</MOMENTARY_MIN_DURATION> <TRIM_LIMIT>10</TRIM_LIMIT> <!-- DEGREES --> <NORMAL_INC_DEGREES>0.1</NORMAL_INC_DEGREES> <!-- How many degrees per update --> <FAST_MODE_SCALE>3</FAST_MODE_SCALE> <!-- How many time faster the increment is when in fast mode --> <SCALE_INCREMENT>163.83 * 16383 min -16383 max</SCALE_INCREMENT> <!-- Used for elevator trim since you don't set a percentage but a value scaled by 163.83 --> <Condition Valid="LOCK_NODE_ID"> <VAR_NAME_TRIM_LOCK_UNLOCKED>XMLVAR_#TRIM_NAME##ID#_Unlocked</VAR_NAME_TRIM_LOCK_UNLOCKED> <VAR_SCOPE_TRIM_LOCK_UNLOCKED>I</VAR_SCOPE_TRIM_LOCK_UNLOCKED> </Condition> <Condition Check="SECONDARY"> <True> <ADDITIONAL_TESTS>(B:HANDLING_Secondary_#TRIM_NAME#_Available, Bool) and</ADDITIONAL_TESTS> </True> <False> <ADDITIONAL_TESTS/> </False> </Condition> <SWITCH_DIRECTION>Horizontal</SWITCH_DIRECTION> <COUNT>2</COUNT> <ELECTRICAL_POWER>False</ELECTRICAL_POWER> <ELECTRICAL_POWER_VAR_NAME>XMLVAR_Electrical_Trim_Disabled</ELECTRICAL_POWER_VAR_NAME> <ELECTRICAL_POWER_VAR_TYPE>L</ELECTRICAL_POWER_VAR_TYPE> </Parameters> <Parameters Type="Override"> <Condition Valid="ELECTRICAL_POWER"> <True> <ADDITIONAL_TESTS>#ADDITIONAL_TESTS# (#ELECTRICAL_POWER_VAR_TYPE#:#ELECTRICAL_POWER_VAR_NAME#) ! and</ADDITIONAL_TESTS> </True> </Condition> </Parameters> <Parameters Type="Override"> <NORMAL_MODE_PERCENT_PER_UPDATE process="Float">#NORMAL_INC_DEGREES# #TRIM_LIMIT# / 100 *</NORMAL_MODE_PERCENT_PER_UPDATE> <FAST_MODE_PERCENT_PER_UPDATE process="Float">#NORMAL_INC_DEGREES# #TRIM_LIMIT# / #FAST_MODE_SCALE# * 100 *</FAST_MODE_PERCENT_PER_UPDATE> <STATE0_TEST>(O:_TrimDelta) 0 &gt;</STATE0_TEST> <STATE1_TEST>(O:_TrimDelta) 0 ==</STATE1_TEST> <STATE2_TEST>(O:_TrimDelta) 0 &lt;</STATE2_TEST> <Condition Valid="LOCK_NODE_ID"> <True> <CODE_POS_0_VERIF>(#VAR_SCOPE_TRIM_LOCK_UNLOCKED#:#VAR_NAME_TRIM_LOCK_UNLOCKED#)</CODE_POS_0_VERIF> <CODE_POS_2_VERIF>(#VAR_SCOPE_TRIM_LOCK_UNLOCKED#:#VAR_NAME_TRIM_LOCK_UNLOCKED#)</CODE_POS_2_VERIF> </True> </Condition> </Parameters> <Condition Valid="LOCK_NODE_ID"> <True> <Component ID="#LOCK_NODE_ID#" Node="#LOCK_NODE_ID#"> <UseTemplate Name="ASOBO_GT_Switch_Code"> <ANIM_NAME>#LOCK_ANIM_NAME#</ANIM_NAME> <LEFT_SINGLE_CODE> (#VAR_SCOPE_TRIM_LOCK_UNLOCKED#:#VAR_NAME_TRIM_LOCK_UNLOCKED#) ! (&gt;#VAR_SCOPE_TRIM_LOCK_UNLOCKED#:#VAR_NAME_TRIM_LOCK_UNLOCKED#) </LEFT_SINGLE_CODE> <ANIM_CODE> (#VAR_SCOPE_TRIM_LOCK_UNLOCKED#:#VAR_NAME_TRIM_LOCK_UNLOCKED#) 100 * </ANIM_CODE> </UseTemplate> </Component> </True> </Condition> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <Parameters Type="Override"> <INC_STATE>0</INC_STATE> <DEC_STATE>2</DEC_STATE> <CODE_POS_0> 1 (&gt;O:_TrimDelta) 1 #ADDITIONAL_TESTS# if{ #GET_TRIM# #NORMAL_MODE_PERCENT_PER_UPDATE# - #SCALE_INCREMENT# #SET_TRIM# } </CODE_POS_0> <CODE_POS_1> 0 (&gt;O:_TrimDelta) 0 (&gt;O:_UPDATE_Count) </CODE_POS_1> <CODE_POS_2> -1 (&gt;O:_TrimDelta) 1 #ADDITIONAL_TESTS# if{ #GET_TRIM# #NORMAL_MODE_PERCENT_PER_UPDATE# + #SCALE_INCREMENT# #SET_TRIM# } </CODE_POS_2> <STATE_MAX_TIMER>#MOMENTARY_MIN_DURATION#</STATE_MAX_TIMER> <STATE0_TIMER>#MOMENTARY_MIN_DURATION#</STATE0_TIMER> </Parameters> <UseInputEvent ID="HANDLING"/> <UseTemplate Name="ASOBO_GT_Update"> <FREQUENCY>#UPDATE_FREQ#</FREQUENCY> <UPDATE_CODE> (O:_TrimDelta) 0 != #ADDITIONAL_TESTS# if{ (O:_UPDATE_Count) #UPDATE_COUNT_BEFORE_FAST_MODE# &gt;= if{ (O:_TrimDelta) 0 &gt; if{ #GET_TRIM# #FAST_MODE_PERCENT_PER_UPDATE# - #SCALE_INCREMENT# #SET_TRIM# } els{ #GET_TRIM# #FAST_MODE_PERCENT_PER_UPDATE# + #SCALE_INCREMENT# #SET_TRIM# } } els{ (O:_UPDATE_Count) #UPDATE_COUNT_BEFORE_REPEAT# &gt;= if{ (O:_TrimDelta) 0 &gt; if{ #GET_TRIM# #NORMAL_MODE_PERCENT_PER_UPDATE# - #SCALE_INCREMENT# #SET_TRIM# } els{ #GET_TRIM# #NORMAL_MODE_PERCENT_PER_UPDATE# + #SCALE_INCREMENT# #SET_TRIM# } } (O:_UPDATE_Count) 1 + (&gt;O:_UPDATE_Count) } } </UPDATE_CODE> </UseTemplate> <UseTemplate Name="ASOBO_GT_Switch_3States"> <MOMENTARY_SWITCH/> </UseTemplate> </Component> </Template> <Template Name="ASOBO_HANDLING_Secondary_Trim_Available_SubTemplate"> <Parameters Type="Default"> <NODE_ID>HANDLING_#INTERACTION_TYPE#_Secondary_#TRIM_NAME#Trim_Available</NODE_ID> <ANIM_NAME>HANDLING_#INTERACTION_TYPE#_Secondary_#TRIM_NAME#Trim_Available</ANIM_NAME> <COVER_NODE_ID>HANDLING_Switch_Secondary_#TRIM_NAME#Trim_Available_Cover</COVER_NODE_ID> <COVER_ANIM_NAME>HANDLING_Switch_Secondary_#TRIM_NAME#Trim_Available_Cover</COVER_ANIM_NAME> <PART_ID>HANDLING_#INTERACTION_TYPE#_Secondary_#TRIM_NAME#Trim_Available</PART_ID> <Switch Param="INTERACTION_TYPE"> <Case Value="Push"> <COUNT>2</COUNT> <WWISE_EVENT_1>secondary_trim_switch_on</WWISE_EVENT_1> <NORMALIZED_TIME_1>0.1</NORMALIZED_TIME_1> <WWISE_EVENT_2>secondary_trim_switch_off</WWISE_EVENT_2> <NORMALIZED_TIME_2>0.5</NORMALIZED_TIME_2> </Case> </Switch> <Switch Param="TRIM_NAME"> <Case Value="Elevator"> <TT_DESCRIPTION_ID>@TT_Package.HANDLING_PUSH_ELEVATORTRIM_SECONDARY_ACTION_SET</TT_DESCRIPTION_ID> <TOOLTIP_TITLE>@TT_Package.HANDLING_PUSH_ELEVATORTRIM_SECONDARY_TITLE</TOOLTIP_TITLE> </Case> </Switch> </Parameters> <Parameters Type="Override"> <BTN_ID>Secondary_#TRIM_NAME#Trim_Available</BTN_ID> </Parameters> <Switch Param="INTERACTION_TYPE"> <Case Value="Push"> <UseTemplate Name="ASOBO_GT_Push_Button_Airliner"> <INPUT_EVENT_ID>HANDLING</INPUT_EVENT_ID> <TOOLTIP_ENTRY_0>HANDLING_#BTN_ID#</TOOLTIP_ENTRY_0> <SET_STATE_EXTERNAL>p0 (&gt;O:XMLVAR_#BTN_ID#)</SET_STATE_EXTERNAL> <GET_STATE_EXTERNAL>(O:XMLVAR_#BTN_ID#) sp0</GET_STATE_EXTERNAL> <SIM_STATE_IS_ON_EXTERNAL>l0</SIM_STATE_IS_ON_EXTERNAL> <SEQ1_EMISSIVE_CODE>(B:HANDLING_#BTN_ID#, Bool)</SEQ1_EMISSIVE_CODE> <SEQ2_EMISSIVE_CODE>(B:HANDLING_#BTN_ID#, Bool) !</SEQ2_EMISSIVE_CODE> <LEFT_SINGLE_CODE>(&gt;B:HANDLING_#BTN_ID#_Toggle)</LEFT_SINGLE_CODE> </UseTemplate> </Case> </Switch> </Template> <Template Name="ASOBO_HANDLING_Spoilers_Int_SubTemplate"> <Parameters Type="Default"> <ANIM_NAME>HANDLING_#INTERACTION_TYPE#_Spoilers</ANIM_NAME> <NODE_ID>HANDLING_#INTERACTION_TYPE#_Spoilers</NODE_ID> <PART_ID>HANDLING_#INTERACTION_TYPE#_Spoilers</PART_ID> <WWISE_PREFIX>spoilers</WWISE_PREFIX> <RETRACT_ARMED_FULL>False</RETRACT_ARMED_FULL> <POS_DOWN>1</POS_DOWN> <POS_ARM>0</POS_ARM> <Switch Param="INTERACTION_TYPE"> <Case Value="Lever"> <DRAG_AXIS_SCALE>100</DRAG_AXIS_SCALE> <DRAG_SPEED>30</DRAG_SPEED> <Condition Valid="USE_LOCK"> <TT_ICON_LOCK>MOVE_Y</TT_ICON_LOCK> <WWISE_EVENT_LOCK_1>lever_spoiler_lock_on</WWISE_EVENT_LOCK_1> <WWISE_EVENT_LOCK_2>lever_spoiler_lock_off</WWISE_EVENT_LOCK_2> <LOCK_NODE_ID>HANDLING_Lever_Spoilers_Lock</LOCK_NODE_ID> <LOCK_ANIM_NAME>HANDLING_Lever_Spoilers_Lock</LOCK_ANIM_NAME> <LOCK_VAR_SCOPE>I</LOCK_VAR_SCOPE> <LOCK_VAR_NAME>XMLVAR_LeverSpoilerLocked</LOCK_VAR_NAME> <TOOLTIP_SPOILERS_LOCK_TITLE>@TT_Package.HANDLING_LEVER_SPOILERS_LOCK_TITLE</TOOLTIP_SPOILERS_LOCK_TITLE> <TT_DESCRIPTION_ID_SPOILERS_LOCK>@TT_Package.HANDLING_LEVER_SPOILERS_LOCK_ACTION</TT_DESCRIPTION_ID_SPOILERS_LOCK> </Condition> <Switch Param="TYPE"> <Case Value="AIRLINER"> <Condition Valid="PHYSICAL_AUTOSPOILER"> <True> <ARMED_STATE_TEST>(A:SPOILERS ARMED, Bool) (A:SPOILERS HANDLE POSITION, Percent over 100) 0 == and</ARMED_STATE_TEST> </True> <False> <ARMED_STATE_TEST>(A:SPOILERS ARMED, Bool)</ARMED_STATE_TEST> </False> </Condition> <ANIM_TRIGGER_COUNT>3</ANIM_TRIGGER_COUNT> <STEPS_NUMBER>3</STEPS_NUMBER> <USE_GATES>True</USE_GATES> <ANIM_LENGTH>100</ANIM_LENGTH> </Case> </Switch> <WWISE_EVENT>lever_speedbrakes</WWISE_EVENT> <MIN_VALUE>0</MIN_VALUE> <MAX_VALUE>@16k</MAX_VALUE> <LEVER_ANIM_LAG>100</LEVER_ANIM_LAG> </Case> <Case Value="Switch"> <TIME_TO_FULL_RANGE_SEC>2</TIME_TO_FULL_RANGE_SEC> <REPEAT_FREQUENCY>10</REPEAT_FREQUENCY> <MOMENTARY_TIMER>0.1</MOMENTARY_TIMER> <POS_DEC>0</POS_DEC> <POS_STANDBY>1</POS_STANDBY> <POS_INC>2</POS_INC> <ADDITIONAL_TESTS/> <Switch Param="PUSH_TYPE"> <Case Value="EXTEND_FULL"> <ANIM_NAME_PUSH>HANDLING_#INTERACTION_TYPE#_Spoilers_Push</ANIM_NAME_PUSH> <INVERT_ANIM_PUSH>False</INVERT_ANIM_PUSH> </Case> </Switch> </Case> </Switch> <TT_DESCRIPTION_ID>@TT_Package.HANDLING_LEVER_SPOILERS_ACTION</TT_DESCRIPTION_ID> <TT_DESCRIPTION_ID_EXTEND>@TT_Package.HANDLING_LEVER_SPOILERS_ACTION_EXTEND</TT_DESCRIPTION_ID_EXTEND> <TOOLTIP_TITLE>@TT_Package.HANDLING_LEVER_SPOILERS_TITLE</TOOLTIP_TITLE> </Parameters> <Parameters Type="Override"> <Switch Param="INTERACTION_TYPE"> <Case Value="Switch"> <INCREMENT Process="Int">16384 #TIME_TO_FULL_RANGE_SEC# / #REPEAT_FREQUENCY# /</INCREMENT> <MOMENTARY_SWITCH/> <STATE0_TIMER>#MOMENTARY_TIMER#</STATE0_TIMER> <STATE_MAX_TIMER>#MOMENTARY_TIMER#</STATE_MAX_TIMER> <STATE_STANDBY>0</STATE_STANDBY> <STATE_INC>1</STATE_INC> <STATE_DEC>2</STATE_DEC> <Switch Param="PUSH_TYPE"> <Case Value="EXTEND_FULL"> <ADDITIONAL_TESTS>#ADDITIONAL_TESTS# (B:HANDLING_Spoilers_Extend, Bool) ! and</ADDITIONAL_TESTS> </Case> </Switch> </Case> </Switch> </Parameters> <Switch Param="INTERACTION_TYPE"> <Case Value="Lever"> <Condition Valid="USE_GATES"> <Condition Valid="RETRACT_ARMED_FULL"> <True> <UseTemplate Name="ASOBO_HANDLING_Push_Event_Base_Template"> <IE_NAME>Spoilers_Arm</IE_NAME> <SET_STATE_EXTERNAL>p0 ! (A:SPOILERS HANDLE POSITION, position 16k) 0 == and (&gt;K:SPOILERS_ARM_SET)</SET_STATE_EXTERNAL> <GET_STATE_EXTERNAL>(A:SPOILERS HANDLE POSITION, position 16k) 0 &gt; if{ 0 (&gt;K:SPOILERS_ARM_SET) } (A:SPOILERS ARMED, Bool) sp0 </GET_STATE_EXTERNAL> <STR_STATE_ON>Armed</STR_STATE_ON> <STR_STATE_OFF>Standby</STR_STATE_OFF> <TT_VALUE_ON>(R:1:@TT_Package.GT_STATE_ARMED)</TT_VALUE_ON> <TT_VALUE_OFF>(R:1:@TT_Package.GT_STATE_STANDBY)</TT_VALUE_OFF> <SIMVAR_TO_WATCH_0>SPOILERS ARMED</SIMVAR_TO_WATCH_0> <SIMVAR_TO_WATCH_1>SPOILERS HANDLE POSITION</SIMVAR_TO_WATCH_1> </UseTemplate> </True> <False> <UseTemplate Name="ASOBO_HANDLING_Push_Event_Base_Template"> <IE_NAME>Spoilers_Arm</IE_NAME> <SET_STATE_EXTERNAL>p0 (A:SPOILERS HANDLE POSITION, position 16k) 0 == and (&gt;K:SPOILERS_ARM_SET)</SET_STATE_EXTERNAL> <GET_STATE_EXTERNAL>(A:SPOILERS HANDLE POSITION, position 16k) 0 &gt; if{ 0 (&gt;K:SPOILERS_ARM_SET) } (A:SPOILERS ARMED, Bool) sp0 </GET_STATE_EXTERNAL> <STR_STATE_ON>Armed</STR_STATE_ON> <STR_STATE_OFF>Standby</STR_STATE_OFF> <TT_VALUE_ON>(R:1:@TT_Package.GT_STATE_ARMED)</TT_VALUE_ON> <TT_VALUE_OFF>(R:1:@TT_Package.GT_STATE_STANDBY)</TT_VALUE_OFF> <SIMVAR_TO_WATCH_0>SPOILERS ARMED</SIMVAR_TO_WATCH_0> <SIMVAR_TO_WATCH_1>SPOILERS HANDLE POSITION</SIMVAR_TO_WATCH_1> </UseTemplate> </False> </Condition> </Condition> <UseTemplate Name="ASOBO_HANDLING_Base_Template"> <IE_NAME>Spoilers</IE_NAME> <GATE_DIRECTION>0</GATE_DIRECTION> <DONT_SYNC_DRAG_TO_ANIM>True</DONT_SYNC_DRAG_TO_ANIM> <DRAG_ANIM_NAME>#ANIM_NAME#</DRAG_ANIM_NAME> <DRAG_NODE_ID>#NODE_ID#</DRAG_NODE_ID> <GET_TT_VALUE_STATE>(A:SPOILERS ARMED, Bool) sp0 (A:SPOILERS HANDLE POSITION, Percent) sp1</GET_TT_VALUE_STATE> <FORMAT_VALUE>l0 if{ (R:1:@TT_Package.GT_STATE_ARMED) } els{ l1 '%.1f%%' @sprintf }</FORMAT_VALUE> <SIMVAR_TO_WATCH_0>SPOILERS HANDLE POSITION</SIMVAR_TO_WATCH_0> <GET_STATE_EXTERNAL>(A:SPOILERS HANDLE POSITION, position 16k)</GET_STATE_EXTERNAL> <SET_STATE_EXTERNAL>(&gt;K:SPOILERS_SET)</SET_STATE_EXTERNAL> <Condition Valid="USE_LOCK"> <ON_BEFORE_SET_CODE>(B:HANDLING_Spoilers_Lock, Bool) if{ quit } </ON_BEFORE_SET_CODE> </Condition> <STATE_TO_POS_EXTERNAL>@16k / 100 *</STATE_TO_POS_EXTERNAL> <INC_PARAM_0 Process="Int">@16k 10 /</INC_PARAM_0> <DEC_PARAM_0 Process="Int">@16k 10 /</DEC_PARAM_0> <Condition Valid="USE_GATES"> <True> <TEMPLATE_TO_USE>ASOBO_GT_Lever_DraggingYAxis_Gates</TEMPLATE_TO_USE> <DRAG_CODE> (O:Position) 1 &lt; s0 (&gt;B:HANDLING_Spoilers_Arm_Set) 0 (O:Position) 1 - #STEPS_NUMBER# 1 - / @16k * l0 ? (&gt;B:HANDLING_Spoilers_Set) </DRAG_CODE> <Condition Valid="RETRACT_ARMED_FULL"> <FORMAT_VALUE>l0 if{ (R:1:@TT_Package.GT_STATE_ARMED) } els{ l1 0 == if{ (R:1:@TT_Package.GT_STATE_DOWN) } els{ l1 '%.1f%%' @sprintf } }</FORMAT_VALUE> <!-- <DRAG_CODE> --> <!-- (O:Position) #POS_ARM# == s0 (&gt;B:HANDLING_Spoilers_Arm_Set) --> <!-- 0 (O:Position) 1 - #STEPS_NUMBER# 1 - / @16k * l0 ? (&gt;B:HANDLING_Spoilers_Set) --> <!-- </DRAG_CODE> --> </Condition> <Condition NotEmpty="OVERRIDE_ANIM_CODE"> <False> <Condition Valid="RETRACT_ARMED_FULL"> <True> <OVERRIDE_ANIM_CODE>(A:SPOILERS ARMED, Bool) if{ #POS_ARM# #ANIM_LENGTH# #STEPS_NUMBER# / * } els{ (B:HANDLING_Spoilers, percent over 100) s0 0 == if{ #POS_DOWN# #STEPS_NUMBER# / } els{ l0 #STEPS_NUMBER# 1 - #STEPS_NUMBER# / * 1 #STEPS_NUMBER# / + #ANIM_LENGTH# * } }</OVERRIDE_ANIM_CODE> </True> <False> <OVERRIDE_ANIM_CODE>(A:SPOILERS ARMED, Bool) if{ 0 } els{ (B:HANDLING_Spoilers, percent over 100) #STEPS_NUMBER# 1 - #STEPS_NUMBER# / * 1 #STEPS_NUMBER# / + #ANIM_LENGTH# * }</OVERRIDE_ANIM_CODE> </False> </Condition> </False> </Condition> <ON_AFTER_INIT_CODE> 0 (A:SPOILERS HANDLE POSITION, percent over 100) #STEPS_NUMBER# 1 - * 1 + (A:SPOILERS ARMED, Bool) ? (&gt;O:Position)</ON_AFTER_INIT_CODE> </True> <False> <GET_TT_VALUE_STATE>(A:SPOILERS HANDLE POSITION, Percent)</GET_TT_VALUE_STATE> <DRAG_VALUE_TO_EVENT_SET>@16k *</DRAG_VALUE_TO_EVENT_SET> <Condition Valid="USE_LOCK"> <True> <FORMAT_VALUE>sp0 (B:HANDLING_Spoilers_Lock, Bool) if{ (R:1:@TT_Package.GT_STATE_LOCKED) } els{ l0 '%.1f%%' @sprintf }</FORMAT_VALUE> </True> <False> <FORMAT_VALUE>'%.1f%%' @sprintf</FORMAT_VALUE> </False> </Condition> </False> </Condition> <ANIM_LAG>#LEVER_ANIM_LAG#</ANIM_LAG> </UseTemplate> <Condition Valid="USE_LOCK"> <UseTemplate Name="ASOBO_HANDLING_Base_Template"> <INTERACTION_TYPE>Switch</INTERACTION_TYPE> <TT_ICON>#TT_ICON_LOCK#</TT_ICON> <IE_NAME>Spoilers_Lock</IE_NAME> <NODE_ID>#LOCK_NODE_ID#</NODE_ID> <ANIM_NAME>#LOCK_ANIM_NAME#</ANIM_NAME> <TOOLTIP_TITLE>#TOOLTIP_SPOILERS_LOCK_TITLE#</TOOLTIP_TITLE> <TT_DESCRIPTION_ID>#TT_DESCRIPTION_ID_SPOILERS_LOCK#</TT_DESCRIPTION_ID> <WWISE_EVENT_1>#WWISE_EVENT_LOCK_1#</WWISE_EVENT_1> <WWISE_EVENT_2>#WWISE_EVENT_LOCK_2#</WWISE_EVENT_2> <SIMVAR_TO_WATCH_0>SPOILERS HANDLE POSITION</SIMVAR_TO_WATCH_0> <SET_STATE_EXTERNAL>p0 (A:SPOILERS HANDLE POSITION, percent) 0 == and (&gt;#LOCK_VAR_SCOPE#:#LOCK_VAR_NAME#)</SET_STATE_EXTERNAL> <GET_STATE_EXTERNAL>(A:SPOILERS HANDLE POSITION, percent) 0 &gt; if{ 0 (&gt;#LOCK_VAR_SCOPE#:#LOCK_VAR_NAME#) (#LOCK_VAR_SCOPE#:#LOCK_VAR_NAME#) sp0</GET_STATE_EXTERNAL> <COMP_INIT_CODE>(&gt;B:HANDLING_Spoilers_Lock_On)</COMP_INIT_CODE> <Condition Valid="INVERT_LOCK_ANIM"> <INVERT_ANIM>#INVERT_LOCK_ANIM#</INVERT_ANIM> </Condition> <CHECK_STATE_HAS_CHANGED>True</CHECK_STATE_HAS_CHANGED> </UseTemplate> </Condition> </Case> <Case Value="Switch"> <Switch Param="PUSH_TYPE"> <Case Value="EXTEND_FULL"> <UseTemplate Name="ASOBO_HANDLING_Push_Event_Base_Template"> <IE_NAME>Spoilers_Extend</IE_NAME> <SET_STATE_EXTERNAL>p0 (&gt;O:XMLVAR_Spoilers_Extended) p0 #ADDITIONAL_TESTS# if{ @16k (&gt;K:SPOILERS_SET) }</SET_STATE_EXTERNAL> <GET_STATE_EXTERNAL>(O:XMLVAR_Spoilers_Extended) s0 #ADDITIONAL_TESTS# if{ (A:SPOILERS HANDLE POSITION, Position 16k) @16k != if{ @16k (&gt;K:SPOILERS_SET) } }</GET_STATE_EXTERNAL> <STR_STATE_ON>Extended</STR_STATE_ON> <STR_STATE_OFF>Standby</STR_STATE_OFF> <TT_VALUE_ON>(R:1:@TT_Package.GT_STATE_EXTENDED)</TT_VALUE_ON> <TT_VALUE_OFF>(R:1:@TT_Package.GT_STATE_STANDBY)</TT_VALUE_OFF> <TT_DESCRIPTION_ID>#TT_DESCRIPTION_ID_EXTEND#</TT_DESCRIPTION_ID> <SIMVAR_TO_WATCH_0>SPOILERS HANDLE POSITION</SIMVAR_TO_WATCH_0> </UseTemplate> </Case> </Switch> <UseTemplate Name="ASOBO_HANDLING_Base_Template"> <IE_NAME>Spoilers</IE_NAME> <NUM_STATES>3</NUM_STATES> <COMP_UPDATE_CODE> (B:HANDLING_Spoilers) #POS_STANDBY# != #ADDITIONAL_TESTS# if{ #INCREMENT# -#INCREMENT# (B:HANDLING_Spoilers) #POS_INC# == ? (A:SPOILERS HANDLE POSITION, Position 16k) + @16k min 0 max (&gt;K:SPOILERS_SET) } </COMP_UPDATE_CODE> <FREQUENCY>#REPEAT_FREQUENCY#</FREQUENCY> <Switch Param="PUSH_TYPE"> <Case Value="EXTEND_FULL"> <IE_ID_EXTERNAL_0>Spoilers_Extend</IE_ID_EXTERNAL_0> <ON_PRIMARY_EVENT>(B:HANDLING_Spoilers) #POS_STANDBY# == if{ (&gt;B:HANDLING_Spoilers_Extend_Toggle) }</ON_PRIMARY_EVENT> <ANIM_CODE_PUSH>(B:HANDLING_Spoilers_Extend, Bool) 100 *</ANIM_CODE_PUSH> <OVERRIDE_ANIM_CODE>(B:HANDLING_Spoilers) 100 *</OVERRIDE_ANIM_CODE> <ON_STATE_CHANGED_EXTERNAL_CODE>(O:HANDLING_Spoilers_Position) #POS_STANDBY# != (B:HANDLING_Spoilers_Extend, Bool) and if{ #POS_STANDBY# (&gt;O:HANDLING_Spoilers_Position) }</ON_STATE_CHANGED_EXTERNAL_CODE> <WWISE_PUSH_EVENT_1>spoilers_switch_push_on</WWISE_PUSH_EVENT_1> <WWISE_PUSH_EVENT_2>spoilers_switch_push_off</WWISE_PUSH_EVENT_2> </Case> </Switch> <SET_STATE_#POS_INC#>#STATE_INC# (&gt;O:XMLVAR_Spoilers_Switch_Mode)</SET_STATE_#POS_INC#> <SET_STATE_#POS_STANDBY#>#STATE_STANDBY# (&gt;O:XMLVAR_Spoilers_Switch_Mode)</SET_STATE_#POS_STANDBY#> <SET_STATE_#POS_DEC#>#STATE_DEC# (&gt;O:XMLVAR_Spoilers_Switch_Mode)</SET_STATE_#POS_DEC#> <TT_VALUE>(A:SPOILERS HANDLE POSITION, percent) '%d%%' @sprintf</TT_VALUE> <TT_VALUE_IS_DYNAMIC>True</TT_VALUE_IS_DYNAMIC> <STR_STATE_#POS_INC#>Deploy</STR_STATE_#POS_INC#> <STR_STATE_#POS_STANDBY#>Standby</STR_STATE_#POS_STANDBY#> <STR_STATE_#POS_DEC#>Retract</STR_STATE_#POS_DEC#> <GET_STATE_EXTERNAL>(O:XMLVAR_Spoilers_Switch_Mode) sp0</GET_STATE_EXTERNAL> <ENUM_VAL_TO_POS_EXTERNAL>#POS_STANDBY# sp1 l0 #STATE_STANDBY# == if{ #POS_STANDBY# sp1 g1 } l0 #STATE_INC# == if{ #POS_INC# sp1 g1 } l0 #STATE_DEC# == if{ #POS_DEC# sp1 g1 } :1 l1 </ENUM_VAL_TO_POS_EXTERNAL> </UseTemplate> </Case> </Switch> </Template> <!-- Require INTERACTION_TYPE value: - LEVER case (classic flaps lever) : - BUTTON case : require MAX_FLAPS_DEGREE (plane fixed caracteristic) and SELECTED_FLAPS_DEGREE (choice linked to the button) --> <Template Name="ASOBO_HANDLING_Flaps_SubTemplate"> <Switch Param="INTERACTION_TYPE"> <Case Value="Lever"> <UseTemplate Name="ASOBO_HANDLING_Flaps_Lever_SubTemplate"/> </Case> <Case Value="Push"> <UseTemplate Name="ASOBO_HANDLING_Flaps_Button_SubTemplate"/> </Case> </Switch> </Template> <Template Name="ASOBO_HANDLING_Flaps_Lever_SubTemplate"> <Parameters Type="Default"> <Condition Valid="HAS_BUTTON"> <True> <ANIM_NAME_LEVER>HANDLING_Lever_Flaps</ANIM_NAME_LEVER> <ANIM_NAME_BUTTON>HANDLING_Lever_Button_Flaps</ANIM_NAME_BUTTON> <NODE_ID>HANDLING_Lever_Flaps</NODE_ID> <PART_ID>HANDLING_Lever_Flaps</PART_ID> <ANIM_TRIGGER_COUNT>1</ANIM_TRIGGER_COUNT> <ANIM_SPEED>5</ANIM_SPEED> <DRAG_DELTA>0.1</DRAG_DELTA> <ANIMREF_ID>1</ANIMREF_ID> <AXIS>Y</AXIS> <MAX_HANDLE_INDEX>(A:FLAPS NUM HANDLE POSITIONS:1, Number)</MAX_HANDLE_INDEX> <MIN_DELTA>0.25</MIN_DELTA> <DONT_SYNC_DRAG_TO_ANIM/> <DONT_CREATE_SOUND_ANIM_TRIGGERS/> </True> <False> <ANIM_NAME>HANDLING_Lever_Flaps</ANIM_NAME> <NODE_ID>HANDLING_Lever_Flaps</NODE_ID> <PART_ID>HANDLING_Lever_Flaps</PART_ID> <ANIM_TRIGGER_COUNT>2</ANIM_TRIGGER_COUNT> <MIN_DELTA>0.25</MIN_DELTA> <MAX_HANDLE_INDEX>2</MAX_HANDLE_INDEX> <ANIM_LAG>400</ANIM_LAG> <HELPID>HELPID_GAUGE_FLAPS_SWITCH</HELPID> <ANIMREF_ID>0</ANIMREF_ID> </False> </Condition> <ANIMTIP_0_ON_PERCENT>0</ANIMTIP_0_ON_PERCENT> <ANIMTIP_1_ON_PERCENT>0.5</ANIMTIP_1_ON_PERCENT> <ANIMTIP_2_ON_PERCENT>1</ANIMTIP_2_ON_PERCENT> <ANIMTIP_0>TT:COCKPIT.TOOLTIPS.FLAPS_LEVER_UP</ANIMTIP_0> <ANIMTIP_1>TT:COCKPIT.TOOLTIPS.FLAPS_LEVER_TO</ANIMTIP_1> <ANIMTIP_2>TT:COCKPIT.TOOLTIPS.FLAPS_LEVER_LDG</ANIMTIP_2> <TOOLTIP_FLAPS_TITLE>@TT_Package.HANDLING_LEVER_FLAPS_TITLE</TOOLTIP_FLAPS_TITLE> </Parameters> <Parameters Type="Override"> <TOOLTIP_TITLE>#TOOLTIP_FLAPS_TITLE#</TOOLTIP_TITLE> <TOOLTIP_ENTRY_0>HANDLING_Flaps</TOOLTIP_ENTRY_0> <ANIM_CODE>(B:HANDLING_Flaps)</ANIM_CODE> <STEP_INCREMENT>16384 (A:FLAPS NUM HANDLE POSITIONS, Number) /</STEP_INCREMENT> <Condition Valid="HAS_BUTTON"> <False> <ANIM_NAME_LEVER>#ANIM_NAME#</ANIM_NAME_LEVER> </False> </Condition> </Parameters> <Parameters Type="Override"> <Condition Valid="INVERT_INTERACTION"> <True> <DRAG_POSITION>1 (M:DragPercent) - 16384 *</DRAG_POSITION> <INVERT_ANIM>True</INVERT_ANIM> </True> <False> <DRAG_POSITION>(M:DragPercent) 16384 *</DRAG_POSITION> </False> </Condition> </Parameters> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <Condition Valid="HAS_BUTTON"> <UseTemplate Name="ASOBO_GT_Anim_Code"> <ANIM_NAME>#ANIM_NAME_BUTTON#</ANIM_NAME> <ANIM_CODE> (O:XMLVAR_Interacting_With_Lever) 100 * </ANIM_CODE> <Condition Check="BUTTON_ANIM_LAG"> <ANIM_LAG>#BUTTON_ANIM_LAG#</ANIM_LAG> </Condition> <ANIM_LENGTH>100</ANIM_LENGTH> </UseTemplate> </Condition> <UseInputEvent ID="HANDLING"> <FLAPS_ID>1</FLAPS_ID> </UseInputEvent> <Condition Check="USE_TRAJECTORY_DRAG_MODE"> <True> <UseTemplate Name="ASOBO_GT_Lever_DraggingWheelLeftDrag_Axis"> <ANIM_NAME>#ANIM_NAME_LEVER#</ANIM_NAME> <DRAG_ANIM_NAME>#ANIM_NAME_LEVER#</DRAG_ANIM_NAME> <Condition Valid="HAS_BUTTON"> <LOCK_CODE>1 (&gt;O:XMLVAR_Interacting_With_Lever)</LOCK_CODE> <UNLOCK_CODE>0 (&gt;O:XMLVAR_Interacting_With_Lever)</UNLOCK_CODE> </Condition> <DONT_SYNC_DRAG_TO_ANIM/> <NO_ARROWS/> <CURSOR>Hand</CURSOR> <HELPID>HELPID_GAUGE_FLAPS_SWITCH</HELPID> <TOOLTIPID>TOOLTIPTEXT_FLAPS_SWITCH</TOOLTIPID> <DRAG_SIMVAR>FLAPS HANDLE PERCENT</DRAG_SIMVAR> <DRAG_CODE>#DRAG_POSITION# (&gt;B:HANDLING_Flaps_Set)</DRAG_CODE> <POSITIVE_AXIS_CODE>#STEP_INCREMENT# (&gt;B:HANDLING_Flaps_Inc)</POSITIVE_AXIS_CODE> <NEGATIVE_AXIS_CODE>#STEP_INCREMENT# (&gt;B:HANDLING_Flaps_Dec)</NEGATIVE_AXIS_CODE> </UseTemplate> </True> <False> <UseTemplate Name="ASOBO_GT_Lever_DraggingYAxis_Code"> <ANIM_NAME>#ANIM_NAME_LEVER#</ANIM_NAME> <Condition Valid="HAS_BUTTON"> <LEFT_SINGLE_CODE>1 (&gt;O:XMLVAR_Interacting_With_Lever)</LEFT_SINGLE_CODE> <LEFT_RELEASE_CODE>0 (&gt;O:XMLVAR_Interacting_With_Lever)</LEFT_RELEASE_CODE> </Condition> <ANIM_LENGTH>100</ANIM_LENGTH> <UP_CODE>#STEP_INCREMENT# (&gt;B:HANDLING_Flaps_Dec)</UP_CODE> <DOWN_CODE>#STEP_INCREMENT# (&gt;B:HANDLING_Flaps_Inc)</DOWN_CODE> <DRAG_DELTA>0.05</DRAG_DELTA> <DRAG_SPEED>0.5</DRAG_SPEED> <IS_LOOPING/> </UseTemplate> </False> </Condition> <UseTemplate Name="ASOBO_GT_AnimTriggers_SoundEvents_Same"> <WWISE_EVENT>lever_flaps</WWISE_EVENT> <COUNT>#ANIM_TRIGGER_COUNT#</COUNT> <ANIM_NAME>#ANIM_NAME_LEVER#</ANIM_NAME> </UseTemplate> <Condition Valid="HAS_BUTTON"> <UseTemplate Name="ASOBO_GT_AnimTriggers_2SoundEvents"> <ANIM_NAME>#ANIM_NAME_BUTTON#</ANIM_NAME> <WWISE_EVENT_1>flaps_lever_button_on</WWISE_EVENT_1> <NORMALIZED_TIME_1>0.1</NORMALIZED_TIME_1> <DIRECTION_1>Forward</DIRECTION_1> <WWISE_EVENT_2>flaps_lever_button_off</WWISE_EVENT_2> <NORMALIZED_TIME_2>0.9</NORMALIZED_TIME_2> <DIRECTION_2>Backward</DIRECTION_2> </UseTemplate> <UseTemplate Name="ASOBO_GT_Visibility_Code"> <VISIBILITY_CODE>(L:XMLVAR_LeverFlapsHidden) !</VISIBILITY_CODE> </UseTemplate> </Condition> </Component> </Template> <Template Name="ASOBO_HANDLING_Flaps_Button_SubTemplate"> <Parameters Type="Default"> <ANIM_NAME>HANDLING_Button_Flaps</ANIM_NAME> <NODE_ID>HANDLING_Button_Flaps</NODE_ID> <PART_ID>HANDLING_Button_Flaps</PART_ID> <MAX_FLAPS_DEGREE>45</MAX_FLAPS_DEGREE> <SELECTED_FLAPS_DEGREE>0</SELECTED_FLAPS_DEGREE> <WWISE_PREFIX>flaps</WWISE_PREFIX> </Parameters> <Parameters Type="Default"> <TOOLTIP_TITLE>@TT_Package.HANDLING_BUTTON_FLAPS_TITLE</TOOLTIP_TITLE> <TT_DESCRIPTION_ID>@TT_Package.HANDLING_BUTTON_FLAPS_ACTION</TT_DESCRIPTION_ID> <TT_DESCRIPTION_INDEX>#SELECTED_FLAPS_DEGREE#</TT_DESCRIPTION_INDEX> </Parameters> <UseInputEvent ID="HANDLING"> <FLAPS_ID>1</FLAPS_ID> </UseInputEvent> <UseTemplate Name="ASOBO_HANDLING_Base_Template"> <IE_NAME>Flaps_Select_#SELECTED_FLAPS_DEGREE#_Degrees</IE_NAME> <INTERACTION_TYPE>Push</INTERACTION_TYPE> <SET_STATE_EXTERNAL>16384 #SELECTED_FLAPS_DEGREE# * #MAX_FLAPS_DEGREE# / (&gt;B:HANDLING_Flaps_Set)</SET_STATE_EXTERNAL> <TT_VALUE>(A:TRAILING EDGE FLAPS LEFT ANGLE, degree) '%d°' @sprintf</TT_VALUE> <TT_VALUE_IS_DYNAMIC>True</TT_VALUE_IS_DYNAMIC> </UseTemplate> </Template> <Template Name="ASOBO_HANDLING_Autobrakes_SubTemplate"> <Parameters Type="Default"> <NODE_ID>HANDLING_#INTERACTION_TYPE#_Autobrake_#ID#</NODE_ID> <ANIM_NAME>HANDLING_#INTERACTION_TYPE#_Autobrake_#ID#</ANIM_NAME> <PART_ID>HANDLING_#INTERACTION_TYPE#_Autobrake</PART_ID> <Switch Param="INTERACTION_TYPE"> <Case Value="Push"> <TYPE>ON_OFF</TYPE> <WWISE_PREFIX>autobrake</WWISE_PREFIX> <AUTOBRAKE_LEVEL Process="Int">#ID# 1 +</AUTOBRAKE_LEVEL> <AUTOBRAKE_RTO>0</AUTOBRAKE_RTO> <AUTOBRAKE_OFF>1</AUTOBRAKE_OFF> <Switch Param="ID"> <Case Value="1"> <TT_DESCRIPTION_ID>@TT_Package.LANDING_GEAR_PUSH_AUTOBKR_ACTION_LOW</TT_DESCRIPTION_ID> </Case> <Case Value="2"> <TT_DESCRIPTION_ID>@TT_Package.LANDING_GEAR_PUSH_AUTOBKR_ACTION_MED</TT_DESCRIPTION_ID> </Case> <Case Value="3"> <TT_DESCRIPTION_ID>@TT_Package.LANDING_GEAR_PUSH_AUTOBKR_ACTION_MAX</TT_DESCRIPTION_ID> </Case> </Switch> <IS_AIRLINER>True</IS_AIRLINER> <AUTODISABLE_COUNTDOWN>3</AUTODISABLE_COUNTDOWN> <Condition Valid="DISABLED_IN_FLIGHT"> <True> <TEST_DISABLED>(A:SIM ON GROUND, Bool) !</TEST_DISABLED> </True> <False> <TEST_DISABLED>0</TEST_DISABLED> </False> </Condition> </Case> <Case Value="Knob"> <TYPE>X_STATES</TYPE> <WWISE_PREFIX>autobrakes</WWISE_PREFIX> <TT_DESCRIPTION_ID>@TT_Package.LANDING_GEAR_KNOB_ALT_AUTOBRAKE_ACTION</TT_DESCRIPTION_ID> <Switch Param="AIRLINER_TYPE"> <Case Value="BOEING"> <POS_RTO>0</POS_RTO> <POS_OFF>1</POS_OFF> <POS_DISARM>2</POS_DISARM> <POS_1>3</POS_1> <POS_2>4</POS_2> <POS_3>5</POS_3> <POS_4>6</POS_4> <POS_MAX_AUTO>7</POS_MAX_AUTO> <NUM_STATES>8</NUM_STATES> </Case> </Switch> </Case> </Switch> <TOOLTIP_TITLE>@TT_Package.LANDING_GEAR_PUSH_AUTOBKR_TITLE</TOOLTIP_TITLE> </Parameters> <Parameters Type="Override"> <Switch Param="TYPE"> <Case Value="ON_OFF"> <SET_SIMVAR_FROM_POSITION> (* SwimVar pos is handled there for interactions + in update for automatic state switches *) -1 sp0 (A:SIM ON GROUND, Bool) if{ (L:XMLVAR_Autobrake_Level_Armed) #AUTOBRAKE_OFF# == if{ #AUTOBRAKE_OFF# sp0 } els{ #AUTOBRAKE_RTO# sp0 } } els{ (L:XMLVAR_Autobrake_Level_Armed) sp0 } l0 -1 != l0 (A:AUTO BRAKE SWITCH CB, Enum) != and if{ l0 (&gt;K:SET_AUTOBRAKE_CONTROL) } </SET_SIMVAR_FROM_POSITION> </Case> </Switch> </Parameters> <Parameters Type="Override"> <Switch Param="TYPE"> <Case Value="ON_OFF"> <LOCAL_VAR_TO_WATCH_0>XMLVAR_Autobrake_Level_Armed</LOCAL_VAR_TO_WATCH_0> <SIMVAR_TO_WATCH_0>ANTISKID BRAKES ACTIVE</SIMVAR_TO_WATCH_0> <SIMVAR_TO_WATCH_1>BRAKE LEFT POSITION EX1</SIMVAR_TO_WATCH_1> <SIMVAR_TO_WATCH_2>BRAKE RIGHT POSITION EX1</SIMVAR_TO_WATCH_2> <SET_STATE_EXTERNAL> #TEST_DISABLED# if{ 0 (&gt;O:HANDLING_Autobrake_Level_#ID#_Position) } els{ p0 if{ #AUTOBRAKE_LEVEL# (&gt;L:XMLVAR_Autobrake_Level_Armed) } els{ (L:XMLVAR_Autobrake_Level_Armed) #AUTOBRAKE_LEVEL# == if{ #AUTOBRAKE_OFF# (&gt;L:XMLVAR_Autobrake_Level_Armed) } } } #SET_SIMVAR_FROM_POSITION# </SET_STATE_EXTERNAL> <!-- AUTOBRAKE system is disarmed: --> <!-- 10 seconds after raising landing gear lever --> <!-- When applying sufficient brake pedal deflection to one brake pedal --> <GET_STATE_EXTERNAL> (L:XMLVAR_Autobrake_Level_Armed) #AUTOBRAKE_LEVEL# == sp0 (A:ANTISKID BRAKES ACTIVE, Bool) (A:BRAKE LEFT POSITION EX1, percent) 95 &gt; (A:BRAKE RIGHT POSITION EX1, percent) 95 &gt; or ! and sp1 l0 l1 ! and if{ #AUTOBRAKE_OFF# (&gt;L:XMLVAR_Autobrake_Level_Armed) } l0 l1 and sp0 </GET_STATE_EXTERNAL> <Condition Check="ID" Match="1"> <COMP_INIT_CODE>(A:AUTO BRAKE SWITCH CB, Enum) (&gt;L:XMLVAR_Autobrake_Level_Armed) (A:GEAR HANDLE POSITION, Bool) (&gt;O:_Gear_Position) #SET_SIMVAR_FROM_POSITION#</COMP_INIT_CODE> <COMP_UPDATE_CODE> (* Handle disarming after landing gear up *) (O:_Countdown_Disable_Autobrake) 0 &gt; if{ (O:_Countdown_Disable_Autobrake) 1 - (&gt;O:_Countdown_Disable_Autobrake) (O:_Countdown_Disable_Autobrake) 0 &lt;= if{ 1 (&gt;K:SET_AUTOBRAKE_CONTROL) #AUTOBRAKE_OFF# (&gt;L:XMLVAR_Autobrake_Level_Armed) } } (L:XMLVAR_Autobrake_Level_Armed) #AUTOBRAKE_OFF# &gt; if{ (A:GEAR HANDLE POSITION, Bool) s0 (O:_Gear_Position) != sp1 l0 (&gt;O:_Gear_Position) l1 l0 ! and if{ #AUTODISABLE_COUNTDOWN# (&gt;O:_Countdown_Disable_Autobrake) } } </COMP_UPDATE_CODE> </Condition> <Condition Valid="IS_AIRLINER"> <SEQ1_EMISSIVE_CODE>(B:HANDLING_Autobrake_Level_#ID#, Bool) (A:AUTOBRAKES ACTIVE, Bool) (A:REJECTED TAKEOFF BRAKES ACTIVE, Bool) or and</SEQ1_EMISSIVE_CODE> <SEQ2_EMISSIVE_CODE>(B:HANDLING_Autobrake_Level_#ID#, Bool)</SEQ2_EMISSIVE_CODE> </Condition> </Case> <Case Value="X_STATES"> <KNOB_TYPE>X_STATES</KNOB_TYPE> <SIMVAR_TO_WATCH_0>AUTO BRAKE SWITCH CB</SIMVAR_TO_WATCH_0> <Switch Param="AIRLINER_TYPE"> <Case Value="BOEING"> <STR_STATE_#POS_RTO#>RTO</STR_STATE_#POS_RTO#> <STR_STATE_#POS_OFF#>Off</STR_STATE_#POS_OFF#> <STR_STATE_#POS_DISARM#>Disarm</STR_STATE_#POS_DISARM#> <STR_STATE_#POS_1#>Level_1</STR_STATE_#POS_1#> <STR_STATE_#POS_2#>Level_2</STR_STATE_#POS_2#> <STR_STATE_#POS_3#>Level_3</STR_STATE_#POS_3#> <STR_STATE_#POS_4#>Level_4</STR_STATE_#POS_4#> <STR_STATE_#POS_MAX_AUTO#>Max_Auto</STR_STATE_#POS_MAX_AUTO#> <TT_VALUE_#POS_RTO#>@TT_Package.GT_STATE_RTO</TT_VALUE_#POS_RTO#> <TT_VALUE_#POS_OFF#>@TT_Package.GT_STATE_OFF</TT_VALUE_#POS_OFF#> <TT_VALUE_#POS_DISARM#>@TT_Package.GT_STATE_DISARM</TT_VALUE_#POS_DISARM#> <TT_VALUE_#POS_1#>'1'</TT_VALUE_#POS_1#> <TT_VALUE_#POS_1#_IS_DYNAMIC>True</TT_VALUE_#POS_1#_IS_DYNAMIC> <TT_VALUE_#POS_2#>'2'</TT_VALUE_#POS_2#> <TT_VALUE_#POS_2#_IS_DYNAMIC>True</TT_VALUE_#POS_2#_IS_DYNAMIC> <TT_VALUE_#POS_3#>'3'</TT_VALUE_#POS_3#> <TT_VALUE_#POS_3#_IS_DYNAMIC>True</TT_VALUE_#POS_3#_IS_DYNAMIC> <TT_VALUE_#POS_4#>'4'</TT_VALUE_#POS_4#> <TT_VALUE_#POS_4#_IS_DYNAMIC>True</TT_VALUE_#POS_4#_IS_DYNAMIC> <TT_VALUE_#POS_MAX_AUTO#>@TT_Package.GT_STATE_MAXAUTO</TT_VALUE_#POS_MAX_AUTO#> <SET_STATE_#POS_RTO#>0 (&gt;K:SET_AUTOBRAKE_CONTROL)</SET_STATE_#POS_RTO#> <SET_STATE_#POS_OFF#>1 (&gt;K:SET_AUTOBRAKE_CONTROL)</SET_STATE_#POS_OFF#> <SET_STATE_#POS_DISARM#>1 (&gt;K:SET_AUTOBRAKE_CONTROL)</SET_STATE_#POS_DISARM#> <SET_STATE_#POS_1#>2 (&gt;K:SET_AUTOBRAKE_CONTROL)</SET_STATE_#POS_1#> <SET_STATE_#POS_2#>3 (&gt;K:SET_AUTOBRAKE_CONTROL)</SET_STATE_#POS_2#> <SET_STATE_#POS_3#>4 (&gt;K:SET_AUTOBRAKE_CONTROL)</SET_STATE_#POS_3#> <SET_STATE_#POS_4#>5 (&gt;K:SET_AUTOBRAKE_CONTROL)</SET_STATE_#POS_4#> <SET_STATE_#POS_MAX_AUTO#>6 (&gt;K:SET_AUTOBRAKE_CONTROL)</SET_STATE_#POS_MAX_AUTO#> <GET_STATE_EXTERNAL>(A:AUTO BRAKE SWITCH CB, Number) sp0 (O:XMLVAR_Autobrake_Disarm) sp1</GET_STATE_EXTERNAL> <ENUM_VAL_TO_POS_EXTERNAL> l1 if{ #POS_DISARM# sp2 g2 } els{ l0 0 == if{ #POS_RTO# sp2 g2 } l0 1 == if{ #POS_OFF# sp2 g2 } l0 2 == if{ #POS_1# sp2 g2 } l0 3 == if{ #POS_2# sp2 g2 } l0 4 == if{ #POS_3# sp2 g2 } l0 5 == if{ #POS_4# sp2 g2 } l0 6 == if{ #POS_MAX_AUTO# sp2 g2 } } :2 l2 </ENUM_VAL_TO_POS_EXTERNAL> <ON_STATE_CHANGED_EXTERNAL_CODE>p0 #POS_DISARM# == (&gt;O:XMLVAR_Autobrake_Disarm)</ON_STATE_CHANGED_EXTERNAL_CODE> </Case> </Switch> </Case> </Switch> </Parameters> <UseTemplate Name="ASOBO_HANDLING_Base_Template"> <Switch Param="TYPE"> <Case Value="ON_OFF"> <IE_NAME>Autobrake_Level_#ID#</IE_NAME> </Case> <Case Value="X_STATES"> <IE_NAME>Autobrake_#ID#</IE_NAME> </Case> </Switch> </UseTemplate> </Template> <Template Name="ASOBO_HANDLING_Wipers_Controller_SubTemplate"> <Parameters Type="Default"> <NODE_ID>HANDLING_#INTERACTION_TYPE#_Wipers</NODE_ID> <ANIM_NAME>HANDLING_#INTERACTION_TYPE#_Wipers</ANIM_NAME> <WWISE_EVENT>wipers_switch</WWISE_EVENT> <TEMPLATE_TO_USE>ASOBO_GT_Switch_XStates</TEMPLATE_TO_USE> <CIRCUIT_ID_WIPERS>1</CIRCUIT_ID_WIPERS> <Switch> <Case Valid="OFF_INT_LOW_HIGH"> <POWER_INT>30</POWER_INT> <POWER_LOW>75</POWER_LOW> <POWER_HIGH>100</POWER_HIGH> <POS_OFF>0</POS_OFF> <POS_INT>1</POS_INT> <POS_LOW>2</POS_LOW> <POS_HIGH>3</POS_HIGH> <NUM_STATES>4</NUM_STATES> </Case> <Case Valid="PARK_OFF_NORM_FAST"> <POWER_FAST>100</POWER_FAST> <POWER_NORM>50</POWER_NORM> <POS_PARK>0</POS_PARK> <POS_OFF>1</POS_OFF> <POS_NORM>2</POS_NORM> <POS_FAST>3</POS_FAST> <MOMENTARY_MIN_DURATION>0.1</MOMENTARY_MIN_DURATION> <CIRCUIT_ID_PARK>1</CIRCUIT_ID_PARK> <NUM_STATES>4</NUM_STATES> </Case> <Default> <POWER_NORM>100</POWER_NORM> <POWER_SLOW>75</POWER_SLOW> <POS_NORM>0</POS_NORM> <POS_OFF>1</POS_OFF> <POS_SLOW>2</POS_SLOW> <NUM_STATES>3</NUM_STATES> </Default> </Switch> <SWITCH_DIRECTION>Horizontal</SWITCH_DIRECTION> <IE_WIPERS_ID>Wipers</IE_WIPERS_ID> </Parameters> <Parameters Type="Override"> <Switch Param="INTERACTION_TYPE"> <Case Value="Knob"> <ANIM>EXTERNAL</ANIM> <ARROW_TYPE>Curved</ARROW_TYPE> <TT_ICON>Rotate</TT_ICON> </Case> </Switch> <INPUT_EVENT_ID_SOURCE>HANDLING</INPUT_EVENT_ID_SOURCE> <USE_INPUT_EVENT_ID>HANDLING</USE_INPUT_EVENT_ID> <BTN_ID>#IE_WIPERS_ID#</BTN_ID> </Parameters> <Parameters Type="Override"> <SET_POWER>#CIRCUIT_ID_WIPERS# (&gt;K:2:ELECTRICAL_CIRCUIT_POWER_SETTING_SET)</SET_POWER> <GET_POWER>(A:CIRCUIT POWER SETTING:#CIRCUIT_ID_WIPERS#, Percent)</GET_POWER> <Switch> <Case Valid="PARK_OFF_NORM_FAST"> <PARK_ON>(A:CIRCUIT SWITCH ON:#CIRCUIT_ID_PARK#, Bool) ! if{ #CIRCUIT_ID_PARK# (&gt;K:ELECTRICAL_CIRCUIT_TOGGLE) }</PARK_ON> <PARK_OFF>(A:CIRCUIT SWITCH ON:#CIRCUIT_ID_PARK#, Bool) if{ #CIRCUIT_ID_PARK# (&gt;K:ELECTRICAL_CIRCUIT_TOGGLE) }</PARK_OFF> <IS_PARK_ON>(A:CIRCUIT SWITCH ON:#CIRCUIT_ID_PARK#, Bool)</IS_PARK_ON> <INIT_WIPERS_STATE> (A:CIRCUIT SWITCH ON:#CIRCUIT_ID_PARK#, Bool) if{ #CIRCUIT_ID_PARK# (&gt;K:ELECTRICAL_CIRCUIT_TOGGLE) } (A:CIRCUIT SWITCH ON:#CIRCUIT_ID_WIPERS#, Bool) if{ #CIRCUIT_ID_WIPERS# (&gt;K:ELECTRICAL_CIRCUIT_TOGGLE) } </INIT_WIPERS_STATE> <Condition> <Test> <GreaterOrEqual> <Number>#POS_PARK#</Number> <Number>1</Number> </GreaterOrEqual> </Test> <True> <STATE_MAX_TIMER>#MOMENTARY_MIN_DURATION#</STATE_MAX_TIMER> <STATE0_TIMER>0</STATE0_TIMER> <REST_STATE Process="Int">#POS_PARK# 1 -</REST_STATE> </True> <False> <STATE_MAX_TIMER>0</STATE_MAX_TIMER> <STATE0_TIMER>#MOMENTARY_MIN_DURATION#</STATE0_TIMER> <REST_STATE Process="Int">1</REST_STATE> </False> </Condition> </Case> <Default> <INIT_WIPERS_STATE>(A:CIRCUIT SWITCH ON:#CIRCUIT_ID_WIPERS#, Bool) if{ #CIRCUIT_ID_WIPERS# (&gt;K:ELECTRICAL_CIRCUIT_TOGGLE) }</INIT_WIPERS_STATE> </Default> </Switch> <WIPERS_ON>(A:CIRCUIT SWITCH ON:#CIRCUIT_ID_WIPERS#, Bool) ! if{ #CIRCUIT_ID_WIPERS# (&gt;K:ELECTRICAL_CIRCUIT_TOGGLE) }</WIPERS_ON> <WIPERS_OFF>(A:CIRCUIT SWITCH ON:#CIRCUIT_ID_WIPERS#, Bool) if{ #CIRCUIT_ID_WIPERS# (&gt;K:ELECTRICAL_CIRCUIT_TOGGLE) }</WIPERS_OFF> <IS_WIPERS_ON>(A:CIRCUIT SWITCH ON:#CIRCUIT_ID_WIPERS#, Bool)</IS_WIPERS_ON> </Parameters> <Parameters Type="Override"> <Condition NotEmpty="CIRCUIT_ID_WIPERS"> <SIMVAR_TO_WATCH_0>CIRCUIT SWITCH ON:#CIRCUIT_ID_WIPERS#</SIMVAR_TO_WATCH_0> <SIMVAR_TO_WATCH_1>CIRCUIT POWER SETTING:#CIRCUIT_ID_WIPERS#</SIMVAR_TO_WATCH_1> </Condition> <Switch> <Case Valid="OFF_INT_LOW_HIGH"> <GET_STATE_EXTERNAL>#IS_WIPERS_ON# sp0 #GET_POWER# near sp1</GET_STATE_EXTERNAL> <ENUM_VAL_TO_POS_EXTERNAL> l0 if{ l1 #POWER_INT# == if{ #POS_INT# sp2 } els{ l1 #POWER_LOW# == if{ #POS_LOW# sp2 } els{ #POS_HIGH# sp2 } } g2 } els{ #POS_OFF# sp2 g2 } :2 l2 </ENUM_VAL_TO_POS_EXTERNAL> <SET_STATE_#POS_OFF#>#WIPERS_OFF#</SET_STATE_#POS_OFF#> <SET_STATE_#POS_INT#>#WIPERS_ON# #POWER_INT# #SET_POWER#</SET_STATE_#POS_INT#> <SET_STATE_#POS_LOW#>#WIPERS_ON# #POWER_LOW# #SET_POWER#</SET_STATE_#POS_LOW#> <SET_STATE_#POS_HIGH#>#WIPERS_ON# #POWER_HIGH# #SET_POWER#</SET_STATE_#POS_HIGH#> <STR_STATE_#POS_OFF#>Off</STR_STATE_#POS_OFF#> <STR_STATE_#POS_INT#>Int</STR_STATE_#POS_INT#> <STR_STATE_#POS_LOW#>Low</STR_STATE_#POS_LOW#> <STR_STATE_#POS_HIGH#>High</STR_STATE_#POS_HIGH#> <TT_VALUE_#POS_OFF#>@TT_Package.GT_STATE_OFF</TT_VALUE_#POS_OFF#> <TT_VALUE_#POS_INT#>@TT_Package.GT_STATE_INT</TT_VALUE_#POS_INT#> <TT_VALUE_#POS_LOW#>@TT_Package.GT_STATE_LOW</TT_VALUE_#POS_LOW#> <TT_VALUE_#POS_HIGH#>@TT_Package.GT_STATE_HIGH</TT_VALUE_#POS_HIGH#> <CODE_POS_#POS_OFF#>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#BTN_ID#_Off)</CODE_POS_#POS_OFF#> <CODE_POS_#POS_INT#>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#BTN_ID#_Int)</CODE_POS_#POS_INT#> <CODE_POS_#POS_LOW#>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#BTN_ID#_Low)</CODE_POS_#POS_LOW#> <CODE_POS_#POS_HIGH#>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#BTN_ID#_High)</CODE_POS_#POS_HIGH#> <STATE#POS_OFF#_TEST>(B:#INPUT_EVENT_ID_SOURCE#_#BTN_ID#) #POS_OFF# ==</STATE#POS_OFF#_TEST> <STATE#POS_INT#_TEST>(B:#INPUT_EVENT_ID_SOURCE#_#BTN_ID#) #POS_INT# ==</STATE#POS_INT#_TEST> <STATE#POS_LOW#_TEST>(B:#INPUT_EVENT_ID_SOURCE#_#BTN_ID#) #POS_LOW# ==</STATE#POS_LOW#_TEST> <STATE#POS_HIGH#_TEST>(B:#INPUT_EVENT_ID_SOURCE#_#BTN_ID#) #POS_HIGH# ==</STATE#POS_HIGH#_TEST> </Case> <Case Valid="PARK_OFF_NORM_FAST"> <SIMVAR_TO_WATCH_2>CIRCUIT SWITCH ON:#CIRCUIT_ID_PARK#</SIMVAR_TO_WATCH_2> <GET_STATE_EXTERNAL>#IS_WIPERS_ON# sp0 #IS_PARK_ON# sp1 #GET_POWER# near sp2</GET_STATE_EXTERNAL> <ENUM_VAL_TO_POS_EXTERNAL> l0 if{ l2 #POWER_FAST# == if{ #POS_FAST# sp3 } els{ #POS_NORM# sp3 } g2 } els{ l1 if{ #POS_PARK# sp3 } els{ #POS_OFF# sp3 } g2 } :2 l3 </ENUM_VAL_TO_POS_EXTERNAL> <CODE_POS_RETURN Process="Param">CODE_POS_#REST_STATE#</CODE_POS_RETURN> <SET_STATE_#POS_FAST#>#PARK_OFF# #WIPERS_ON# #POWER_FAST# #SET_POWER#</SET_STATE_#POS_FAST#> <SET_STATE_#POS_NORM#>#PARK_OFF# #WIPERS_ON# #POWER_NORM# #SET_POWER#</SET_STATE_#POS_NORM#> <SET_STATE_#POS_OFF#>#PARK_OFF# #WIPERS_OFF#</SET_STATE_#POS_OFF#> <SET_STATE_#POS_PARK#>#PARK_ON# #WIPERS_OFF#</SET_STATE_#POS_PARK#> <STR_STATE_#POS_FAST#>Fast</STR_STATE_#POS_FAST#> <STR_STATE_#POS_NORM#>Norm</STR_STATE_#POS_NORM#> <STR_STATE_#POS_OFF#>Off</STR_STATE_#POS_OFF#> <STR_STATE_#POS_PARK#>Park</STR_STATE_#POS_PARK#> <TT_VALUE_#POS_FAST#>@TT_Package.GT_STATE_FAST</TT_VALUE_#POS_FAST#> <TT_VALUE_#POS_NORM#>@TT_Package.GT_STATE_NORMAL</TT_VALUE_#POS_NORM#> <TT_VALUE_#POS_OFF#>@TT_Package.GT_STATE_OFF</TT_VALUE_#POS_OFF#> <TT_VALUE_#POS_PARK#>@TT_Package.GT_STATE_PARK</TT_VALUE_#POS_PARK#> <CODE_POS_#POS_FAST#>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#BTN_ID#_Fast)</CODE_POS_#POS_FAST#> <CODE_POS_#POS_NORM#>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#BTN_ID#_Norm)</CODE_POS_#POS_NORM#> <CODE_POS_#POS_OFF#>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#BTN_ID#_Off)</CODE_POS_#POS_OFF#> <CODE_POS_#POS_PARK#>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#BTN_ID#_Park)</CODE_POS_#POS_PARK#> <STATE#POS_FAST#_TEST>(B:#INPUT_EVENT_ID_SOURCE#_#BTN_ID#) #POS_FAST# ==</STATE#POS_FAST#_TEST> <STATE#POS_NORM#_TEST>(B:#INPUT_EVENT_ID_SOURCE#_#BTN_ID#) #POS_NORM# ==</STATE#POS_NORM#_TEST> <STATE#POS_OFF#_TEST>(B:#INPUT_EVENT_ID_SOURCE#_#BTN_ID#) #POS_OFF# ==</STATE#POS_OFF#_TEST> <STATE#POS_PARK#_TEST>(B:#INPUT_EVENT_ID_SOURCE#_#BTN_ID#) #POS_PARK# ==</STATE#POS_PARK#_TEST> <MOMENTARY_SWITCH/> </Case> <Default> <GET_STATE_EXTERNAL>#IS_WIPERS_ON# sp0 #GET_POWER# near sp1</GET_STATE_EXTERNAL> <ENUM_VAL_TO_POS_EXTERNAL>l0 if{ l1 #POWER_SLOW# == if{ #POS_SLOW# sp2 } els{ #POS_NORM# sp2 } g2 } els{ #POS_OFF# sp2 } :2 l2</ENUM_VAL_TO_POS_EXTERNAL> <SET_STATE_#POS_NORM#>#WIPERS_ON# #POWER_NORM# #SET_POWER#</SET_STATE_#POS_NORM#> <SET_STATE_#POS_OFF#>#WIPERS_OFF#</SET_STATE_#POS_OFF#> <SET_STATE_#POS_SLOW#>#WIPERS_ON# #POWER_SLOW# #SET_POWER#</SET_STATE_#POS_SLOW#> <STR_STATE_#POS_NORM#>Norm</STR_STATE_#POS_NORM#> <STR_STATE_#POS_OFF#>Off</STR_STATE_#POS_OFF#> <STR_STATE_#POS_SLOW#>Slow</STR_STATE_#POS_SLOW#> <TT_VALUE_#POS_NORM#>@TT_Package.GT_STATE_NORMAL</TT_VALUE_#POS_NORM#> <TT_VALUE_#POS_OFF#>@TT_Package.GT_STATE_OFF</TT_VALUE_#POS_OFF#> <TT_VALUE_#POS_SLOW#>@TT_Package.GT_STATE_SLOW</TT_VALUE_#POS_SLOW#> <CODE_POS_#POS_NORM#>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#BTN_ID#_Norm)</CODE_POS_#POS_NORM#> <CODE_POS_#POS_OFF#>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#BTN_ID#_Off)</CODE_POS_#POS_OFF#> <CODE_POS_#POS_SLOW#>(&gt;B:#INPUT_EVENT_ID_SOURCE#_#BTN_ID#_Slow)</CODE_POS_#POS_SLOW#> <STATE#POS_NORM#_TEST>(B:#INPUT_EVENT_ID_SOURCE#_#BTN_ID#) #POS_NORM# ==</STATE#POS_NORM#_TEST> <STATE#POS_OFF#_TEST>(B:#INPUT_EVENT_ID_SOURCE#_#BTN_ID#) #POS_OFF# ==</STATE#POS_OFF#_TEST> <STATE#POS_SLOW#_TEST>(B:#INPUT_EVENT_ID_SOURCE#_#BTN_ID#) #POS_SLOW# ==</STATE#POS_SLOW#_TEST> </Default> </Switch> <TOOLTIP_ENTRY_0>#INPUT_EVENT_ID_SOURCE#_#BTN_ID#</TOOLTIP_ENTRY_0> </Parameters> <Parameters Type="Default"> <TOOLTIP_TITLE>@TT_Package.SAFETY_KNOB_WIPERS_TITLE</TOOLTIP_TITLE> <TT_DESCRIPTION_ID>@TT_Package.SAFETY_KNOB_WIPERS_LEFT_ACTION</TT_DESCRIPTION_ID> </Parameters> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <UseTemplate Name="ASOBO_GT_Update"> <UPDATE_ONCE>True</UPDATE_ONCE> <UPDATE_CODE>#INIT_WIPERS_STATE#</UPDATE_CODE> </UseTemplate> <UseInputEvent ID="#USE_INPUT_EVENT_ID#"/> <UseTemplate Name="#TEMPLATE_TO_USE#"/> </Component> </Template> <Template Name="ASOBO_HANDLING_Switch_AerobaticsTrimFlaps_SubTemplate"> <Parameters Type="Default"> <ANIM_NAME>HANDLING_Switch_AerobaticsTrimFlaps</ANIM_NAME> <NODE_ID>HANDLING_Switch_AerobaticsTrimFlaps</NODE_ID> <PART_ID>HANDLING_Switch_AerobaticsTrimFlaps</PART_ID> <BUS_ID>-1</BUS_ID> <CIRCUIT_ID>1</CIRCUIT_ID> <WWISE_EVENT_1>aerobaticstrimflaps_switch_on</WWISE_EVENT_1> <WWISE_EVENT_2>aerobaticstrimflaps_switch_off</WWISE_EVENT_2> <IE_CIRCUIT_ID>Aerobatic_Trim_Flaps</IE_CIRCUIT_ID> <TT_DESCRIPTION_ID>@TT_Package.HANDLING_SWITCH_AEROBATICSTRIMFLAPS_ACTION</TT_DESCRIPTION_ID> <TOOLTIP_TITLE>@TT_Package.HANDLING_SWITCH_AEROBATICSTRIMFLAPS_TITLE</TOOLTIP_TITLE> </Parameters> <Parameters Type="Override"> <DISABLE_TRIM> 1 (&gt;K:RUDDER_TRIM_DISABLED_SET) 1 (&gt;K:AILERON_TRIM_DISABLED_SET) 1 (&gt;K:ELEVATOR_TRIM_DISABLED_SET) </DISABLE_TRIM> <ENABLE_TRIM> 0 (&gt;K:RUDDER_TRIM_DISABLED_SET) 0 (&gt;K:AILERON_TRIM_DISABLED_SET) 0 (&gt;K:ELEVATOR_TRIM_DISABLED_SET) </ENABLE_TRIM> </Parameters> <Parameters Type="Override"> <BTN_ID>#IE_CIRCUIT_ID#</BTN_ID> <IS_CONNECTION_ON>#BUS_ID# (A:1:CIRCUIT CONNECTION ON:#CIRCUIT_ID#, Bool)</IS_CONNECTION_ON> </Parameters> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <UseInputEvent ID="HANDLING"> <SET_STATE_EXTERNAL> #IS_CONNECTION_ON# ! p0 != if{ #CIRCUIT_ID# #BUS_ID# (&gt;K:2:ELECTRICAL_BUS_TO_CIRCUIT_CONNECTION_TOGGLE) } #IS_CONNECTION_ON# if{ #ENABLE_TRIM# } els{ #DISABLE_TRIM# } </SET_STATE_EXTERNAL> <GET_STATE_EXTERNAL>#IS_CONNECTION_ON# ! sp0</GET_STATE_EXTERNAL> <SIM_STATE_IS_ON_EXTERNAL>l0</SIM_STATE_IS_ON_EXTERNAL> <ANIM>EXTERNAL</ANIM> </UseInputEvent> <UseTemplate Name="ASOBO_GT_Switch_Code"> <TOOLTIP_ENTRY_0>HANDLING_#BTN_ID#</TOOLTIP_ENTRY_0> <ANIM_CODE>(B:HANDLING_#BTN_ID#, Bool) 100 *</ANIM_CODE> <LEFT_SINGLE_CODE>(&gt;B:HANDLING_#BTN_ID#_Toggle)</LEFT_SINGLE_CODE> </UseTemplate> </Component> </Template> <Template Name="ASOBO_HANDLING_InertSep_SubTemplate"> <Parameters Type="Default"> <NODE_ID>HANDLING_#INTERACTION_TYPE#_InertSep</NODE_ID> <ANIM_NAME>HANDLING_#INTERACTION_TYPE#_InertSep</ANIM_NAME> <Switch Param="INTERACTION_TYPE"> <Case Value="Lever"> <WWISE_EVENT_1>Inertsep_lever_on</WWISE_EVENT_1> <NORMALIZED_TIME_1>0.1</NORMALIZED_TIME_1> <DIRECTION_1>Forward</DIRECTION_1> <WWISE_EVENT_2>Inertsep_lever_off</WWISE_EVENT_2> <NORMALIZED_TIME_2>0.9</NORMALIZED_TIME_2> <DIRECTION_2>Backward</DIRECTION_2> <ANIM>EXTERNAL</ANIM> </Case> </Switch> <VAR_NAME>XMLVAR_InterSep</VAR_NAME> <VAR_SCOPE>L</VAR_SCOPE> <TOOLTIP_TITLE>@TT_Package.DEICE_SWITCH_INERTSEP_TITLE</TOOLTIP_TITLE> <TT_DESCRIPTION_ID>@TT_Package.DEICE_SWITCH_INERTSEP_ACTION</TT_DESCRIPTION_ID> </Parameters> <Parameters Type="Override"> <BTN_ID>InertSep</BTN_ID> </Parameters> <Component ID="#NODE_ID#" Node="#NODE_ID#"> <UseInputEvent ID="HANDLING"> <SET_STATE_ON>1 (&gt;#VAR_SCOPE#:#VAR_NAME#)</SET_STATE_ON> <SET_STATE_OFF>0 (&gt;#VAR_SCOPE#:#VAR_NAME#)</SET_STATE_OFF> <GET_STATE_EXTERNAL>(#VAR_SCOPE#:#VAR_NAME#) sp0</GET_STATE_EXTERNAL> <SIM_STATE_IS_ON_EXTERNAL>l0</SIM_STATE_IS_ON_EXTERNAL> <STR_STATE_OFF>Normal</STR_STATE_OFF> <STR_STATE_ON>Bypass</STR_STATE_ON> <TT_VALUE_OFF>(R:1:@TT_Package.GT_STATE_NORMAL)</TT_VALUE_OFF> <TT_VALUE_ON>(R:1:@TT_Package.GT_STATE_BYPASS)</TT_VALUE_ON> </UseInputEvent> <UseTemplate Name="ASOBO_GT_Switch_Code"> <TOOLTIP_ENTRY_0>HANDLING_#BTN_ID#</TOOLTIP_ENTRY_0> <LEFT_SINGLE_CODE>(&gt;B:HANDLING_#BTN_ID#_Toggle)</LEFT_SINGLE_CODE> <ANIM_CODE>(B:HANDLING_#BTN_ID#, Bool) 100 *</ANIM_CODE> </UseTemplate> </Component> </Template> <Template Name="ASOBO_HANDLING_AutoSpoiler_SubTemplate"> <Parameters Type="Default"> <ANIM_NAME>HANDLING_#INTERACTION_TYPE#_AutoSpoiler</ANIM_NAME> <NODE_ID>HANDLING_#INTERACTION_TYPE#_AutoSpoiler</NODE_ID> <PART_ID>HANDLING_#INTERACTION_TYPE#_AutoSpoiler</PART_ID> <Switch Param="INTERACTION_TYPE"> <Case Value="Push"> <WWISE_EVENT_1>autospoiler_push_button_on</WWISE_EVENT_1> <NORMALIZED_TIME_1>0.1</NORMALIZED_TIME_1> <WWISE_EVENT_2>autospoiler_push_button_off</WWISE_EVENT_2> <NORMALIZED_TIME_2>0.5</NORMALIZED_TIME_2> <PUSH_TYPE>NORM_DISARM</PUSH_TYPE> </Case> </Switch> <TT_DESCRIPTION_ID>@TT_Package.HANDLING_PUSH_AUTOGROUNDSPOILERS_ACTION</TT_DESCRIPTION_ID> <TOOLTIP_TITLE>@TT_Package.HANDLING_PUSH_AUTOGROUNDSPOILERS_TITLE</TOOLTIP_TITLE> </Parameters> <Parameters Type="Override"> <BTN_ID>AutoSpoiler</BTN_ID> </Parameters> <Switch Param="INTERACTION_TYPE"> <Case Value="Push"> <UseTemplate Name="ASOBO_GT_Push_Button_Airliner"> <Switch Param="PUSH_TYPE"> <Case Value="NORM_DISARM"> <STR_STATE_ON>Norm</STR_STATE_ON> <STR_STATE_OFF>Disarm</STR_STATE_OFF> <TT_VALUE_ON>(R:1:@TT_Package.GT_STATE_NORMAL)</TT_VALUE_ON> <TT_VALUE_OFF>(R:1:@TT_Package.GT_STATE_DISARM)</TT_VALUE_OFF> </Case> </Switch> <INPUT_EVENT_ID>ENGINE</INPUT_EVENT_ID> <TOOLTIP_ENTRY_0>ENGINE_#BTN_ID#</TOOLTIP_ENTRY_0> <SEQ1_EMISSIVE_CODE>(B:ENGINE_#BTN_ID#, Bool)</SEQ1_EMISSIVE_CODE> <SEQ2_EMISSIVE_CODE>(B:ENGINE_#BTN_ID#, Bool) !</SEQ2_EMISSIVE_CODE> <LEFT_SINGLE_CODE>(&gt;B:ENGINE_#BTN_ID#_Toggle)</LEFT_SINGLE_CODE> <SIMVAR_TO_WATCH_0>SPOILERS ARMED</SIMVAR_TO_WATCH_0> <SET_STATE_EXTERNAL>(A:SPOILERS ARMED, Bool) p0 != if{ (&gt;K:SPOILERS_ARM_TOGGLE) }</SET_STATE_EXTERNAL> <GET_STATE_EXTERNAL>(A:SPOILERS ARMED, Bool) sp0</GET_STATE_EXTERNAL> <SIM_STATE_IS_ON_EXTERNAL>l0</SIM_STATE_IS_ON_EXTERNAL> </UseTemplate> </Case> </Switch> </Template> <Template Name="ASOBO_HANDLING_Water_Rudder_Controller_SubTemplate"> <Parameters Type="Default"> <NODE_ID>HANDLING_#INTERACTION_TYPE#_Water_Rudder</NODE_ID> <ANIM_NAME>HANDLING_#INTERACTION_TYPE#_Water_Rudder</ANIM_NAME> <PART_ID>HANDLING_#INTERACTION_TYPE#_Water_Rudder</PART_ID> <WWISE_PREFIX>water_rudder</WWISE_PREFIX> <Switch Param="INTERACTION_TYPE"> <Case Value="Switch"> <TOOLTIP_TITLE>@TT_Package.HYDRA_SWITCH_WATERRUDDER_TITLE</TOOLTIP_TITLE> <TT_DESCRIPTION_ID>@TT_Package.HYDRA_SWITCH_WATERRUDDER_ACTION_SET</TT_DESCRIPTION_ID> </Case> <Case Value="Lever"> <TOOLTIP_TITLE>@TT_Package.LANDING_GEAR_WATER_RUDDER_TITLE</TOOLTIP_TITLE> <TT_DESCRIPTION_ID>@TT_Package.LANDING_GEAR_WATER_RUDDER_ACTION</TT_DESCRIPTION_ID> </Case> </Switch> <Condition Valid="USE_STATE_INDICATOR"> <EMISSIVE_NODE_ID>HANDLING_Indicator_WaterRudder</EMISSIVE_NODE_ID> </Condition> </Parameters> <Condition Valid="USE_STATE_INDICATOR"> <Component ID="#EMISSIVE_NODE_ID#" Node="#EMISSIVE_NODE_ID#"> <UseTemplate Name="ASOBO_GT_Emissive_Gauge"> <EMISSIVE_CODE>(B:HANDLING_Water_Rudder, Bool)</EMISSIVE_CODE> </UseTemplate> </Component> </Condition> <UseTemplate Name="ASOBO_HANDLING_Base_Template"> <IE_NAME>Water_Rudder</IE_NAME> <SET_STATE_EXTERNAL>p0 (A:WATER RUDDER HANDLE POSITION, percent over 100) 0 &gt; != if{ (&gt;K:TOGGLE_WATER_RUDDER) }</SET_STATE_EXTERNAL> <GET_STATE_EXTERNAL>(A:WATER RUDDER HANDLE POSITION, percent over 100) 0 &gt; sp0</GET_STATE_EXTERNAL> <SIM_STATE_IS_ON_EXTERNAL>l0</SIM_STATE_IS_ON_EXTERNAL> <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> <SIMVAR_TO_WATCH_0>WATER RUDDER HANDLE POSITION</SIMVAR_TO_WATCH_0> <Switch Param="INTERACTION_TYPE"> <Case Value="Lever"> <LEVER_TYPE>2_STATES</LEVER_TYPE> </Case> </Switch> </UseTemplate> </Template> </ModelBehaviors>

 

 

Templates

Template list
  1. ASOBO_HANDLING_Yoke_Hider_Template
  2. ASOBO_HANDLING_Yoke_SubTemplate
  3. ASOBO_HANDLING_Yoke_Hideable_SubTemplate
  4. ASOBO_HANDLING_Joystick_YawPitch_SubTemplate
  5. ASOBO_HANDLING_Timer_SubTemplate
  6. ASOBO_HANDLING_StormClear_SubTemplate
  7. ASOBO_HANDLING_CWS_SubTemplate
  8. ASOBO_HANDLING_Ident_SubTemplate
  9. ASOBO_HANDLING_Swap_SubTemplate
  10. ASOBO_HANDLING_AntiSkid_SubTemplate
  11. ASOBO_HANDLING_GLimiter_SubTemplate
  12. ASOBO_HANDLING_Steering_Tiller_SubTemplate
  13. ASOBO_HANDLING_RudderPedals_SubTemplate
  14. ASOBO_HANDLING_Light_Flaps_SubTemplate
  15. ASOBO_HANDLING_Light_Trim_Subtemplate
  16. ASOBO_HANDLING_AileronTrim_Template
  17. ASOBO_HANDLING_RudderTrim_Template
  18. ASOBO_HANDLING_ElevatorTrim_Template
  19. ASOBO_HANDLING_Combined_Trim_SubTemplate
  20. ASOBO_HANDLING_AP_Trim_Disc_SubTemplate
  21. ASOBO_HANDLING_Trim_Variable_Speed_Base_Template
  22. ASOBO_HANDLING_Secondary_Trim_Available_SubTemplate
  23. ASOBO_HANDLING_Spoilers_Int_SubTemplate
  24. ASOBO_HANDLING_Flaps_SubTemplate
  25. ASOBO_HANDLING_Flaps_Lever_SubTemplate
  26. ASOBO_HANDLING_Flaps_Button_SubTemplate
  27. ASOBO_HANDLING_Autobrakes_SubTemplate
  28. ASOBO_HANDLING_Wipers_Controller_SubTemplate
  29. ASOBO_HANDLING_Switch_AerobaticsTrimFlaps_SubTemplate
  30. ASOBO_HANDLING_InertSep_SubTemplate
  31. ASOBO_HANDLING_AutoSpoiler_SubTemplate
  32. ASOBO_HANDLING_Water_Rudder_Controller_SubTemplate