1 #include "../Instrument.h" 4 FMA::FMA(
int prmX,
int prmY,
float prmXScale,
float prmYScale,
Bus* prmBus,
Logger* prmLogger,
DeviceObject* prmDevice, std::vector<Font*> prmFonts) :
5 Instrument(prmX, prmY, prmXScale, prmYScale, prmBus, prmLogger, prmDevice, prmFonts)
10 lateralBox =
new Sprite(
logger,
pDevice,
"Textures/Instruments/fma-box.png", prmX, prmY, 0.92f, 0, 0, 51, 54, 0xFFFFFFFF);
11 verticalBox =
new Sprite(
logger,
pDevice,
"Textures/Instruments/fma-box.png", prmX + 52, prmY, 0.92f, 0, 0, 51, 54, 0xFFFFFFFF);
12 lateralModeBarCurrent =
new Sprite(
logger,
pDevice,
"Textures/Instruments/cas-bar.png", prmX + 2, prmY + 20, 0.93f, 0, 0, 47, 14, 0xFFFFFFFF);
13 verticalModeBarCurrent =
new Sprite(
logger,
pDevice,
"Textures/Instruments/cas-bar.png", prmX + 54, prmY + 20, 0.93f, 0, 0, 47, 14, 0xFFFFFFFF);
14 lateralSetBar =
new Sprite(
logger,
pDevice,
"Textures/Instruments/cas-bar.png", prmX + 2, prmY + 38, 0.93f, 0, 0, 47, 14, 0xFFFFFFFF);
15 verticalSetBar =
new Sprite(
logger,
pDevice,
"Textures/Instruments/cas-bar.png", prmX + 54, prmY + 38, 0.93f, 0, 0, 47, 14, 0xFFFFFFFF);
25 DrawTextW(L
"LOC", 2, 3, 0.95f, DT_CENTER, 0xFFAAAAAA, 1,
"", 47, 15);
34 DrawTextW(L
"G/S", 54, 3, 0.95f, DT_CENTER, 0xFFAAAAAA, 1,
"", 47, 15);
99 float newVerticalSetValue = 0.0f;
104 case Bus::Afcs::VerticalModes::VerticalMode_TakeOff:
108 newVerticalSetValue = 0.0f;
111 case Bus::Afcs::VerticalModes::VerticalMode_Off:
120 newVerticalSetValue = 0.0f;
123 case Bus::Afcs::VerticalModes::Pitch:
130 if (newVerticalSetValue >= 0.05f)
132 else if (newVerticalSetValue <= -0.05f)
137 swprintf_s(
verticalSetText, 10, L
"%c%4.1f°", arrow, fabsf(newVerticalSetValue));
140 case Bus::Afcs::VerticalModes::VerticalSpeed:
147 if (newVerticalSetValue >= 0.0005f)
149 else if (newVerticalSetValue <= -0.0005f)
154 swprintf_s(
verticalSetText, 10, L
"%c%5.3f", arrow, fabsf(newVerticalSetValue));
157 case Bus::Afcs::VerticalModes::SpeedPitch:
166 case Bus::Afcs::VerticalModes::AltitudeMsl:
174 case Bus::Afcs::VerticalModes::AltitudeAgl:
182 case Bus::Afcs::VerticalModes::GlideSlope:
187 newVerticalSetValue = 0.0f;
197 float newLateralSetValue = 0.0f;
202 case Bus::Afcs::LateralModes::LateralMode_TakeOff:
206 newLateralSetValue = 0.0f;
209 case Bus::Afcs::LateralModes::LateralMode_Off:
218 newLateralSetValue = 0.0f;
221 case Bus::Afcs::LateralModes::Roll:
228 if (newLateralSetValue >= 0.05f)
230 else if (newLateralSetValue <= -0.05f)
235 swprintf_s(
lateralSetText, 10, L
"%c%4.1f°", arrow, fabsf(newLateralSetValue));
238 case Bus::Afcs::LateralModes::Heading:
247 case Bus::Afcs::LateralModes::Navigation:
256 case Bus::Afcs::LateralModes::Localizer:
enum Bus::Afcs::LateralModes CurrentLateralMode
DWORD verticalSetBackColor
float oldVerticalSetValue
WCHAR verticalSetText[10]
float DesiredCourseRadians
void FrameMove(float fElapsed) override
FMA(int prmX, int prmY, float prmXScale, float prmYScale, Bus *prmBus, Logger *prmLogger, DeviceObject *prmDevice, std::vector< Font *> prmFonts)
void Draw(D3DXCOLOR prmColor)
WCHAR verticalModeText[10]
int oldActiveVerticalMode
float DesiredPitchRadians
Sprite * lateralModeBarCurrent
DWORD lateralSetTextColor
DWORD verticalSetTextColor
enum Bus::Afcs::VerticalModes CurrentVerticalMode
DWORD lateralModeBackColor
WCHAR lateralModeText[10]
enum Bus::Afcs::VerticalModes StandbyVerticalMode
DWORD verticalModeTextColor
DWORD lateralSetBackColor
float DesiredHeadingRadians
DWORD lateralModeTextColor
enum Bus::Afcs::LateralModes StandbyLateralMode
void AddToCallStack(const char *msg)
DWORD verticalModeBackColor
Sprite * verticalModeBarCurrent