@@ -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
0 commit comments