[Go back to index]
Asobo\Common\Inputs\Engine_Inputs.xml
Source XML
<ModelBehaviors>
<Include ModelBehaviorFile="ASOBO\Inputs\Helpers.xml"/>
<InputEvent ID="ENGINE">
<Presets>
<Switch>
<Case Valid="THROTTLE_ID">
<Preset ID="ENGINE_Throttle_#THROTTLE_ID#">
<Parameters Type="Default">
<USE_IDLE_POS_SNAP_ASSISTANCE>@UseIdlePosSnapAssistance</USE_IDLE_POS_SNAP_ASSISTANCE>
<INCREMENT>256</INCREMENT>
<UPPER_LIMIT>16384</UPPER_LIMIT>
<LOWER_LIMIT>(A:THROTTLE LOWER LIMIT, position 16k)</LOWER_LIMIT>
</Parameters>
<Parameters Type="Default">
<THROTTLE_KEY_SET>(>K:THROTTLE#THROTTLE_ID#_SET)</THROTTLE_KEY_SET>
<GET_THROTTLE>(A:GENERAL ENG THROTTLE LEVER POSITION:#THROTTLE_ID#, position 16k)</GET_THROTTLE>
<ON_BEFORE_INC/>
<ON_BEFORE_DEC/>
<ON_BEFORE_SET/>
<ON_BEFORE_INC_SET/>
<ON_BEFORE_DEC_SET/>
<ON_AFTER_INC/>
<ON_AFTER_DEC/>
<ON_AFTER_SET/>
<ON_AFTER_INIT/>
<Condition Valid="USE_IDLE_POS_SNAP_ASSISTANCE">
<MIN_TIME_HELD_BEFORE_REVERSE>@IdlePosSnapAssistance_MinTimebeforeReverse</MIN_TIME_HELD_BEFORE_REVERSE>
<THRESHOLD_HELD_DETECTION>@IdlePosSnapAssistance_ThresholdHeldDetection</THRESHOLD_HELD_DETECTION>
<ON_ALLOW_REVERSE/>
<VALUE_IDLE>0</VALUE_IDLE>
</Condition>
<Condition Valid="USE_SEPARATE_REVERSER">
<CLAMP_LOWER_LIMIT>#LOWER_LIMIT#</CLAMP_LOWER_LIMIT>
</Condition>
<Condition NotEmpty="GROUND_GATE_ANIM_POS">
<TT_VALUE_GROUND_FINE>(R:1:@TT_Package.GT_STATE_GROUND)</TT_VALUE_GROUND_FINE>
</Condition>
</Parameters>
<Parameters Type="Override">
<Condition Valid="USE_SEPARATE_REVERSER">
<True>
<REVERSER_CHECK>sp0 (A:GENERAL ENG REVERSE THRUST ENGAGED:#THROTTLE_ID#, Boolean) l0 0 > and if{ l0 (>B:ENGINE_Throttle_Reverser_#THROTTLE_ID#_Set) 1 (>O:IE_Throttle_#THROTTLE_ID#_Quit) } l0</REVERSER_CHECK>
<NEGATIVE_CHECK>sp0 l0 0 < if{ l0 abs (>B:ENGINE_Throttle_Reverser_#THROTTLE_ID#_Set) (B:ENGINE_Throttle_#THROTTLE_ID#) 0 <= if{ 1 (>O:IE_Throttle_#THROTTLE_ID#_Quit) } els{ 0 sp0 } } l0</NEGATIVE_CHECK>
<ON_BEFORE_INC_SET>s0 0 < if{ 0 sp0 } l0</ON_BEFORE_INC_SET>
</True>
<False>
<REVERSER_CHECK>sp0 (A:GENERAL ENG REVERSE THRUST ENGAGED:#THROTTLE_ID#, Boolean) l0 0 > and if{ (A:THROTTLE LOWER LIMIT, percent over 100) l0 * sp0 } l0</REVERSER_CHECK>
<NEGATIVE_CHECK>sp0 l0 0 < if{ l0 (A:THROTTLE LOWER LIMIT, percent over 100) abs * sp0 } l0</NEGATIVE_CHECK>
</False>
</Condition>
<Condition Valid="USE_IDLE_POS_SNAP_ASSISTANCE">
<Condition Valid="USE_SEPARATE_REVERSER">
<ON_ALLOW_REVERSE>#ON_ALLOW_REVERSE# (B:ENGINE_Throttle_#THROTTLE_ID#, percent) 0 == if{ (>B:ENGINE_Throttle_Reverser_#THROTTLE_ID#_Full_Reverse) quit }</ON_ALLOW_REVERSE>
<VALUE_IDLE>(B:ENGINE_Throttle_Reverser_#THROTTLE_ID#, percent over 100) -1 *</VALUE_IDLE>
</Condition>
</Condition>
<ON_BEFORE_SET>#ON_BEFORE_SET#
(E:IS IN VR, Boolean) (E:IS USING MOTION CONTROLLERS, Boolean) (E:IS USING JOYSTICK THROTTLE, Boolean) ! (L:XMLVAR_IE_Throttle_VR_Handled) ! and and and if{
1 (>L:XMLVAR_IE_Throttle_VR_Handled)
p0 16384 / (>L:XMLVAR_IE_Throttle_VR_Value) (>B:Set_All_Throttles)
0 (>L:XMLVAR_IE_Throttle_VR_Handled)
quit
}
</ON_BEFORE_SET>
<SET_ALLOW_REVERSE>
1 (>O:_ReverseInputsAllowed)
</SET_ALLOW_REVERSE>
<CHECK_ALLOW_REVERSE>
(O:_ReverseInputsAllowed)
</CHECK_ALLOW_REVERSE>
</Parameters>
<Parameters Type="Override">
<Condition NotEmpty="GROUND_GATE_ANIM_POS">
<True>
<ON_ALLOW_REVERSE>
#CHECK_FORCED_BETA# ! if{ (O:TS_Last_Dec_Event) (>O:TS_First_Dec_Event) #ENABLE_FORCED_BETA# #VALUE_IDLE# sp2 } els{ #ON_ALLOW_REVERSE# }
</ON_ALLOW_REVERSE>
<SET_ALLOW_REVERSE>
#CHECK_FORCED_BETA# ! if{ #ENABLE_FORCED_BETA# } els{ #SET_ALLOW_REVERSE# }
</SET_ALLOW_REVERSE>
<CHECK_ALLOW_REVERSE>#CHECK_ALLOW_REVERSE# #CHECK_FORCED_BETA# or</CHECK_ALLOW_REVERSE>
<ON_BEFORE_INC_SET>d 0 > if{ #DISABLE_FORCED_BETA# }</ON_BEFORE_INC_SET>
</True>
</Condition>
</Parameters>
<Parameters Type="Override">
<Condition Valid="USE_IDLE_POS_SNAP_ASSISTANCE">
<ON_BEFORE_DEC>#ON_BEFORE_DEC#
(O:_Process_Idle_Pose_Snap_Assist) if{
#GET_THROTTLE# s0 p0 - sp1
(O:TS_Last_Dec_Event) (>O:TS_Prev_Last_Dec_Event) (E:ABSOLUTE TIME, second) (>O:TS_Last_Dec_Event)
}
</ON_BEFORE_DEC>
<ON_BEFORE_DEC_SET>#ON_BEFORE_DEC_SET#
(O:_Process_Idle_Pose_Snap_Assist) if{
s2 sign l0 sign != if{
(* Considered held if called at an interval lower than #THRESHOLD_HELD_DETECTION#s *)
(O:TS_Last_Dec_Event) (O:TS_Prev_Last_Dec_Event) - abs #THRESHOLD_HELD_DETECTION# < if{
(O:TS_Last_Dec_Event) (O:TS_First_Dec_Event) - abs #MIN_TIME_HELD_BEFORE_REVERSE# < if{
#VALUE_IDLE# sp2
} els{
#CHECK_ALLOW_REVERSE# ! if{ (O:TS_Last_Dec_Event) (>O:TS_First_Dec_Event) #VALUE_IDLE# sp2 } els{ #ON_ALLOW_REVERSE# }
}
} els{
(O:TS_Last_Dec_Event) (>O:TS_First_Dec_Event) #VALUE_IDLE# sp2 #SET_ALLOW_REVERSE#
}
} els{ (O:TS_Last_Dec_Event) (>O:TS_First_Dec_Event) 0 (>O:_ReverseInputsAllowed) } l2
}
</ON_BEFORE_DEC_SET>
<ON_AFTER_DEC>#ON_AFTER_DEC# 0 (>O:_Process_Idle_Pose_Snap_Assist)</ON_AFTER_DEC>
<ACTIVATE_IDLE_POS_SNAP_ASSIST>1 (>O:_Process_Idle_Pose_Snap_Assist)</ACTIVATE_IDLE_POS_SNAP_ASSIST>
</Condition>
</Parameters>
<Parameters Type="Override">
<ON_BEFORE_SET>#ON_BEFORE_SET# (O:IE_Throttle_#THROTTLE_ID#_Quit) if{ 0 (>O:IE_Throttle_#THROTTLE_ID#_Quit) quit }</ON_BEFORE_SET>
<Condition Valid="USE_SEPARATE_REVERSER">
<True>
<LOWER_LIMIT>0</LOWER_LIMIT>
<LOWER_POSITION_PCT_OVER_100 Process="Float">0</LOWER_POSITION_PCT_OVER_100>
<ON_AFTER_SET>(B:ENGINE_Throttle_Reverser_#THROTTLE_ID#, percent) 0 > p0 0 >= and if{ (>B:ENGINE_Throttle_Reverser_#THROTTLE_ID#_Idle) } #ON_AFTER_SET#</ON_AFTER_SET>
<Condition Valid="USE_IDLE_POS_SNAP_ASSISTANCE">
<False>
<ON_BEFORE_DEC>#ON_BEFORE_DEC# (B:ENGINE_Throttle_#THROTTLE_ID#, percent) 0 == if{ (>B:ENGINE_Throttle_Reverser_#THROTTLE_ID#_Full_Reverse) quit }</ON_BEFORE_DEC>
</False>
</Condition>
</True>
<False>
<LOWER_POSITION_PCT_OVER_100 Process="Float">#LOWER_LIMIT# #UPPER_LIMIT# /</LOWER_POSITION_PCT_OVER_100>
</False>
</Condition>
<INIT_CODE>#GET_THROTTLE# #LOWER_LIMIT# max #UPPER_LIMIT# min (>O:ENGINE_Throttle_#THROTTLE_ID#_Position) #ON_AFTER_INIT#</INIT_CODE>
</Parameters>
<Parameters Type="Default">
<Condition NotEmpty="TT_DESCRIPTION_ID">
<True>
<Condition NotEmpty="TT_DESCRIPTION_INDEX">
<True>
<TT_DESCRIPTION>#TT_DESCRIPTION_INDEX# (R:1:#TT_DESCRIPTION_ID#) @sprintf</TT_DESCRIPTION>
<TT_DESCRIPTION_IS_DYNAMIC>True</TT_DESCRIPTION_IS_DYNAMIC>
</True>
<False>
<TT_DESCRIPTION>#TT_DESCRIPTION_ID#</TT_DESCRIPTION>
<TT_DESCRIPTION_IS_DYNAMIC>False</TT_DESCRIPTION_IS_DYNAMIC>
</False>
</Condition>
</True>
<False>
<TT_DESCRIPTION>@TT_Package.ENGINE_THROTTLE_ACTION_1ENG</TT_DESCRIPTION>
<TT_DESCRIPTION_IS_DYNAMIC>False</TT_DESCRIPTION_IS_DYNAMIC>
</False>
</Condition>
<CLAMP_UPPER_LIMIT>#UPPER_LIMIT#</CLAMP_UPPER_LIMIT>
<CLAMP_LOWER_LIMIT>#LOWER_LIMIT#</CLAMP_LOWER_LIMIT>
<ON_AFTER_SET_BINDING/>
<TOOLTIP_VALUE>(A:GENERAL ENG THROTTLE LEVER POSITION:#THROTTLE_ID#, percent) '%.1f%%' @sprintf</TOOLTIP_VALUE>
</Parameters>
<Parameters Type="Override">
<Condition NotEmpty="GROUND_GATE_ANIM_POS">
<TOOLTIP_VALUE>(A:PROP BETA FORCED ACTIVE:#THROTTLE_ID#, Bool) if{ #TT_VALUE_GROUND_FINE# } els{ #TOOLTIP_VALUE# }</TOOLTIP_VALUE>
</Condition>
</Parameters>
<Tooltip>
<Icon>MOVE_AXIS_Y</Icon>
<Interaction>PRIMARY_DOWN+Y_AXIS</Interaction>
<InteractionLockable>Y_AXIS</InteractionLockable>
<TTDescription RPN="#TT_DESCRIPTION_IS_DYNAMIC#">#TT_DESCRIPTION#</TTDescription>
<TTValue RPN="True">#TOOLTIP_VALUE#</TTValue>
</Tooltip>
<Value>
<Units>percent</Units>
<Code>(O:ENGINE_Throttle_#THROTTLE_ID#_Position) #LOWER_LIMIT# - #UPPER_LIMIT# #LOWER_LIMIT# - / 100 *</Code>
<Init>#INIT_CODE#</Init>
<WatchVars>
<Simvar ID="GENERAL ENG THROTTLE LEVER POSITION:#THROTTLE_ID#"/>
</WatchVars>
</Value>
<Inc>
<Code>#ON_BEFORE_INC# #GET_THROTTLE# p0 + 16384 / #ON_BEFORE_INC_SET# (>B:ENGINE_Throttle_#THROTTLE_ID#_Set) #ON_AFTER_INC#</Code>
<Parameters>
<Param Type="Float" RPN="True">p0 #INCREMENT# *</Param>
</Parameters>
<Bindings>
<Binding EventID="THROTTLE_INCR"><!-- event manipulating all throttles (declared for each throttle preset) -->
<Param>1</Param>
</Binding>
<Binding EventID="THROTTLE_INCR_SMALL"><!-- event manipulating all throttles (declared for each throttle preset) -->
<Param>0.5</Param>
</Binding>
<Binding EventID="THROTTLE#THROTTLE_ID#_INCR">
<Param>1</Param>
</Binding>
<Binding EventID="THROTTLE#THROTTLE_ID#_INCR_SMALL">
<Param>0.5</Param>
</Binding>
</Bindings>
</Inc>
<Dec>
<Code>#ON_BEFORE_DEC# #GET_THROTTLE# p0 - 16384 / #ON_BEFORE_DEC_SET# (>B:ENGINE_Throttle_#THROTTLE_ID#_Set) #ON_AFTER_DEC#</Code>
<Parameters>
<Param Type="Float" RPN="True">p0 #INCREMENT# *</Param>
</Parameters>
<Bindings>
<Condition Valid="USE_IDLE_POS_SNAP_ASSISTANCE">
<True>
<Binding EventID="THROTTLE_DECR"><!-- event manipulating all throttles (declared for each throttle preset) -->
<Param RPN="True">#ACTIVATE_IDLE_POS_SNAP_ASSIST# 1</Param>
</Binding>
<Binding EventID="THROTTLE_DECR_SMALL"><!-- event manipulating all throttles (declared for each throttle preset) -->
<Param RPN="True">#ACTIVATE_IDLE_POS_SNAP_ASSIST# 0.5</Param>
</Binding>
<Binding EventID="THROTTLE#THROTTLE_ID#_DECR">
<Param RPN="True">#ACTIVATE_IDLE_POS_SNAP_ASSIST# 1</Param>
</Binding>
<Binding EventID="THROTTLE#THROTTLE_ID#_DECR_SMALL">
<Param RPN="True">#ACTIVATE_IDLE_POS_SNAP_ASSIST# 0.5</Param>
</Binding>
</True>
<False>
<Binding EventID="THROTTLE_DECR"><!-- event manipulating all throttles (declared for each throttle preset) -->
<Param>1</Param>
</Binding>
<Binding EventID="THROTTLE_DECR_SMALL"><!-- event manipulating all throttles (declared for each throttle preset) -->
<Param>0.5</Param>
</Binding>
<Binding EventID="THROTTLE#THROTTLE_ID#_DECR">
<Param>1</Param>
</Binding>
<Binding EventID="THROTTLE#THROTTLE_ID#_DECR_SMALL">
<Param>0.5</Param>
</Binding>
</False>
</Condition>
</Bindings>
</Dec>
<Set>
<Code>#ON_BEFORE_SET# p0 #CLAMP_LOWER_LIMIT# max #CLAMP_UPPER_LIMIT# min s0 #THROTTLE_KEY_SET# l0 (>O:ENGINE_Throttle_#THROTTLE_ID#_Position) #ON_AFTER_SET#</Code>
<Parameters>
<Param Type="Float" RPN="True">p0 16384 *</Param>
</Parameters>
<Bindings>
<Binding Alias="Set_All_Throttles">
<Param Type="Float" RPN="True">(L:XMLVAR_IE_Throttle_VR_Value) #ON_AFTER_SET_BINDING# </Param>
</Binding>
<!-- Aliases -->
<Binding Alias="ENGINE_All_Throttle_Full_Forward"><!-- event manipulating all throttles (declared for each throttle preset) -->
<Param RPN="True">1 #ON_AFTER_SET_BINDING#</Param>
</Binding>
<Binding Alias="ENGINE_All_Throttle_Full_Backward"><!-- event manipulating all throttles (declared for each throttle preset) -->
<Param RPN="True">0 #ON_AFTER_SET_BINDING#</Param>
</Binding>
<Binding Alias="ENGINE_All_Throttle_Idle"><!-- event manipulating all throttles (declared for each throttle preset) -->
<Param RPN="True">0 #ON_AFTER_SET_BINDING#</Param>
</Binding>
<Binding Alias="ENGINE_Throttle_#THROTTLE_ID#_Full_Forward">
<Param RPN="True">1 #ON_AFTER_SET_BINDING#</Param>
</Binding>
<Binding Alias="ENGINE_Throttle_#THROTTLE_ID#_Full_Backward">
<Param RPN="True">#LOWER_POSITION_PCT_OVER_100# #ON_AFTER_SET_BINDING#</Param>
</Binding>
<Binding Alias="ENGINE_Throttle_#THROTTLE_ID#_Idle">
<Param RPN="True">0 #ON_AFTER_SET_BINDING#</Param>
</Binding>
<!-- EventIDs -->
<Binding EventID="THROTTLE_FULL">
<Param RPN="True">1 #ON_AFTER_SET_BINDING#</Param>
</Binding>
<Binding EventID="THROTTLE_CUT">
<Param RPN="True">0 #ON_AFTER_SET_BINDING#</Param>
</Binding>
<Binding EventID="THROTTLE#THROTTLE_ID#_FULL">
<Param RPN="True">1 #ON_AFTER_SET_BINDING#</Param>
</Binding>
<Binding EventID="THROTTLE#THROTTLE_ID#_CUT">
<Param RPN="True">0 #ON_AFTER_SET_BINDING#</Param>
</Binding>
<Binding EventID="THROTTLE#THROTTLE_ID#_SET">
<Param Type="Float" RPN="True">p1 @S16KToS1 #NEGATIVE_CHECK# #ON_AFTER_SET_BINDING#</Param>
</Binding>
<Binding EventID="THROTTLE#THROTTLE_ID#_AXIS_SET_EX1">
<Param Type="Float" RPN="True">p1 @S16KTo01 #REVERSER_CHECK# #ON_AFTER_SET_BINDING#</Param>
</Binding>
<Binding EventID="AXIS_THROTTLE#THROTTLE_ID#_SET">
<Param Type="Float" RPN="True">p1 @S16KTo01 #REVERSER_CHECK# #ON_AFTER_SET_BINDING#</Param>
</Binding>
<Binding EventID="THROTTLE_SET">
<Param Type="Float" RPN="True">p1 @S16KToS1 #NEGATIVE_CHECK# #ON_AFTER_SET_BINDING#</Param>
</Binding>
<Binding EventID="THROTTLE_AXIS_SET_EX1">
<Param Type="Float" RPN="True">p1 @S16KTo01 #REVERSER_CHECK# #ON_AFTER_SET_BINDING#</Param>
</Binding>
<Binding EventID="AXIS_THROTTLE_SET">
<Param Type="Float" RPN="True">p1 @S16KTo01 #REVERSER_CHECK# #ON_AFTER_SET_BINDING#</Param>
</Binding>
</Bindings>
</Set>
</Preset>
</Case>
<Case Valid="REVERSER_ID">
<Preset ID="ENGINE_Throttle_Reverser_#REVERSER_ID#">
<Parameters Type="Default">
<INCREMENT>256</INCREMENT>
<ON_BEFORE_SET/>
</Parameters>
<Parameters Type="Override">
<LOWER_LIMIT>(A:THROTTLE LOWER LIMIT, position 16k)</LOWER_LIMIT>
<UPPER_LIMIT>0</UPPER_LIMIT>
</Parameters>
<Parameters Type="Override">
<CAN_SET_THROTTLE>(B:ENGINE_Throttle_#REVERSER_ID#, percent) 0.05 <</CAN_SET_THROTTLE>
<ON_BEFORE_SET>#ON_BEFORE_SET#
(E:IS IN VR, Boolean) (E:IS USING MOTION CONTROLLERS, Boolean) (E:IS USING JOYSTICK THROTTLE, Boolean) ! (L:XMLVAR_IE_Throttle_Reverser_VR_Handled) ! and and and if{
1 (>L:XMLVAR_IE_Throttle_Reverser_VR_Handled)
p0 #LOWER_LIMIT# / (>L:XMLVAR_IE_Throttle_Reverser_VR_Value) (>B:Set_All_Throttle_Reverser)
0 (>L:XMLVAR_IE_Throttle_Reverser_VR_Handled)
quit
}
</ON_BEFORE_SET>
</Parameters>
<Tooltip>
<Icon>MOVE_AXIS_Y</Icon>
<Interaction>PRIMARY_DOWN+Y_AXIS</Interaction>
<InteractionLockable>Y_AXIS</InteractionLockable>
<TTDescription RPN="True">#REVERSER_ID# (R:1:@TT_Package.ENGINE_THROTTLE_REVERSE) @sprintf</TTDescription>
<TTValue RPN="True">(B:ENGINE_Throttle_Reverser_#REVERSER_ID#, percent) '%.2f%%' @sprintf</TTValue>
</Tooltip>
<Value>
<Units>percent</Units>
<Code>(O:ENGINE_Throttle_Reverser_#REVERSER_ID#_Position) #LOWER_LIMIT# / 100 *</Code>
<Init>(A:GENERAL ENG THROTTLE LEVER POSITION:#REVERSER_ID#, position 16k) #LOWER_LIMIT# max #UPPER_LIMIT# min (>O:ENGINE_Throttle_Reverser_#REVERSER_ID#_Position)</Init>
<WatchVars>
<Simvar ID="GENERAL ENG THROTTLE LEVER POSITION:#REVERSER_ID#"/>
</WatchVars>
</Value>
<Inc>
<Code>(A:GENERAL ENG THROTTLE LEVER POSITION:#REVERSER_ID#, position 16k) p0 - #LOWER_LIMIT# max #UPPER_LIMIT# min #LOWER_LIMIT# / (>B:ENGINE_Throttle_Reverser_#REVERSER_ID#_Set)</Code>
<Parameters>
<Param Type="Float" RPN="True">p0 #INCREMENT# *</Param>
</Parameters>
</Inc>
<Dec>
<Code>(A:GENERAL ENG THROTTLE LEVER POSITION:#REVERSER_ID#, position 16k) p0 + #LOWER_LIMIT# max #UPPER_LIMIT# min #LOWER_LIMIT# / (>B:ENGINE_Throttle_Reverser_#REVERSER_ID#_Set)</Code>
<Parameters>
<Param Type="Float" RPN="True">p0 #INCREMENT# *</Param>
</Parameters>
</Dec>
<Set>
<Code>#ON_BEFORE_SET# p0 #LOWER_LIMIT# max #UPPER_LIMIT# min sp0 #CAN_SET_THROTTLE# if{ l0 (>K:THROTTLE#REVERSER_ID#_SET) } els{ #UPPER_LIMIT# sp0 } l0 (>O:ENGINE_Throttle_Reverser_#REVERSER_ID#_Position)</Code>
<Parameters>
<Param Type="Float" RPN="True">p0 #LOWER_LIMIT# *</Param>
</Parameters>
<Bindings>
<Binding Alias="Set_All_Throttle_Reverser">
<Param Type="Float" RPN="True">(L:XMLVAR_IE_Throttle_Reverser_VR_Value)</Param>
</Binding>
<Binding Alias="ENGINE_All_Throttle_Reverser_Full_Reverse"><!-- event manipulating all throttles (declared for each throttle preset) -->
<Param>1</Param>
</Binding>
<Binding Alias="ENGINE_All_Throttle_Reverser_Idle"><!-- event manipulating all throttles (declared for each throttle preset) -->
<Param>0</Param>
</Binding>
<Binding Alias="ENGINE_Throttle_Reverser_#REVERSER_ID#_Full_Reverse">
<Param>1</Param>
</Binding>
<Binding Alias="ENGINE_Throttle_Reverser_#REVERSER_ID#_Idle">
<Param>0</Param>
</Binding>
</Bindings>
</Set>
</Preset>
</Case>
<Case Valid="PROPELLER_ID">
<Preset ID="ENGINE_Propeller_#PROPELLER_ID#">
<Parameters Type="Default">
<INCREMENT>256</INCREMENT>
<UPPER_LIMIT>16384</UPPER_LIMIT>
<LOWER_LIMIT Process="Int">@FeatherPropPos 16384 * 0 (A:THROTTLE LOWER LIMIT, position 16k) 0 < ?</LOWER_LIMIT>
<GET_STATE>(A:GENERAL ENG PROPELLER LEVER POSITION:#PROPELLER_ID#, position 16k)</GET_STATE>
<ON_BEFORE_INC/>
<ON_BEFORE_DEC/>
<ON_BEFORE_SET/>
<ON_AFTER_INC/>
<ON_AFTER_DEC/>
<ON_AFTER_SET/>
<TOOLTIP_VALUE>(A:GENERAL ENG PROPELLER LEVER POSITION:#PROPELLER_ID#, percent) '%.1f%%' @sprintf</TOOLTIP_VALUE>
<Condition NotEmpty="TT_DESCRIPTION_ID">
<True>
<Condition NotEmpty="TT_DESCRIPTION_INDEX">
<True>
<TT_DESCRIPTION>#TT_DESCRIPTION_INDEX# (R:1:#TT_DESCRIPTION_ID#) @sprintf</TT_DESCRIPTION>
<TT_DESCRIPTION_IS_DYNAMIC>True</TT_DESCRIPTION_IS_DYNAMIC>
</True>
<False>
<TT_DESCRIPTION>#TT_DESCRIPTION_ID#</TT_DESCRIPTION>
<TT_DESCRIPTION_IS_DYNAMIC>False</TT_DESCRIPTION_IS_DYNAMIC>
</False>
</Condition>
</True>
<False>
<TT_DESCRIPTION>#PROPELLER_ID# (R:1:@TT_Package.ENGINE_PROPELLER_ACTION_SOLO) @sprintf</TT_DESCRIPTION>
<TT_DESCRIPTION_IS_DYNAMIC>True</TT_DESCRIPTION_IS_DYNAMIC>
</False>
</Condition>
</Parameters>
<Parameters Type="Override">
<LOWER_POSITION_PCT_OVER_100 Process="Float">#LOWER_LIMIT# #UPPER_LIMIT# /</LOWER_POSITION_PCT_OVER_100>
</Parameters>
<Tooltip>
<Icon>MOVE_AXIS_Y</Icon>
<Interaction>PRIMARY_DOWN+Y_AXIS</Interaction>
<InteractionLockable>Y_AXIS</InteractionLockable>
<TTDescription RPN="#TT_DESCRIPTION_IS_DYNAMIC#">#TT_DESCRIPTION#</TTDescription>
<TTValue RPN="True">#TOOLTIP_VALUE#</TTValue>
</Tooltip>
<Value>
<Units>percent</Units>
<Code>(O:ENGINE_Propeller_#PROPELLER_ID#_Position) #LOWER_LIMIT# - #UPPER_LIMIT# #LOWER_LIMIT# - / 100 *</Code>
<Init>#GET_STATE# #LOWER_LIMIT# max #UPPER_LIMIT# min (>O:ENGINE_Propeller_#PROPELLER_ID#_Position)</Init>
<WatchVars>
<Simvar ID="GENERAL ENG PROPELLER LEVER POSITION:#PROPELLER_ID#"/>
</WatchVars>
</Value>
<Inc>
<Code>#ON_BEFORE_INC# #GET_STATE# p0 + 16384 / (>B:ENGINE_Propeller_#PROPELLER_ID#_Set) #ON_AFTER_INC#</Code>
<Parameters>
<Param Type="Float" RPN="True">p0 #INCREMENT# *</Param>
</Parameters>
<Bindings>
<Binding EventID="PROP_PITCH_INCR"><!-- event manipulating all propellers -->
<Param>1</Param>
</Binding>
<Binding EventID="PROP_PITCH_INCR_SMALL"><!-- event manipulating all propellers -->
<Param>0.5</Param>
</Binding>
<Binding EventID="PROP_PITCH#PROPELLER_ID#_INCR">
<Param>1</Param>
</Binding>
<Binding EventID="PROP_PITCH#PROPELLER_ID#_INCR_SMALL">
<Param>0.5</Param>
</Binding>
</Bindings>
</Inc>
<Dec>
<Code>#ON_BEFORE_DEC# #GET_STATE# p0 - 16384 / (>B:ENGINE_Propeller_#PROPELLER_ID#_Set) #ON_AFTER_DEC#</Code>
<Parameters>
<Param Type="Float" RPN="True">p0 #INCREMENT# *</Param>
</Parameters>
<Bindings>
<Binding EventID="PROP_PITCH_DECR"><!-- event manipulating all propellers -->
<Param>1</Param>
</Binding>
<Binding EventID="PROP_PITCH_DECR_SMALL"><!-- event manipulating all propellers -->
<Param>0.5</Param>
</Binding>
<Binding EventID="PROP_PITCH#PROPELLER_ID#_DECR">
<Param>1</Param>
</Binding>
<Binding EventID="PROP_PITCH#PROPELLER_ID#_DECR_SMALL">
<Param>0.5</Param>
</Binding>
</Bindings>
</Dec>
<Set>
<Code>#ON_BEFORE_SET# p0 #LOWER_LIMIT# max #UPPER_LIMIT# min s0 (>K:PROP_PITCH#PROPELLER_ID#_SET) l0 (>O:ENGINE_Propeller_#PROPELLER_ID#_Position) #ON_AFTER_SET#</Code>
<Parameters>
<Param Type="Float" RPN="True">p0 16384 *</Param>
</Parameters>
<Bindings>
<!-- Aliases -->
<Binding Alias="ENGINE_All_Propeller_Full_Forward"><!-- event manipulating all propellers -->
<Param>1</Param>
</Binding>
<Binding Alias="ENGINE_All_Propeller_Full_Backward"><!-- event manipulating all propellers -->
<Param>#LOWER_POSITION_PCT_OVER_100#</Param>
</Binding>
<Binding Alias="ENGINE_All_Propeller_Idle"><!-- event manipulating all propellers -->
<Param>0</Param>
</Binding>
<Binding Alias="ENGINE_Propeller_#PROPELLER_ID#_Full_Forward">
<Param>1</Param>
</Binding>
<Binding Alias="ENGINE_Propeller_#PROPELLER_ID#_Full_Backward">
<Param>#LOWER_POSITION_PCT_OVER_100#</Param>
</Binding>
<Binding Alias="ENGINE_Propeller_#PROPELLER_ID#_Idle">
<Param>0</Param>
</Binding>
</Bindings>
</Set>
</Preset>
</Case>
<Case Valid="MAGNETO_ID">
<Preset ID="ENGINE_Magneto_#IE_MAGNETO_ID#">
<Parameters Type="Default">
<SET_MAGNETO>(>K:MAGNETO#MAGNETO_ID#_SET)</SET_MAGNETO>
<GET_MAGNETO>
(A:RECIP ENG LEFT MAGNETO:#MAGNETO_ID#, Bool) sp0
(A:RECIP ENG RIGHT MAGNETO:#MAGNETO_ID#, Bool) sp1
</GET_MAGNETO>
<ON_STATE_CHANGED_EXTERNAL_CODE/>
</Parameters>
<Parameters Type="Default">
<IS_STARTER_ON>(A:GENERAL ENG STARTER:#MAGNETO_ID#, Bool)</IS_STARTER_ON>
<SET_STARTER>(>K:SET_STARTER#MAGNETO_ID#_HELD)</SET_STARTER>
<Switch Param="TYPE">
<Case Value="ON_OFF">
<STATE_OFF>0</STATE_OFF>
<STATE_ON>1</STATE_ON>
<MAX_POS>1</MAX_POS>
<!-- MAGNETO_SIDE : Left or Right or Both -->
</Case>
<Case Value="OFF_ON_START">
<STATE_OFF>0</STATE_OFF>
<STATE_ON>1</STATE_ON>
<STATE_START>2</STATE_START>
<MAX_POS>2</MAX_POS>
</Case>
<Case Value="OFF_L_R_BOTH">
<STATE_OFF>0</STATE_OFF>
<STATE_L>1</STATE_L>
<STATE_R>2</STATE_R>
<STATE_BOTH>3</STATE_BOTH>
<MAX_POS>3</MAX_POS>
</Case>
<Case Value="OFF_L_R_BOTH_START">
<STATE_OFF>0</STATE_OFF>
<STATE_L>1</STATE_L>
<STATE_R>2</STATE_R>
<STATE_BOTH>3</STATE_BOTH>
<STATE_START>4</STATE_START>
<MAX_POS>4</MAX_POS>
</Case>
</Switch>
</Parameters>
<Parameters Type="Default">
<Condition>
<Test>
<Greater>
<Value>MAX_POS</Value>
<Number>1</Number>
</Greater>
</Test>
<True>
<!-- <TT_DESCRIPTION_ID>@TT_Package.ENGINE_MAGNETO_STATE_ACTION_SET</TT_DESCRIPTION_ID> -->
<!-- <TT_DESCRIPTION_INDEX>#MAGNETO_ID#</TT_DESCRIPTION_INDEX> -->
<TT_INTERACTION>PRIMARY_DOWN+X_AXIS</TT_INTERACTION>
<TT_INTERACTION_LOCKABLE>X_AXIS</TT_INTERACTION_LOCKABLE>
<TT_ICON>ROTATE</TT_ICON>
</True>
<False>
<!-- <TT_DESCRIPTION_ID>@TT_Package.ENGINE_MAGNETO_STATE_ACTION_SET_LR</TT_DESCRIPTION_ID> -->
<!-- <Switch Param="MAGNETO_SIDE"> -->
<!-- <Case Value="Left"> -->
<!-- <TT_DESCRIPTION_INDEX>@TT_Left</TT_DESCRIPTION_INDEX> -->
<!-- </Case> -->
<!-- <Case Value="Right"> -->
<!-- <TT_DESCRIPTION_INDEX>@TT_Right</TT_DESCRIPTION_INDEX> -->
<!-- </Case> -->
<!-- <Case Value="Both"> -->
<!-- <TT_DESCRIPTION_INDEX>@TT_Both</TT_DESCRIPTION_INDEX> -->
<!-- </Case> -->
<!-- </Switch> -->
<TT_INTERACTION>PRIMARY_DOWN</TT_INTERACTION>
<TT_INTERACTION_LOCKABLE>LOCK</TT_INTERACTION_LOCKABLE>
<TT_ICON>MOVE_Y</TT_ICON>
</False>
</Condition>
<Condition Check="COVER_VAR_NAME">
<True>
<COVER_CHECK>(#COVER_VAR_TYPE#:#COVER_VAR_NAME#) *</COVER_CHECK>
</True>
<False>
<COVER_CHECK></COVER_CHECK>
</False>
</Condition>
<TT_DESCRIPTION_ID>@TT_Package.ENGINE_MAGNETO_STATE_ACTION_SET</TT_DESCRIPTION_ID>
<TT_DESCRIPTION_INDEX>#MAGNETO_ID#</TT_DESCRIPTION_INDEX>
</Parameters>
<Parameters Type="Override">
<Condition>
<Test>
<Or>
<Arg Check="TYPE" Match="ON_OFF"/>
<Arg Check="TYPE" Match="OFF_ON_START"/>
</Or>
</Test>
<True>
<Switch Param="MAGNETO_SIDE">
<Case Value="Left">
<SET_STATE_OFF>#GET_MAGNETO# 1 0 l1 ? #SET_MAGNETO#</SET_STATE_OFF>
<SET_STATE_ON>#GET_MAGNETO# 3 2 l1 ? #SET_MAGNETO#</SET_STATE_ON>
<IS_MAGNETO_ON>l0</IS_MAGNETO_ON>
</Case>
<Case Value="Right">
<SET_STATE_OFF>#GET_MAGNETO# 2 0 l0 ? #SET_MAGNETO#</SET_STATE_OFF>
<SET_STATE_ON>#GET_MAGNETO# 3 1 l0 ? #SET_MAGNETO#</SET_STATE_ON>
<IS_MAGNETO_ON>l1</IS_MAGNETO_ON>
</Case>
<Case Value="Both">
<SET_STATE_OFF>0 #SET_MAGNETO#</SET_STATE_OFF>
<SET_STATE_ON>3 #SET_MAGNETO#</SET_STATE_ON>
<IS_MAGNETO_ON>l0 l1 and</IS_MAGNETO_ON>
</Case>
</Switch>
</True>
</Condition>
</Parameters>
<Parameters Type="Override">
<Switch Param="TYPE">
<Case Value="ON_OFF"></Case> <!-- Case is just above -->
<Case Value="OFF_ON_START">
<SET_STATE_START>#SET_STATE_ON# #IS_STARTER_ON# ! if{ 1 #SET_STARTER# }</SET_STATE_START>
<ON_STATE_CHANGED_EXTERNAL_CODE>(O:ENGINE_Magneto_#IE_MAGNETO_ID#_Position) #STATE_START# != #IS_STARTER_ON# and if{ 0 #SET_STARTER# } #ON_STATE_CHANGED_EXTERNAL_CODE#</ON_STATE_CHANGED_EXTERNAL_CODE>
</Case>
<Case Value="OFF_L_R_BOTH">
<SET_STATE_OFF>0 #SET_MAGNETO#</SET_STATE_OFF>
<SET_STATE_L>2 #SET_MAGNETO#</SET_STATE_L>
<SET_STATE_R>1 #SET_MAGNETO#</SET_STATE_R>
<Condition Valid="BOTH_INCLUDES_STARTER">
<True>
<SET_STATE_BOTH>3 #SET_MAGNETO# #IS_STARTER_ON# ! if{ 1 #SET_STARTER# }</SET_STATE_BOTH>
<ON_STATE_CHANGED_EXTERNAL_CODE>(O:ENGINE_Magneto_#IE_MAGNETO_ID#_Position) #STATE_BOTH# != #IS_STARTER_ON# and if{ 0 #SET_STARTER# } #ON_STATE_CHANGED_EXTERNAL_CODE#</ON_STATE_CHANGED_EXTERNAL_CODE>
</True>
<False>
<SET_STATE_BOTH>3 #SET_MAGNETO#</SET_STATE_BOTH>
</False>
</Condition>
</Case>
<Case Value="OFF_L_R_BOTH_START">
<SET_STATE_OFF>0 #SET_MAGNETO# </SET_STATE_OFF>
<SET_STATE_L>2 #SET_MAGNETO#</SET_STATE_L>
<SET_STATE_R>1 #SET_MAGNETO#</SET_STATE_R>
<SET_STATE_BOTH>3 #SET_MAGNETO#</SET_STATE_BOTH>
<SET_STATE_START>3 #SET_MAGNETO# #IS_STARTER_ON# ! if{ 1 #SET_STARTER# }</SET_STATE_START>
<ON_STATE_CHANGED_EXTERNAL_CODE>(O:ENGINE_Magneto_#IE_MAGNETO_ID#_Position) #STATE_START# != #IS_STARTER_ON# and if{ 0 #SET_STARTER# } #ON_STATE_CHANGED_EXTERNAL_CODE#</ON_STATE_CHANGED_EXTERNAL_CODE>
</Case>
</Switch>
</Parameters>
<Parameters Type="Override">
<Switch Param="TYPE">
<Case Value="ON_OFF">
<ON_STATE_CHANGED>
(O:ENGINE_Magneto_#IE_MAGNETO_ID#_Position) sp0
l0 #STATE_OFF# == if{ #SET_STATE_OFF# g1 }
l0 #STATE_ON# == if{ #SET_STATE_ON# g1 }
:1 #ON_STATE_CHANGED_EXTERNAL_CODE#
</ON_STATE_CHANGED>
<!-- if IGN is ON (which isn't possible for this switch) init position to auto -->
<ON_INIT>
#GET_MAGNETO#
#IS_MAGNETO_ON# if{ #STATE_ON# sp2 } els{ #STATE_OFF# sp2 }
l2 (>O:ENGINE_Magneto_#IE_MAGNETO_ID#_Position)
</ON_INIT>
<TT_VALUE>#GET_MAGNETO# #IS_MAGNETO_ON# @TT_OnOff_Cond</TT_VALUE>
</Case>
<Case Value="OFF_ON_START">
<ON_STATE_CHANGED>
(O:ENGINE_Magneto_#IE_MAGNETO_ID#_Position) sp0
l0 #STATE_OFF# == if{ #SET_STATE_OFF# g1 }
l0 #STATE_ON# == if{ #SET_STATE_ON# g1 }
l0 #STATE_START# == if{ #SET_STATE_START# g1 }
:1 #ON_STATE_CHANGED_EXTERNAL_CODE#
</ON_STATE_CHANGED>
<ON_INIT>
#GET_MAGNETO#
#IS_MAGNETO_ON# ! if{ #STATE_OFF# sp2 g1 }
#IS_MAGNETO_ON# #IS_STARTER_ON# ! and if{ #STATE_ON# sp2 g1 }
#IS_MAGNETO_ON# #IS_STARTER_ON# and if{ #STATE_START# sp2 g1 }
:1 l2 (>O:ENGINE_Magneto_#IE_MAGNETO_ID#_Position)
</ON_INIT>
<TT_VALUE>
(B:ENGINE_Magneto_#IE_MAGNETO_ID#) sp0
l0 #STATE_OFF# == if{ @TT_Off quit }
l0 #STATE_ON# == if{ @TT_On g1 }
l0 #STATE_START# == if{ (R:1:@TT_Package.GT_STATE_START) quit }
</TT_VALUE>
</Case>
<Case Value="OFF_L_R_BOTH">
<ON_STATE_CHANGED>
(O:ENGINE_Magneto_#IE_MAGNETO_ID#_Position) sp0
l0 #STATE_OFF# == if{ #SET_STATE_OFF# g1 }
l0 #STATE_L# == if{ #SET_STATE_L# g1 }
l0 #STATE_R# == if{ #SET_STATE_R# g1 }
l0 #STATE_BOTH# == if{ #SET_STATE_BOTH# g1 }
:1 #ON_STATE_CHANGED_EXTERNAL_CODE#
</ON_STATE_CHANGED>
<!-- if IGN is OFF (which isn't possible for this switch) init position to auto -->
<ON_INIT>
#GET_MAGNETO#
l0 ! l1 ! and if{ #STATE_OFF# sp2 g1 }
l0 l1 ! and if{ #STATE_L# sp2 g1 }
l0 ! l1 and if{ #STATE_R# sp2 g1 }
l0 l1 and if{ #STATE_BOTH# sp2 g1 }
:1 l2 (>O:ENGINE_Magneto_#IE_MAGNETO_ID#_Position)
</ON_INIT>
<TT_VALUE>
(B:ENGINE_Magneto_#IE_MAGNETO_ID#) sp0
l0 #STATE_OFF# == if{ @TT_Off quit }
l0 #STATE_L# == if{ @TT_Left quit }
l0 #STATE_R# == if{ @TT_Right quit }
l0 #STATE_BOTH# == if{ @TT_Both quit }
</TT_VALUE>
</Case>
<Case Value="OFF_L_R_BOTH_START">
<ON_STATE_CHANGED>
(O:ENGINE_Magneto_#IE_MAGNETO_ID#_Position) sp0
l0 #STATE_OFF# == if{ #SET_STATE_OFF# g1 }
l0 #STATE_L# == if{ #SET_STATE_L# g1 }
l0 #STATE_R# == if{ #SET_STATE_R# g1 }
l0 #STATE_BOTH# == if{ #SET_STATE_BOTH# g1 }
l0 #STATE_START# == if{ #SET_STATE_START# g1 }
:1 #ON_STATE_CHANGED_EXTERNAL_CODE#
</ON_STATE_CHANGED>
<ON_INIT>
#GET_MAGNETO#
l0 ! l1 ! and if{ #STATE_OFF# sp2 g1 }
l0 l1 ! and if{ #STATE_L# sp2 g1 }
l0 ! l1 and if{ #STATE_R# sp2 g1 }
l0 l1 and #IS_STARTER_ON# ! and if{ #STATE_BOTH# sp2 g1 }
l0 l1 and #IS_STARTER_ON# and if{ #STATE_START# sp2 g1 }
:1 l2 (>O:ENGINE_Magneto_#IE_MAGNETO_ID#_Position)
</ON_INIT>
<TT_VALUE>
(B:ENGINE_Magneto_#IE_MAGNETO_ID#) sp0
l0 #STATE_OFF# == if{ @TT_Off quit }
l0 #STATE_L# == if{ @TT_Left quit }
l0 #STATE_R# == if{ @TT_Right quit }
l0 #STATE_BOTH# == if{ @TT_Both quit }
l0 #STATE_START# == if{ (R:1:@TT_Package.GT_STATE_START) quit }
</TT_VALUE>
</Case>
</Switch>
</Parameters>
<Tooltip>
<Icon>#TT_ICON#</Icon>
<Interaction>#TT_INTERACTION#</Interaction>
<InteractionLockable>#TT_INTERACTION_LOCKABLE#</InteractionLockable>
<TTDescription RPN="True">#TT_DESCRIPTION_INDEX# (R:1:#TT_DESCRIPTION_ID#) @sprintf</TTDescription>
<TTValue RPN="True">#TT_VALUE#</TTValue>
</Tooltip>
<Value>
<Units>Number</Units>
<Code>(O:ENGINE_Magneto_#IE_MAGNETO_ID#_Position)</Code>
<Init>#ON_INIT#</Init>
<WatchVars>
<Condition NotEmpty="STATE_START">
<Simvar ID="GENERAL ENG STARTER:#MAGNETO_ID#"/>
</Condition>
<Simvar ID="RECIP ENG LEFT MAGNETO:#MAGNETO_ID#"/>
<Simvar ID="RECIP ENG RIGHT MAGNETO:#MAGNETO_ID#"/>
</WatchVars>
</Value>
<Inc>
<Code>(O:ENGINE_Magneto_#IE_MAGNETO_ID#_Position) p0 + (>B:ENGINE_Magneto_#IE_MAGNETO_ID#_Set)</Code>
<Parameters>
<Param Type="Float" RPN="True">p0</Param>
</Parameters>
</Inc>
<Dec>
<Code>(O:ENGINE_Magneto_#IE_MAGNETO_ID#_Position) p0 - (>B:ENGINE_Magneto_#IE_MAGNETO_ID#_Set)</Code>
<Parameters>
<Param Type="Float" RPN="True">p0</Param>
</Parameters>
</Dec>
<Set>
<Code>p0 #MAX_POS# min 0 max (>O:ENGINE_Magneto_#IE_MAGNETO_ID#_Position) #ON_STATE_CHANGED#</Code>
<Parameters>
<Param Type="Float" RPN="True">p0</Param>
</Parameters>
<Bindings>
<Condition>
<Test>
<Or>
<Arg Check="TYPE" Match="OFF_L_R_BOTH"/>
<Arg Check="TYPE" Match="OFF_L_R_BOTH_START"/>
</Or>
</Test>
<True>
<Binding Alias="ENGINE_Magneto_#IE_MAGNETO_ID#_Off">
<Param>#STATE_OFF#</Param>
</Binding>
<Binding EventID="MAGNETO_OFF">
<Param>#STATE_OFF#</Param>
</Binding>
<Binding EventID="MAGNETO#MAGNETO_ID#_OFF">
<Param>#STATE_OFF#</Param>
</Binding>
<Binding Alias="ENGINE_Magneto_#IE_MAGNETO_ID#_Left">
<Param>#STATE_L#</Param>
</Binding>
<Binding EventID="MAGNETO_LEFT">
<Param>#STATE_L#</Param>
</Binding>
<Binding EventID="MAGNETO#MAGNETO_ID#_LEFT">
<Param>#STATE_L#</Param>
</Binding>
<Binding Alias="ENGINE_Magneto_#IE_MAGNETO_ID#_Right">
<Param>#STATE_R#</Param>
</Binding>
<Binding EventID="MAGNETO_RIGHT">
<Param>#STATE_R#</Param>
</Binding>
<Binding EventID="MAGNETO#MAGNETO_ID#_RIGHT">
<Param>#STATE_R#</Param>
</Binding>
<Binding Alias="ENGINE_Magneto_#IE_MAGNETO_ID#_Both">
<Param>#STATE_BOTH#</Param>
</Binding>
<Binding EventID="MAGNETO_BOTH">
<Param>#STATE_BOTH#</Param>
</Binding>
<Binding EventID="MAGNETO#MAGNETO_ID#_BOTH">
<Param>#STATE_BOTH#</Param>
</Binding>
</True>
</Condition>
<Condition>
<Test>
<Or>
<Arg Check="TYPE" Match="ON_OFF"/>
<Arg Check="TYPE" Match="OFF_ON_START"/>
</Or>
</Test>
<True>
<Binding Alias="ENGINE_Magneto_#IE_MAGNETO_ID#_Toggle">
<Param RPN="True">#STATE_OFF# #STATE_ON# (B:ENGINE_Magneto_#IE_MAGNETO_ID#) #STATE_ON# == ?</Param>
</Binding>
<Binding Alias="ENGINE_Magneto_#IE_MAGNETO_ID#_ON">
<Param>#STATE_ON#</Param>
</Binding>
<Binding Alias="ENGINE_Magneto_#IE_MAGNETO_ID#_OFF">
<Param>#STATE_OFF#</Param>
</Binding>
<Binding EventID="MAGNETO_OFF">
<Param>#STATE_OFF#</Param>
</Binding>
<Binding EventID="MAGNETO#MAGNETO_ID#_OFF">
<Param>#STATE_OFF#</Param>
</Binding>
<Binding EventID="MAGNETO_LEFT">
<Switch Param="MAGNETO_SIDE">
<Case Value="Left">
<Param>#STATE_ON#</Param>
</Case>
<Default>
<Param>#STATE_OFF#</Param>
</Default>
</Switch>
</Binding>
<Binding EventID="MAGNETO#MAGNETO_ID#_LEFT">
<Switch Param="MAGNETO_SIDE">
<Case Value="Left">
<Param>#STATE_ON#</Param>
</Case>
<Default>
<Param>#STATE_OFF#</Param>
</Default>
</Switch>
</Binding>
<Binding EventID="MAGNETO_RIGHT">
<Switch Param="MAGNETO_SIDE">
<Case Value="Right">
<Param>#STATE_ON#</Param>
</Case>
<Default>
<Param>#STATE_OFF#</Param>
</Default>
</Switch>
</Binding>
<Binding EventID="MAGNETO#MAGNETO_ID#_RIGHT">
<Switch Param="MAGNETO_SIDE">
<Case Value="Right">
<Param>#STATE_ON#</Param>
</Case>
<Default>
<Param>#STATE_OFF#</Param>
</Default>
</Switch>
</Binding>
<Binding EventID="MAGNETO_BOTH">
<Param>#STATE_ON#</Param>
</Binding>
<Binding EventID="MAGNETO#MAGNETO_ID#_BOTH">
<Param>#STATE_ON#</Param>
</Binding>
</True>
</Condition>
<Condition>
<Test>
<Or>
<Arg Check="TYPE" Match="OFF_ON_START"/>
<Arg Check="TYPE" Match="OFF_L_R_BOTH_START"/>
</Or>
</Test>
<True>
<Binding Alias="ENGINE_Magneto_#IE_MAGNETO_ID#_Start">
<Param>#STATE_START#</Param>
</Binding>
<Binding EventID="MAGNETO_START">
<Param>#STATE_START#</Param>
</Binding>
<Binding EventID="MAGNETO#MAGNETO_ID#_START">
<Param>#STATE_START#</Param>
</Binding>
</True>
</Condition>
</Bindings>
</Set>
</Preset>
</Case>
<Case Valid="IGNITER_ID">
<Preset ID="ENGINE_Ignition_#IGNITER_ID#">
<Parameters Type="Default">
<SET_IGN>
sp0 (A:TURB ENG IGNITION SWITCH EX1:#IGNITER_ID#, enum) l0 != if{
l0 (>K:TURBINE_IGNITION_SWITCH_SET#IGNITER_ID#)
}
</SET_IGN>
<ON_STATE_CHANGED_EXTERNAL_CODE/>
</Parameters>
<Parameters Type="Default">
<STARTER_AUTHORITY_TEST/>
<Switch Param="TYPE">
<Case Value="OFF_AUTO">
<STATE_OFF>0</STATE_OFF>
<STATE_AUTO>1</STATE_AUTO>
<MAX_POS>1</MAX_POS>
<TT_DESCRIPTION>#IGNITER_ID# (R:1:@TT_Package.ENGINE_AUTO_IGNITION_ACTION_SET) @sprintf</TT_DESCRIPTION>
</Case>
<Case Value="AUTO_ON">
<STATE_AUTO>0</STATE_AUTO>
<STATE_ON>1</STATE_ON>
<MAX_POS>1</MAX_POS>
</Case>
<Case Value="OFF_ON_AUTO">
<STATE_OFF>0</STATE_OFF>
<STATE_ON>1</STATE_ON>
<STATE_AUTO>2</STATE_AUTO>
<MAX_POS>2</MAX_POS>
</Case>
</Switch>
<SET_STATE_OFF>0 #SET_IGN#</SET_STATE_OFF>
<SET_STATE_AUTO>1 #SET_IGN#</SET_STATE_AUTO>
<SET_STATE_ON>2 #SET_IGN#</SET_STATE_ON>
</Parameters>
<Parameters Type="Default">
<TT_DESCRIPTION>#IGNITER_ID# (R:1:@TT_Package.ENGINE_IGNITION_ACTION_SET) @sprintf</TT_DESCRIPTION>
</Parameters>
<Parameters Type="Override">
<Switch Param="TYPE">
<Case Value="OFF_AUTO">
<ON_STATE_CHANGED>
(O:ENGINE_Ignition_#IGNITER_ID#_Position) sp0
l0 #STATE_OFF# == if{ #SET_STATE_OFF# g1 }
l0 #STATE_AUTO# == if{ #SET_STATE_AUTO# g1 }
:1 #ON_STATE_CHANGED_EXTERNAL_CODE#
</ON_STATE_CHANGED>
<!-- if IGN is ON (which isn't possible for this switch) init position to auto -->
<ON_INIT>
(A:TURB ENG IGNITION SWITCH EX1:#ID#, Enum) sp0
l0 0 == if{ #STATE_OFF# sp1 }
l0 1 == if{ #STATE_AUTO# sp1 }
l0 2 == if{ #STATE_AUTO# sp1 1 #SET_IGN# }
l1 (>O:ENGINE_Ignition_#IGNITER_ID#_Position)
</ON_INIT>
<TT_VALUE>(B:ENGINE_Ignition_#IGNITER_ID#, number) #STATE_AUTO# == if{ @TT_Auto } els{ @TT_Off }</TT_VALUE>
</Case>
<Case Value="AUTO_ON">
<ON_STATE_CHANGED>
(O:ENGINE_Ignition_#IGNITER_ID#_Position) sp0
l0 #STATE_ON# == if{ #SET_STATE_ON# g1 }
l0 #STATE_AUTO# == if{ #SET_STATE_AUTO# g1 }
:1 #ON_STATE_CHANGED_EXTERNAL_CODE#
</ON_STATE_CHANGED>
<!-- if IGN is OFF (which isn't possible for this switch) init position to auto -->
<ON_INIT>
(A:TURB ENG IGNITION SWITCH EX1:#ID#, Enum) sp0
l0 2 == if{ #STATE_ON# sp1 }
l0 1 == if{ #STATE_AUTO# sp1 }
l0 0 == if{ #STATE_AUTO# sp1 1 #SET_IGN# }
l1 (>O:ENGINE_Ignition_#IGNITER_ID#_Position)
</ON_INIT>
<TT_VALUE>(B:ENGINE_Ignition_#IGNITER_ID#, number) #STATE_AUTO# == if{ @TT_Auto } els{ @TT_On }</TT_VALUE>
</Case>
<Case Value="OFF_ON_AUTO">
<ON_STATE_CHANGED>
(O:ENGINE_Ignition_#IGNITER_ID#_Position) sp0
l0 #STATE_OFF# == if{ #SET_STATE_OFF# g1 }
l0 #STATE_ON# == if{ #SET_STATE_ON# g1 }
l0 #STATE_AUTO# == if{ #SET_STATE_AUTO# g1 }
:1 #ON_STATE_CHANGED_EXTERNAL_CODE#
</ON_STATE_CHANGED>
<ON_INIT>
(A:TURB ENG IGNITION SWITCH EX1:#ID#, Enum) sp0
l0 0 == if{ #STATE_OFF# sp1 }
l0 2 == if{ #STATE_ON# sp1 }
l0 1 == if{ #STATE_AUTO# sp1 }
l1 (>O:ENGINE_Ignition_#IGNITER_ID#_Position)
</ON_INIT>
<TT_VALUE>
(B:ENGINE_Ignition_#IGNITER_ID#, number) sp0
l0 #STATE_OFF# == if{ @TT_Off quit }
l0 #STATE_ON# == if{ @TT_On quit }
l0 #STATE_AUTO# == if{ @TT_Auto quit }
</TT_VALUE>
</Case>
</Switch>
</Parameters>
<Parameters Type="Default">
<Condition>
<Test>
<Greater>
<Value>MAX_POS</Value>
<Number>1</Number>
</Greater>
</Test>
<True>
<Condition Check="SWITCH_DIRECTION" Match="Horizontal">
<True>
<INTERACTION_FLAGS>PRIMARY_DOWN+X_AXIS</INTERACTION_FLAGS>
<INTERACTION_LOCKABLE_FLAGS>X_AXIS</INTERACTION_LOCKABLE_FLAGS>
</True>
<False>
<INTERACTION_FLAGS>PRIMARY_DOWN+Y_AXIS</INTERACTION_FLAGS>
<INTERACTION_LOCKABLE_FLAGS>Y_AXIS</INTERACTION_LOCKABLE_FLAGS>
</False>
</Condition>
</True>
<False>
<INTERACTION_FLAGS>PRIMARY_DOWN</INTERACTION_FLAGS>
<INTERACTION_LOCKABLE_FLAGS>LOCK</INTERACTION_LOCKABLE_FLAGS>
</False>
</Condition>
<Switch Param="INTERACTION_TYPE">
<Case Value="Switch">
<TT_ICON>MOVE_Y</TT_ICON>
</Case>
<Case Value="Push">
<TT_ICON>PUSH</TT_ICON>
</Case>
</Switch>
</Parameters>
<Tooltip>
<Icon>#TT_ICON#</Icon>
<Interaction>#INTERACTION_FLAGS#</Interaction>
<InteractionLockable>#INTERACTION_LOCKABLE_FLAGS#</InteractionLockable>
<TTDescription RPN="True">#TT_DESCRIPTION#</TTDescription>
<TTValue RPN="True">#TT_VALUE#</TTValue>
</Tooltip>
<Value>
<Units>Number</Units>
<Code>(O:ENGINE_Ignition_#IGNITER_ID#_Position)</Code>
<Init>#ON_INIT#</Init>
</Value>
<Inc>
<Code>(O:ENGINE_Ignition_#IGNITER_ID#_Position) p0 + (>B:ENGINE_Ignition_#IGNITER_ID#_Set)</Code>
<Parameters>
<Param Type="Float" RPN="True">p0</Param>
</Parameters>
</Inc>
<Dec>
<Code>(O:ENGINE_Ignition_#IGNITER_ID#_Position) p0 - (>B:ENGINE_Ignition_#IGNITER_ID#_Set)</Code>
<Parameters>
<Param Type="Float" RPN="True">p0</Param>
</Parameters>
</Dec>
<Set>
<Code>p0 #MAX_POS# min 0 max (>O:ENGINE_Ignition_#IGNITER_ID#_Position) #STARTER_AUTHORITY_TEST# #ON_STATE_CHANGED#</Code>
<Parameters>
<Param Type="Float" RPN="True">p0</Param>
</Parameters>
<Bindings>
<Condition Check="STATE_OFF">
<Binding Alias="ENGINE_Ignition_#IGNITER_ID#_Off">
<Param>#STATE_OFF#</Param>
</Binding>
</Condition>
<Condition Check="STATE_ON">
<Binding Alias="ENGINE_Ignition_#IGNITER_ID#_On">
<Param>#STATE_ON#</Param>
</Binding>
</Condition>
<Condition Check="STATE_AUTO">
<Binding Alias="ENGINE_Ignition_#IGNITER_ID#_Auto">
<Param>#STATE_AUTO#</Param>
</Binding>
</Condition>
<Switch Param="TYPE">
<Case Value="OFF_AUTO">
<Binding Alias="ENGINE_Ignition_#IGNITER_ID#_Toggle">
<Param RPN="True">#STATE_OFF# #STATE_AUTO# (B:ENGINE_Ignition_#IGNITER_ID#) #STATE_AUTO# == ?</Param>
</Binding>
<Binding EventID="TURBINE_IGNITION_SWITCH_SET#IGNITER_ID#">
<Param RPN="True">#STATE_OFF# #STATE_AUTO# p1 0 == ?</Param>
</Binding>
<Binding EventID="TURBINE_IGNITION_SWITCH_SET">
<Param RPN="True">#STATE_OFF# #STATE_AUTO# p1 0 == ?</Param>
</Binding>
<Binding EventID="TURBINE_IGNITION_SWITCH_TOGGLE">
<Param RPN="True">#STATE_OFF# #STATE_AUTO# (B:ENGINE_Ignition_#IGNITER_ID#) #STATE_AUTO# == ?</Param>
</Binding>
</Case>
<Case Value="AUTO_ON">
<Binding Alias="ENGINE_Ignition_#IGNITER_ID#_Toggle">
<Param RPN="True">#STATE_ON# #STATE_AUTO# (B:ENGINE_Ignition_#IGNITER_ID#) #STATE_AUTO# == ?</Param>
</Binding>
<Binding EventID="TURBINE_IGNITION_SWITCH_SET">
<Param RPN="True">#STATE_ON# #STATE_AUTO# p1 2 == ?</Param>
</Binding>
<Binding EventID="TURBINE_IGNITION_SWITCH_SET#IGNITER_ID#">
<Param RPN="True">#STATE_ON# #STATE_AUTO# p1 2 == ?</Param>
</Binding>
<Binding EventID="TURBINE_IGNITION_SWITCH_TOGGLE">
<Param RPN="True">#STATE_ON# #STATE_AUTO# (B:ENGINE_Ignition_#IGNITER_ID#) #STATE_AUTO# == ?</Param>
</Binding>
</Case>
<Case Value="OFF_ON_AUTO">
<Binding EventID="TURBINE_IGNITION_SWITCH_SET">
<Param RPN="True">p1 2 == if{ #STATE_ON# } els{ #STATE_AUTO# #STATE_OFF# p1 1 == ? }</Param>
</Binding>
<Binding EventID="TURBINE_IGNITION_SWITCH_SET#IGNITER_ID#">
<Param RPN="True">p1 2 == if{ #STATE_ON# } els{ #STATE_AUTO# #STATE_OFF# p1 1 == ? }</Param>
</Binding>
</Case>
</Switch>
</Bindings>
</Set>
</Preset>
</Case>
<Case Valid="STARTER_IGNITER_ID">
<Preset ID="ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#">
<Parameters Type="Default">
<IGNITION_ACTIVE_TYPE>1</IGNITION_ACTIVE_TYPE>
<ON_STATE_CHANGED_EXTERNAL_CODE/>
<Condition>
<Test>
<Or>
<Arg Check="IGNITION_TYPE" Match="START_OFF"/>
<Arg Check="IGNITION_TYPE" Match="START_OFF_MOTOR"/>
</Or>
</Test>
<True>
<STATE_START>0</STATE_START>
<STATE_OFF>1</STATE_OFF>
<SET_IGN>
sp5 (A:TURB ENG IGNITION SWITCH EX1:#STARTER_IGNITER_ID#, enum) l5 != if{
l5 (>K:TURBINE_IGNITION_SWITCH_SET#STARTER_IGNITER_ID#)
}
</SET_IGN>
</True>
</Condition>
<Condition>
<Test>
<Or>
<Arg Check="IGNITION_TYPE" Match="ENG1_OFF_ENG2"/>
<Arg Check="IGNITION_TYPE" Match="BOTH_R_L_OFF_STARTOFF"/>
</Or>
</Test>
<True>
<IGNITER_COUNT>2</IGNITER_COUNT>
<SET_IGN_L>
sp5 (A:TURB ENG IGNITION SWITCH EX1:#ID1#, enum) l5 != if{
l5 (>K:TURBINE_IGNITION_SWITCH_SET#ID1#)
}
</SET_IGN_L>
<SET_IGN_R>
sp5 (A:TURB ENG IGNITION SWITCH EX1:#ID2#, enum) l5 != if{
l5 (>K:TURBINE_IGNITION_SWITCH_SET#ID2#)
}
</SET_IGN_R>
</True>
</Condition>
<Switch Param="IGNITION_TYPE">
<Case Value="ENG1_OFF_ENG2">
<STATE_ENG1>0</STATE_ENG1>
<STATE_OFF>1</STATE_OFF>
<STATE_ENG2>2</STATE_ENG2>
<MAX_POS>2</MAX_POS>
<TT_VALUE_ENG1>#ID1# @TT_Eng @sprintf</TT_VALUE_ENG1>
<TT_VALUE_ENG2>#ID2# @TT_Eng @sprintf</TT_VALUE_ENG2>
</Case>
<Case Value="START_OFF">
<MAX_POS>1</MAX_POS>
<KEY_EVENT>STARTER#STARTER_IGNITER_ID#_SET</KEY_EVENT>
</Case>
<Case Value="START_OFF_MOTOR">
<STATE_MOTOR>2</STATE_MOTOR>
<KEY_EVENT>SET_STARTER#STARTER_IGNITER_ID#_HELD</KEY_EVENT>
<!-- keep last -->
<MAX_POS>2</MAX_POS>
</Case>
<Case Value="BOTH_R_L_OFF_STARTOFF">
<STATE_BOTH>0</STATE_BOTH>
<STATE_R>1</STATE_R>
<STATE_L>2</STATE_L>
<STATE_IGN_OFF>3</STATE_IGN_OFF>
<STATE_ALL_OFF>4</STATE_ALL_OFF>
<!-- keep last -->
<MAX_POS>4</MAX_POS>
</Case>
</Switch>
</Parameters>
<Parameters Type="Override">
<Condition>
<Test>
<Or>
<Arg Check="IGNITION_TYPE" Match="START_OFF"/>
<Arg Check="IGNITION_TYPE" Match="START_OFF_MOTOR"/>
</Or>
</Test>
<True>
<SET_STATE_START>
#IGNITION_ACTIVE_TYPE# #SET_IGN#
(A:GENERAL ENG STARTER:#STARTER_IGNITER_ID#, Bool) ! if{ 1 (>K:#KEY_EVENT#) }
</SET_STATE_START>
<SET_STATE_OFF>
0 #SET_IGN#
(A:GENERAL ENG STARTER:#STARTER_IGNITER_ID#, Bool) if{
0 (>K:#KEY_EVENT#)
(>K:TOGGLE_STARTER#STARTER_IGNITER_ID#)(* Force disable starter *)
}
</SET_STATE_OFF>
</True>
</Condition>
<Switch Param="IGNITION_TYPE">
<Case Value="ENG1_OFF_ENG2">
<SET_STATE_ENG1>
#IGNITION_ACTIVE_TYPE# #SET_IGN_L#
0 #SET_IGN_R#
1 (>K:APU_BLEED_AIR_SOURCE_SET)
(A:GENERAL ENG STARTER:#ID1#, Bool) ! if{ (>K:TOGGLE_STARTER#ID1#) }
(A:GENERAL ENG STARTER:#ID2#, Bool) if{ (>K:TOGGLE_STARTER#ID2#) }
</SET_STATE_ENG1>
<SET_STATE_OFF>
0 #SET_IGN_L#
0 #SET_IGN_R#
0 (>K:APU_BLEED_AIR_SOURCE_SET)
(A:GENERAL ENG STARTER:#ID1#, Bool) if{ (>K:TOGGLE_STARTER#ID1#) }
(A:GENERAL ENG STARTER:#ID2#, Bool) if{ (>K:TOGGLE_STARTER#ID2#) }
</SET_STATE_OFF>
<SET_STATE_ENG2>
0 #SET_IGN_L#
#IGNITION_ACTIVE_TYPE# #SET_IGN_R#
1 (>K:APU_BLEED_AIR_SOURCE_SET)
(A:GENERAL ENG STARTER:#ID1#, Bool) if{ (>K:TOGGLE_STARTER#ID1#) }
(A:GENERAL ENG STARTER:#ID2#, Bool) ! if{ (>K:TOGGLE_STARTER#ID2#) }
</SET_STATE_ENG2>
</Case>
<Case Value="START_OFF_MOTOR">
<SET_STATE_MOTOR>
0 #SET_IGN#
(A:GENERAL ENG STARTER:#STARTER_IGNITER_ID#, Bool) ! if{ 1 (>K:#KEY_EVENT#) }
</SET_STATE_MOTOR>
</Case>
<Case Value="BOTH_R_L_OFF_STARTOFF">
<SET_STATE_BOTH>
#IGNITION_ACTIVE_TYPE# #SET_IGN_L#
#IGNITION_ACTIVE_TYPE# #SET_IGN_R#
</SET_STATE_BOTH>
<SET_STATE_R>
0 #SET_IGN_L#
#IGNITION_ACTIVE_TYPE# #SET_IGN_R#
</SET_STATE_R>
<SET_STATE_L>
#IGNITION_ACTIVE_TYPE# #SET_IGN_L#
0 #SET_IGN_R#
</SET_STATE_L>
<SET_STATE_IGN_OFF>
0 #SET_IGN_L#
0 #SET_IGN_R#
</SET_STATE_IGN_OFF>
<SET_STATE_ALL_OFF>
0 #SET_IGN_L#
0 #SET_IGN_R#
(A:GENERAL ENG STARTER:#ID1#, Bool) if{ (>K:TOGGLE_STARTER#ID1#) }
(A:GENERAL ENG STARTER:#ID2#, Bool) if{ (>K:TOGGLE_STARTER#ID2#) }
</SET_STATE_ALL_OFF>
</Case>
</Switch>
</Parameters>
<Parameters Type="Override">
<Switch Param="IGNITION_TYPE">
<Case Value="ENG1_OFF_ENG2">
<ON_STATE_CHANGED>
(O:ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_Position) sp0
l0 #STATE_ENG1# == if{ #SET_STATE_ENG1# g1 }
l0 #STATE_OFF# == if{ #SET_STATE_OFF# g1 }
l0 #STATE_ENG2# == if{ #SET_STATE_ENG2# g1 }
:1 #ON_STATE_CHANGED_EXTERNAL_CODE#
</ON_STATE_CHANGED>
<ON_INIT>
(A:TURB ENG IGNITION SWITCH EX1:#ID1#, enum) (A:GENERAL ENG STARTER:#ID1#, Bool) and sp0
(A:TURB ENG IGNITION SWITCH EX1:#ID2#, enum) (A:GENERAL ENG STARTER:#ID2#, Bool) and sp1
l0 ! l1 ! and if{ #STATE_OFF# sp2 g1 }
l0 l1 ! and if{ #STATE_ENG1# sp2 g1 }
l0 ! l1 and if{ #STATE_ENG2# sp2 g1 }
els{ #SET_STATE_ENG1# }
:1 l2 #STATE_OFF# != s3 (A:BLEED AIR APU, Bool) != if{ l3 (>K:APU_BLEED_AIR_SOURCE_SET) }
l2 (>O:ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_Position)
</ON_INIT>
<TT_VALUE>
(B:ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#, number) sp0
l0 #STATE_ENG1# == if{ #TT_VALUE_ENG1# quit }
l0 #STATE_OFF# == if{ @TT_Off quit }
l0 #STATE_ENG2# == if{ #TT_VALUE_ENG2# quit }
</TT_VALUE>
</Case>
<Case Value="START_OFF">
<ON_STATE_CHANGED>
(O:ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_Position) sp0
l0 #STATE_START# == if{ #SET_STATE_START# g1 }
l0 #STATE_OFF# == if{ #SET_STATE_OFF# g1 }
:1 #ON_STATE_CHANGED_EXTERNAL_CODE#
</ON_STATE_CHANGED>
<ON_INIT>
(A:GENERAL ENG STARTER:#STARTER_IGNITER_ID#, Boolean) if{
#STATE_START# sp0
} els{
#STATE_OFF# sp0
}
l0 (>O:ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_Position)
</ON_INIT>
<TT_VALUE>(B:ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#, number) #STATE_START# == @TT_OnOff_Cond</TT_VALUE>
</Case>
<Case Value="START_OFF_MOTOR">
<ON_STATE_CHANGED>
(O:ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_Position) sp0
l0 #STATE_START# == if{ #SET_STATE_START# g1 }
l0 #STATE_OFF# == if{ #SET_STATE_OFF# g1 }
l0 #STATE_MOTOR# == if{ #SET_STATE_MOTOR# g1 }
:1 #ON_STATE_CHANGED_EXTERNAL_CODE#
</ON_STATE_CHANGED>
<ON_INIT>
(A:TURB ENG IGNITION SWITCH EX1:#STARTER_IGNITER_ID#, enum) sp0 (A:GENERAL ENG STARTER:#STARTER_IGNITER_ID#, Bool) sp1
l1 if{ #STATE_START# #STATE_MOTOR# l0 ? sp2 }
els{ #STATE_OFF# sp2 }
l2 (>O:ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_Position)
</ON_INIT>
<TT_VALUE>
(B:ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#, number) sp0
l0 #STATE_START# == if{ (R:1:@TT_Package.GT_STATE_START) quit }
l0 #STATE_OFF# == if{ @TT_Off quit }
l0 #STATE_MOTOR# == if{ (R:1:@TT_Package.GT_STATE_MOTOR) quit }
</TT_VALUE>
</Case>
<Case Value="BOTH_R_L_OFF_STARTOFF">
<ON_STATE_CHANGED>
(O:ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_Position) sp0
l0 #STATE_BOTH# == if{ #SET_STATE_BOTH# g1 }
l0 #STATE_R# == if{ #SET_STATE_R# g1 }
l0 #STATE_L# == if{ #SET_STATE_L# g1 }
l0 #STATE_IGN_OFF# == if{ #SET_STATE_IGN_OFF# g1 }
l0 #STATE_ALL_OFF# == if{ #SET_STATE_ALL_OFF# g1 }
:1 #ON_STATE_CHANGED_EXTERNAL_CODE#
</ON_STATE_CHANGED>
<ON_INIT>
(A:TURB ENG IGNITION SWITCH EX1:#ID1#, enum) sp0
(A:TURB ENG IGNITION SWITCH EX1:#ID2#, enum) sp1
l0 l1 and if{ #STATE_BOTH# sp2 }
l0 ! l1 and if{ #STATE_R# sp2 }
l0 l1 ! and if{ #STATE_L# sp2 }
l0 ! l1 ! and if{ #STATE_IGN_OFF# sp2 }
l2 (>O:ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_Position)
</ON_INIT>
<TT_VALUE>
(B:ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#, number) sp0
l0 #STATE_BOTH# == if{ @TT_Both quit }
l0 #STATE_R# == if{ @TT_Right quit }
l0 #STATE_L# == if{ @TT_Left quit }
l0 #STATE_IGN_OFF# == if{ (R:1:@TT_Package.GT_STATE_STARTER) @quit }
l0 #STATE_ALL_OFF# == if{ @TT_Off quit }
</TT_VALUE>
</Case>
</Switch>
</Parameters>
<Parameters Type="Default">
<Condition>
<Test>
<Greater>
<Value>MAX_POS</Value>
<Number>1</Number>
</Greater>
</Test>
<True>
<Condition Check="SWITCH_DIRECTION" Match="Horizontal">
<True>
<INTERACTION_FLAGS>PRIMARY_DOWN+X_AXIS</INTERACTION_FLAGS>
<INTERACTION_LOCKABLE_FLAGS>X_AXIS</INTERACTION_LOCKABLE_FLAGS>
</True>
<False>
<INTERACTION_FLAGS>PRIMARY_DOWN+Y_AXIS</INTERACTION_FLAGS>
<INTERACTION_LOCKABLE_FLAGS>Y_AXIS</INTERACTION_LOCKABLE_FLAGS>
</False>
</Condition>
</True>
<False>
<INTERACTION_FLAGS>PRIMARY_DOWN</INTERACTION_FLAGS>
<INTERACTION_LOCKABLE_FLAGS>LOCK</INTERACTION_LOCKABLE_FLAGS>
</False>
</Condition>
<Switch Param="INTERACTION_TYPE">
<Case Value="Switch">
<Switch Param="SWITCH_DIRECTION">
<Case Value="Horizontal">
<TT_ICON>MOVE_X</TT_ICON>
</Case>
<Default>
<TT_ICON>MOVE_Y</TT_ICON>
</Default>
</Switch>
</Case>
<Case Value="Push">
<TT_ICON>PUSH</TT_ICON>
</Case>
</Switch>
</Parameters>
<Tooltip>
<Icon>#TT_ICON#</Icon>
<Interaction>#INTERACTION_FLAGS#</Interaction>
<InteractionLockable>#INTERACTION_LOCKABLE_FLAGS#</InteractionLockable>
<TTDescription RPN="True">#STARTER_IGNITER_ID# (R:1:@TT_Package.ENGINE_STARTER_ACTION_SET) @sprintf</TTDescription>
<TTValue RPN="True">#TT_VALUE#</TTValue>
</Tooltip>
<Value>
<Units>Number</Units>
<Code>(O:ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_Position)</Code>
<Init>#ON_INIT#</Init>
<WatchVars>
<Switch Param="IGNITER_COUNT">
<Case Value="2">
<Simvar ID="GENERAL ENG STARTER:#ID1#"/>
<Simvar ID="GENERAL ENG STARTER:#ID2#"/>
<Simvar ID="TURB ENG IGNITION SWITCH EX1:#ID1#"/>
<Simvar ID="TURB ENG IGNITION SWITCH EX1:#ID2#"/>
</Case>
<Default>
<Simvar ID="GENERAL ENG STARTER:#STARTER_IGNITER_ID#"/>
<Simvar ID="TURB ENG IGNITION SWITCH EX1:#STARTER_IGNITER_ID#"/>
</Default>
</Switch>
<Switch Param="IGNITION_TYPE">
<Case Value="ENG1_OFF_ENG2">
<Simvar ID="BLEED AIR APU"/>
<LocalVar ID="XMLVAR_Starter#STARTER_IGNITER_ID#"/>
</Case>
</Switch>
</WatchVars>
</Value>
<Inc>
<Code>(O:ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_Position) p0 + #MAX_POS# min 0 max (>B:ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_Set)</Code>
<Parameters>
<Param Type="Float" RPN="True">p0</Param>
</Parameters>
</Inc>
<Dec>
<Code>(O:ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_Position) p0 - #MAX_POS# min 0 max (>B:ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_Set)</Code>
<Parameters>
<Param Type="Float" RPN="True">p0</Param>
</Parameters>
</Dec>
<Set>
<Code>p0 (>O:ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_Position) #ON_STATE_CHANGED#</Code>
<Parameters>
<Param Type="Float" RPN="True">p0</Param>
</Parameters>
<Bindings>
<Condition>
<Test>
<Or>
<Arg Check="IGNITION_TYPE" Match="START_OFF"/>
<Arg Check="IGNITION_TYPE" Match="START_OFF_MOTOR"/>
</Or>
</Test>
<True>
<Binding Alias="ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_Start">
<Param>#STATE_START#</Param>
</Binding>
<Binding Alias="ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_Off">
<Param>#STATE_OFF#</Param>
</Binding>
<Binding EventID="TOGGLE_ALL_STARTERS">
<Param RPN="True">#STATE_OFF# #STATE_START# (B:ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#) #STATE_START# == ?</Param>
</Binding>
<Binding EventID="TOGGLE_STARTER#STARTER_IGNITER_ID#">
<Param RPN="True">#STATE_OFF# #STATE_START# (B:ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#) #STATE_START# == ?</Param>
</Binding>
<Binding EventID="SET_STARTER#STARTER_IGNITER_ID#_HELD">
<Param RPN="True">#STATE_START# #STATE_OFF# p1 0 > ?</Param>
</Binding>
<Binding EventID="SET_STARTER_ALL_HELD">
<Param RPN="True">#STATE_START# #STATE_OFF# p1 0 > ?</Param>
</Binding>
</True>
</Condition>
<Switch Param="IGNITION_TYPE">
<Case Value="ENG1_OFF_ENG2">
<Binding Alias="ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_Eng1">
<Param>#STATE_ENG1#</Param>
</Binding>
<Binding Alias="ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_Off">
<Param>#STATE_OFF#</Param>
</Binding>
<Binding Alias="ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_Eng2">
<Param>#STATE_ENG2#</Param>
</Binding>
<Binding EventID="TOGGLE_STARTER#ID1#">
<Param RPN="True">#STATE_OFF# #STATE_ENG1# (B:ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#) #STATE_ENG1# == ?</Param>
</Binding>
<Binding EventID="TOGGLE_STARTER#ID2#">
<Param RPN="True">#STATE_OFF# #STATE_ENG2# (B:ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#) #STATE_ENG2# == ?</Param>
</Binding>
<Binding EventID="SET_STARTER#ID1#_HELD">
<Param RPN="True">#STATE_ENG1# #STATE_OFF# p1 0 > ?</Param>
</Binding>
<Binding EventID="SET_STARTER#ID2#_HELD">
<Param RPN="True">#STATE_ENG2# #STATE_OFF# p1 0 > ?</Param>
</Binding>
</Case>
<Case Value="START_OFF_MOTOR">
<Binding Alias="ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_Motor">
<Param>#STATE_MOTOR#</Param>
</Binding>
</Case>
<Case Value="BOTH_R_L_OFF_STARTOFF">
<Binding Alias="ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_Both">
<Param>#STATE_BOTH#</Param>
</Binding>
<Binding Alias="ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_Right">
<Param>#STATE_R#</Param>
</Binding>
<Binding Alias="ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_Left">
<Param>#STATE_L#</Param>
</Binding>
<Binding Alias="ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_IgnOff">
<Param>#STATE_IGN_OFF#</Param>
</Binding>
<Binding Alias="ENGINE_Starter_Ignition_#STARTER_IGNITER_ID#_Off">
<Param>#STATE_ALL_OFF#</Param>
</Binding>
</Case>
</Switch>
</Bindings>
</Set>
</Preset>
</Case>
<Case Valid="STARTER_ID">
<Preset ID="ENGINE_Starter_#STARTER_ID#">
<Parameters Type="Default">
<STARTER_ON_SIMVAR>GENERAL ENG STARTER</STARTER_ON_SIMVAR>
<STATE_ON>1</STATE_ON>
<STATE_OFF>0</STATE_OFF>
<ON_STATE_CHANGED_EXTERNAL_CODE/>
</Parameters>
<Parameters Type="Override">
<GET_STARTER>(A:#STARTER_ON_SIMVAR#:#STARTER_ID#, Bool)</GET_STARTER>
<SET_STARTER>(A:#STARTER_ON_SIMVAR#:#STARTER_ID#, Bool) != if{ (>K:TOGGLE_STARTER#STARTER_ID#) }</SET_STARTER>
<MAX_POS>1</MAX_POS>
</Parameters>
<Parameters Type="Override">
<ON_STATE_CHANGED>(O:ENGINE_Starter_#STARTER_ID#_Position) #STATE_ON# == if{ 1 #SET_STARTER# } els{ 0 #SET_STARTER# } #ON_STATE_CHANGED_EXTERNAL_CODE#</ON_STATE_CHANGED>
</Parameters>
<Parameters Type="Default">
<Switch Param="INTERACTION_TYPE">
<Case Value="Switch">
<TT_ICON>MOVE_Y</TT_ICON>
</Case>
<Case Value="Push">
<TT_ICON>PUSH</TT_ICON>
</Case>
</Switch>
<TT_VALUE>@TT_On @TT_Off (A:#STARTER_ON_SIMVAR#:#STARTER_ID#, Bool) ?</TT_VALUE>
<Switch Param="NUM_STATES">
<Case Value="3">
<TT_INTERACTION>PRIMARY_DOWN+Y_AXIS</TT_INTERACTION>
<TT_INTERACTION_LOCKABLE>Y_AXIS</TT_INTERACTION_LOCKABLE>
</Case>
<Default>
<TT_INTERACTION>PRIMARY_DOWN</TT_INTERACTION>
<TT_INTERACTION_LOCKABLE>LOCK</TT_INTERACTION_LOCKABLE>
</Default>
</Switch>
</Parameters>
<Tooltip>
<Icon>#TT_ICON#</Icon>
<Interaction>#TT_INTERACTION#</Interaction>
<InteractionLockable>#TT_INTERACTION_LOCKABLE#</InteractionLockable>
<TTDescription RPN="True">#STARTER_ID# (R:1:@TT_Package.ENGINE_STARTER_ACTION_SET) @sprintf</TTDescription>
<TTValue RPN="True">#TT_VALUE#</TTValue>
</Tooltip>
<Value>
<Units>Bool</Units>
<Code>(O:ENGINE_Starter_#STARTER_ID#_Position) #STATE_ON# ==</Code>
<Init>#STATE_ON# #STATE_OFF# #GET_STARTER# ? (>O:ENGINE_Starter_#STARTER_ID#_Position)</Init>
<WatchVars>
<Simvar ID="#STARTER_ON_SIMVAR#:#STARTER_ID#"/>
</WatchVars>
</Value>
<Inc>
<Code>(O:ENGINE_Starter_#STARTER_ID#_Position) p0 + (>B:ENGINE_Starter_#STARTER_ID#_Set)</Code>
<Parameters>
<Param Type="Float" RPN="True">p0</Param>
</Parameters>
</Inc>
<Dec>
<Code>(O:ENGINE_Starter_#STARTER_ID#_Position) p0 - (>B:ENGINE_Starter_#STARTER_ID#_Set)</Code>
<Parameters>
<Param Type="Float" RPN="True">p0</Param>
</Parameters>
</Dec>
<Set>
<Code>p0 #MAX_POS# min 0 max (>O:ENGINE_Starter_#STARTER_ID#_Position) #ON_STATE_CHANGED#</Code>
<Parameters>
<Param Type="Float" RPN="True">p0</Param>
</Parameters>
<Bindings>
<Binding Alias="ENGINE_All_Starter_Toggle">
<Param RPN="True">#STATE_ON# #STATE_OFF# (O:ENGINE_Starter_#STARTER_ID#_Position) #STATE_OFF# ==</Param>
</Binding>
<Binding EventID="TOGGLE_ALL_STARTERS">
<Param RPN="True">#STATE_ON# #STATE_OFF# (O:ENGINE_Starter_#STARTER_ID#_Position) #STATE_OFF# ==</Param>
</Binding>
<Binding EventID="TOGGLE_STARTER#STARTER_ID#">
<Param RPN="True">#STATE_ON# #STATE_OFF# (O:ENGINE_Starter_#STARTER_ID#_Position) #STATE_OFF# ==</Param>
</Binding>
<Binding Alias="ENGINE_Starter_#STARTER_ID#_Toggle">
<Param RPN="True">#STATE_ON# #STATE_OFF# (O:ENGINE_Starter_#STARTER_ID#_Position) #STATE_OFF# ==</Param>
</Binding>
<Binding EventID="SET_STARTER#STARTER_ID#_HELD">
<Param RPN="True">p1 0 ></Param>
</Binding>
<Binding EventID="SET_STARTER_ALL_HELD">
<Param RPN="True">p1 0 ></Param>
</Binding>
<Binding Alias="ENGINE_Starter_#STARTER_ID#_On">
<Param>#STATE_ON#</Param>
</Binding>
<Binding Alias="ENGINE_Starter_#STARTER_ID#_Off">
<Param>#STATE_OFF#</Param>
</Binding>
</Bindings>
</Set>
</Preset>
</Case>
<Case Valid="PLASMA_ID">
<Preset ID="ENGINE_Plasma_#IE_PLASMA_ID#">
<Parameters Type="Default">
<SET_PLASMA>(>K:PLASMA_SET)</SET_PLASMA>
<GET_PLASMA>
(A:PLASMA ON:#PLASMA_ID#, Bool) sp0
</GET_PLASMA>
<ON_STATE_CHANGED_EXTERNAL_CODE/>
<STATE_OFF>0</STATE_OFF>
<STATE_ON>1</STATE_ON>
<MAX_POS>1</MAX_POS>
<TT_INTERACTION>PRIMARY_DOWN</TT_INTERACTION>
<TT_INTERACTION_LOCKABLE>LOCK</TT_INTERACTION_LOCKABLE>
<TT_ICON>MOVE_Y</TT_ICON>
<COVER_CHECK></COVER_CHECK>
<TT_DESCRIPTION_ID>@TT_Package.ENGINE_SWITCH_PLASMA_ACTION</TT_DESCRIPTION_ID>
<TT_DESCRIPTION_INDEX>#PLASMA_ID#</TT_DESCRIPTION_INDEX>
</Parameters>
<Parameters Type="Override">
<SET_STATE_OFF>0 #SET_PLASMA#</SET_STATE_OFF>
<SET_STATE_ON>1 #SET_PLASMA#</SET_STATE_ON>
<IS_PLASMA_ON>l0</IS_PLASMA_ON>
</Parameters>
<Parameters Type="Override">
<ON_STATE_CHANGED>
(O:ENGINE_Plasma_#IE_PLASMA_ID#_Position) sp0
l0 #STATE_OFF# == if{ #SET_STATE_OFF# g1 }
l0 #STATE_ON# == if{ #SET_STATE_ON# g1 }
:1 #ON_STATE_CHANGED_EXTERNAL_CODE#
</ON_STATE_CHANGED>
<ON_INIT>
#GET_PLASMA#
#IS_PLASMA_ON# if{ #STATE_ON# sp2 } els{ #STATE_OFF# sp2 }
l2 (>O:ENGINE_Plasma_#IE_PLASMA_ID#_Position)
</ON_INIT>
<TT_VALUE>#GET_PLASMA# #IS_PLASMA_ON# @TT_OnOff_Cond</TT_VALUE>
</Parameters>
<Tooltip>
<Icon>#TT_ICON#</Icon>
<Interaction>#TT_INTERACTION#</Interaction>
<InteractionLockable>#TT_INTERACTION_LOCKABLE#</InteractionLockable>
<TTDescription RPN="True">#TT_DESCRIPTION_INDEX# (R:1:#TT_DESCRIPTION_ID#) @sprintf</TTDescription>
<TTValue RPN="True">#TT_VALUE#</TTValue>
</Tooltip>
<Value>
<Units>Number</Units>
<Code>(O:ENGINE_Plasma_#IE_PLASMA_ID#_Position)</Code>
<Init>#ON_INIT#</Init>
<WatchVars>
<Simvar ID="PLASMA ON:#PLASMA_ID#"/>
</WatchVars>
</Value>
<Inc>
<Code>(O:ENGINE_Plasma_#IE_PLASMA_ID#_Position) p0 + (>B:ENGINE_Plasma_#IE_PLASMA_ID#_Set)</Code>
<Parameters>
<Param Type="Float" RPN="True">p0</Param>
</Parameters>
</Inc>
<Dec>
<Code>(O:ENGINE_Plasma_#IE_PLASMA_ID#_Position) p0 - (>B:ENGINE_Plasma_#IE_PLASMA_ID#_Set)</Code>
<Parameters>
<Param Type="Float" RPN="True">p0</Param>
</Parameters>
</Dec>
<Set>
<Code>p0 #MAX_POS# min 0 max (>O:ENGINE_Plasma_#IE_PLASMA_ID#_Position) #ON_STATE_CHANGED#</Code>
<Parameters>
<Param Type="Float" RPN="True">p0</Param>
</Parameters>
<Bindings>
<Binding Alias="ENGINE_Plasma_#IE_PLASMA_ID#_Toggle">
<Param RPN="True">#STATE_OFF# #STATE_ON# (B:ENGINE_Plasma_#IE_PLASMA_ID#) #STATE_ON# == ?</Param>
</Binding>
<Binding Alias="ENGINE_Plasma_#IE_PLASMA_ID#_ON">
<Param>#STATE_ON#</Param>
</Binding>
<Binding Alias="ENGINE_Plasma_#IE_PLASMA_ID#_OFF">
<Param>#STATE_OFF#</Param>
</Binding>
<Binding EventID="PLASMA_OFF">
<Param>#STATE_OFF#</Param>
</Binding>
<Binding EventID="PLASMA#PLASMA_ID#_OFF">
<Param>#STATE_OFF#</Param>
</Binding>
<Binding EventID="PLASMA_ON">
<Param>#STATE_ON#</Param>
</Binding>
</Bindings>
</Set>
</Preset>
</Case>
<Case Valid="CLUTCH_ID">
<Preset ID="ENGINE_Clutch_#CLUTCH_ID#">
<Parameters Type="Default">
<SET_CLUTCH>(>K:ROTOR_CLUTCH_SWITCH_SET)</SET_CLUTCH>
<GET_CLUTCH>
(A:ROTOR CLUTCH SWITCH POS,Bool) sp0
</GET_CLUTCH>
<ON_STATE_CHANGED_EXTERNAL_CODE/>
<STATE_OFF>0</STATE_OFF>
<STATE_ON>1</STATE_ON>
<MAX_POS>1</MAX_POS>
<TT_INTERACTION>PRIMARY_DOWN</TT_INTERACTION>
<TT_INTERACTION_LOCKABLE>LOCK</TT_INTERACTION_LOCKABLE>
<TT_ICON>MOVE_Y</TT_ICON>
<COVER_CHECK></COVER_CHECK>
<TT_DESCRIPTION_ID>@TT_Package.ENGINE_SWITCH_CLUTCH_ACTION</TT_DESCRIPTION_ID>
<TT_DESCRIPTION_INDEX>#CLUTCH_ID#</TT_DESCRIPTION_INDEX>
<Condition Check="COVER_VAR_NAME">
<True>
<COVER_CHECK>(#COVER_VAR_TYPE#:#COVER_VAR_NAME#) *</COVER_CHECK>
</True>
<False>
<COVER_CHECK></COVER_CHECK>
</False>
</Condition>
</Parameters>
<Parameters Type="Override">
<SET_STATE_OFF>0 #SET_CLUTCH#</SET_STATE_OFF>
<SET_STATE_ON>1 #SET_CLUTCH#</SET_STATE_ON>
<IS_CLUTCH_ON>l0</IS_CLUTCH_ON>
</Parameters>
<Parameters Type="Override">
<ON_STATE_CHANGED>
(O:ENGINE_CLUTCH_#CLUTCH_ID#_Position) sp0
l0 #STATE_OFF# == if{ #SET_STATE_OFF# g1 }
l0 #STATE_ON# == if{ #SET_STATE_ON# g1 }
:1 #ON_STATE_CHANGED_EXTERNAL_CODE#
</ON_STATE_CHANGED>
<ON_INIT>
#GET_CLUTCH#
#IS_CLUTCH_ON# if{ #STATE_ON# sp2 } els{ #STATE_OFF# sp2 }
l2 (>O:ENGINE_CLUTCH_#CLUTCH_ID#_Position)
</ON_INIT>
<TT_VALUE>#GET_CLUTCH# #IS_CLUTCH_ON# @TT_OnOff_Cond</TT_VALUE>
</Parameters>
<Tooltip>
<Icon>#TT_ICON#</Icon>
<Interaction>#TT_INTERACTION#</Interaction>
<InteractionLockable>#TT_INTERACTION_LOCKABLE#</InteractionLockable>
<TTDescription RPN="True">#TT_DESCRIPTION_INDEX# (R:1:#TT_DESCRIPTION_ID#) @sprintf</TTDescription>
<TTValue RPN="True">#TT_VALUE#</TTValue>
</Tooltip>
<Value>
<Units>Number</Units>
<Code>(O:ENGINE_CLUTCH_#CLUTCH_ID#_Position)</Code>
<Init>#ON_INIT#</Init>
<WatchVars>
<Simvar ID="ROTOR CLUTCH SWITCH POS"/>
</WatchVars>
</Value>
<Inc>
<Code>(O:ENGINE_CLUTCH_#CLUTCH_ID#_Position) p0 + (>B:ENGINE_CLUTCH_#CLUTCH_ID#_Set)</Code>
<Parameters>
<Param Type="Float" RPN="True">p0</Param>
</Parameters>
</Inc>
<Dec>
<Code>(O:ENGINE_CLUTCH_#CLUTCH_ID#_Position) p0 - (>B:ENGINE_CLUTCH_#CLUTCH_ID#_Set)</Code>
<Parameters>
<Param Type="Float" RPN="True">p0</Param>
</Parameters>
</Dec>
<Set>
<Code>p0 #MAX_POS# min 0 max (>O:ENGINE_CLUTCH_#CLUTCH_ID#_Position) #ON_STATE_CHANGED#</Code>
<Parameters>
<Param Type="Float" RPN="True">p0</Param>
</Parameters>
<Bindings>
<Binding Alias="ENGINE_CLUTCH_#CLUTCH_ID#_Toggle">
<Param RPN="True">#STATE_OFF# #STATE_ON# (B:ENGINE_CLUTCH_#CLUTCH_ID#) #STATE_ON# == ?</Param>
</Binding>
<Binding Alias="ENGINE_CLUTCH_#CLUTCH_ID#_ON">
<Param>#STATE_ON#</Param>
</Binding>
<Binding Alias="ENGINE_CLUTCH_#CLUTCH_ID#_OFF">
<Param>#STATE_OFF#</Param>
</Binding>
<Binding EventID="CLUTCH_OFF">
<Param>#STATE_OFF#</Param>
</Binding>
<Binding EventID="CLUTCH#CLUTCH_ID#_OFF">
<Param>#STATE_OFF#</Param>
</Binding>
<Binding EventID="CLUTCH_ON">
<Param>#STATE_ON#</Param>
</Binding>
</Bindings>
</Set>
</Preset>
</Case>
<Case Valid="BRAKE_ID">
<Preset ID="ENGINE_ROTOR_Brake_#BRAKE_ID#">
<Parameters Type="Default">
<INCREMENT>256</INCREMENT>
<UPPER_LIMIT>16384</UPPER_LIMIT>
<LOWER_LIMIT>0</LOWER_LIMIT>
<ON_BEFORE_INC/>
<ON_BEFORE_DEC/>
<ON_BEFORE_SET/>
<ON_AFTER_INC/>
<ON_AFTER_DEC/>
<ON_AFTER_SET/>
<TT_DESCRIPTION>#TT_DESCRIPTION_ID#</TT_DESCRIPTION>
<TT_DESCRIPTION_IS_DYNAMIC>False</TT_DESCRIPTION_IS_DYNAMIC>
</Parameters>
<Tooltip>
<Icon>MOVE_AXIS_Y</Icon>
<Interaction>PRIMARY_DOWN+Y_AXIS</Interaction>
<InteractionLockable>Y_AXIS</InteractionLockable>
<TTDescription RPN="#TT_DESCRIPTION_IS_DYNAMIC#">#TT_DESCRIPTION#</TTDescription>
<TTValue RPN="True">(B:ENGINE_ROTOR_Brake_#BRAKE_ID#, percent) s0 0 > @TT_OnOff_Cond</TTValue>
</Tooltip>
<Value>
<Units>percent</Units>
<Code>(O:ENGINE_ROTOR_Brake_#BRAKE_ID#_Position) #LOWER_LIMIT# - #UPPER_LIMIT# #LOWER_LIMIT# - / 100 *</Code>
<Init>(A:ROTOR BRAKE HANDLE POS, position 16k) #LOWER_LIMIT# max #UPPER_LIMIT# min s0 (>O:ENGINE_ROTOR_Brake_#BRAKE_ID#_Position) l0 0 == if{ l0 (>O:DragValue) }</Init>
<WatchVars>
<Simvar ID="ROTOR BRAKE HANDLE POS"/>
</WatchVars>
</Value>
<Inc>
<Code>#ON_BEFORE_INC# (A:ROTOR BRAKE HANDLE POS, position 16k) p0 + #UPPER_LIMIT# / (>B:ENGINE_ROTOR_Brake_#BRAKE_ID#_Set) #ON_AFTER_INC#</Code>
<Parameters>
<Param Type="Float" RPN="True">p0 #INCREMENT# *</Param>
</Parameters>
<Bindings>
<Binding EventID="ENGINE_ROTOR_Brake#BRAKE_ID#_INCR">
<Param>1</Param>
</Binding>
<!-- Events bound to all presets instances -->
<Binding EventID="ENGINE_ROTOR_Brake_INCR">
<Param>1</Param>
</Binding>
</Bindings>
</Inc>
<Dec>
<Code>#ON_BEFORE_DEC# (A:ROTOR BRAKE HANDLE POS, position 16k) p0 - #UPPER_LIMIT# / (>B:ENGINE_ROTOR_Brake_#BRAKE_ID#_Set) #ON_AFTER_DEC#</Code>
<Parameters>
<Param Type="Float" RPN="True">p0 #INCREMENT# *</Param>
</Parameters>
<Bindings>
<Binding EventID="ENGINE_ROTOR_Brake#BRAKE_ID#_DECR">
<Param>1</Param>
</Binding>
<!-- Events bound to all presets instances -->
<Binding EventID="ENGINE_ROTOR_Brake_DECR">
<Param>1</Param>
</Binding>
</Bindings>
</Dec>
<Set>
<Code>#ON_BEFORE_SET# p0 #LOWER_LIMIT# max #UPPER_LIMIT# min s0 (>K:AXIS_ROTOR_BRAKE_SET) l0 (>O:ENGINE_ROTOR_Brake_#BRAKE_ID#_Position) #ON_AFTER_SET#</Code>
<Parameters>
<Param Type="Float" RPN="True">p0 #UPPER_LIMIT# *</Param>
</Parameters>
<Bindings>
<Binding Alias="ENGINE_ROTOR_Brake#BRAKE_ID#_On">
<Param>1</Param>
</Binding>
<Binding Alias="ENGINE_ROTOR_Brake_#BRAKE_ID#_off">
<Param>0</Param>
</Binding>
</Bindings>
</Set>
</Preset>
</Case>
<Default>
<Condition NotEmpty="EXTEND_TARGET">
<True>
<Extend Target="#EXTEND_TARGET#">
<Parameters Type="Default">
<INPUT_EVENT_ID_SOURCE>ENGINE</INPUT_EVENT_ID_SOURCE>
</Parameters>
</Extend>
</True>
<False>
<Extend Target="ASOBO_GIE_Anim_Handling">
<Parameters Type="Default">
<INPUT_EVENT_ID_SOURCE>ENGINE</INPUT_EVENT_ID_SOURCE>
</Parameters>
</Extend>
</False>
</Condition>
</Default>
</Switch>
</Presets>
</InputEvent>
</ModelBehaviors>
Includes
- ModelBehaviorFile: ASOBO\Inputs\Helpers.xml