Skip to content

Commit 3baca08

Browse files
committed
Feat: New command "Hide aircraft ahead"
1 parent 1e9d850 commit 3baca08

File tree

5 files changed

+41
-0
lines changed

5 files changed

+41
-0
lines changed

Include/Constants.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,7 @@ constexpr const char* REMOTE_SIGNATURE = "TwinFan.plugin.XPMP2.Remote";
228228
#define MENU_HAVE_TCAS "TCAS controlled"
229229
#define MENU_HAVE_TCAS_REQUSTD "TCAS controlled (requested)"
230230
#define MENU_TOGGLE_LABELS "Labels shown"
231+
#define MENU_TOGGLE_AC_AHEAD "Hide Aircraft ahead"
231232
#define MENU_SETTINGS_UI "Settings..."
232233
#define MENU_HELP "Help"
233234
#define MENU_HELP_DOCUMENTATION "Documentation"

Include/DataRefs.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -449,6 +449,7 @@ enum cmdRefsLT {
449449
CR_AC_DISPLAYED,
450450
CR_AC_TCAS_CONTROLLED,
451451
CR_LABELS_TOGGLE,
452+
CR_TOGGLE_AC_AHEAD, ///< Toggle visibility of the a/c ahead
452453
CR_SETTINGS_UI,
453454
CNT_CMDREFS_LT // always last, number of elements
454455
};

Src/DataRefs.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -684,6 +684,7 @@ struct cmdRefDescrTy {
684684
{"LiveTraffic/Aircrafts/Display", "Starts/Stops display of live aircraft"},
685685
{"LiveTraffic/Aircrafts/TCAS_Control", "TCAS Control toggle: Tries to take control over AI aircraft, or release it"},
686686
{"LiveTraffic/Aircrafts/Toggle_Labels", "Toggle display of labels in current view"},
687+
{"LiveTraffic/Aircrafts/Toggle_Ahead", "Toggle visibility of aircraft ahead"},
687688
{"LiveTraffic/Settings/Open", "Opens/Closes the Settings window"},
688689
};
689690

Src/LiveTraffic.cpp

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ enum menuItems {
4646
MENU_ID_TOGGLE_AIRCRAFT,
4747
MENU_ID_HAVE_TCAS,
4848
MENU_ID_TOGGLE_LABELS,
49+
MENU_ID_TOGGLE_AC_AHEAD,
4950
MENU_ID_SETTINGS_UI,
5051
MENU_ID_HELP,
5152
MENU_ID_HELP_DOCUMENTATION,
@@ -104,6 +105,25 @@ void MenuHandler(void * /*mRef*/, void * iRef)
104105
XPLMCheckMenuItem(menuID, aMenuItems[MENU_ID_TOGGLE_LABELS],
105106
dataRefs.ToggleLabelDraw() ? xplm_Menu_Checked : xplm_Menu_Unchecked);
106107
break;
108+
case MENU_ID_TOGGLE_AC_AHEAD:
109+
{
110+
bool bMenuActive = false;
111+
const LTFlightData* pfdFocus = LTFlightData::FindFocusAc(dataRefs.GetViewHeading());
112+
if (pfdFocus && pfdFocus->hasAc()) {
113+
LTAircraft* pAc = pfdFocus->GetAircraft();
114+
if (pAc->IsVisible()) // if visible
115+
pAc->SetVisible(false); // hide
116+
else { // else
117+
pAc->SetVisible(true); // show
118+
pAc->SetAutoVisible(true); // and (re)activate auto-show
119+
}
120+
bMenuActive = !pAc->IsVisible();
121+
}
122+
XPLMCheckMenuItem(menuID, aMenuItems[MENU_ID_TOGGLE_AC_AHEAD],
123+
bMenuActive ? xplm_Menu_Checked : xplm_Menu_Unchecked);
124+
break;
125+
}
126+
107127
case MENU_ID_SETTINGS_UI:
108128
XPLMCheckMenuItem(menuID,aMenuItems[MENU_ID_SETTINGS_UI],
109129
LTSettingsUI::ToggleDisplay() ? xplm_Menu_Checked : xplm_Menu_Unchecked);
@@ -192,6 +212,11 @@ void MenuUpdateAllItemStatus()
192212
dataRefs.AwaitingAIControl() ? MENU_HAVE_TCAS_REQUSTD : MENU_HAVE_TCAS,
193213
0);
194214

215+
// Is the aircraft ahead hidden or visible?
216+
const LTFlightData* pfdFocus = LTFlightData::FindFocusAc(dataRefs.GetViewHeading());
217+
XPLMCheckMenuItem(menuID, aMenuItems[MENU_ID_TOGGLE_AC_AHEAD],
218+
pfdFocus && pfdFocus->hasAc() && !pfdFocus->GetAircraft()->IsVisible() ? xplm_Menu_Checked : xplm_Menu_Unchecked);
219+
195220
// Is Settings window open?
196221
XPLMCheckMenuItem(menuID,aMenuItems[MENU_ID_SETTINGS_UI],
197222
LTSettingsUI::IsDisplayed() ? xplm_Menu_Checked : xplm_Menu_Unchecked);
@@ -305,6 +330,12 @@ bool RegisterMenuItem ()
305330
dataRefs.cmdLT[CR_LABELS_TOGGLE]);
306331
XPLMCheckMenuItem(menuID,aMenuItems[MENU_ID_TOGGLE_LABELS],
307332
dataRefs.ShallDrawLabels() ? xplm_Menu_Checked : xplm_Menu_Unchecked);
333+
334+
// Toggle visibility of aircraft ahead
335+
aMenuItems[MENU_ID_TOGGLE_AC_AHEAD] =
336+
AppendMenuItem(menuID, MENU_TOGGLE_AC_AHEAD, (void *)MENU_ID_TOGGLE_AC_AHEAD,
337+
dataRefs.cmdLT[CR_TOGGLE_AC_AHEAD]);
338+
308339

309340
// Separator
310341
XPLMAppendMenuSeparator(menuID);
@@ -379,6 +410,7 @@ struct cmdMenuMap {
379410
{ CR_AC_DISPLAYED, MENU_ID_TOGGLE_AIRCRAFT },
380411
{ CR_AC_TCAS_CONTROLLED, MENU_ID_HAVE_TCAS },
381412
{ CR_LABELS_TOGGLE, MENU_ID_TOGGLE_LABELS },
413+
{ CR_TOGGLE_AC_AHEAD, MENU_ID_TOGGLE_AC_AHEAD },
382414
{ CR_SETTINGS_UI, MENU_ID_SETTINGS_UI },
383415
};
384416

docs/readme.html

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,12 @@ <h3>v3.5.1</h3>
160160
historic timestamp when modifying timestamp again.</li>
161161
</ul>
162162
</li>
163+
<li>
164+
Added command to toggle visibility of aircraft ahead,
165+
available as <a href="https://twinfan.gitbook.io/livetraffic/using-lt/menu-items/configuring-commands">joystick button or keyboard assignment</a>
166+
"LiveTraffic/Aircrafts/Toggle_Ahead"
167+
and as new <a href="https://twinfan.gitbook.io/livetraffic/using-lt/menu-items#hide-aicraft-ahead">menu item "Hide aircraft ahead"</a>.
168+
</li>
163169
<li>
164170
OpenSky Master File: Removal of no longer used database files.
165171
</li>

0 commit comments

Comments
 (0)