[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</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</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</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> </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>-16384</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> </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:#STATE_VAR#)</LEFT_CODE_EXTERNAL> <IE_STANDBY_CODE>4 (&gt;L:#STATE_VAR#)</IE_STANDBY_CODE> <RIGHT_CODE_EXTERNAL>1 (&gt;L:#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:#STATE_VAR#)</LEFT_CODE_EXTERNAL> <IE_STANDBY_CODE>4 (&gt;L:#STATE_VAR#)</IE_STANDBY_CODE> <RIGHT_CODE_EXTERNAL>3 (&gt;L:#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:#STATE_VAR#) sp0</GET_STATE_EXTERNAL> <LOCAL_VAR_TO_WATCH_0>#STATE_VAR#</LOCAL_VAR_TO_WATCH_0> <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"> <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> </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> </Parameters> <Parameters Type="Override"> <Switch Param="INTERACTION_TYPE"> <Case Value="PUSH"> <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> </Case> </Switch> <BTN_ID>Trim_Disconnect</BTN_ID> <TOOLTIP_TITLE>@TT_Package.YOKE_PUSH_AP_TRIM_DISC_TITLE</TOOLTIP_TITLE> <TOOLTIP_ENTRY_0>HANDLING_Trim_Disconnect</TOOLTIP_ENTRY_0> <TT_DESCRIPTION_ID>@TT_Package.YOKE_PUSH_AP_TRIM_DISC_ACTION</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>p0 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> <TT_VALUE>#GET_TRIM# 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> </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_TITLETOOLTIP_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 Process="Int">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> <Value>POS_PARK</Value> <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
  • ASOBO_HANDLING_Yoke_Hider_Template

    Definition from XML
    <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> <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>

    Parameters initialization:

    • Default

      Parameters set:

      • ID
      • MOUSERECT_DISABLED_WITH_MOTION_CONTROLLERS
    • Default

      Parameters set:

      • NODE_ID (using ID)
    • Default

      Parameters set:

      • TOOLTIP_TITLE
      • TOOLTIP_ENTRY_0 (using ID)

    Parameters read:

    • NODE_ID

    Components:

  • ASOBO_HANDLING_Yoke_SubTemplate

    Definition from XML
    <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> <ANIM_SIMVAR_BIAS>100</ANIM_SIMVAR_BIAS> </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>

    Parameters initialization:

    • Default

      Parameters set:

      • ANIM_NAME_YOKE_X
      • ANIM_NAME_YOKE_Y
      • PART_ID
      • ANIM_LENGTH
      • ANIM_SIMVAR_BIAS

      Condition: Check(CREATE_TWO_NODES)

      • Case: True

        Parameters set:

        • NODE_ID
        • NODE_ID2
      • Case: False

        Parameters set:

        • NODE_ID (using ID)

      Condition: Valid(AP_CAN_DRIVE_ANIMATION)

      • Case: True

        Parameters set:

        • ANIM_SIMVAR_X
        • ANIM_SIMVAR_X_LINEAR
        • ANIM_SIMVAR_Y
      • Case: False

        Parameters set:

        • ANIM_SIMVAR_X
        • ANIM_SIMVAR_X_LINEAR
        • ANIM_SIMVAR_Y

    Parameters read:

    • NODE_ID
    • ID

    Components:

    • #NODE_ID#_#ID# (Node: #NODE_ID#)

      Templates used:

      • ASOBO_GT_Anim_Code

        Parameters set:

        • ANIM_NAME (using ANIM_NAME_YOKE_X)
        • ANIM_CODE (using ANIM_SIMVAR_X_LINEAR, ANIM_SIMVAR_X, ANIM_LENGTH, ANIM_SIMVAR_BIAS)
      • ASOBO_GT_Anim_Sim

        Parameters set:

        • ANIM_NAME (using ANIM_NAME_YOKE_Y)
        • ANIM_SIMVAR (using ANIM_SIMVAR_Y)
        • ANIM_SIMVAR_UNITS

    Condition: Check(CREATE_TWO_NODES)

  • ASOBO_HANDLING_Yoke_Hideable_SubTemplate

    Definition from XML
    <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>

    Parameters initialization:

    • Default

      Parameters set:

      • NODE_ID (using ID)
      • YOKE_HIDER_NODE_ID (using ID)
      • YOKE_NODE_ID (using ID)
      • TOOLTIPID

    Parameters read:

    • NODE_ID

    Components:

    • #NODE_ID#_VisibilityNode (Node: #NODE_ID#)

      Templates used:

    Condition: Check(ONLY_DECORATIVE)

  • ASOBO_HANDLING_Joystick_YawPitch_SubTemplate

    Definition from XML
    <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>&apos;%.1f°&apos; @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>&apos;%.1f°&apos; @sprintf</FORMAT_VALUE> </UseInputEvent> <UseTemplate Name="ASOBO_GT_Joystick_Interaction_Knob"> <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>

    Parameters initialization:

    • Default

      Parameters set:

      • NODE_ID (using ID)
      • ANIM_NAME_L_R (using ID)
      • ANIM_NAME_DN_UP (using ID)
      • INPUT_EVENT_ID_SOURCE
    • Default

      Parameters set:

      • VAR_NAME (using INPUT_EVENT_ID_SOURCE, ID)
      • TT_DESCRIPTION_ID_PAN_X
      • TT_DESCRIPTION_ID_PAN_Y
      • TT_DESCRIPTION_ID_DISENGAGE
      • TOOLTIP_TITLE_EXTERNAL
    • Override

      Parameters set:

      • KNOB_X_ID
      • KNOB_Y_ID
      • BTN_DISENGAGE_ID
    • Override

      Parameters set:

      • JOYSTICK_X_CODE_LEFT (using INPUT_EVENT_ID_SOURCE, KNOB_X_ID)
      • JOYSTICK_X_CODE_RIGHT (using INPUT_EVENT_ID_SOURCE, KNOB_X_ID)
      • JOYSTICK_Y_CODE_DOWN (using INPUT_EVENT_ID_SOURCE, KNOB_Y_ID)
      • JOYSTICK_Y_CODE_UP (using INPUT_EVENT_ID_SOURCE, KNOB_Y_ID)
      • LEFT_SINGLE_CODE_DEFAULT_IM (using INPUT_EVENT_ID_SOURCE, BTN_DISENGAGE_ID)
      • LEFT_RELEASE_CODE_DEFAULT_IM (using INPUT_EVENT_ID_SOURCE, BTN_DISENGAGE_ID)
      • LEFT_SINGLE_CODE_DRAG_IM (using INPUT_EVENT_ID_SOURCE, BTN_DISENGAGE_ID)
      • LEFT_RELEASE_CODE_DRAG_IM (using INPUT_EVENT_ID_SOURCE, BTN_DISENGAGE_ID)

    Parameters read:

    • NODE_ID

    Components:

    • #NODE_ID# (Node: #NODE_ID#)

      Parameters set:

      • TOOLTIP_TITLE (using TOOLTIP_TITLE_EXTERNAL)
      • TOOLTIP_ENTRY_0 (using INPUT_EVENT_ID_SOURCE, KNOB_X_ID)
      • TOOLTIP_ENTRY_1 (using INPUT_EVENT_ID_SOURCE, KNOB_Y_ID)
      • BTN_ID (using BTN_DISENGAGE_ID)
      • TT_DESCRIPTION_ID (using TT_DESCRIPTION_ID_DISENGAGE)
      • BINDING_INC_0
      • BINDING_INC_0_PARAM_0
      • BINDING_DEC_0
      • BINDING_DEC_0_PARAM_0
      • SET_STATE_EXTERNAL
      • ANIM_EXTERNAL
      • KNOB_ID (using KNOB_X_ID)
      • TT_DESCRIPTION_ID (using TT_DESCRIPTION_ID_PAN_X)
      • TT_ICON
      • NO_ANIM_VAR_UPDATE
      • GET_TT_VALUE_STATE
      • FORMAT_VALUE
      • KNOB_ID (using KNOB_Y_ID)
      • TT_INTERACTION
      • TT_INTERACTION_LOCKABLE

      Templates used:

      • ASOBO_GT_Joystick_Interaction_Knob

        Parameters set:

        • JOYSTICK_INTERACTION
        • UPDATE_FREQUENCY
        • COUNT
        • THRESHOLD_X_INPUT
        • THRESHOLD_X_MOUSE
        • THRESHOLD_Y_INPUT
        • THRESHOLD_Y_MOUSE
        • TIMEOUT_DELAY_RESET_AXIS
        • IM_DRAG_ADDITIONAL_EVENT_HANDLING
        • WWISE_JOYSTICK_EVENT_L
        • WWISE_JOYSTICK_EVENT_R
        • WWISE_JOYSTICK_EVENT_UP
        • WWISE_JOYSTICK_EVENT_DN
  • ASOBO_HANDLING_Timer_SubTemplate

    Definition from XML
    <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>

    Parameters initialization:

    • Default

      Parameters set:

      • NODE_ID (using INTERACTION_TYPE)
      • ANIM_NAME (using INTERACTION_TYPE)
      • WWISE_EVENT_1
      • WWISE_EVENT_2
      • TOOLTIP_TITLE
      • TT_DESCRIPTION_ID
    • Override

      Parameters set:

      • BTN_ID

    Parameters read:

    • NODE_ID

    Components:

    • #NODE_ID# (Node: #NODE_ID#)

      Parameters set:

      • SET_STATE_EXTERNAL
      • BINDING_INC_0
      • BINDING_INC_0_PARAM_0

      Templates used:

      • ASOBO_GT_Push_Button

        Parameters set:

        • TOOLTIP_ENTRY_0 (using BTN_ID)
        • LEFT_SINGLE_CODE (using BTN_ID)
  • ASOBO_HANDLING_StormClear_SubTemplate

    Definition from XML
    <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>

    Parameters initialization:

    • Default

      Parameters set:

      • NODE_ID (using INTERACTION_TYPE)
      • ANIM_NAME (using INTERACTION_TYPE)
      • WWISE_EVENT_1
      • WWISE_EVENT_2

    Parameters read:

    • NODE_ID

    Components:

    • #NODE_ID# (Node: #NODE_ID#)

      Templates used:

  • ASOBO_HANDLING_CWS_SubTemplate

    Definition from XML
    <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>

    Parameters initialization:

    • Default

      Parameters set:

      • NODE_ID (using INTERACTION_TYPE)
      • ANIM_NAME (using INTERACTION_TYPE)
      • WWISE_EVENT_1
      • WWISE_EVENT_2

    Parameters read:

    • NODE_ID

    Components:

    • #NODE_ID# (Node: #NODE_ID#)

      Templates used:

  • ASOBO_HANDLING_Ident_SubTemplate

    Definition from XML
    <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>

    Parameters initialization:

    • Default

      Parameters set:

      • NODE_ID (using INTERACTION_TYPE)
      • ANIM_NAME (using INTERACTION_TYPE)
      • WWISE_EVENT_1
      • WWISE_EVENT_2
      • TOOLTIP_TITLE
      • TT_DESCRIPTION_ID
    • Override

      Parameters set:

      • BTN_ID (using ID)

    Parameters read:

    • NODE_ID

    Components:

    • #NODE_ID# (Node: #NODE_ID#)

      Parameters set:

      • SET_STATE_EXTERNAL (using ID)
      • BINDING_INC_0
      • BINDING_INC_0_PARAM_0

      Templates used:

  • ASOBO_HANDLING_Swap_SubTemplate

    Definition from XML
    <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>

    Parameters initialization:

    • Default

      Parameters set:

      • NODE_ID (using INTERACTION_TYPE)
      • ANIM_NAME (using INTERACTION_TYPE)
      • WWISE_EVENT_1
      • WWISE_EVENT_2
      • TOOLTIP_TITLE
      • TT_DESCRIPTION_ID
    • Override

      Parameters set:

      • BTN_ID (using ID)

    Parameters read:

    • NODE_ID

    Components:

    • #NODE_ID# (Node: #NODE_ID#)

      Parameters set:

      • SET_STATE_EXTERNAL (using ID)
      • BINDING_INC_0
      • BINDING_INC_0_PARAM_0

      Templates used:

  • ASOBO_HANDLING_AntiSkid_SubTemplate

    Definition from XML
    <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>

    Parameters initialization:

    • Default

      Parameters set:

      • NODE_ID (using INTERACTION_TYPE)
      • ANIM_NAME (using INTERACTION_TYPE)
      • WWISE_EVENT_1
      • WWISE_EVENT_2
      • ON_ANTI_SKID_STATE_CHANGED
      • TOOLTIP_TITLE
      • TT_DESCRIPTION_ID
    • Override

      Parameters set:

      • BTN_ID

    Parameters read:

    • NODE_ID

    Components:

    • #NODE_ID# (Node: #NODE_ID#)

      Parameters set:

      • SET_STATE_EXTERNAL (using ON_ANTI_SKID_STATE_CHANGED)
      • GET_STATE_EXTERNAL
      • SIM_STATE_IS_ON_EXTERNAL

      Templates used:

      • ASOBO_GT_Switch_Code

        Parameters set:

        • TOOLTIP_ENTRY_0 (using BTN_ID)
        • LEFT_SINGLE_CODE (using BTN_ID)
        • ANIM_CODE (using BTN_ID)
  • ASOBO_HANDLING_GLimiter_SubTemplate

    Definition from XML
    <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</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</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</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>

    Parameters initialization:

    • Default

      Parameters set:

      • NODE_ID (using INTERACTION_TYPE)
      • ANIM_NAME (using INTERACTION_TYPE)
      • TOOLTIP_TITLE
      • TT_DESCRIPTION_ID
      • OVERRIDE_CONDITIONS
      • ADDITIONAL_EFFECTS
    • Override

      Condition: Switch(TYPE)

      • Case: AS04F

        Parameters set:

        • OVERRIDE_CONDITIONS (using OVERRIDE_CONDITIONS)
        • ADDITIONAL_EFFECTS
    • Override

      Parameters set:

      • BTN_ID

      Condition: Switch(TYPE)

      • Case: AS04F

        Parameters set:

        • SET_STATE_EXTERNAL (using OVERRIDE_CONDITIONS, ADDITIONAL_EFFECTS)
        • GET_STATE_EXTERNAL

    Parameters read:

    • NODE_ID

    Components:

    • #NODE_ID# (Node: #NODE_ID#)

      Templates used:

      • ASOBO_HANDLING_Base_Template

        Parameters set:

        • IE_NAME (using BTN_ID)
        • CREATE_COMPONENT
        • SIM_STATE_IS_ON_EXTERNAL
        • BINDING_SET_0
        • BINDING_SET_0_PARAM_0 (using BTN_ID)
        • BINDING_SET_0_PARAM_0_IS_DYNAMIC
        • BINDING_SET_0_EVENT_ID
        • BINDING_SET_1
        • BINDING_SET_1_PARAM_0
        • BINDING_SET_1_PARAM_0_IS_DYNAMIC
        • BINDING_SET_1_EVENT_ID
        • BINDING_SET_2
        • BINDING_SET_2_PARAM_0
        • BINDING_SET_2_EVENT_ID
        • BINDING_SET_3
        • BINDING_SET_3_PARAM_0
        • BINDING_SET_3_EVENT_ID
        • SIMVAR_TO_WATCH_0

      Condition: Switch(TYPE)

      • Case: AS04F

        Templates used:

  • ASOBO_HANDLING_Steering_Tiller_SubTemplate

    Definition from XML
    <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>

    Parameters initialization:

    • Default

      Parameters set:

      • NODE_ID (using ID)
      • ANIM_NAME (using ID)

    Parameters read:

    • NODE_ID

    Components:

    • #NODE_ID# (Node: #NODE_ID#)

      Templates used:

  • ASOBO_HANDLING_RudderPedals_SubTemplate

    Definition from XML
    <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"> <Condition Valid="DIFFERENTIATE_BRAKE_ANIM_L_R"> <True> <NODE_ID>HANDLING_RudderPedals_Left_1_1</NODE_ID> <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"> <NODE_ID>HANDLING_RudderPedals_1</NODE_ID> <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"> <NODE_ID>HANDLING_RudderPedals_1</NODE_ID> <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"> <UseTemplate Name="ASOBO_GT_Helper_Recursive_ID"> <ID>1</ID> <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> <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"> <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/> </Condition> </OverrideTemplateParameters> <UseTemplate Name="ASOBO_GT_Anim_Sim"> <ID>1</ID> <ANIM_LENGTH>200</ANIM_LENGTH> <ANIM_SIMVAR_UNITS>percent</ANIM_SIMVAR_UNITS> <ANIM_SIMVAR_BIAS>100</ANIM_SIMVAR_BIAS> </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>

    Parameters initialization:

    • Default

      Parameters set:

      • ANIM_NAME
      • ANIM_LAG

      Condition: Switch(RUDDERPEDALS_TYPE)

      • Case: SPLITTED

        Condition: Valid(DIFFERENTIATE_BRAKE_ANIM_L_R)

        • Case: True

          Parameters set:

          • NODE_ID
          • PREFIX_LEFT_PEDALS
          • SUFFIX_LEFT_PEDALS
          • PREFIX_RIGHT_PEDALS
          • SUFFIX_RIGHT_PEDALS
        • Case: False

          Parameters set:

          • NODE_ID (using ID)
          • PART_ID
          • NODE_ID2 (using ID)
      • Case: MERGED

        Parameters set:

        • NODE_ID
        • NODE_ID_L_BRAKE
        • NODE_ID_L_RUDDER
        • NODE_ID_R_BRAKE
        • NODE_ID_R_RUDDER
        • PART_ID_BRAKES
        • PART_ID_RUDDERS
        • USE_BRAKE
      • Case: MIXED

        Parameters set:

        • NODE_ID
        • NODE_ID_L_BRAKE_1
        • NODE_ID_L_BRAKE_2
        • NODE_ID_R_BRAKE_1
        • NODE_ID_R_BRAKE_2
        • NODE_ID_L_RUDDER
        • NODE_ID_R_RUDDER
        • PART_ID_BRAKES
        • PART_ID_RUDDERS
        • DIFFERENTIATE_BRAKE_ANIM_L_R
        • USE_BRAKE
      • Default case:

        Parameters set:

        • PART_ID
        • NODE_ID (using ID)
    • Override

      Condition: Switch(RUDDERPEDALS_TYPE)

      • Case: SPLITTED

        Condition: Valid(DIFFERENTIATE_BRAKE_ANIM_L_R)

        • Case: True

          Parameters set:

          • PART_ID
          • EXIT_TEMPLATE
          • MAX_ID
          • PARAM1

    Condition: Switch(RUDDERPEDALS_TYPE)

    • Case: SPLITTED

      Condition: Valid(DIFFERENTIATE_BRAKE_ANIM_L_R)

      • Case: True

        Components:

        • HANDLING_RudderPedals_Highlights

          Templates used:

      • Case: False

        Templates used:

    • Case: MERGED

      Templates used:

      Condition: Valid(NO_BRAKES_HIGHLIGHT)

    • Case: MIXED

      Templates used:

      Condition: Valid(NO_BRAKES_HIGHLIGHT)

    Condition: Check(DONT_CREATE_ANIMATION)

    • Case: True

      Templates used:

    • Case: False

      Parameters read:

      • NODE_ID

      Components:

      • #NODE_ID# (Node: #NODE_ID#)

        Parameters set:

        • ANIM_SIMVAR

        Templates used:

        • ASOBO_GT_Anim_Sim

          Parameters set:

          • ID
          • ANIM_LENGTH
          • ANIM_SIMVAR_UNITS
          • ANIM_SIMVAR_BIAS

        Condition: Valid(USE_BRAKE)

        • Case: True

          Condition: Valid(DIFFERENTIATE_BRAKE_ANIM_L_R)

          • Case: True

            Parameters set:

            • BRAKE_ANIM_NAME_L
            • BRAKE_ANIM_NAME_R
          • Case: False

            Parameters set:

            • BRAKE_ANIM_NAME

        Condition: Valid(NO_PART_ID_ON_ANIM_NODE)

        • Case: True

          Parameters set:

          • PART_ID

        Condition: Valid(USE_BRAKE)

        • Case: True

          Templates used:

          • ASOBO_HANDLING_RudderPedals_Brake_Template

            Condition: Valid(DIFFERENTIATE_BRAKE_ANIM_L_R)

            • Case: True

              Parameters set:

              • ANIM_NAME_L (using BRAKE_ANIM_NAME_L)
              • ANIM_NAME_R (using BRAKE_ANIM_NAME_R)
            • Case: False

              Parameters set:

              • ANIM_NAME (using BRAKE_ANIM_NAME)
  • ASOBO_HANDLING_Light_Flaps_SubTemplate

    Definition from XML
    <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>

    Parameters initialization:

    • Default

      Parameters set:

      • NODE_ID (using ID)

      Condition: Switch(TYPE)

      • Case: ALWAYS_ONE_LIT

        Parameters set:

        • ADJUSTED_ID_FLAP (using ID, MAX_FLAPS_INDEX)
        • FLAPS_INDEX_COUNT (using MAX_FLAPS_INDEX)
        • ANGLE_DEGREE_1
        • ANGLE_DEGREE_2
        • ANGLE_DEGREE_3
        • ANGLE_DEGREE_4
        • ANGLE_DEGREE_5
      • Default case:

        Parameters set:

        • TARGET_ANGLE_DEGREE
        • VALUE_RANGE
    • Override

      Condition: Switch(TYPE)

      • Case: ALWAYS_ONE_LIT

        Parameters set:

        • TARGET_ANGLE (using ANGLE_DEGREE_5, ANGLE_DEGREE_4, ANGLE_DEGREE_3, ANGLE_DEGREE_2, ANGLE_DEGREE_1, FLAPS_INDEX_COUNT, ADJUSTED_ID_FLAP)
    • Default

      Condition: Switch(TYPE)

      • Case: ALWAYS_ONE_LIT

        Parameters set:

        • TARGET_ANGLE_LIMIT_MIN (using ADJUSTED_ID_FLAP, ANGLE_DEGREE_5, ANGLE_DEGREE_4, ANGLE_DEGREE_3, ANGLE_DEGREE_2, ANGLE_DEGREE_1, FLAPS_INDEX_COUNT, TARGET_ANGLE)
        • TARGET_ANGLE_LIMIT_MAX (using ADJUSTED_ID_FLAP, MAX_FLAPS_INDEX, ANGLE_DEGREE_5, ANGLE_DEGREE_4, ANGLE_DEGREE_3, ANGLE_DEGREE_2, ANGLE_DEGREE_1, FLAPS_INDEX_COUNT, TARGET_ANGLE)

    Parameters read:

    • NODE_ID

    Components:

    • #NODE_ID# (Node: #NODE_ID#)

      Templates used:

      • ASOBO_GT_Emissive_Gauge

        Condition: Switch(TYPE)

        • Case: ALWAYS_ONE_LIT

          Parameters set:

          • EMISSIVE_CODE (using TARGET_ANGLE_LIMIT_MIN, TARGET_ANGLE_LIMIT_MAX)
        • Default case:

          Parameters set:

          • EMISSIVE_CODE (using TARGET_ANGLE_DEGREE, VALUE_RANGE)
  • ASOBO_HANDLING_Light_Trim_Subtemplate

    Definition from XML
    <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>

    Parameters initialization:

    • Default

      Parameters set:

      • NODE_ID
      • RANGE_DELTA

      Condition: Switch(TRIM_TYPE)

      • Case: AILERON

        Parameters set:

        • TRIM_SIMVAR
      • Case: ELEVATOR

        Parameters set:

        • TRIM_SIMVAR
      • Case: RUDDER

        Parameters set:

        • TRIM_SIMVAR
      • Default case:

        Parameters set:

        • TRIM_SIMVAR
    • Default

      Condition: Switch(TRIM_TYPE)

      • Case: ELEVATOR

        Parameters set:

        • TARGET_VALUE
      • Default case:

        Parameters set:

        • TARGET_VALUE

    Parameters read:

    • NODE_ID

    Components:

    • #NODE_ID# (Node: #NODE_ID#)

      Templates used:

  • ASOBO_HANDLING_AileronTrim_Template

    Definition from XML
    <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>

    Parameters initialization:

    • Default

      Parameters set:

      • ID
    • Default

      Condition: Check(SECONDARY)

      • Case: True

        Parameters set:

        • IE_AILERONS_TRIM (using ID)
      • Case: False

        Parameters set:

        • IE_AILERONS_TRIM (using ID)
    • Default

      Parameters set:

      • DRAG_INCREMENT
      • ANIM_SIMVAR_MIN
      • ANIM_SIMVAR_MAX
      • ANIM_SIMVAR_SCALE
      • TOOLTIPID
      • THRESHOLD_INPUT
      • THRESHOLD_MOUSE

      Condition: Switch(INTERACTION_TYPE)

      • Case: KNOB

        Parameters set:

        • NODE_ID
        • ANIM_NAME
        • PART_ID
        • WWISE_EVENT_1
        • WWISE_EVENT_2
        • INCREMENT
      • Case: SWITCH

        Parameters set:

        • NODE_ID
        • ANIM_NAME
        • PART_ID
        • OTHER_PART_ID
        • WWISE_EVENT
        • ID
        • INCREMENT
        • SWITCH_DIRECTION

      Condition: Check(NEEDLE_NODE_ID)

      • Case: True

        Parameters set:

        • NEEDLE_ANIM_NAME
    • Default

      Parameters set:

      • TOOLTIP_AILERONS_TRIM_TITLE
    • Override

      Parameters set:

      • TOOLTIP_TITLE (using TOOLTIP_AILERONS_TRIM_TITLE)
      • TOOLTIP_ENTRY_0 (using IE_AILERONS_TRIM)

    Condition: Switch(INTERACTION_TYPE)

    • Case: SWITCH

      Templates used:

    • Case: KNOB

      Parameters read:

      • NODE_ID

      Components:

      • #NODE_ID# (Node: #NODE_ID#)

        Parameters set:

        • AILERONS_TRIM_ID

        Templates used:

      Condition: Check(NEEDLE_NODE_ID)

      • Case: True

        Parameters read:

        • NEEDLE_NODE_ID

        Components:

        • #NEEDLE_NODE_ID# (Node: #NEEDLE_NODE_ID#)

          Templates used:

          • ASOBO_GT_Anim_Sim

            Parameters set:

            • ANIM_NAME (using NEEDLE_ANIM_NAME)
            • ANIM_SIMVAR
            • ANIM_SIMVAR_UNITS
            • ANIM_SIMVAR_SCALE
            • ANIM_SIMVAR_BIAS

            Condition: Check(INVERT_NEEDLE_ANIM)

            • Case: True

              Parameters set:

              • INVERT_ANIM (using INVERT_NEEDLE_ANIM)
  • ASOBO_HANDLING_RudderTrim_Template

    Definition from XML
    <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"> <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>

    Parameters initialization:

    • Default

      Parameters set:

      • ID
    • Default

      Condition: Check(SECONDARY)

      • Case: True

        Parameters set:

        • IE_RUDDER_TRIM (using ID)
      • Case: False

        Parameters set:

        • IE_RUDDER_TRIM (using ID)
    • Default

      Parameters set:

      • MOUSE_WHEEL_INCREMENT
      • NODE_ID
      • ANIM_NAME
      • RESET_PUSH_NODE_ID
      • RESET_PUSH_ANIM_NAME
      • PART_ID
      • WWISE_EVENT
      • WWISE_EVENT_1
      • WWISE_EVENT_2
      • TOOLTIP_RUDDER_TRIM_TITLE

      Condition: Check(NEEDLE_NODE_ID)

      • Case: True

        Parameters set:

        • NEEDLE_ANIM_NAME

      Condition: Switch(INTERACTION_TYPE)

      • Case: SWITCH

        Parameters set:

        • INCREMENT

        Condition: Valid(NOT_DISABLED_BY_AP)

        • Case: False

          Parameters set:

          • ADDITIONAL_TESTS
      • Case: WHEEL

        Parameters set:

        • CURSOR
        • INCREMENT
        • UPPER_LIMIT
        • LOWER_LIMIT
      • Case: KNOB

        Parameters set:

        • INCREMENT
        • UPPER_LIMIT
        • LOWER_LIMIT
    • Override

      Parameters set:

      • TOOLTIP_TITLE (using TOOLTIP_RUDDER_TRIM_TITLE)
      • TOOLTIP_ENTRY_0 (using IE_RUDDER_TRIM)

    Condition: Switch(INTERACTION_TYPE)

    • Case: SWITCH

      Templates used:

      Condition: Check(NO_RESET_PUSH)

      • Case: False

        Templates used:

        • ASOBO_HANDLING_Base_Template

          Parameters set:

          • INTERACTION_TYPE
          • TT_ICON
          • IE_NAME
          • SET_CODE
          • WWISE_EVENT_1
          • WWISE_EVENT_2
          • TT_DESCRIPTION_ID
          • TOOLTIP_TITLE
          • TOOLTIP_ENTRY_0
          • NODE_ID (using RESET_PUSH_NODE_ID)
          • ANIM_NAME (using RESET_PUSH_ANIM_NAME)
          • BINDING_INC_0_EVENT_ID
    • Case: WHEEL

      Parameters read:

      • NODE_ID

      Components:

      • #NODE_ID# (Node: #NODE_ID#)

        Parameters set:

        • RUDDER_TRIM_ID

        Condition: Check(INFINITE)

        • Case: True

          Templates used:

        • Case: False

          Templates used:

          • ASOBO_GT_Lever_DraggingWheelLeftDrag_Axis

            Parameters set:

            • NO_ARROWS
            • CURSOR
            • ANIM_LENGTH
            • ANIM_CODE (using IE_RUDDER_TRIM)
            • POSITIVE_AXIS_CODE (using MOUSE_WHEEL_INCREMENT, IE_RUDDER_TRIM)
            • NEGATIVE_AXIS_CODE (using MOUSE_WHEEL_INCREMENT, IE_RUDDER_TRIM)

            Condition: Valid(USE_TRAJECTORY_DRAG_MODE)

            • Case: True

              Parameters set:

              • DRAG_CODE (using UPPER_LIMIT, LOWER_LIMIT, IE_RUDDER_TRIM)
            • Case: False

              Parameters set:

              • DRAG_CODE (using INCREMENT, UPPER_LIMIT, LOWER_LIMIT, IE_RUDDER_TRIM)
    • Case: KNOB

      Parameters read:

      • NODE_ID

      Components:

      • #NODE_ID# (Node: #NODE_ID#)

        Parameters set:

        • RUDDER_TRIM_ID

        Templates used:

        • ASOBO_GT_Knob_Finite_Code

          Parameters set:

          • CURSOR
          • CLOCKWISE_CODE (using INCREMENT, IE_RUDDER_TRIM, INC)
          • ANTICLOCKWISE_CODE (using INCREMENT, IE_RUDDER_TRIM, DEC)
          • ANIM_CODE (using IE_RUDDER_TRIM)

          Condition: Valid(INVERT_KNOB_ANIM)

          • Case: True

            Parameters set:

            • INVERT_ANIM (using INVERT_KNOB_ANIM)

          Condition: Valid(KNOB_HIGHLIGHT_NODE_ID)

          • Case: True

            Parameters set:

            • HIGHLIGHT_NODE_ID (using KNOB_HIGHLIGHT_NODE_ID)

        Condition: Valid(INVERT_EFFECT)

        • Case: False

          Parameters set:

          • INC
          • DEC
        • Case: True

          Parameters set:

          • INC
          • DEC

    Condition: Check(NEEDLE_NODE_ID)

    • Case: True

      Parameters read:

      • NEEDLE_NODE_ID

      Components:

      • #NEEDLE_NODE_ID# (Node: #NEEDLE_NODE_ID#)

        Templates used:

        • ASOBO_GT_Anim_Sim

          Parameters set:

          • ANIM_NAME (using NEEDLE_ANIM_NAME)
          • ANIM_SIMVAR
          • ANIM_SIMVAR_UNITS
          • ANIM_SIMVAR_SCALE
          • ANIM_SIMVAR_BIAS
  • ASOBO_HANDLING_ElevatorTrim_Template

    Definition from XML
    <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> </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>-16384</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> <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> </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_NAME>ElevatorTrim</TRIM_NAME> <TRIM_TYPE>Elevator</TRIM_TYPE> </UseTemplate> </Case> </Switch> </Template>

    Parameters initialization:

    • Default

      Parameters set:

      • ID
    • Default

      Condition: Check(SECONDARY)

      • Case: True

        Parameters set:

        • IE_ELEVATOR_TRIM (using ID)
      • Case: False

        Parameters set:

        • IE_ELEVATOR_TRIM (using ID)
    • Default

      Condition: Switch(INTERACTION_TYPE)

      • Case: WHEEL

        Parameters set:

        • ANIM_NAME
        • NODE_ID
        • PART_ID
        • INCREMENT
        • MOUSE_WHEEL_INCREMENT
        • UPPER_LIMIT
        • LOWER_LIMIT
        • AXIS
        • DRAG_AXIS_SCALE
        • WWISE_EVENT_1
        • WWISE_EVENT_2
        • DRAG_SCALAR
        • INPUTEVENT_VAR_TYPE
        • INPUTEVENT_VAR_NAME

        Condition: Check(INFINITE)

        • Case: True

          Parameters set:

          • DRAG_SPEED

        Condition: Check(DOUBLE_WHEEL)

        • Case: True

          Parameters set:

          • NODE_ID2
      • Case: SWITCH

        Parameters set:

        • NODE_ID (using ID)
        • ANIM_NAME (using ID)
        • PART_ID
        • OTHER_PART_ID
        • WWISE_EVENT
        • COUNT
        • ANIMREF_ID
        • ANIMTIP_0_ON_CURSOR
        • ANIMTIP_1_ON_CURSOR
        • ANIMTIP_0
        • ANIMTIP_1
        • TRIM_LIMIT
        • SWITCH_POSITION_TYPE
        • SWITCH_POSITION_VAR (using IE_ELEVATOR_TRIM)
        • SWITCH_POSITION_TYPE_TIMER
        • SWITCH_POSITION_VAR_TIMER (using IE_ELEVATOR_TRIM)
    • Default

      Parameters set:

      • TOOLTIP_ELEVATOR_TRIM_TITLE
    • Override

      Parameters set:

      • TOOLTIP_TITLE (using TOOLTIP_ELEVATOR_TRIM_TITLE)
      • TOOLTIP_ENTRY_0 (using IE_ELEVATOR_TRIM)

      Condition: Switch(INTERACTION_TYPE)

      • Case: WHEEL

        Condition: Check(INFINITE)

        • Case: True

          Parameters set:

          • UP_CODE (using IE_ELEVATOR_TRIM)
          • DOWN_CODE (using IE_ELEVATOR_TRIM)
        • Case: False

          Parameters set:

          • POSITIVE_AXIS_CODE (using MOUSE_WHEEL_INCREMENT, IE_ELEVATOR_TRIM)
          • NEGATIVE_AXIS_CODE (using MOUSE_WHEEL_INCREMENT, IE_ELEVATOR_TRIM)

          Condition: Valid(USE_TRAJECTORY_DRAG_MODE)

          • Case: True

            Parameters set:

            • DRAG_CODE (using UPPER_LIMIT, LOWER_LIMIT, IE_ELEVATOR_TRIM)
          • Case: False

            Condition: Valid(SLOW_DRAG)

            • Case: True

              Parameters set:

              • DRAG_CODE (using INPUTEVENT_VAR_TYPE, INPUTEVENT_VAR_NAME, INCREMENT, UPPER_LIMIT, LOWER_LIMIT, IE_ELEVATOR_TRIM)
            • Case: False

              Parameters set:

              • DRAG_CODE (using INPUTEVENT_VAR_TYPE, INPUTEVENT_VAR_NAME, INCREMENT, UPPER_LIMIT, LOWER_LIMIT, IE_ELEVATOR_TRIM)

    Condition: Switch(INTERACTION_TYPE)

    • Case: WHEEL

      Parameters read:

      • NODE_ID

      Components:

      • #NODE_ID# (Node: #NODE_ID#)

        Parameters set:

        • ELEVATOR_TRIM_ID

        Condition: Valid(SLOW_DRAG)

        • Case: True

          Templates used:

        Condition: Valid(HIGHLIGHT_NODE_ID_1)

        • Case: True

          Parameters set:

          • HIGHLIGHT_NODE_ID (using HIGHLIGHT_NODE_ID_1)

        Condition: Check(INFINITE)

      Condition: Check(HIGHLIGHT_NODE_ID)

      Condition: Check(DOUBLE_WHEEL)

      • Case: True

        Parameters read:

        • NODE_ID2

        Components:

    • Case: SWITCH

      Templates used:

  • ASOBO_HANDLING_Combined_Trim_SubTemplate

    Definition from XML
    <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>&apos;%.1f %%&apos; @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>&apos;%.1f %%&apos; @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>&apos;%.1f°&apos; @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:#STATE_VAR#)</LEFT_CODE_EXTERNAL> <IE_STANDBY_CODE>4 (&gt;L:#STATE_VAR#)</IE_STANDBY_CODE> <RIGHT_CODE_EXTERNAL>1 (&gt;L:#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:#STATE_VAR#)</LEFT_CODE_EXTERNAL> <IE_STANDBY_CODE>4 (&gt;L:#STATE_VAR#)</IE_STANDBY_CODE> <RIGHT_CODE_EXTERNAL>3 (&gt;L:#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:#STATE_VAR#) sp0</GET_STATE_EXTERNAL> <LOCAL_VAR_TO_WATCH_0>#STATE_VAR#</LOCAL_VAR_TO_WATCH_0> <FREQUENCY>#TRIM_UPDATE_FREQUENCY#</FREQUENCY> </UseTemplate> </Component> </Template>

    Parameters initialization:

    • Default

      Parameters set:

      • NODE_ID (using INTERACTION_TYPE)
      • ANIM_NAME_L_R (using INTERACTION_TYPE)
      • ANIM_NAME_DN_UP (using INTERACTION_TYPE)
      • TRIM_UPDATE_FREQUENCY
      • WWISE_PREFIX
    • Override

      Parameters set:

      • TRIM_TYPE_0 (using L_R_TRIM_TYPE)
      • TRIM_TYPE_1 (using UP_DN_TRIM_TYPE)
    • Override

      Parameters set:

      • CUR_ID
      • TRIM_TYPE (using CUR_ID)

      Condition: Switch(TRIM_TYPE)

      • Case: RUDDER

        Parameters set:

        • INC_TRIM_#CUR_ID#
        • DEC_TRIM_#CUR_ID#
        • GET_TRIM_#CUR_ID#
        • TT_TRIM_#CUR_ID#
      • Case: AILERON

        Parameters set:

        • INC_TRIM_#CUR_ID#
        • DEC_TRIM_#CUR_ID#
        • GET_TRIM_#CUR_ID#
        • TT_TRIM_#CUR_ID#
      • Case: ELEVATOR

        Parameters set:

        • INC_TRIM_#CUR_ID#
        • DEC_TRIM_#CUR_ID#
        • GET_TRIM_#CUR_ID#
        • TT_TRIM_#CUR_ID#
        • TT_VALUE_3
        • TT_VALUE_2
      • Case: LONGITUDINAL

        Parameters set:

        • INC_TRIM_#CUR_ID#
        • DEC_TRIM_#CUR_ID#
        • GET_TRIM_#CUR_ID#
        • TT_TRIM_#CUR_ID#
        • FORMAT_VALUE
      • Case: LATERAL

        Parameters set:

        • INC_TRIM_#CUR_ID#
        • DEC_TRIM_#CUR_ID#
        • GET_TRIM_#CUR_ID#
        • TT_TRIM_#CUR_ID#
        • FORMAT_VALUE

    Parameters read:

    • NODE_ID

    Components:

    • #NODE_ID# (Node: #NODE_ID#)

      Parameters set:

      • THRESHOLD_X_INPUT
      • THRESHOLD_X_MOUSE
      • THRESHOLD_Y_INPUT
      • THRESHOLD_Y_MOUSE
      • TOOLTIP_TITLE
      • TT_DESCRIPTION_ID
      • FORMAT_VALUE
      • TT_VALUE_IS_DYNAMIC
      • STATE_VAR (using TRIM_TYPE_0, TRIM_TYPE_1)

      Templates used:

      • ASOBO_HANDLING_Axis_Event_Base_Template

        Parameters set:

        • IE_NAME (using TRIM_TYPE_0)
        • AXIS
        • LEFT_CODE_EXTERNAL (using STATE_VAR)
        • IE_STANDBY_CODE (using STATE_VAR)
        • RIGHT_CODE_EXTERNAL (using STATE_VAR)
        • TT_VALUE (using GET_TRIM_0, FORMAT_VALUE)
        • TT_DESCRIPTION_ID (using TT_TRIM_0)
      • ASOBO_HANDLING_Axis_Event_Base_Template

        Parameters set:

        • IE_NAME (using TRIM_TYPE_1)
        • AXIS
        • LEFT_CODE_EXTERNAL (using STATE_VAR)
        • IE_STANDBY_CODE (using STATE_VAR)
        • RIGHT_CODE_EXTERNAL (using STATE_VAR)
        • TT_VALUE (using GET_TRIM_1, FORMAT_VALUE)
        • TT_DESCRIPTION_ID (using TT_TRIM_1)
      • ASOBO_HANDLING_Base_Template

        Parameters set:

        • IE_NAME (using TRIM_TYPE_0, TRIM_TYPE_1)
        • JOYSTICK_TYPE
        • JOYSTICK_INTERACTION_TYPE
        • CREATE_COMPONENT
        • IE_ID_EXTERNAL_0 (using TRIM_TYPE_0)
        • IE_ID_EXTERNAL_1 (using TRIM_TYPE_1)
        • ON_POS_LEFT (using DEC_TRIM_0)
        • ON_POS_RIGHT (using INC_TRIM_0)
        • ON_POS_DOWN (using DEC_TRIM_1)
        • ON_POS_UP (using INC_TRIM_1)
        • GET_STATE_EXTERNAL (using STATE_VAR)
        • LOCAL_VAR_TO_WATCH_0 (using STATE_VAR)
        • FREQUENCY (using TRIM_UPDATE_FREQUENCY)
  • ASOBO_HANDLING_AP_Trim_Disc_SubTemplate

    Definition from XML
    <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"> <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> </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> </Parameters> <Parameters Type="Override"> <Switch Param="INTERACTION_TYPE"> <Case Value="PUSH"> <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> </Case> </Switch> <BTN_ID>Trim_Disconnect</BTN_ID> <TOOLTIP_TITLE>@TT_Package.YOKE_PUSH_AP_TRIM_DISC_TITLE</TOOLTIP_TITLE> <TOOLTIP_ENTRY_0>HANDLING_Trim_Disconnect</TOOLTIP_ENTRY_0> <TT_DESCRIPTION_ID>@TT_Package.YOKE_PUSH_AP_TRIM_DISC_ACTION</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>p0 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> <TT_VALUE>#GET_TRIM# 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> </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>

    Parameters initialization:

    • Default

      Parameters set:

      • TYPE
      • SET_TRIM_ELEVATOR
      • SET_TRIM_RUDDER
      • SET_TRIM_AILERON
      • SET_TRIM_ELECTRICAL
      • GET_TRIM
      • ELECTRICAL_POWER_VAR_NAME
      • ELECTRICAL_POWER_VAR_TYPE
    • Override

      Condition: Switch(TYPE)

      • Case: RudderAileron

        Parameters set:

        • SET_TRIM_RUDDER
        • SET_TRIM_AILERON
        • GET_TRIM
      • Case: Elevator

        Parameters set:

        • SET_TRIM_ELEVATOR
        • GET_TRIM
      • Case: Aileron

        Parameters set:

        • SET_TRIM_ELEVATOR
        • GET_TRIM
      • Case: Electrical

        Parameters set:

        • SET_TRIM_ELECTRICAL (using ELECTRICAL_POWER_VAR_TYPE, ELECTRICAL_POWER_VAR_NAME)
        • GET_TRIM (using ELECTRICAL_POWER_VAR_TYPE, ELECTRICAL_POWER_VAR_NAME)
    • Default

      Parameters set:

      • NODE_ID (using INTERACTION_TYPE, ID)
      • ANIM_NAME (using INTERACTION_TYPE, ID)
      • SET_TRIM (using SET_TRIM_ELEVATOR, SET_TRIM_RUDDER, SET_TRIM_AILERON, SET_TRIM_ELECTRICAL)

      Condition: Switch(INTERACTION_TYPE)

      • Case: PUSH

        Parameters set:

        • WWISE_EVENT_1
        • WWISE_EVENT_2
      • Case: SWITCH

        Parameters set:

        • WWISE_EVENT_1
        • WWISE_EVENT_2

    Parameters read:

    • NODE_ID

    Components:

    • #NODE_ID# (Node: #NODE_ID#)

      Parameters set:

      • ANIM_VAR
      • ANIM_VAR_TYPE
      • BTN_ID
      • TOOLTIP_TITLE
      • TOOLTIP_ENTRY_0
      • TT_DESCRIPTION_ID

      Condition: Switch(INTERACTION_TYPE)

      • Case: PUSH

        Parameters set:

        • PUSH_EVENT (using SET_TRIM, ANIM_VAR_TYPE, ANIM_VAR)
        • RELEASE_EVENT (using SET_TRIM, ANIM_VAR_TYPE, ANIM_VAR)

      Condition: Switch(INTERACTION_TYPE)

      • Case: PUSH

        Parameters set:

        • BINDING_DEC_0
        • BINDING_DEC_0_PARAM_0
        • SET_STATE_EXTERNAL (using PUSH_EVENT, RELEASE_EVENT)
        • BINDING_INC_0
        • BINDING_INC_0_PARAM_0
        • ANIM
        • TT_VALUE (using GET_TRIM)
        • TT_VALUE_IS_DYNAMIC

        Templates used:

        • ASOBO_GT_Push_Button_Held

          Parameters set:

          • LEFT_SINGLE_CODE (using BTN_ID)
          • LEFT_LEAVE_CODE (using BTN_ID)
          • OVERRIDE_ANIM_CODE (using ANIM_VAR_TYPE, ANIM_VAR)
      • Case: SWITCH

        Parameters set:

        • GET_STATE_EXTERNAL (using GET_TRIM)
        • SET_STATE_ON (using SET_TRIM)
        • SET_STATE_OFF (using SET_TRIM)
        • SIM_STATE_IS_ON_EXTERNAL
        • ANIM

        Templates used:

  • ASOBO_HANDLING_Trim_Variable_Speed_Base_Template

    Definition from XML
    <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> <AILERONS_TRIM_ID>1</AILERONS_TRIM_ID> </Case> </Switch> <UPDATE_FREQ>10</UPDATE_FREQ> <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> <NORMAL_INC_DEGREES>0.1</NORMAL_INC_DEGREES> <FAST_MODE_SCALE>3</FAST_MODE_SCALE> <SCALE_INCREMENT>163.83 * 16383 min -16383 max</SCALE_INCREMENT> <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>

    Parameters initialization:

    • Default

      Parameters set:

      • UPDATE_FREQ
      • UPDATE_COUNT_BEFORE_FAST_MODE
      • UPDATE_COUNT_BEFORE_REPEAT
      • MOMENTARY_MIN_DURATION
      • TRIM_LIMIT
      • NORMAL_INC_DEGREES
      • FAST_MODE_SCALE
      • SCALE_INCREMENT
      • SWITCH_DIRECTION
      • COUNT
      • ELECTRICAL_POWER
      • ELECTRICAL_POWER_VAR_NAME
      • ELECTRICAL_POWER_VAR_TYPE

      Condition: Switch(TRIM_TYPE)

      • Case: Elevator

        Parameters set:

        • GET_TRIM
        • SET_TRIM
        • ELEVATOR_TRIM_ID
      • Case: Rudder

        Parameters set:

        • GET_TRIM
        • SET_TRIM
        • RUDDER_TRIM_ID
      • Case: Ailerons

        Parameters set:

        • GET_TRIM
        • SET_TRIM
        • TRIM_LIMIT
        • AILERONS_TRIM_ID

      Condition: Valid(LOCK_NODE_ID)

      • Case: True

        Parameters set:

        • VAR_NAME_TRIM_LOCK_UNLOCKED (using TRIM_NAME, ID)
        • VAR_SCOPE_TRIM_LOCK_UNLOCKED

      Condition: Check(SECONDARY)

      • Case: True

        Parameters set:

        • ADDITIONAL_TESTS (using TRIM_NAME)
      • Case: False

        Parameters set:

        • ADDITIONAL_TESTS
    • Override

      Condition: Valid(ELECTRICAL_POWER)

      • Case: True

        Parameters set:

        • ADDITIONAL_TESTS (using ADDITIONAL_TESTS, ELECTRICAL_POWER_VAR_TYPE, ELECTRICAL_POWER_VAR_NAME)
    • Override

      Parameters set:

      • NORMAL_MODE_PERCENT_PER_UPDATE (using NORMAL_INC_DEGREES, TRIM_LIMIT)
      • FAST_MODE_PERCENT_PER_UPDATE (using NORMAL_INC_DEGREES, TRIM_LIMIT, FAST_MODE_SCALE)
      • STATE0_TEST
      • STATE1_TEST
      • STATE2_TEST

      Condition: Valid(LOCK_NODE_ID)

      • Case: True

        Parameters set:

        • CODE_POS_0_VERIF (using VAR_SCOPE_TRIM_LOCK_UNLOCKED, VAR_NAME_TRIM_LOCK_UNLOCKED)
        • CODE_POS_2_VERIF (using VAR_SCOPE_TRIM_LOCK_UNLOCKED, VAR_NAME_TRIM_LOCK_UNLOCKED)

    Parameters read:

    • NODE_ID

    Components:

    • #NODE_ID# (Node: #NODE_ID#)

      Parameters set:

      • INC_STATE
      • DEC_STATE
      • CODE_POS_0 (using ADDITIONAL_TESTS, GET_TRIM, NORMAL_MODE_PERCENT_PER_UPDATE, SCALE_INCREMENT, SET_TRIM)
      • CODE_POS_1
      • CODE_POS_2 (using ADDITIONAL_TESTS, GET_TRIM, NORMAL_MODE_PERCENT_PER_UPDATE, SCALE_INCREMENT, SET_TRIM)
      • STATE_MAX_TIMER (using MOMENTARY_MIN_DURATION)
      • STATE0_TIMER (using MOMENTARY_MIN_DURATION)

      Templates used:

      • ASOBO_GT_Update

        Parameters set:

        • FREQUENCY (using UPDATE_FREQ)
        • UPDATE_CODE (using ADDITIONAL_TESTS, UPDATE_COUNT_BEFORE_FAST_MODE, GET_TRIM, FAST_MODE_PERCENT_PER_UPDATE, SCALE_INCREMENT, SET_TRIM, UPDATE_COUNT_BEFORE_REPEAT, NORMAL_MODE_PERCENT_PER_UPDATE)
      • ASOBO_GT_Switch_3States

        Parameters set:

        • MOMENTARY_SWITCH

    Condition: Valid(LOCK_NODE_ID)

    • Case: True

      Parameters read:

      • LOCK_NODE_ID

      Components:

      • #LOCK_NODE_ID# (Node: #LOCK_NODE_ID#)

        Templates used:

        • ASOBO_GT_Switch_Code

          Parameters set:

          • ANIM_NAME (using LOCK_ANIM_NAME)
          • LEFT_SINGLE_CODE (using VAR_SCOPE_TRIM_LOCK_UNLOCKED, VAR_NAME_TRIM_LOCK_UNLOCKED)
          • ANIM_CODE (using VAR_SCOPE_TRIM_LOCK_UNLOCKED, VAR_NAME_TRIM_LOCK_UNLOCKED)
  • ASOBO_HANDLING_Secondary_Trim_Available_SubTemplate

    Definition from XML
    <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>

    Parameters initialization:

    • Default

      Parameters set:

      • NODE_ID (using INTERACTION_TYPE, TRIM_NAME)
      • ANIM_NAME (using INTERACTION_TYPE, TRIM_NAME)
      • COVER_NODE_ID (using TRIM_NAME)
      • COVER_ANIM_NAME (using TRIM_NAME)
      • PART_ID (using INTERACTION_TYPE, TRIM_NAME)

      Condition: Switch(INTERACTION_TYPE)

      • Case: Push

        Parameters set:

        • COUNT
        • WWISE_EVENT_1
        • NORMALIZED_TIME_1
        • WWISE_EVENT_2
        • NORMALIZED_TIME_2

      Condition: Switch(TRIM_NAME)

      • Case: Elevator

        Parameters set:

        • TT_DESCRIPTION_ID
        • TOOLTIP_TITLE
    • Override

      Parameters set:

      • BTN_ID (using TRIM_NAME)

    Condition: Switch(INTERACTION_TYPE)

    • Case: Push

      Templates used:

      • ASOBO_GT_Push_Button_Airliner

        Parameters set:

        • INPUT_EVENT_ID
        • TOOLTIP_ENTRY_0 (using BTN_ID)
        • SET_STATE_EXTERNAL (using BTN_ID)
        • GET_STATE_EXTERNAL (using BTN_ID)
        • SIM_STATE_IS_ON_EXTERNAL
        • SEQ1_EMISSIVE_CODE (using BTN_ID)
        • SEQ2_EMISSIVE_CODE (using BTN_ID)
        • LEFT_SINGLE_CODE (using BTN_ID)
  • ASOBO_HANDLING_Spoilers_Int_SubTemplate

    Definition from XML
    <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 &apos;%.1f%%&apos; @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 &apos;%.1f%%&apos; @sprintf } }</FORMAT_VALUE> </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 &apos;%.1f%%&apos; @sprintf }</FORMAT_VALUE> </True> <False> <FORMAT_VALUE>&apos;%.1f%%&apos; @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_TITLETOOLTIP_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) &apos;%d%%&apos; @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>

    Parameters initialization:

    • Default

      Parameters set:

      • ANIM_NAME (using INTERACTION_TYPE)
      • NODE_ID (using INTERACTION_TYPE)
      • PART_ID (using INTERACTION_TYPE)
      • WWISE_PREFIX
      • RETRACT_ARMED_FULL
      • POS_DOWN
      • POS_ARM
      • TT_DESCRIPTION_ID
      • TT_DESCRIPTION_ID_EXTEND
      • TOOLTIP_TITLE

      Condition: Switch(INTERACTION_TYPE)

      • Case: Lever

        Parameters set:

        • DRAG_AXIS_SCALE
        • DRAG_SPEED
        • WWISE_EVENT
        • MIN_VALUE
        • MAX_VALUE
        • LEVER_ANIM_LAG

        Condition: Valid(USE_LOCK)

        • Case: True

          Parameters set:

          • TT_ICON_LOCK
          • WWISE_EVENT_LOCK_1
          • WWISE_EVENT_LOCK_2
          • LOCK_NODE_ID
          • LOCK_ANIM_NAME
          • LOCK_VAR_SCOPE
          • LOCK_VAR_NAME
          • TOOLTIP_SPOILERS_LOCK_TITLE
          • TT_DESCRIPTION_ID_SPOILERS_LOCK

        Condition: Switch(TYPE)

        • Case: AIRLINER

          Parameters set:

          • ANIM_TRIGGER_COUNT
          • STEPS_NUMBER
          • USE_GATES
          • ANIM_LENGTH

          Condition: Valid(PHYSICAL_AUTOSPOILER)

          • Case: True

            Parameters set:

            • ARMED_STATE_TEST
          • Case: False

            Parameters set:

            • ARMED_STATE_TEST
      • Case: Switch

        Parameters set:

        • TIME_TO_FULL_RANGE_SEC
        • REPEAT_FREQUENCY
        • MOMENTARY_TIMER
        • POS_DEC
        • POS_STANDBY
        • POS_INC
        • ADDITIONAL_TESTS

        Condition: Switch(PUSH_TYPE)

        • Case: EXTEND_FULL

          Parameters set:

          • ANIM_NAME_PUSH (using INTERACTION_TYPE)
          • INVERT_ANIM_PUSH
    • Override

      Condition: Switch(INTERACTION_TYPE)

      • Case: Switch

        Parameters set:

        • INCREMENT (using TIME_TO_FULL_RANGE_SEC, REPEAT_FREQUENCY)
        • MOMENTARY_SWITCH
        • STATE0_TIMER (using MOMENTARY_TIMER)
        • STATE_MAX_TIMER (using MOMENTARY_TIMER)
        • STATE_STANDBY
        • STATE_INC
        • STATE_DEC

        Condition: Switch(PUSH_TYPE)

        • Case: EXTEND_FULL

          Parameters set:

          • ADDITIONAL_TESTS (using ADDITIONAL_TESTS)

    Condition: Switch(INTERACTION_TYPE)

    • Case: Lever

      Templates used:

      • ASOBO_HANDLING_Base_Template

        Parameters set:

        • IE_NAME
        • GATE_DIRECTION
        • DONT_SYNC_DRAG_TO_ANIM
        • DRAG_ANIM_NAME (using ANIM_NAME)
        • DRAG_NODE_ID (using NODE_ID)
        • GET_TT_VALUE_STATE
        • FORMAT_VALUE
        • SIMVAR_TO_WATCH_0
        • GET_STATE_EXTERNAL
        • SET_STATE_EXTERNAL
        • STATE_TO_POS_EXTERNAL
        • INC_PARAM_0
        • DEC_PARAM_0
        • ANIM_LAG (using LEVER_ANIM_LAG)

        Condition: Valid(USE_LOCK)

        • Case: True

          Parameters set:

          • ON_BEFORE_SET_CODE

        Condition: Valid(USE_GATES)

        • Case: True

          Parameters set:

          • TEMPLATE_TO_USE
          • DRAG_CODE (using STEPS_NUMBER)
          • ON_AFTER_INIT_CODE (using STEPS_NUMBER)

          Condition: Valid(RETRACT_ARMED_FULL)

          • Case: True

            Parameters set:

            • FORMAT_VALUE

          Condition: NotEmpty(OVERRIDE_ANIM_CODE)

          • Case: False

            Condition: Valid(RETRACT_ARMED_FULL)

            • Case: True

              Parameters set:

              • OVERRIDE_ANIM_CODE (using POS_ARM, ANIM_LENGTH, STEPS_NUMBER, POS_DOWN)
            • Case: False

              Parameters set:

              • OVERRIDE_ANIM_CODE (using STEPS_NUMBER, ANIM_LENGTH)
        • Case: False

          Parameters set:

          • GET_TT_VALUE_STATE
          • DRAG_VALUE_TO_EVENT_SET

          Condition: Valid(USE_LOCK)

          • Case: True

            Parameters set:

            • FORMAT_VALUE
          • Case: False

            Parameters set:

            • FORMAT_VALUE

      Condition: Valid(USE_GATES)

      • Case: True

        Condition: Valid(RETRACT_ARMED_FULL)

        • Case: True

          Templates used:

        • Case: False

          Templates used:

      Condition: Valid(USE_LOCK)

      • Case: True

        Templates used:

        • ASOBO_HANDLING_Base_Template

          Parameters set:

          • INTERACTION_TYPE
          • TT_ICON (using TT_ICON_LOCK)
          • IE_NAME
          • NODE_ID (using LOCK_NODE_ID)
          • ANIM_NAME (using LOCK_ANIM_NAME)
          • TOOLTIP_TITLE (using TOOLTIP_SPOILERS_LOCK_TITLETOOLTIP_SPOILERS_LOCK_TITLE)
          • TT_DESCRIPTION_ID (using TT_DESCRIPTION_ID_SPOILERS_LOCK)
          • WWISE_EVENT_1 (using WWISE_EVENT_LOCK_1)
          • WWISE_EVENT_2 (using WWISE_EVENT_LOCK_2)
          • SIMVAR_TO_WATCH_0
          • SET_STATE_EXTERNAL (using LOCK_VAR_SCOPE, LOCK_VAR_NAME)
          • GET_STATE_EXTERNAL (using LOCK_VAR_SCOPE, LOCK_VAR_NAME)
          • COMP_INIT_CODE
          • CHECK_STATE_HAS_CHANGED

          Condition: Valid(INVERT_LOCK_ANIM)

          • Case: True

            Parameters set:

            • INVERT_ANIM (using INVERT_LOCK_ANIM)
    • Case: Switch

      Templates used:

      • ASOBO_HANDLING_Base_Template

        Parameters set:

        • IE_NAME
        • NUM_STATES
        • COMP_UPDATE_CODE (using POS_STANDBY, ADDITIONAL_TESTS, INCREMENT, POS_INC)
        • FREQUENCY (using REPEAT_FREQUENCY)
        • SET_STATE_#POS_INC# (using STATE_INC)
        • SET_STATE_#POS_STANDBY# (using STATE_STANDBY)
        • SET_STATE_#POS_DEC# (using STATE_DEC)
        • TT_VALUE
        • TT_VALUE_IS_DYNAMIC
        • STR_STATE_#POS_INC#
        • STR_STATE_#POS_STANDBY#
        • STR_STATE_#POS_DEC#
        • GET_STATE_EXTERNAL
        • ENUM_VAL_TO_POS_EXTERNAL (using POS_STANDBY, STATE_STANDBY, STATE_INC, POS_INC, STATE_DEC, POS_DEC)

        Condition: Switch(PUSH_TYPE)

        • Case: EXTEND_FULL

          Parameters set:

          • IE_ID_EXTERNAL_0
          • ON_PRIMARY_EVENT (using POS_STANDBY)
          • ANIM_CODE_PUSH
          • OVERRIDE_ANIM_CODE
          • ON_STATE_CHANGED_EXTERNAL_CODE (using POS_STANDBY)
          • WWISE_PUSH_EVENT_1
          • WWISE_PUSH_EVENT_2

      Condition: Switch(PUSH_TYPE)

      • Case: EXTEND_FULL

        Templates used:

        • ASOBO_HANDLING_Push_Event_Base_Template

          Parameters set:

          • IE_NAME
          • SET_STATE_EXTERNAL (using ADDITIONAL_TESTS)
          • GET_STATE_EXTERNAL (using ADDITIONAL_TESTS)
          • STR_STATE_ON
          • STR_STATE_OFF
          • TT_VALUE_ON
          • TT_VALUE_OFF
          • TT_DESCRIPTION_ID (using TT_DESCRIPTION_ID_EXTEND)
          • SIMVAR_TO_WATCH_0
  • ASOBO_HANDLING_Flaps_SubTemplate

    Definition from XML
    <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>

    Condition: Switch(INTERACTION_TYPE)

  • ASOBO_HANDLING_Flaps_Lever_SubTemplate

    Definition from XML
    <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 Process="Int">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>

    Parameters initialization:

    • Default

      Parameters set:

      • ANIMTIP_0_ON_PERCENT
      • ANIMTIP_1_ON_PERCENT
      • ANIMTIP_2_ON_PERCENT
      • ANIMTIP_0
      • ANIMTIP_1
      • ANIMTIP_2
      • TOOLTIP_FLAPS_TITLE

      Condition: Valid(HAS_BUTTON)

      • Case: True

        Parameters set:

        • ANIM_NAME_LEVER
        • ANIM_NAME_BUTTON
        • NODE_ID
        • PART_ID
        • ANIM_TRIGGER_COUNT
        • ANIM_SPEED
        • DRAG_DELTA
        • ANIMREF_ID
        • AXIS
        • MAX_HANDLE_INDEX
        • MIN_DELTA
        • DONT_SYNC_DRAG_TO_ANIM
        • DONT_CREATE_SOUND_ANIM_TRIGGERS
      • Case: False

        Parameters set:

        • ANIM_NAME
        • NODE_ID
        • PART_ID
        • ANIM_TRIGGER_COUNT
        • MIN_DELTA
        • MAX_HANDLE_INDEX
        • ANIM_LAG
        • HELPID
        • ANIMREF_ID
    • Override

      Parameters set:

      • TOOLTIP_TITLE (using TOOLTIP_FLAPS_TITLE)
      • TOOLTIP_ENTRY_0
      • ANIM_CODE
      • STEP_INCREMENT

      Condition: Valid(HAS_BUTTON)

      • Case: False

        Parameters set:

        • ANIM_NAME_LEVER (using ANIM_NAME)
    • Override

      Condition: Valid(INVERT_INTERACTION)

      • Case: True

        Parameters set:

        • DRAG_POSITION
        • INVERT_ANIM
      • Case: False

        Parameters set:

        • DRAG_POSITION

    Parameters read:

    • NODE_ID

    Components:

    • #NODE_ID# (Node: #NODE_ID#)

      Parameters set:

      • FLAPS_ID

      Templates used:

      Condition: Valid(HAS_BUTTON)

      • Case: True

        Templates used:

        • ASOBO_GT_Anim_Code

          Parameters set:

          • ANIM_NAME (using ANIM_NAME_BUTTON)
          • ANIM_CODE
          • ANIM_LENGTH

          Condition: Check(BUTTON_ANIM_LAG)

          • Case: True

            Parameters set:

            • ANIM_LAG (using BUTTON_ANIM_LAG)

      Condition: Check(USE_TRAJECTORY_DRAG_MODE)

      • Case: True

        Templates used:

        • ASOBO_GT_Lever_DraggingWheelLeftDrag_Axis

          Parameters set:

          • ANIM_NAME (using ANIM_NAME_LEVER)
          • DRAG_ANIM_NAME (using ANIM_NAME_LEVER)
          • DONT_SYNC_DRAG_TO_ANIM
          • NO_ARROWS
          • CURSOR
          • HELPID
          • TOOLTIPID
          • DRAG_SIMVAR
          • DRAG_CODE (using DRAG_POSITION)
          • POSITIVE_AXIS_CODE (using STEP_INCREMENT)
          • NEGATIVE_AXIS_CODE (using STEP_INCREMENT)

          Condition: Valid(HAS_BUTTON)

          • Case: True

            Parameters set:

            • LOCK_CODE
            • UNLOCK_CODE
      • Case: False

        Templates used:

        • ASOBO_GT_Lever_DraggingYAxis_Code

          Parameters set:

          • ANIM_NAME (using ANIM_NAME_LEVER)
          • ANIM_LENGTH
          • UP_CODE (using STEP_INCREMENT)
          • DOWN_CODE (using STEP_INCREMENT)
          • DRAG_DELTA
          • DRAG_SPEED
          • IS_LOOPING

          Condition: Valid(HAS_BUTTON)

          • Case: True

            Parameters set:

            • LEFT_SINGLE_CODE
            • LEFT_RELEASE_CODE

      Condition: Valid(HAS_BUTTON)

  • ASOBO_HANDLING_Flaps_Button_SubTemplate

    Definition from XML
    <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) &apos;%d°&apos; @sprintf</TT_VALUE> <TT_VALUE_IS_DYNAMIC>True</TT_VALUE_IS_DYNAMIC> </UseTemplate> </Template>

    Parameters initialization:

    • Default

      Parameters set:

      • ANIM_NAME
      • NODE_ID
      • PART_ID
      • MAX_FLAPS_DEGREE
      • SELECTED_FLAPS_DEGREE
      • WWISE_PREFIX
    • Default

      Parameters set:

      • TOOLTIP_TITLE
      • TT_DESCRIPTION_ID
      • TT_DESCRIPTION_INDEX (using SELECTED_FLAPS_DEGREE)

    Parameters set:

    • FLAPS_ID

    Templates used:

    • ASOBO_HANDLING_Base_Template

      Parameters set:

      • IE_NAME (using SELECTED_FLAPS_DEGREE)
      • INTERACTION_TYPE
      • SET_STATE_EXTERNAL (using SELECTED_FLAPS_DEGREE, MAX_FLAPS_DEGREE)
      • TT_VALUE
      • TT_VALUE_IS_DYNAMIC
  • ASOBO_HANDLING_Autobrakes_SubTemplate

    Definition from XML
    <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> <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#>&apos;1&apos;</TT_VALUE_#POS_1#> <TT_VALUE_#POS_1#_IS_DYNAMIC>True</TT_VALUE_#POS_1#_IS_DYNAMIC> <TT_VALUE_#POS_2#>&apos;2&apos;</TT_VALUE_#POS_2#> <TT_VALUE_#POS_2#_IS_DYNAMIC>True</TT_VALUE_#POS_2#_IS_DYNAMIC> <TT_VALUE_#POS_3#>&apos;3&apos;</TT_VALUE_#POS_3#> <TT_VALUE_#POS_3#_IS_DYNAMIC>True</TT_VALUE_#POS_3#_IS_DYNAMIC> <TT_VALUE_#POS_4#>&apos;4&apos;</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>

    Parameters initialization:

    • Default

      Parameters set:

      • NODE_ID (using INTERACTION_TYPE, ID)
      • ANIM_NAME (using INTERACTION_TYPE, ID)
      • PART_ID (using INTERACTION_TYPE)
      • TOOLTIP_TITLE

      Condition: Switch(INTERACTION_TYPE)

      • Case: Push

        Parameters set:

        • TYPE
        • WWISE_PREFIX
        • AUTOBRAKE_LEVEL (using ID)
        • AUTOBRAKE_RTO
        • AUTOBRAKE_OFF
        • IS_AIRLINER
        • AUTODISABLE_COUNTDOWN

        Condition: Switch(ID)

        • Case: 1

          Parameters set:

          • TT_DESCRIPTION_ID
        • Case: 2

          Parameters set:

          • TT_DESCRIPTION_ID
        • Case: 3

          Parameters set:

          • TT_DESCRIPTION_ID

        Condition: Valid(DISABLED_IN_FLIGHT)

        • Case: True

          Parameters set:

          • TEST_DISABLED
        • Case: False

          Parameters set:

          • TEST_DISABLED
      • Case: Knob

        Parameters set:

        • TYPE
        • WWISE_PREFIX
        • TT_DESCRIPTION_ID

        Condition: Switch(AIRLINER_TYPE)

        • Case: BOEING

          Parameters set:

          • POS_RTO
          • POS_OFF
          • POS_DISARM
          • POS_1
          • POS_2
          • POS_3
          • POS_4
          • POS_MAX_AUTO
          • NUM_STATES
    • Override

      Condition: Switch(TYPE)

      • Case: ON_OFF

        Parameters set:

        • SET_SIMVAR_FROM_POSITION (using AUTOBRAKE_OFF, AUTOBRAKE_RTO)
    • Override

      Condition: Switch(TYPE)

      • Case: ON_OFF

        Parameters set:

        • LOCAL_VAR_TO_WATCH_0
        • SIMVAR_TO_WATCH_0
        • SIMVAR_TO_WATCH_1
        • SIMVAR_TO_WATCH_2
        • SET_STATE_EXTERNAL (using TEST_DISABLED, ID, AUTOBRAKE_LEVEL, AUTOBRAKE_OFF, SET_SIMVAR_FROM_POSITION)
        • GET_STATE_EXTERNAL (using AUTOBRAKE_LEVEL, AUTOBRAKE_OFF)

        Condition: Check(ID)

        • Case: True

          Parameters set:

          • COMP_INIT_CODE (using SET_SIMVAR_FROM_POSITION)
          • COMP_UPDATE_CODE (using AUTOBRAKE_OFF, AUTODISABLE_COUNTDOWN)

        Condition: Valid(IS_AIRLINER)

        • Case: True

          Parameters set:

          • SEQ1_EMISSIVE_CODE (using ID)
          • SEQ2_EMISSIVE_CODE (using ID)
      • Case: X_STATES

        Parameters set:

        • KNOB_TYPE
        • SIMVAR_TO_WATCH_0

        Condition: Switch(AIRLINER_TYPE)

        • Case: BOEING

          Parameters set:

          • STR_STATE_#POS_RTO#
          • STR_STATE_#POS_OFF#
          • STR_STATE_#POS_DISARM#
          • STR_STATE_#POS_1#
          • STR_STATE_#POS_2#
          • STR_STATE_#POS_3#
          • STR_STATE_#POS_4#
          • STR_STATE_#POS_MAX_AUTO#
          • TT_VALUE_#POS_RTO#
          • TT_VALUE_#POS_OFF#
          • TT_VALUE_#POS_DISARM#
          • TT_VALUE_#POS_1#
          • TT_VALUE_#POS_1#_IS_DYNAMIC
          • TT_VALUE_#POS_2#
          • TT_VALUE_#POS_2#_IS_DYNAMIC
          • TT_VALUE_#POS_3#
          • TT_VALUE_#POS_3#_IS_DYNAMIC
          • TT_VALUE_#POS_4#
          • TT_VALUE_#POS_4#_IS_DYNAMIC
          • TT_VALUE_#POS_MAX_AUTO#
          • SET_STATE_#POS_RTO#
          • SET_STATE_#POS_OFF#
          • SET_STATE_#POS_DISARM#
          • SET_STATE_#POS_1#
          • SET_STATE_#POS_2#
          • SET_STATE_#POS_3#
          • SET_STATE_#POS_4#
          • SET_STATE_#POS_MAX_AUTO#
          • GET_STATE_EXTERNAL
          • ENUM_VAL_TO_POS_EXTERNAL (using POS_DISARM, POS_RTO, POS_OFF, POS_1, POS_2, POS_3, POS_4, POS_MAX_AUTO)
          • ON_STATE_CHANGED_EXTERNAL_CODE (using POS_DISARM)

    Templates used:

    • ASOBO_HANDLING_Base_Template

      Condition: Switch(TYPE)

      • Case: ON_OFF

        Parameters set:

        • IE_NAME (using ID)
      • Case: X_STATES

        Parameters set:

        • IE_NAME (using ID)
  • ASOBO_HANDLING_Wipers_Controller_SubTemplate

    Definition from XML
    <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> <Value>POS_PARK</Value> <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>

    Parameters initialization:

    • Default

      Parameters set:

      • NODE_ID (using INTERACTION_TYPE)
      • ANIM_NAME (using INTERACTION_TYPE)
      • WWISE_EVENT
      • TEMPLATE_TO_USE
      • CIRCUIT_ID_WIPERS
      • SWITCH_DIRECTION
      • IE_WIPERS_ID

      Condition: Switch

      • Case: Valid(OFF_INT_LOW_HIGH)

        Parameters set:

        • POWER_INT
        • POWER_LOW
        • POWER_HIGH
        • POS_OFF
        • POS_INT
        • POS_LOW
        • POS_HIGH
        • NUM_STATES
      • Case: Valid(PARK_OFF_NORM_FAST)

        Parameters set:

        • POWER_FAST
        • POWER_NORM
        • POS_PARK
        • POS_OFF
        • POS_NORM
        • POS_FAST
        • MOMENTARY_MIN_DURATION
        • CIRCUIT_ID_PARK
        • NUM_STATES
      • Default case:

        Parameters set:

        • POWER_NORM
        • POWER_SLOW
        • POS_NORM
        • POS_OFF
        • POS_SLOW
        • NUM_STATES
    • Override

      Parameters set:

      • INPUT_EVENT_ID_SOURCE
      • USE_INPUT_EVENT_ID
      • BTN_ID (using IE_WIPERS_ID)

      Condition: Switch(INTERACTION_TYPE)

      • Case: Knob

        Parameters set:

        • ANIM
        • ARROW_TYPE
        • TT_ICON
    • Override

      Parameters set:

      • SET_POWER (using CIRCUIT_ID_WIPERS)
      • GET_POWER (using CIRCUIT_ID_WIPERS)
      • WIPERS_ON (using CIRCUIT_ID_WIPERS)
      • WIPERS_OFF (using CIRCUIT_ID_WIPERS)
      • IS_WIPERS_ON (using CIRCUIT_ID_WIPERS)

      Condition: Switch

      • Case: Valid(PARK_OFF_NORM_FAST)

        Parameters set:

        • PARK_ON (using CIRCUIT_ID_PARK)
        • PARK_OFF (using CIRCUIT_ID_PARK)
        • IS_PARK_ON (using CIRCUIT_ID_PARK)
        • INIT_WIPERS_STATE (using CIRCUIT_ID_PARK, CIRCUIT_ID_WIPERS)

        Condition: Test(POS_PARK)

        • Case: True

          Parameters set:

          • STATE_MAX_TIMER (using MOMENTARY_MIN_DURATION)
          • STATE0_TIMER
          • REST_STATE (using POS_PARK)
        • Case: False

          Parameters set:

          • STATE_MAX_TIMER
          • STATE0_TIMER (using MOMENTARY_MIN_DURATION)
          • REST_STATE
      • Default case:

        Parameters set:

        • INIT_WIPERS_STATE (using CIRCUIT_ID_WIPERS)
    • Override

      Parameters set:

      • TOOLTIP_ENTRY_0 (using INPUT_EVENT_ID_SOURCE, BTN_ID)

      Condition: NotEmpty(CIRCUIT_ID_WIPERS)

      • Case: True

        Parameters set:

        • SIMVAR_TO_WATCH_0 (using CIRCUIT_ID_WIPERS)
        • SIMVAR_TO_WATCH_1 (using CIRCUIT_ID_WIPERS)

      Condition: Switch

      • Case: Valid(OFF_INT_LOW_HIGH)

        Parameters set:

        • GET_STATE_EXTERNAL (using IS_WIPERS_ON, GET_POWER)
        • ENUM_VAL_TO_POS_EXTERNAL (using POWER_INT, POS_INT, POWER_LOW, POS_LOW, POS_HIGH, POS_OFF)
        • SET_STATE_#POS_OFF# (using WIPERS_OFF)
        • SET_STATE_#POS_INT# (using WIPERS_ON, POWER_INT, SET_POWER)
        • SET_STATE_#POS_LOW# (using WIPERS_ON, POWER_LOW, SET_POWER)
        • SET_STATE_#POS_HIGH# (using WIPERS_ON, POWER_HIGH, SET_POWER)
        • STR_STATE_#POS_OFF#
        • STR_STATE_#POS_INT#
        • STR_STATE_#POS_LOW#
        • STR_STATE_#POS_HIGH#
        • TT_VALUE_#POS_OFF#
        • TT_VALUE_#POS_INT#
        • TT_VALUE_#POS_LOW#
        • TT_VALUE_#POS_HIGH#
        • CODE_POS_#POS_OFF# (using INPUT_EVENT_ID_SOURCE, BTN_ID)
        • CODE_POS_#POS_INT# (using INPUT_EVENT_ID_SOURCE, BTN_ID)
        • CODE_POS_#POS_LOW# (using INPUT_EVENT_ID_SOURCE, BTN_ID)
        • CODE_POS_#POS_HIGH# (using INPUT_EVENT_ID_SOURCE, BTN_ID)
        • STATE#POS_OFF#_TEST (using INPUT_EVENT_ID_SOURCE, BTN_ID, POS_OFF)
        • STATE#POS_INT#_TEST (using INPUT_EVENT_ID_SOURCE, BTN_ID, POS_INT)
        • STATE#POS_LOW#_TEST (using INPUT_EVENT_ID_SOURCE, BTN_ID, POS_LOW)
        • STATE#POS_HIGH#_TEST (using INPUT_EVENT_ID_SOURCE, BTN_ID, POS_HIGH)
      • Case: Valid(PARK_OFF_NORM_FAST)

        Parameters set:

        • SIMVAR_TO_WATCH_2 (using CIRCUIT_ID_PARK)
        • GET_STATE_EXTERNAL (using IS_WIPERS_ON, IS_PARK_ON, GET_POWER)
        • ENUM_VAL_TO_POS_EXTERNAL (using POWER_FAST, POS_FAST, POS_NORM, POS_PARK, POS_OFF)
        • CODE_POS_RETURN (using REST_STATE)
        • SET_STATE_#POS_FAST# (using PARK_OFF, WIPERS_ON, POWER_FAST, SET_POWER)
        • SET_STATE_#POS_NORM# (using PARK_OFF, WIPERS_ON, POWER_NORM, SET_POWER)
        • SET_STATE_#POS_OFF# (using PARK_OFF, WIPERS_OFF)
        • SET_STATE_#POS_PARK# (using PARK_ON, WIPERS_OFF)
        • STR_STATE_#POS_FAST#
        • STR_STATE_#POS_NORM#
        • STR_STATE_#POS_OFF#
        • STR_STATE_#POS_PARK#
        • TT_VALUE_#POS_FAST#
        • TT_VALUE_#POS_NORM#
        • TT_VALUE_#POS_OFF#
        • TT_VALUE_#POS_PARK#
        • CODE_POS_#POS_FAST# (using INPUT_EVENT_ID_SOURCE, BTN_ID)
        • CODE_POS_#POS_NORM# (using INPUT_EVENT_ID_SOURCE, BTN_ID)
        • CODE_POS_#POS_OFF# (using INPUT_EVENT_ID_SOURCE, BTN_ID)
        • CODE_POS_#POS_PARK# (using INPUT_EVENT_ID_SOURCE, BTN_ID)
        • STATE#POS_FAST#_TEST (using INPUT_EVENT_ID_SOURCE, BTN_ID, POS_FAST)
        • STATE#POS_NORM#_TEST (using INPUT_EVENT_ID_SOURCE, BTN_ID, POS_NORM)
        • STATE#POS_OFF#_TEST (using INPUT_EVENT_ID_SOURCE, BTN_ID, POS_OFF)
        • STATE#POS_PARK#_TEST (using INPUT_EVENT_ID_SOURCE, BTN_ID, POS_PARK)
        • MOMENTARY_SWITCH
      • Default case:

        Parameters set:

        • GET_STATE_EXTERNAL (using IS_WIPERS_ON, GET_POWER)
        • ENUM_VAL_TO_POS_EXTERNAL (using POWER_SLOW, POS_SLOW, POS_NORM, POS_OFF)
        • SET_STATE_#POS_NORM# (using WIPERS_ON, POWER_NORM, SET_POWER)
        • SET_STATE_#POS_OFF# (using WIPERS_OFF)
        • SET_STATE_#POS_SLOW# (using WIPERS_ON, POWER_SLOW, SET_POWER)
        • STR_STATE_#POS_NORM#
        • STR_STATE_#POS_OFF#
        • STR_STATE_#POS_SLOW#
        • TT_VALUE_#POS_NORM#
        • TT_VALUE_#POS_OFF#
        • TT_VALUE_#POS_SLOW#
        • CODE_POS_#POS_NORM# (using INPUT_EVENT_ID_SOURCE, BTN_ID)
        • CODE_POS_#POS_OFF# (using INPUT_EVENT_ID_SOURCE, BTN_ID)
        • CODE_POS_#POS_SLOW# (using INPUT_EVENT_ID_SOURCE, BTN_ID)
        • STATE#POS_NORM#_TEST (using INPUT_EVENT_ID_SOURCE, BTN_ID, POS_NORM)
        • STATE#POS_OFF#_TEST (using INPUT_EVENT_ID_SOURCE, BTN_ID, POS_OFF)
        • STATE#POS_SLOW#_TEST (using INPUT_EVENT_ID_SOURCE, BTN_ID, POS_SLOW)
    • Default

      Parameters set:

      • TOOLTIP_TITLE
      • TT_DESCRIPTION_ID

    Parameters read:

    • NODE_ID

    Components:

    • #NODE_ID# (Node: #NODE_ID#)

      Parameters read:

      • USE_INPUT_EVENT_ID
      • TEMPLATE_TO_USE

      Templates used:

  • ASOBO_HANDLING_Switch_AerobaticsTrimFlaps_SubTemplate

    Definition from XML
    <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>

    Parameters initialization:

    • Default

      Parameters set:

      • ANIM_NAME
      • NODE_ID
      • PART_ID
      • BUS_ID
      • CIRCUIT_ID
      • WWISE_EVENT_1
      • WWISE_EVENT_2
      • IE_CIRCUIT_ID
      • TT_DESCRIPTION_ID
      • TOOLTIP_TITLE
    • Override

      Parameters set:

      • DISABLE_TRIM
      • ENABLE_TRIM
    • Override

      Parameters set:

      • BTN_ID (using IE_CIRCUIT_ID)
      • IS_CONNECTION_ON (using BUS_ID, CIRCUIT_ID)

    Parameters read:

    • NODE_ID

    Components:

    • #NODE_ID# (Node: #NODE_ID#)

      Parameters set:

      • SET_STATE_EXTERNAL (using IS_CONNECTION_ON, CIRCUIT_ID, BUS_ID, ENABLE_TRIM, DISABLE_TRIM)
      • GET_STATE_EXTERNAL (using IS_CONNECTION_ON)
      • SIM_STATE_IS_ON_EXTERNAL
      • ANIM

      Templates used:

      • ASOBO_GT_Switch_Code

        Parameters set:

        • TOOLTIP_ENTRY_0 (using BTN_ID)
        • ANIM_CODE (using BTN_ID)
        • LEFT_SINGLE_CODE (using BTN_ID)
  • ASOBO_HANDLING_InertSep_SubTemplate

    Definition from XML
    <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>

    Parameters initialization:

    • Default

      Parameters set:

      • NODE_ID (using INTERACTION_TYPE)
      • ANIM_NAME (using INTERACTION_TYPE)
      • VAR_NAME
      • VAR_SCOPE
      • TOOLTIP_TITLE
      • TT_DESCRIPTION_ID

      Condition: Switch(INTERACTION_TYPE)

      • Case: Lever

        Parameters set:

        • WWISE_EVENT_1
        • NORMALIZED_TIME_1
        • DIRECTION_1
        • WWISE_EVENT_2
        • NORMALIZED_TIME_2
        • DIRECTION_2
        • ANIM
    • Override

      Parameters set:

      • BTN_ID

    Parameters read:

    • NODE_ID

    Components:

    • #NODE_ID# (Node: #NODE_ID#)

      Parameters set:

      • SET_STATE_ON (using VAR_SCOPE, VAR_NAME)
      • SET_STATE_OFF (using VAR_SCOPE, VAR_NAME)
      • GET_STATE_EXTERNAL (using VAR_SCOPE, VAR_NAME)
      • SIM_STATE_IS_ON_EXTERNAL
      • STR_STATE_OFF
      • STR_STATE_ON
      • TT_VALUE_OFF
      • TT_VALUE_ON

      Templates used:

      • ASOBO_GT_Switch_Code

        Parameters set:

        • TOOLTIP_ENTRY_0 (using BTN_ID)
        • LEFT_SINGLE_CODE (using BTN_ID)
        • ANIM_CODE (using BTN_ID)
  • ASOBO_HANDLING_AutoSpoiler_SubTemplate

    Definition from XML
    <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>

    Parameters initialization:

    • Default

      Parameters set:

      • ANIM_NAME (using INTERACTION_TYPE)
      • NODE_ID (using INTERACTION_TYPE)
      • PART_ID (using INTERACTION_TYPE)
      • TT_DESCRIPTION_ID
      • TOOLTIP_TITLE

      Condition: Switch(INTERACTION_TYPE)

      • Case: Push

        Parameters set:

        • WWISE_EVENT_1
        • NORMALIZED_TIME_1
        • WWISE_EVENT_2
        • NORMALIZED_TIME_2
        • PUSH_TYPE
    • Override

      Parameters set:

      • BTN_ID

    Condition: Switch(INTERACTION_TYPE)

    • Case: Push

      Templates used:

      • ASOBO_GT_Push_Button_Airliner

        Parameters set:

        • INPUT_EVENT_ID
        • TOOLTIP_ENTRY_0 (using BTN_ID)
        • SEQ1_EMISSIVE_CODE (using BTN_ID)
        • SEQ2_EMISSIVE_CODE (using BTN_ID)
        • LEFT_SINGLE_CODE (using BTN_ID)
        • SIMVAR_TO_WATCH_0
        • SET_STATE_EXTERNAL
        • GET_STATE_EXTERNAL
        • SIM_STATE_IS_ON_EXTERNAL

        Condition: Switch(PUSH_TYPE)

        • Case: NORM_DISARM

          Parameters set:

          • STR_STATE_ON
          • STR_STATE_OFF
          • TT_VALUE_ON
          • TT_VALUE_OFF
  • ASOBO_HANDLING_Water_Rudder_Controller_SubTemplate

    Definition from XML
    <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>

    Parameters initialization:

    • Default

      Parameters set:

      • NODE_ID (using INTERACTION_TYPE)
      • ANIM_NAME (using INTERACTION_TYPE)
      • PART_ID (using INTERACTION_TYPE)
      • WWISE_PREFIX

      Condition: Switch(INTERACTION_TYPE)

      • Case: Switch

        Parameters set:

        • TOOLTIP_TITLE
        • TT_DESCRIPTION_ID
      • Case: Lever

        Parameters set:

        • TOOLTIP_TITLE
        • TT_DESCRIPTION_ID

      Condition: Valid(USE_STATE_INDICATOR)

      • Case: True

        Parameters set:

        • EMISSIVE_NODE_ID

    Templates used:

    • ASOBO_HANDLING_Base_Template

      Parameters set:

      • IE_NAME
      • SET_STATE_EXTERNAL
      • GET_STATE_EXTERNAL
      • SIM_STATE_IS_ON_EXTERNAL
      • STR_STATE_ON
      • STR_STATE_OFF
      • TT_VALUE_ON
      • TT_VALUE_OFF
      • SIMVAR_TO_WATCH_0

      Condition: Switch(INTERACTION_TYPE)

      • Case: Lever

        Parameters set:

        • LEVER_TYPE

    Condition: Valid(USE_STATE_INDICATOR)

    • Case: True

      Parameters read:

      • EMISSIVE_NODE_ID

      Components:

      • #EMISSIVE_NODE_ID# (Node: #EMISSIVE_NODE_ID#)

        Templates used: