This commit is contained in:
Kilian Hofmann 2025-01-24 19:43:59 +01:00
parent 6ff50b29cb
commit 0b2e17cfd4
6 changed files with 695 additions and 1559 deletions

View File

@ -744,8 +744,17 @@
<ANIM_LAG>100</ANIM_LAG>
<RESET_DELAY>0.15</RESET_DELAY>
<DRAG_THRESHOLD>0.35</DRAG_THRESHOLD>
<SWITCH_DIRECTION>Vertical</SWITCH_DIRECTION>
</Parameters>
<Parameters Type="Override">
<Switch Param="SWITCH_DIRECTION">
<Case Value="Vertical">
<AXIS>Y</AXIS>
</Case>
<Case Value="Horizontal">
<AXIS>X</AXIS>
</Case>
</Switch>
<Condition Check="ANIM_NAME">
<False>
<ANIM_NAME>#NODE_NAME#</ANIM_NAME>
@ -800,10 +809,10 @@
<IMCodeInstances>
<IMDefault>
(M:Event) 'LeftSingle' scmi 0 == if{
(M:RelativeY) 0 &gt; if{
(M:Relative#AXIS#) 0 &gt; if{
#INC_CODE#
}
(M:RelativeY) 0 &lt; if{
(M:Relative#AXIS#) 0 &lt; if{
#DEC_CODE#
}
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
@ -863,7 +872,7 @@
<DragNodeId>#NODE_NAME#</DragNodeId>
<DragAnimSynced>True</DragAnimSynced>
<DragUseAnimLag>True</DragUseAnimLag>
<DragAxis>Y</DragAxis>
<DragAxis>#AXIS#</DragAxis>
<DragFlagsLockable>LeftDrag+RightDrag+MiddleDrag</DragFlagsLockable>
</CallbackCode>
</MouseRect>
@ -1387,5 +1396,269 @@
</UseTemplate>
</Component>
</Template>
<Template Name="MD11_Rudder_Trim_Knob">
<Parameters Type="Default">
<ANIM_LENGTH>50</ANIM_LENGTH>
<ANIM_LAG>500</ANIM_LAG>
<RESET_DELAY>0.15</RESET_DELAY>
<DRAG_THRESHOLD>0.35</DRAG_THRESHOLD>
</Parameters>
<Parameters Type="Override">
<Condition Check="ANIM_NAME">
<False>
<ANIM_NAME>#NODE_NAME#</ANIM_NAME>
</False>
</Condition>
<Condition Check="VAR_NAME">
<False>
<VAR_NAME>#NODE_NAME#</VAR_NAME>
</False>
</Condition>
</Parameters>
<Component ID="#NODE_NAME#" Node="#NODE_NAME#">
<Condition Check="ANIM_CODE">
<True>
<Animation Name="#ANIM_NAME#" Length="#ANIM_LENGTH#" Type="Sim"
TypeParam="AutoPlay">
<Parameter>
<Code>#ANIM_CODE#</Code>
<Lag>#ANIM_LAG#</Lag>
</Parameter>
</Animation>
</True>
<False>
<Animation Name="#ANIM_NAME#" Length="#ANIM_LENGTH#" Type="Sim"
TypeParam="AutoPlay">
<Parameter>
<Code>(L:#NODE_NAME#) 5 *</Code>
<Lag>#ANIM_LAG#</Lag>
</Parameter>
</Animation>
</False>
</Condition>
<MouseRect>
<IMCursorsInstances>
<IMDefault>
<CursorLeft>TurnLeft</CursorLeft>
<CursorRight>TurnRight</CursorRight>
<Cursor>Dynamic</Cursor>
</IMDefault>
<IMDrag>
<Cursor>Grab</Cursor>
</IMDrag>
</IMCursorsInstances>
<IMMouseFlagsInstances>
<IMDefault>LeftSingle+LeftRelease+WheelUp+WheelDown</IMDefault>
<IMDrag>Lock+Unlock+LeftDrag+Wheel</IMDrag>
</IMMouseFlagsInstances>
<Lock>True</Lock>
<LockFlagsTemporary>LeftSingle</LockFlagsTemporary>
<HighlightNodeId>#NODE_NAME#</HighlightNodeId>
<CallbackCode>
<IMCodeInstances>
<IMDefault>
(M:Event) 'LeftSingle' scmi 0 == if{
(M:RelativeX) 0 &gt; if{
#INC_CODE#
}
(M:RelativeX) 0 &lt; if{
#DEC_CODE#
}
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
}
(M:Event) 'LeftRelease' scmi 0 == if{
1 (&gt;O:HasReleased)
}
(M:Event) 'WheelUp' scmi 0 == if{
#INC_CODE#
1 (&gt;O:HasReleased)
(E:SIMULATION TIME,seconds) (&gt;O:UpdateTime)
}
(M:Event) 'WheelDown' scmi 0 == if{
#DEC_CODE#
1 (&gt;O:HasReleased)
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
}
</IMDefault>
<IMDrag>
(M:Event) 'WheelUp' scmi 0 == if{
#INC_CODE#
1(&gt;O:HasReleased)
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
}
(M:Event) 'WheelDown' scmi 0 == if{
#DEC_CODE#
1 (&gt;O:HasReleased)
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
}
(M:Event) 'Lock' scmi 0 == if{
(L:#VAR_NAME#) 2 / (&gt;O:InitialPosition)
}
(M:Event) 'Unlock' scmi 0 == if{
1 (&gt;O:HasReleased)
0 (&gt;O:IsThresholdExceeded)
}
(M:Event) 'LeftDrag' scmi 0 == if{
(O:IsThresholdExceeded) ! if{
(M:DragPercent)
(O:InitialPosition) - (&gt;O:DragChange)
(O:DragChange) #DRAG_THRESHOLD# &gt;= if{
#INC_CODE#
1 (&gt;O:IsThresholdExceeded)
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
}
(O:DragChange) -#DRAG_THRESHOLD# &lt;= if{
#DEC_CODE#
1 (&gt;O:IsThresholdExceeded) (E:SIMULATION TIME, seconds)
(&gt;O:UpdateTime)
}
}
}
</IMDrag>
</IMCodeInstances>
<DragMode>Trajectory</DragMode>
<DragAnimName>#ANIM_NAME#</DragAnimName>
<DragNodeId>#NODE_NAME#</DragNodeId>
<DragAnimSynced>True</DragAnimSynced>
<DragUseAnimLag>True</DragUseAnimLag>
<DragAxis>X</DragAxis>
<DragFlagsLockable>LeftDrag+RightDrag+MiddleDrag</DragFlagsLockable>
</CallbackCode>
</MouseRect>
<Update InteractionModel="All" Frequency="5">
(O:HasReleased) if{
(E:SIMULATION TIME, seconds) (O:UpdateTime) - #RESET_DELAY# &gt; if{
#REL_CODE#
0 (&gt;O:HasReleased)
}
}
</Update>
</Component>
</Template>
<Template Name="MD11_Aileron_Trim_Knob">
<Parameters Type="Default">
<ANIM_LENGTH>50</ANIM_LENGTH>
<ANIM_LAG>500</ANIM_LAG>
<RESET_DELAY>0.15</RESET_DELAY>
<DRAG_THRESHOLD>0.35</DRAG_THRESHOLD>
</Parameters>
<Parameters Type="Override">
<Condition Check="ANIM_NAME">
<False>
<ANIM_NAME>#NODE_NAME#</ANIM_NAME>
</False>
</Condition>
<Condition Check="VAR_NAME">
<False>
<VAR_NAME>#NODE_NAME#</VAR_NAME>
</False>
</Condition>
</Parameters>
<Component ID="#NODE_NAME#" Node="#NODE_NAME#">
<Condition Check="ANIM_CODE">
<True>
<Animation Name="#ANIM_NAME#" Length="#ANIM_LENGTH#" Type="Sim"
TypeParam="AutoPlay">
<Parameter>
<Code>#ANIM_CODE#</Code>
<Lag>#ANIM_LAG#</Lag>
</Parameter>
</Animation>
</True>
<False>
<Animation Name="#ANIM_NAME#" Length="#ANIM_LENGTH#" Type="Sim"
TypeParam="AutoPlay">
<Parameter>
<Code>(L:#NODE_NAME#) 5 *</Code>
<Lag>#ANIM_LAG#</Lag>
</Parameter>
</Animation>
</False>
</Condition>
<MouseRect>
<IMCursorsInstances>
<IMDefault>
<CursorLeft>LeftArrow</CursorLeft>
<CursorRight>RightArrow</CursorRight>
<Cursor>Dynamic</Cursor>
</IMDefault>
<IMDrag>
<Cursor>Grab</Cursor>
</IMDrag>
</IMCursorsInstances>
<IMMouseFlagsInstances>
<IMDefault>LeftSingle+LeftRelease+WheelUp+WheelDown</IMDefault>
<IMDrag>Lock+Unlock+LeftDrag+Wheel</IMDrag>
</IMMouseFlagsInstances>
<Lock>True</Lock>
<LockFlagsTemporary>LeftSingle</LockFlagsTemporary>
<HighlightNodeId>#NODE_NAME#</HighlightNodeId>
<CallbackCode>
<IMCodeInstances>
<IMDefault>
(M:Event) 'LeftSingle' scmi 0 == if{
(M:RelativeX) 0 &gt; if{
#INC_CODE#
}
(M:RelativeX) 0 &lt; if{
#DEC_CODE#
}
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
}
(M:Event) 'WheelUp' scmi 0 == if{
#INC_CODE#
(E:SIMULATION TIME,seconds) (&gt;O:UpdateTime)
}
(M:Event) 'WheelDown' scmi 0 == if{
#DEC_CODE#
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
}
</IMDefault>
<IMDrag>
(M:Event) 'WheelUp' scmi 0 == if{
#INC_CODE#
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
}
(M:Event) 'WheelDown' scmi 0 == if{
#DEC_CODE#
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
}
(M:Event) 'Lock' scmi 0 == if{
(L:#VAR_NAME#) 2 / (&gt;O:InitialPosition)
}
(M:Event) 'Unlock' scmi 0 == if{
0 (&gt;O:IsThresholdExceeded)
}
(M:Event) 'LeftDrag' scmi 0 == if{
(O:IsThresholdExceeded) ! if{
(M:DragPercent)
(O:InitialPosition) - (&gt;O:DragChange)
(O:DragChange) #DRAG_THRESHOLD# &gt;= if{
#INC_CODE#
1 (&gt;O:IsThresholdExceeded)
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
}
(O:DragChange) -#DRAG_THRESHOLD# &lt;= if{
#DEC_CODE#
1 (&gt;O:IsThresholdExceeded) (E:SIMULATION TIME, seconds)
(&gt;O:UpdateTime)
}
}
}
</IMDrag>
</IMCodeInstances>
<DragMode>Trajectory</DragMode>
<DragAnimName>#ANIM_NAME#</DragAnimName>
<DragNodeId>#NODE_NAME#</DragNodeId>
<DragAnimSynced>True</DragAnimSynced>
<DragUseAnimLag>True</DragUseAnimLag>
<DragAxis>X</DragAxis>
<DragFlagsLockable>LeftDrag+RightDrag+MiddleDrag</DragFlagsLockable>
</CallbackCode>
</MouseRect>
</Component>
</Template>
<!-- KHOFMANN END -->
</ModelBehaviors>

View File

@ -48,7 +48,8 @@
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_CGS_VS_FPA_BT</NODE_NAME>
<ANIM_CODE>MD11_CGS_VSFPA_BT</ANIM_CODE>
<ANIM_NAME>MD11_CGS_VSFPA_BT</ANIM_NAME>
<ANIM_CODE>(L:MD11_CGS_VSFPA_BT) 10 *</ANIM_CODE>
<CODE_PRESS>86104 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>86105 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>

View File

@ -0,0 +1,409 @@
<?xml version="1.0" encoding="utf-8"?>
<ModelBehaviors>
<Include ModelBehaviorFile="Asobo\Common.xml" />
<Include ModelBehaviorFile="TFDi_Design_MD-11\TFDi_MD11_INT_Templates.xml" />
<Template Name="MD11_PED">
<!-- DOOR LOCK START -->
<UseTemplate Name="MD11_Finite_Knob">
<NODE_NAME>MD11_PED_CKPTDOOR_LOCK_KB</NODE_NAME>
<NUM_POS>3</NUM_POS>
<INC_CODE>70046 (&gt;L:CEVENT)</INC_CODE>
<DEC_CODE>70045 (&gt;L:CEVENT)</DEC_CODE>
</UseTemplate>
<!-- DOOR LOCK END -->
<!-- CPT RADIO START -->
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_CPT_RADIO_PNL_XFER_BT</NODE_NAME>
<CODE_PRESS>69644 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69645 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_CPT_RADIO_PNL_VHF1_BT</NODE_NAME>
<CODE_PRESS>69650 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69651 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_CPT_RADIO_PNL_VHF2_BT</NODE_NAME>
<CODE_PRESS>69652 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69653 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_CPT_RADIO_PNL_VHF3_BT</NODE_NAME>
<CODE_PRESS>69654 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69655 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_CPT_RADIO_PNL_HF1_BT</NODE_NAME>
<CODE_PRESS>69656 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69657 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_CPT_RADIO_PNL_HF2_BT</NODE_NAME>
<CODE_PRESS>69658 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69659 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Infinite_Knob">
<NODE_NAME>MD11_PED_CPT_OUTER_RADIO_FREQ_SEL_KB</NODE_NAME>
<ANIM_CODE>(L:MD11_PED_CPT_OUTER_RADIO_FREQ_SEL_KB) 71 72 / *</ANIM_CODE>
<INC_CODE>69632 (&gt;L:CEVENT)</INC_CODE>
<DEC_CODE>69633 (&gt;L:CEVENT)</DEC_CODE>
</UseTemplate>
<UseTemplate Name="MD11_Infinite_Knob">
<NODE_NAME>MD11_PED_CPT_INNER_RADIO_FREQ_SEL_KB</NODE_NAME>
<ANIM_CODE>(L:MD11_PED_CPT_INNER_RADIO_FREQ_SEL_KB) 71 72 / *</ANIM_CODE>
<INC_CODE>69634 (&gt;L:CEVENT)</INC_CODE>
<DEC_CODE>69635 (&gt;L:CEVENT)</DEC_CODE>
</UseTemplate>
<!-- CPT RADIO END -->
<!-- FO RADIO START -->
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_FO_RADIO_PNL_XFER_BT</NODE_NAME>
<CODE_PRESS>69646 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69647 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_FO_RADIO_PNL_VHF1_BT</NODE_NAME>
<CODE_PRESS>69660 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69661 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_FO_RADIO_PNL_VHF2_BT</NODE_NAME>
<CODE_PRESS>69662 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69663 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_FO_RADIO_PNL_VHF3_BT</NODE_NAME>
<CODE_PRESS>69664 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69665 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_FO_RADIO_PNL_HF1_BT</NODE_NAME>
<CODE_PRESS>69666 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69667 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_FO_RADIO_PNL_HF2_BT</NODE_NAME>
<CODE_PRESS>69668 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69669 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Infinite_Knob">
<NODE_NAME>MD11_PED_FO_OUTER_RADIO_FREQ_SEL_KB</NODE_NAME>
<ANIM_CODE>(L:MD11_PED_FO_OUTER_RADIO_FREQ_SEL_KB) 71 72 / *</ANIM_CODE>
<INC_CODE>69636 (&gt;L:CEVENT)</INC_CODE>
<DEC_CODE>69637 (&gt;L:CEVENT)</DEC_CODE>
</UseTemplate>
<UseTemplate Name="MD11_Infinite_Knob">
<NODE_NAME>MD11_PED_FO_INNER_RADIO_FREQ_SEL_KB</NODE_NAME>
<ANIM_CODE>(L:MD11_PED_FO_INNER_RADIO_FREQ_SEL_KB) 71 72 / *</ANIM_CODE>
<INC_CODE>69638 (&gt;L:CEVENT)</INC_CODE>
<DEC_CODE>69639 (&gt;L:CEVENT)</DEC_CODE>
</UseTemplate>
<!-- FO RADIO END -->
<!-- OBS RADIO START -->
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_OBS_RADIO_PNL_XFER_BT</NODE_NAME>
<CODE_PRESS>69648 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69649 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_OBS_RADIO_PNL_VHF1_BT</NODE_NAME>
<CODE_PRESS>69670 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69671 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_OBS_RADIO_PNL_VHF2_BT</NODE_NAME>
<CODE_PRESS>69672 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69673 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_OBS_RADIO_PNL_VHF3_BT</NODE_NAME>
<CODE_PRESS>69674 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69675 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_OBS_RADIO_PNL_HF1_BT</NODE_NAME>
<CODE_PRESS>69676 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69677 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_OBS_RADIO_PNL_HF2_BT</NODE_NAME>
<CODE_PRESS>69678 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69679 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Infinite_Knob">
<NODE_NAME>MD11_PED_OBS_OUTER_RADIO_FREQ_SEL_KB</NODE_NAME>
<ANIM_CODE>(L:MD11_PED_OBS_OUTER_RADIO_FREQ_SEL_KB) 71 72 / *</ANIM_CODE>
<INC_CODE>69640 (&gt;L:CEVENT)</INC_CODE>
<DEC_CODE>69641 (&gt;L:CEVENT)</DEC_CODE>
</UseTemplate>
<UseTemplate Name="MD11_Infinite_Knob">
<NODE_NAME>MD11_PED_OBS_INNER_RADIO_FREQ_SEL_KB</NODE_NAME>
<ANIM_CODE>(L:MD11_PED_OBS_INNER_RADIO_FREQ_SEL_KB) 71 72 / *</ANIM_CODE>
<INC_CODE>69642 (&gt;L:CEVENT)</INC_CODE>
<DEC_CODE>69643 (&gt;L:CEVENT)</DEC_CODE>
</UseTemplate>
<!-- OBS RADIO END -->
<!-- SD BUTTONS START -->
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_SD_ENG_BT</NODE_NAME>
<CODE_PRESS>69828 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69829 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_SD_ND_BT</NODE_NAME>
<CODE_PRESS>69830 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69831 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_SD_CONSEQ_BT</NODE_NAME>
<CODE_PRESS>69832 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69833 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_SD_STATUS_BT</NODE_NAME>
<CODE_PRESS>69834 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69835 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_SD_HYD_BT</NODE_NAME>
<CODE_PRESS>69836 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69837 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_SD_ELEC_BT</NODE_NAME>
<CODE_PRESS>69838 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69839 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_SD_AIR_BT</NODE_NAME>
<CODE_PRESS>69840 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69841 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_SD_FUEL_BT</NODE_NAME>
<CODE_PRESS>69842 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69843 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_SD_CONFIG_BT</NODE_NAME>
<CODE_PRESS>69844 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69845 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_SD_MISC_BT</NODE_NAME>
<CODE_PRESS>69846 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69847 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<!-- SD BUTTONS END -->
<!-- XPNDR START -->
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_XPNDR_1_BT</NODE_NAME>
<CODE_PRESS>69856 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69857 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_XPNDR_2_BT</NODE_NAME>
<CODE_PRESS>69858 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69859 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_XPNDR_3_BT</NODE_NAME>
<CODE_PRESS>69860 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69861 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_XPNDR_4_BT</NODE_NAME>
<CODE_PRESS>69862 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69863 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_XPNDR_5_BT</NODE_NAME>
<CODE_PRESS>69864 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69865 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_XPNDR_6_BT</NODE_NAME>
<CODE_PRESS>69866 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69867 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_XPNDR_7_BT</NODE_NAME>
<CODE_PRESS>69868 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69869 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_XPNDR_0_BT</NODE_NAME>
<CODE_PRESS>69870 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69871 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_XPNDR_CLR_BT</NODE_NAME>
<CODE_PRESS>69872 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69873 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_XPNDR_TEST_BT</NODE_NAME>
<CODE_PRESS>69878 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69879 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_XPNDR_IDENT_BT</NODE_NAME>
<CODE_PRESS>69880 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69881 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Finite_Knob">
<NODE_NAME>MD11_PED_XPNDR_MODE_KB</NODE_NAME>
<NUM_POS>4</NUM_POS>
<INC_CODE>69877 (&gt;L:CEVENT)</INC_CODE>
<DEC_CODE>69876 (&gt;L:CEVENT)</DEC_CODE>
</UseTemplate>
<UseTemplate Name="MD11_2Pos_Switch">
<NODE_NAME>MD11_PED_XPNDR_ABV_BLW_SW</NODE_NAME>
<CODE>
(L:MD11_PED_XPNDR_ABV_BLW_SW) 0 ==
if{ 69875 (&gt;L:CEVENT) }
els{ 69874 (&gt;L:CEVENT) }
</CODE>
</UseTemplate>
<UseTemplate Name="MD11_2Pos_Switch">
<NODE_NAME>MD11_PED_XPNDR_SEL_KB</NODE_NAME>
<CODE>69855 (&gt;L:CEVENT)96322 (&gt;L:CEVENT)</CODE>
</UseTemplate>
<UseTemplate Name="MD11_2Pos_Switch">
<NODE_NAME>MD11_PED_XPNDR_ALT_RPTG_KB</NODE_NAME>
<CODE>69854 (&gt;L:CEVENT)96322 (&gt;L:CEVENT)</CODE>
</UseTemplate>
<!-- XPNDR END -->
<!-- WXT START -->
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_WXR_OFF_BT</NODE_NAME>
<CODE_PRESS>69883 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69884 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_WXR_TEST_BT</NODE_NAME>
<CODE_PRESS>69885 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69886 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_WXR_WXT_BT</NODE_NAME>
<CODE_PRESS>69887 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69888 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_WXR_WX_BT</NODE_NAME>
<CODE_PRESS>69889 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69890 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_WXR_MAP_BT</NODE_NAME>
<CODE_PRESS>69891 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69892 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_WXR_SYS_BT</NODE_NAME>
<CODE_PRESS>69893 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69894 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_WXR_IDNT_BT</NODE_NAME>
<CODE_PRESS>69895 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69896 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_PED_WXR_STAB_BT</NODE_NAME>
<CODE_PRESS>69897 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>69898 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Finite_Knob">
<NODE_NAME>MD11_PED_WXR_GAIN_KB</NODE_NAME>
<NUM_POS>10</NUM_POS>
<INC_CODE>69900 (&gt;L:CEVENT)</INC_CODE>
<DEC_CODE>69899 (&gt;L:CEVENT)</DEC_CODE>
</UseTemplate>
<UseTemplate Name="MD11_Finite_Knob">
<NODE_NAME>MD11_PED_WXR_TILT_KB</NODE_NAME>
<NUM_POS>10</NUM_POS>
<INC_CODE>69902 (&gt;L:CEVENT)</INC_CODE>
<DEC_CODE>69901 (&gt;L:CEVENT)</DEC_CODE>
</UseTemplate>
<!-- WXR END -->
<!-- RUDDER TRIM START -->
<!-- NOTE: Animation "flipped" -->
<UseTemplate Name="MD11_Animation">
<NODE_NAME>MD11_PED_RUD_TRIM_IND</NODE_NAME>
<ANIM_CODE>50 (L:MD11_PED_RUD_TRIM_IND) -</ANIM_CODE>
</UseTemplate>
<!-- NOTE: Animation "flipped" -->
<!-- NOTE: Added bound check so as to not overdrive the trim-->
<UseTemplate Name="MD11_Rudder_Trim_Knob">
<NODE_NAME>MD11_PED_RUD_TRIM_SW</NODE_NAME>
<ANIM_CODE>2 (L:MD11_PED_RUD_TRIM_SW) -</ANIM_CODE>
<INC_CODE>(L:MD11_PED_RUD_TRIM_SW) 50 &lt; if{ 69848 (&gt;L:CEVENT) }</INC_CODE>
<DEC_CODE>(L:MD11_PED_RUD_TRIM_SW) 0 &gt; if{ 69850 (&gt;L:CEVENT) }</DEC_CODE>
<REL_CODE>69849 (&gt;L:CEVENT)</REL_CODE>
</UseTemplate>
<!-- RUDDER TRIM END -->
<!-- AILERON TRIM START -->
<UseTemplate Name="MD11_Animation">
<NODE_NAME>MD11_PED_AIL_TRIM_IND</NODE_NAME>
<ANIM_CODE>(L:MD11_PED_AIL_TRIM_IND)</ANIM_CODE>
</UseTemplate>
<!-- NOTE: Animation "flipped" -->
<UseTemplate Name="MD11_Aileron_Trim_Knob">
<NODE_NAME>MD11_PED_AIL_TRIM_KB</NODE_NAME>
<ANIM_CODE>(L:MD11_PED_AIL_TRIM_KB)</ANIM_CODE>
<INC_CODE>69852 (&gt;L:CEVENT)</INC_CODE>
<DEC_CODE>69853 (&gt;L:CEVENT)</DEC_CODE>
</UseTemplate>
<!-- AILERON TRIM END -->
<!-- DU BRIGHTNESS KNOBS START -->
<UseTemplate Name="MD11_Finite_Knob">
<NODE_NAME>MD11_PED_DU1_BRT_KB</NODE_NAME>
<NUM_POS>10</NUM_POS>
<INC_CODE>69817 (&gt;L:CEVENT)</INC_CODE>
<DEC_CODE>69816 (&gt;L:CEVENT)</DEC_CODE>
</UseTemplate>
<UseTemplate Name="MD11_Finite_Knob">
<NODE_NAME>MD11_PED_DU2_BRT_KB</NODE_NAME>
<NUM_POS>10</NUM_POS>
<INC_CODE>69819 (&gt;L:CEVENT)</INC_CODE>
<DEC_CODE>69818 (&gt;L:CEVENT)</DEC_CODE>
</UseTemplate>
<UseTemplate Name="MD11_Finite_Knob">
<NODE_NAME>MD11_PED_DU3_BRT_KB</NODE_NAME>
<NUM_POS>10</NUM_POS>
<INC_CODE>69821 (&gt;L:CEVENT)</INC_CODE>
<DEC_CODE>69820 (&gt;L:CEVENT)</DEC_CODE>
</UseTemplate>
<UseTemplate Name="MD11_Finite_Knob">
<NODE_NAME>MD11_PED_DU4_BRT_KB</NODE_NAME>
<NUM_POS>10</NUM_POS>
<INC_CODE>69823 (&gt;L:CEVENT)</INC_CODE>
<DEC_CODE>69822 (&gt;L:CEVENT)</DEC_CODE>
</UseTemplate>
<UseTemplate Name="MD11_Finite_Knob">
<NODE_NAME>MD11_PED_DU5_BRT_KB</NODE_NAME>
<NUM_POS>10</NUM_POS>
<INC_CODE>69825 (&gt;L:CEVENT)</INC_CODE>
<DEC_CODE>69824 (&gt;L:CEVENT)</DEC_CODE>
</UseTemplate>
<UseTemplate Name="MD11_Finite_Knob">
<NODE_NAME>MD11_PED_DU6_BRT_KB</NODE_NAME>
<NUM_POS>10</NUM_POS>
<INC_CODE>69827 (&gt;L:CEVENT)</INC_CODE>
<DEC_CODE>69826 (&gt;L:CEVENT)</DEC_CODE>
</UseTemplate>
<!-- DU BRIGHTNESS KNOBS END -->
</Template>
</ModelBehaviors>

View File

@ -1,151 +1,7 @@
import { XMLParser, XMLBuilder, XMLValidator } from "fast-xml-parser";
const input = `
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_VHF1_MIC_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_VHF1_MIC_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 96256 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 96257 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_VHF2_MIC_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_VHF2_MIC_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 96258 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 96259 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_VHF3_MIC_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_VHF3_MIC_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 96260 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 96261 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_HF1_MIC_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_HF1_MIC_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 96262 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 96263 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_HF2_MIC_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_HF2_MIC_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 96264 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 96265 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_SAT_MIC_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_SAT_MIC_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 96266 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 96267 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_INT_MIC_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_INT_MIC_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 96268 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 96269 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_CAB_MIC_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_CAB_MIC_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 96270 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 96271 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_IDENT_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_IDENT_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 96320 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 96321 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
`;
function convert(element) {

View File

@ -1,278 +1,7 @@
import { XMLParser, XMLBuilder, XMLValidator } from "fast-xml-parser";
const input = `
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_VHF1_VOL_KB</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_VHF1_VOL_KB, enum) 1 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>WheelUp+WheelDown+LeftSingle</MouseFlags>
<CallbackCode>(M:Event) &apos;WheelUp&apos; scmp 0 == if{ 96272 (&gt;L:CEVENT) } (M:Event)
&apos;WheelDown&apos; scmp 0 == if{ 96273 (&gt;L:CEVENT) } (M:Event) &apos;LeftSingle&apos;
scmp 0 == if{ 96274 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_VHF2_VOL_KB</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_VHF2_VOL_KB, enum) 1 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>WheelUp+WheelDown+LeftSingle</MouseFlags>
<CallbackCode>(M:Event) &apos;WheelUp&apos; scmp 0 == if{ 96275 (&gt;L:CEVENT) } (M:Event)
&apos;WheelDown&apos; scmp 0 == if{ 96276 (&gt;L:CEVENT) } (M:Event) &apos;LeftSingle&apos;
scmp 0 == if{ 96277 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_VHF3_VOL_KB</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_VHF3_VOL_KB, enum) 1 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>WheelUp+WheelDown+LeftSingle</MouseFlags>
<CallbackCode>(M:Event) &apos;WheelUp&apos; scmp 0 == if{ 96278 (&gt;L:CEVENT) } (M:Event)
&apos;WheelDown&apos; scmp 0 == if{ 96279 (&gt;L:CEVENT) } (M:Event) &apos;LeftSingle&apos;
scmp 0 == if{ 96280 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_HF1_VOL_KB</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_HF1_VOL_KB, enum) 1 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>WheelUp+WheelDown+LeftSingle</MouseFlags>
<CallbackCode>(M:Event) &apos;WheelUp&apos; scmp 0 == if{ 96281 (&gt;L:CEVENT) } (M:Event)
&apos;WheelDown&apos; scmp 0 == if{ 96282 (&gt;L:CEVENT) } (M:Event) &apos;LeftSingle&apos;
scmp 0 == if{ 96283 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_HF2_VOL_KB</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_HF2_VOL_KB, enum) 1 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>WheelUp+WheelDown+LeftSingle</MouseFlags>
<CallbackCode>(M:Event) &apos;WheelUp&apos; scmp 0 == if{ 96284 (&gt;L:CEVENT) } (M:Event)
&apos;WheelDown&apos; scmp 0 == if{ 96285 (&gt;L:CEVENT) } (M:Event) &apos;LeftSingle&apos;
scmp 0 == if{ 96286 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_SAT_VOL_KB</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_SAT_VOL_KB, enum) 1 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>WheelUp+WheelDown+LeftSingle</MouseFlags>
<CallbackCode>(M:Event) &apos;WheelUp&apos; scmp 0 == if{ 96287 (&gt;L:CEVENT) } (M:Event)
&apos;WheelDown&apos; scmp 0 == if{ 96288 (&gt;L:CEVENT) } (M:Event) &apos;LeftSingle&apos;
scmp 0 == if{ 96289 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_INT_VOL_KB</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_INT_VOL_KB, enum) 1 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>WheelUp+WheelDown+LeftSingle</MouseFlags>
<CallbackCode>(M:Event) &apos;WheelUp&apos; scmp 0 == if{ 96290 (&gt;L:CEVENT) } (M:Event)
&apos;WheelDown&apos; scmp 0 == if{ 96291 (&gt;L:CEVENT) } (M:Event) &apos;LeftSingle&apos;
scmp 0 == if{ 96292 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_CAB_VOL_KB</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_CAB_VOL_KB, enum) 1 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>WheelUp+WheelDown+LeftSingle</MouseFlags>
<CallbackCode>(M:Event) &apos;WheelUp&apos; scmp 0 == if{ 96293 (&gt;L:CEVENT) } (M:Event)
&apos;WheelDown&apos; scmp 0 == if{ 96294 (&gt;L:CEVENT) } (M:Event) &apos;LeftSingle&apos;
scmp 0 == if{ 96295 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_PA_VOL_KB</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_PA_VOL_KB, enum) 1 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>WheelUp+WheelDown+LeftSingle</MouseFlags>
<CallbackCode>(M:Event) &apos;WheelUp&apos; scmp 0 == if{ 96296 (&gt;L:CEVENT) } (M:Event)
&apos;WheelDown&apos; scmp 0 == if{ 96297 (&gt;L:CEVENT) } (M:Event) &apos;LeftSingle&apos;
scmp 0 == if{ 96298 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_VOR1_VOL_KB</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_VOR1_VOL_KB, enum) 1 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>WheelUp+WheelDown+LeftSingle</MouseFlags>
<CallbackCode>(M:Event) &apos;WheelUp&apos; scmp 0 == if{ 96299 (&gt;L:CEVENT) } (M:Event)
&apos;WheelDown&apos; scmp 0 == if{ 96300 (&gt;L:CEVENT) } (M:Event) &apos;LeftSingle&apos;
scmp 0 == if{ 96301 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_VOR2_VOL_KB</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_VOR2_VOL_KB, enum) 1 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>WheelUp+WheelDown+LeftSingle</MouseFlags>
<CallbackCode>(M:Event) &apos;WheelUp&apos; scmp 0 == if{ 96302 (&gt;L:CEVENT) } (M:Event)
&apos;WheelDown&apos; scmp 0 == if{ 96303 (&gt;L:CEVENT) } (M:Event) &apos;LeftSingle&apos;
scmp 0 == if{ 96304 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_ILS1_VOL_KB</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_ILS1_VOL_KB, enum) 1 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>WheelUp+WheelDown+LeftSingle</MouseFlags>
<CallbackCode>(M:Event) &apos;WheelUp&apos; scmp 0 == if{ 96305 (&gt;L:CEVENT) } (M:Event)
&apos;WheelDown&apos; scmp 0 == if{ 96306 (&gt;L:CEVENT) } (M:Event) &apos;LeftSingle&apos;
scmp 0 == if{ 96307 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_ILS2_VOL_KB</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_ILS2_VOL_KB, enum) 1 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>WheelUp+WheelDown+LeftSingle</MouseFlags>
<CallbackCode>(M:Event) &apos;WheelUp&apos; scmp 0 == if{ 96308 (&gt;L:CEVENT) } (M:Event)
&apos;WheelDown&apos; scmp 0 == if{ 96309 (&gt;L:CEVENT) } (M:Event) &apos;LeftSingle&apos;
scmp 0 == if{ 96310 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_ADF1_VOL_KB</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_ADF1_VOL_KB, enum) 1 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>WheelUp+WheelDown+LeftSingle</MouseFlags>
<CallbackCode>(M:Event) &apos;WheelUp&apos; scmp 0 == if{ 96311 (&gt;L:CEVENT) } (M:Event)
&apos;WheelDown&apos; scmp 0 == if{ 96312 (&gt;L:CEVENT) } (M:Event) &apos;LeftSingle&apos;
scmp 0 == if{ 96313 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_ADF2_VOL_KB</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_ADF2_VOL_KB, enum) 1 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>WheelUp+WheelDown+LeftSingle</MouseFlags>
<CallbackCode>(M:Event) &apos;WheelUp&apos; scmp 0 == if{ 96314 (&gt;L:CEVENT) } (M:Event)
&apos;WheelDown&apos; scmp 0 == if{ 96315 (&gt;L:CEVENT) } (M:Event) &apos;LeftSingle&apos;
scmp 0 == if{ 96316 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_OBS_AUDIO_PNL_MKR_VOL_KB</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_OBS_AUDIO_PNL_MKR_VOL_KB, enum) 1 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>WheelUp+WheelDown+LeftSingle</MouseFlags>
<CallbackCode>(M:Event) &apos;WheelUp&apos; scmp 0 == if{ 96317 (&gt;L:CEVENT) } (M:Event)
&apos;WheelDown&apos; scmp 0 == if{ 96318 (&gt;L:CEVENT) } (M:Event) &apos;LeftSingle&apos;
scmp 0 == if{ 96319 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
`;
function convert(element) {