diff --git a/.github/CHANGELOG.md b/.github/CHANGELOG.md index cf888d50ecf..4e48e7bdabb 100644 --- a/.github/CHANGELOG.md +++ b/.github/CHANGELOG.md @@ -19,6 +19,8 @@ 1. [EFCS] Add precontrol to roll angle controller to improve dynamic response - @lukecologne (luke) 1. [EFCS] Increase maximum sim rate limit to 8 due to improvements in roll law stability - @lukecologne (luke) 1. [HOPPIE] Remove ATSU/AOC source checks - @auroraisluna (alepouna) +1. [PFD] Graphical improvements and updates to the FMA - @BravoMike99 (bruno_pt99) +1. [PFD] Hide '+' sign on V/S & FPA FMA if selected value is 0 - @BravoMike99 (bruno_pt99) ## 0.11.0 diff --git a/fbw-a32nx/src/systems/instruments/src/PFD/FMA.tsx b/fbw-a32nx/src/systems/instruments/src/PFD/FMA.tsx index e36a5cc6914..c7ce45f10fd 100644 --- a/fbw-a32nx/src/systems/instruments/src/PFD/FMA.tsx +++ b/fbw-a32nx/src/systems/instruments/src/PFD/FMA.tsx @@ -269,7 +269,7 @@ class Row2 extends DisplayComponent<{ bus: ArincEventBus, isAttExcessive: Subscr class A2Cell extends DisplayComponent<{ bus: ArincEventBus }> { private text = Subject.create(''); - private className = Subject.create('FontMedium MiddleAlign Cyan'); + private className = Subject.create('FontMediumSmaller MiddleAlign Cyan'); private autoBrkRef = FSComponent.createRef(); @@ -381,7 +381,7 @@ class A1A2Cell extends ShowForSecondsComponent { this.displayModeChangedPath(true); text = ` - MAN + MAN TOGA `; break; @@ -389,7 +389,7 @@ class A1A2Cell extends ShowForSecondsComponent { this.displayModeChangedPath(true); text = ` - MAN + MAN GA SOFT `; break; @@ -398,11 +398,11 @@ class A1A2Cell extends ShowForSecondsComponent { const FlexTemp = Math.round(this.flexTemp); const FlexText = FlexTemp >= 0 ? (`+${FlexTemp}`) : FlexTemp.toString(); text = ` - - MAN - - FLX - ${FlexText} + + MAN + FLX + + ${FlexText} `; @@ -411,7 +411,7 @@ class A1A2Cell extends ShowForSecondsComponent { this.displayModeChangedPath(true); text = ` - MAN + MAN DTO `; break; @@ -419,7 +419,7 @@ class A1A2Cell extends ShowForSecondsComponent { this.displayModeChangedPath(true); text = ` - MAN + MAN MCT `; break; @@ -427,7 +427,7 @@ class A1A2Cell extends ShowForSecondsComponent { this.displayModeChangedPath(true); text = ` - MAN + MAN THR `; break; @@ -452,7 +452,7 @@ class A1A2Cell extends ShowForSecondsComponent { this.displayModeChangedPath(); break; case 12: - text = 'THR IDLE'; + text = 'THR IDLE'; this.displayModeChangedPath(); break; case 13: @@ -527,7 +527,7 @@ class A1A2Cell extends ShowForSecondsComponent { render(): VNode { return ( <> - + ); @@ -582,7 +582,7 @@ class A3Cell extends DisplayComponent { private handleAutobrakeMode() { if (this.autobrakeMode === 3 && !this.AB3Message) { this.textSub.set('BRK MAX'); - this.classSub.set('FontMedium MiddleAlign Cyan'); + this.classSub.set('FontMediumSmaller MiddleAlign Cyan'); } else { this.textSub.set(''); } @@ -680,6 +680,8 @@ class B1Cell extends ShowForSecondsComponent { private activeVerticalModeSub = Subject.create(0); + private activeVerticalModeClassSub = Subject.create(''); + private speedProtectionPathRef = FSComponent.createRef(); private inModeReversionPathRef = FSComponent.createRef(); @@ -772,14 +774,18 @@ class B1Cell extends ShowForSecondsComponent { text = 'ALT CRZ'; break; */ case VerticalMode.FPA: { - const FPAText = `${(this.FPA >= 0 ? '+' : '')}${(Math.round(this.FPA * 10) / 10).toFixed(1)}°`; + const FPAText = `${(this.FPA > 0 ? '+' : '')}${(Math.round(this.FPA * 10) / 10).toFixed(1)}°`; text = 'FPA'; + // if FPA is 0 give it an empty space for where the '+' and '-' will be. + if (this.FPA === 0) { + text += ' '; + } additionalText = FPAText; break; } case VerticalMode.VS: { - const VSText = `${(this.selectedVS >= 0 ? '+' : '')}${Math.round(this.selectedVS).toString()}`.padStart(5, ' '); + const VSText = `${(this.selectedVS > 0 ? '+' : '')}${Math.round(this.selectedVS).toString()}`.padStart(5, ' '); text = 'V/S'; @@ -806,10 +812,15 @@ class B1Cell extends ShowForSecondsComponent { this.speedProtectionPathRef.instance.setAttribute('visibility', 'hidden'); } - const boxPathString = this.activeVerticalModeSub.get() === 50 && this.tcasModeDisarmed ? 'm34.656 1.8143h29.918v13.506h-29.918z' : 'm34.656 1.8143h29.918v6.0476h-29.918z'; + const boxPathString = this.activeVerticalModeSub.get() === 50 && this.tcasModeDisarmed ? 'm35.756 1.8143h27.918v13.506h-27.918z' : 'm35.756 1.8143h27.918v6.0476h-27.918z'; this.boxPathStringSub.set(boxPathString); + // VS FPA has a smaller font than the other active modes + const VsFPA = this.activeVerticalModeSub.get() === 14 || this.activeVerticalModeSub.get() === 15; + + this.activeVerticalModeClassSub.set(VsFPA ? 'FontMediumSmaller MiddleAlign Green' : 'FontMedium MiddleAlign Green'); + this.fmaTextRef.instance.innerHTML = `${text}${additionalText}`; return text.length > 0; @@ -873,10 +884,10 @@ class B1Cell extends ShowForSecondsComponent { - - + + - + {/* set directly via innerhtml as tspan was invisble for some reason when set here */} @@ -909,7 +920,7 @@ class B2Cell extends DisplayComponent { let text1: string; let color1 = 'Cyan'; if (clbArmed) { - text1 = 'CLB'; + text1 = ' CLB'; // spaces added to center armed FMA as per newer DMC stnadards } else if (desArmed) { text1 = 'DES'; } else if (altCstArmed) { @@ -932,15 +943,15 @@ class B2Cell extends DisplayComponent { this.text1Sub.set(text1); this.text2Sub.set(text2); - this.classSub.set(`FontMedium MiddleAlign ${color1}`); + this.classSub.set(`FontMediumSmaller MiddleAlign ${color1}`); }); } render(): VNode { return ( - {this.text1Sub} - {this.text2Sub} + {this.text1Sub} + {this.text2Sub} ); } @@ -1061,7 +1072,7 @@ class C1Cell extends ShowForSecondsComponent { return ( - + {this.textSub} ); @@ -1123,7 +1134,7 @@ class C2Cell extends DisplayComponent { render(): VNode { return ( - {this.textSub} + {this.textSub} ); } } @@ -1223,8 +1234,8 @@ const getBC3Message = ( text = 'FOR GA: SET TOGA'; className = 'FontMedium PulseAmber9Seconds Amber'; } else if (TCASArmed && !isAttExcessive) { - text = ' TCAS '; - className = 'FontMedium Cyan'; + text = 'TCAS '; + className = 'FontMediumSmaller Cyan'; } else if (false) { text = 'DISCONNECT AP FOR LDG'; className = 'FontMedium PulseAmber9Seconds Amber'; diff --git a/fbw-a32nx/src/systems/instruments/src/PFD/style.scss b/fbw-a32nx/src/systems/instruments/src/PFD/style.scss index 252a4a9e7f5..82fac194310 100644 --- a/fbw-a32nx/src/systems/instruments/src/PFD/style.scss +++ b/fbw-a32nx/src/systems/instruments/src/PFD/style.scss @@ -107,6 +107,10 @@ font-size: 6px; } +.FontMediumSmaller { + font-size: 5.4px; +} + .FontSmall { font-size: 5px; }