Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 22 additions & 4 deletions CFPNRadarScreen.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,10 @@ void CFPNRadarScreen::OnRefresh(HDC hDC, int Phase) {


int range = ((CFPNPlugin*)GetPlugIn())->range;
float angle = ((CFPNPlugin*)GetPlugIn())->angle;

drawVerticalScale(&dc, glideslopeArea, trackArea, range);
drawGlidepathAndHorizontalTicks(&dc, glideslopeArea, trackArea, range, 3.0f);
drawGlidepathAndHorizontalTicks(&dc, glideslopeArea, trackArea, range, angle);
drawGSAxes(&dc, glideslopeArea);
drawTrackAxes(&dc, trackArea);

Expand Down Expand Up @@ -103,7 +104,7 @@ void CFPNRadarScreen::OnRefresh(HDC hDC, int Phase) {
}
}
if (!found) {
CFPNRadarTarget targetPlot = CFPNRadarTarget(callsign, pos,groundSpeed, altitude, runwayThreshold, runwayThreshold.DirectionTo(otherThreshold), range, elevation, 3.0f, glideslopeArea, trackArea);
CFPNRadarTarget targetPlot = CFPNRadarTarget(callsign, pos,groundSpeed, altitude, runwayThreshold, runwayThreshold.DirectionTo(otherThreshold), range, elevation, angle, glideslopeArea, trackArea);
targetPlot.draw(&dc);
prevTargets->push_back(targetPlot);
}
Expand Down Expand Up @@ -174,6 +175,19 @@ void CFPNRadarScreen::rangeChangeHandler(int range, CFPNRadarScreen* parent) {
}
}

void CFPNRadarScreen::glideslopeChangeHandler(float angle, CFPNRadarScreen* parent) {
((CFPNPlugin*)(parent->GetPlugIn()))->angle = angle;
std::map<float, int> m{ {3.0,0}, {2.5,1} };
int newlyActive = m[angle];
for (int i = 0; i < parent->glideControlsText.size(); i++) {
for (int j = 0; j < parent->glideControlsText[i].size(); j++) {
if (i != newlyActive / 1000 || j != newlyActive % 1000) {
parent->glideControlsText[i][j].selected = false;
}
}
}
}

void CFPNRadarScreen::runwayChangeHandler(int r, int c, CFPNRadarScreen* parent) {
((CFPNPlugin*)(parent->GetPlugIn()))->loadNewAerodrome(((CFPNPlugin*)(parent->GetPlugIn()))->icao.c_str(), parent->runwayControlsText[r][c].text.c_str());

Expand Down Expand Up @@ -413,12 +427,16 @@ void CFPNRadarScreen::drawInfoText(CDC* pDC, int x, int y) {
pDC->SetTextAlign(TA_LEFT);
auto* defFont = pDC->SelectObject(&font);

std::string text = "GS: 3.0 RWY: ";
std::stringstream gsAngle;
std::string text = "GS: ";
gsAngle << std::fixed << std::setprecision(1) << ((CFPNPlugin*)GetPlugIn())->angle;
text += gsAngle.str();

text += " RWY: ";
std::stringstream stream;
stream << std::fixed << std::setprecision(1) << ((CFPNPlugin*)GetPlugIn())->runwayThreshold.DirectionTo(((CFPNPlugin*)GetPlugIn())->otherThreshold);

text += stream.str();

text += " DH: 200FT TIME : ";

SYSTEMTIME st;
Expand Down
3 changes: 2 additions & 1 deletion CFPNRadarScreen.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ class CFPNRadarScreen :
};

static void rangeChangeHandler(int range, CFPNRadarScreen* parent);
static void glideslopeChangeHandler(float angle, CFPNRadarScreen* parent);
static void runwayChangeHandler(int i, int j, CFPNRadarScreen* parent);

std::vector<std::vector<Setting>> mainControlsText = {
Expand All @@ -49,7 +50,7 @@ class CFPNRadarScreen :
{{"5", false, false, false, [](CFPNRadarScreen* parent) { rangeChangeHandler(5, parent); }}, {"10", true, false, false, [](CFPNRadarScreen* parent) { rangeChangeHandler(10, parent); }}, {"15", false, false, false, [](CFPNRadarScreen* parent) { rangeChangeHandler(15, parent); }}, {"20", false, false, false, [](CFPNRadarScreen* parent) { rangeChangeHandler(20, parent); }}}
};
std::vector<std::vector<Setting>> glideControlsText = {
{{"3.0", true, false, true, nullptr}, {"2.5", false, false, true, nullptr}, {"3.0", false, false, true, nullptr}, {"GS", false, false, true, nullptr}},
{{"3.0", true, false, false, [](CFPNRadarScreen* parent) {glideslopeChangeHandler(3.0, parent); }}, {"2.5", false, false, false, [](CFPNRadarScreen* parent) {glideslopeChangeHandler(2.5, parent); }}, {"3.0", false, false, true, nullptr}, {"GS", false, false, true, nullptr}},
{{"210", true, false, true, nullptr}, {"200", false, false, true, nullptr}, {"210", false, false, true, nullptr}, {"DH", false, false, true, nullptr}}
};
std::vector<std::vector<Setting>> displayControlsText = {
Expand Down
1 change: 1 addition & 0 deletions FPN68Plugin.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ class CFPNPlugin : public EuroScopePlugIn::CPlugIn {
std::vector<CFPNRadarTarget> previousTargets = std::vector<CFPNRadarTarget>();

int range = 15;
float angle = 3;
float elevation = -1;
EuroScopePlugIn::CPosition runwayThreshold;
EuroScopePlugIn::CPosition otherThreshold;
Expand Down