From 3764d88a8863f2833706fe3abdc89a8b8307581d Mon Sep 17 00:00:00 2001
From: Joshua Davidson <joshuadavidson2000@gmail.com>
Date: Wed, 5 Sep 2018 21:01:40 -0400
Subject: [PATCH] DU: Add PFD FBW limits

---
 Models/Instruments/PFD/PFD.nas     |  19 ++-
 Models/Instruments/PFD/res/pfd.svg | 197 ++++++++++++++++++++++++++---
 revision.txt                       |   2 +-
 3 files changed, 193 insertions(+), 25 deletions(-)

diff --git a/Models/Instruments/PFD/PFD.nas b/Models/Instruments/PFD/PFD.nas
index 01865e2c..e68b8cdf 100644
--- a/Models/Instruments/PFD/PFD.nas
+++ b/Models/Instruments/PFD/PFD.nas
@@ -122,12 +122,13 @@ var canvas_PFD_base = {
 		return me;
 	},
 	getKeys: func() {
-		return ["FMA_man","FMA_manmode","FMA_flxtemp","FMA_thrust","FMA_lvrclb","FMA_pitch","FMA_pitcharm","FMA_pitcharm2","FMA_roll","FMA_rollarm","FMA_combined","FMA_ctr_msg","FMA_catmode","FMA_cattype","FMA_nodh","FMA_dh","FMA_dhn","FMA_ap","FMA_fd",
-		"FMA_athr","FMA_man_box","FMA_flx_box","FMA_thrust_box","FMA_pitch_box","FMA_pitcharm_box","FMA_roll_box","FMA_rollarm_box","FMA_combined_box","FMA_catmode_box","FMA_cattype_box","FMA_cat_box","FMA_dh_box","FMA_ap_box","FMA_fd_box","FMA_athr_box",
-		"FMA_Middle1","FMA_Middle2","ASI_max","ASI_scale","ASI_target","ASI_mach","ASI_mach_decimal","ASI_trend_up","ASI_trend_down","ASI_digit_UP","ASI_digit_DN","ASI_decimal_UP","ASI_decimal_DN","ASI_index","ASI_error","ASI_group","ASI_frame","AI_center",
-		"AI_bank","AI_bank_lim","AI_slipskid","AI_horizon","AI_horizon_ground","AI_horizon_sky","AI_stick","AI_stick_pos","AI_heading","AI_agl_g","AI_agl","AI_error","AI_group","FD_roll","FD_pitch","ALT_scale","ALT_target","ALT_target_digit","ALT_one","ALT_two",
-		"ALT_three","ALT_four","ALT_five","ALT_digits","ALT_tens","ALT_digit_UP","ALT_digit_DN","ALT_error","ALT_group","ALT_group2","ALT_frame","VS_pointer","VS_box","VS_digit","VS_error","VS_group","QNH","QNH_setting","QNH_std","QNH_box","LOC_pointer",
-		"LOC_scale","GS_scale","GS_pointer","CRS_pointer","HDG_target","HDG_scale","HDG_one","HDG_two","HDG_three","HDG_four","HDG_five","HDG_six","HDG_seven","HDG_digit_L","HDG_digit_R","HDG_error","HDG_group","HDG_frame","TRK_pointer"];
+		return ["FMA_man","FMA_manmode","FMA_flxtemp","FMA_thrust","FMA_lvrclb","FMA_pitch","FMA_pitcharm","FMA_pitcharm2","FMA_roll","FMA_rollarm","FMA_combined","FMA_ctr_msg","FMA_catmode","FMA_cattype","FMA_nodh","FMA_dh","FMA_dhn","FMA_ap","FMA_fd","FMA_athr",
+		"FMA_man_box","FMA_flx_box","FMA_thrust_box","FMA_pitch_box","FMA_pitcharm_box","FMA_roll_box","FMA_rollarm_box","FMA_combined_box","FMA_catmode_box","FMA_cattype_box","FMA_cat_box","FMA_dh_box","FMA_ap_box","FMA_fd_box","FMA_athr_box","FMA_Middle1",
+		"FMA_Middle2","ASI_max","ASI_scale","ASI_target","ASI_mach","ASI_mach_decimal","ASI_trend_up","ASI_trend_down","ASI_digit_UP","ASI_digit_DN","ASI_decimal_UP","ASI_decimal_DN","ASI_index","ASI_error","ASI_group","ASI_frame","AI_center","AI_bank",
+		"AI_bank_lim","AI_bank_lim_X","AI_pitch_lim","AI_pitch_lim_X","AI_slipskid","AI_horizon","AI_horizon_ground","AI_horizon_sky","AI_stick","AI_stick_pos","AI_heading","AI_agl_g","AI_agl","AI_error","AI_group","FD_roll","FD_pitch","ALT_scale","ALT_target",
+		"ALT_target_digit","ALT_one","ALT_two","ALT_three","ALT_four","ALT_five","ALT_digits","ALT_tens","ALT_digit_UP","ALT_digit_DN","ALT_error","ALT_group","ALT_group2","ALT_frame","VS_pointer","VS_box","VS_digit","VS_error","VS_group","QNH","QNH_setting",
+		"QNH_std","QNH_box","LOC_pointer","LOC_scale","GS_scale","GS_pointer","CRS_pointer","HDG_target","HDG_scale","HDG_one","HDG_two","HDG_three","HDG_four","HDG_five","HDG_six","HDG_seven","HDG_digit_L","HDG_digit_R","HDG_error","HDG_group","HDG_frame",
+		"TRK_pointer"];
 	},
 	update: func() {
 		elapsedtime = getprop("/sim/time/elapsed-sec");
@@ -656,8 +657,14 @@ var canvas_PFD_base = {
 		
 		if (getprop("/it-fbw/law") == 0) {
 			me["AI_bank_lim"].show();
+			me["AI_pitch_lim"].show();
+			me["AI_bank_lim_X"].hide();
+			me["AI_pitch_lim_X"].hide();
 		} else {
 			me["AI_bank_lim"].hide();
+			me["AI_pitch_lim"].hide();
+			me["AI_bank_lim_X"].show();
+			me["AI_pitch_lim_X"].show();
 		}
 		
 		if (getprop("/it-autoflight/fd/roll-bar") != nil) {
diff --git a/Models/Instruments/PFD/res/pfd.svg b/Models/Instruments/PFD/res/pfd.svg
index a0a78a2b..06a6503b 100644
--- a/Models/Instruments/PFD/res/pfd.svg
+++ b/Models/Instruments/PFD/res/pfd.svg
@@ -38,12 +38,12 @@
      inkscape:pageopacity="1"
      inkscape:pageshadow="2"
      inkscape:window-width="1920"
-     inkscape:window-height="1030"
+     inkscape:window-height="1027"
      id="namedview371"
      showgrid="false"
-     inkscape:zoom="0.5"
-     inkscape:cx="299.82204"
-     inkscape:cy="530.33915"
+     inkscape:zoom="0.70710678"
+     inkscape:cx="938.79281"
+     inkscape:cy="528.72437"
      inkscape:window-x="1592"
      inkscape:window-y="-8"
      inkscape:window-maximized="1"
@@ -1050,6 +1050,135 @@
           </g>
         </g>
       </g>
+      <g
+         id="AI_pitch_lim"
+         inkscape:label="#g5009"
+         transform="translate(0,97.082371)">
+        <g
+           id="g4938">
+          <path
+             style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
+             d="m 370.5312,154.3476 21.6616,0"
+             id="path4906"
+             inkscape:connector-curvature="0"
+             sodipodi:nodetypes="cc" />
+          <path
+             sodipodi:nodetypes="cc"
+             inkscape:connector-curvature="0"
+             id="path4909"
+             d="m 370.53103,162.42242 21.66136,0"
+             style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" />
+        </g>
+        <g
+           transform="translate(133.78495,0)"
+           id="g4951">
+          <path
+             sodipodi:nodetypes="cc"
+             inkscape:connector-curvature="0"
+             id="path4954"
+             d="m 370.5312,154.3476 21.6616,0"
+             style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" />
+          <path
+             style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
+             d="m 370.53103,162.42242 21.66136,0"
+             id="path4956"
+             inkscape:connector-curvature="0"
+             sodipodi:nodetypes="cc" />
+        </g>
+        <g
+           transform="matrix(0.9999956,0,0,0.9999865,26.97857,532.2047)"
+           id="g4964">
+          <path
+             sodipodi:nodetypes="cc"
+             inkscape:connector-curvature="0"
+             id="path4966"
+             d="m 370.5312,154.3476 21.6616,0"
+             style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" />
+          <path
+             style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
+             d="m 370.53103,162.42242 21.66136,0"
+             id="path4968"
+             inkscape:connector-curvature="0"
+             sodipodi:nodetypes="cc" />
+        </g>
+        <g
+           id="g4989"
+           transform="matrix(0.9999956,0,0,0.9999865,106.81217,532.2047)">
+          <path
+             style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
+             d="m 370.5312,154.3476 21.6616,0"
+             id="path4991"
+             inkscape:connector-curvature="0"
+             sodipodi:nodetypes="cc" />
+          <path
+             sodipodi:nodetypes="cc"
+             inkscape:connector-curvature="0"
+             id="path4993"
+             d="m 370.53103,162.42242 21.66136,0"
+             style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" />
+        </g>
+      </g>
+      <g
+         id="AI_pitch_lim_X"
+         inkscape:label="#g4999"
+         transform="translate(0,97.08285)">
+        <text
+           xml:space="preserve"
+           style="font-style:normal;font-weight:normal;font-size:11.6461544px;line-height:0%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#bb6100;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           x="392.94058"
+           y="164.03458"
+           id="text4924"
+           inkscape:label="#text4314"
+           sodipodi:linespacing="0%"
+           transform="scale(0.97051544,1.0303803)"><tspan
+             sodipodi:role="line"
+             id="tspan4926"
+             x="392.94058"
+             y="164.03458"
+             style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:30px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;text-anchor:middle;fill:#bb6100;fill-opacity:1">X</tspan></text>
+        <text
+           transform="scale(0.97051544,1.0303803)"
+           sodipodi:linespacing="0%"
+           inkscape:label="#text4314"
+           id="text4958"
+           y="164.03458"
+           x="530.78998"
+           style="font-style:normal;font-weight:normal;font-size:11.6461544px;line-height:0%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#bb6100;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           xml:space="preserve"><tspan
+             style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:30px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;text-anchor:middle;fill:#bb6100;fill-opacity:1"
+             y="164.03458"
+             x="530.78998"
+             id="tspan4960"
+             sodipodi:role="line">X</tspan></text>
+        <text
+           transform="scale(0.97051987,1.0303756)"
+           sodipodi:linespacing="0%"
+           inkscape:label="#text4314"
+           id="text4970"
+           y="680.54834"
+           x="420.73514"
+           style="font-style:normal;font-weight:normal;font-size:11.6461544px;line-height:0%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#bb6100;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           xml:space="preserve"><tspan
+             style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:30px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;text-anchor:middle;fill:#bb6100;fill-opacity:1"
+             y="680.54834"
+             x="420.73514"
+             id="tspan4972"
+             sodipodi:role="line">X</tspan></text>
+        <text
+           xml:space="preserve"
+           style="font-style:normal;font-weight:normal;font-size:11.6461544px;line-height:0%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#bb6100;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           x="502.99374"
+           y="680.54834"
+           id="text4995"
+           inkscape:label="#text4314"
+           sodipodi:linespacing="0%"
+           transform="scale(0.97051987,1.0303756)"><tspan
+             sodipodi:role="line"
+             id="tspan4997"
+             x="502.99374"
+             y="680.54834"
+             style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:30px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;text-anchor:middle;fill:#bb6100;fill-opacity:1">X</tspan></text>
+      </g>
     </g>
     <g
        inkscape:label="#g4918"
@@ -1148,7 +1277,7 @@
        sodipodi:nodetypes="cccc"
        inkscape:connector-curvature="0"
        id="AI_bankindex"
-       d="m 433.21105,208.91721 30.0845,10e-6 -15.04195,25.28563 z"
+       d="m 433.21105,207.78584 30.0845,1e-5 -15.04195,25.28563 z"
        style="fill:none;fill-opacity:1;stroke:#c9cc15;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" />
     <rect
        style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.73024487;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
@@ -1413,7 +1542,7 @@
          transform="translate(0,19.596045)">
         <path
            style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
-           d="m 193.77527,378.22448 14.13625,6.68826"
+           d="m 189.57505,376.22489 14.1363,6.6882"
            id="path4382"
            inkscape:connector-curvature="0"
            sodipodi:nodetypes="cc" />
@@ -1421,26 +1550,58 @@
            sodipodi:nodetypes="cc"
            inkscape:connector-curvature="0"
            id="path4384"
-           d="m 193.66286,391.81107 14.36107,6.19082"
+           d="m 189.46264,389.81135 14.36112,6.19076"
            style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" />
       </g>
       <g
-         id="g4600"
-         transform="translate(0,19.596045)">
+         id="g4876"
+         transform="matrix(-1,0,0,1,896.51521,20.196045)">
+        <path
+           style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
+           d="m 189.57505,376.22489 14.1363,6.6882"
+           id="path4878"
+           inkscape:connector-curvature="0"
+           sodipodi:nodetypes="cc" />
         <path
            sodipodi:nodetypes="cc"
            inkscape:connector-curvature="0"
-           id="path4386"
-           d="m 702.81185,378.32448 -14.13625,6.68826"
-           style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" />
-        <path
-           style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
-           d="m 702.92426,391.91107 -14.36107,6.19082"
-           id="path4388"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="cc" />
+           id="path4880"
+           d="m 189.46264,389.81135 14.36112,6.19076"
+           style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:3.20000005;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" />
       </g>
     </g>
+    <g
+       id="AI_bank_lim_X"
+       inkscape:label="#g4886">
+      <text
+         transform="scale(0.97051454,1.0303813)"
+         sodipodi:linespacing="0%"
+         inkscape:label="#text4314"
+         id="text4314"
+         y="404.63544"
+         x="202.60973"
+         style="font-style:normal;font-weight:normal;font-size:11.6461544px;line-height:0%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#bb6100;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:30px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;text-anchor:middle;fill:#bb6100;fill-opacity:1"
+           y="404.63544"
+           x="202.60973"
+           id="tspan4407"
+           sodipodi:role="line">X</tspan></text>
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-weight:normal;font-size:11.6461544px;line-height:0%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#bb6100;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         x="721.12775"
+         y="404.63544"
+         id="text4882"
+         inkscape:label="#text4314"
+         sodipodi:linespacing="0%"
+         transform="scale(0.97051452,1.0303813)"><tspan
+           sodipodi:role="line"
+           id="tspan4884"
+           x="721.12775"
+           y="404.63544"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:30px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;text-anchor:middle;fill:#bb6100;fill-opacity:1">X</tspan></text>
+    </g>
     <g
        transform="matrix(-1,0,0,1,896.72324,0)"
        id="g3954">
diff --git a/revision.txt b/revision.txt
index 53d48984..c2a3403e 100644
--- a/revision.txt
+++ b/revision.txt
@@ -1 +1 @@
-4631
\ No newline at end of file
+4632
\ No newline at end of file