diff --git a/Include/Constants.h b/Include/Constants.h index 4e2d151..1c9b894 100644 --- a/Include/Constants.h +++ b/Include/Constants.h @@ -228,6 +228,7 @@ constexpr const char* REMOTE_SIGNATURE = "TwinFan.plugin.XPMP2.Remote"; #define MENU_HAVE_TCAS "TCAS controlled" #define MENU_HAVE_TCAS_REQUSTD "TCAS controlled (requested)" #define MENU_TOGGLE_LABELS "Labels shown" +#define MENU_TOGGLE_AC_AHEAD "Hide Aircraft ahead" #define MENU_SETTINGS_UI "Settings..." #define MENU_HELP "Help" #define MENU_HELP_DOCUMENTATION "Documentation" diff --git a/Include/DataRefs.h b/Include/DataRefs.h index 09ef0ef..63b9511 100644 --- a/Include/DataRefs.h +++ b/Include/DataRefs.h @@ -449,6 +449,7 @@ enum cmdRefsLT { CR_AC_DISPLAYED, CR_AC_TCAS_CONTROLLED, CR_LABELS_TOGGLE, + CR_TOGGLE_AC_AHEAD, ///< Toggle visibility of the a/c ahead CR_SETTINGS_UI, CNT_CMDREFS_LT // always last, number of elements }; diff --git a/Src/DataRefs.cpp b/Src/DataRefs.cpp index 2ebb8a2..3e5083c 100644 --- a/Src/DataRefs.cpp +++ b/Src/DataRefs.cpp @@ -684,6 +684,7 @@ struct cmdRefDescrTy { {"LiveTraffic/Aircrafts/Display", "Starts/Stops display of live aircraft"}, {"LiveTraffic/Aircrafts/TCAS_Control", "TCAS Control toggle: Tries to take control over AI aircraft, or release it"}, {"LiveTraffic/Aircrafts/Toggle_Labels", "Toggle display of labels in current view"}, + {"LiveTraffic/Aircrafts/Toggle_Ahead", "Toggle visibility of aircraft ahead"}, {"LiveTraffic/Settings/Open", "Opens/Closes the Settings window"}, }; diff --git a/Src/LiveTraffic.cpp b/Src/LiveTraffic.cpp index dffd026..19a197f 100755 --- a/Src/LiveTraffic.cpp +++ b/Src/LiveTraffic.cpp @@ -46,6 +46,7 @@ enum menuItems { MENU_ID_TOGGLE_AIRCRAFT, MENU_ID_HAVE_TCAS, MENU_ID_TOGGLE_LABELS, + MENU_ID_TOGGLE_AC_AHEAD, MENU_ID_SETTINGS_UI, MENU_ID_HELP, MENU_ID_HELP_DOCUMENTATION, @@ -104,6 +105,25 @@ void MenuHandler(void * /*mRef*/, void * iRef) XPLMCheckMenuItem(menuID, aMenuItems[MENU_ID_TOGGLE_LABELS], dataRefs.ToggleLabelDraw() ? xplm_Menu_Checked : xplm_Menu_Unchecked); break; + case MENU_ID_TOGGLE_AC_AHEAD: + { + bool bMenuActive = false; + const LTFlightData* pfdFocus = LTFlightData::FindFocusAc(dataRefs.GetViewHeading()); + if (pfdFocus && pfdFocus->hasAc()) { + LTAircraft* pAc = pfdFocus->GetAircraft(); + if (pAc->IsVisible()) // if visible + pAc->SetVisible(false); // hide + else { // else + pAc->SetVisible(true); // show + pAc->SetAutoVisible(true); // and (re)activate auto-show + } + bMenuActive = !pAc->IsVisible(); + } + XPLMCheckMenuItem(menuID, aMenuItems[MENU_ID_TOGGLE_AC_AHEAD], + bMenuActive ? xplm_Menu_Checked : xplm_Menu_Unchecked); + break; + } + case MENU_ID_SETTINGS_UI: XPLMCheckMenuItem(menuID,aMenuItems[MENU_ID_SETTINGS_UI], LTSettingsUI::ToggleDisplay() ? xplm_Menu_Checked : xplm_Menu_Unchecked); @@ -192,6 +212,11 @@ void MenuUpdateAllItemStatus() dataRefs.AwaitingAIControl() ? MENU_HAVE_TCAS_REQUSTD : MENU_HAVE_TCAS, 0); + // Is the aircraft ahead hidden or visible? + const LTFlightData* pfdFocus = LTFlightData::FindFocusAc(dataRefs.GetViewHeading()); + XPLMCheckMenuItem(menuID, aMenuItems[MENU_ID_TOGGLE_AC_AHEAD], + pfdFocus && pfdFocus->hasAc() && !pfdFocus->GetAircraft()->IsVisible() ? xplm_Menu_Checked : xplm_Menu_Unchecked); + // Is Settings window open? XPLMCheckMenuItem(menuID,aMenuItems[MENU_ID_SETTINGS_UI], LTSettingsUI::IsDisplayed() ? xplm_Menu_Checked : xplm_Menu_Unchecked); @@ -305,6 +330,12 @@ bool RegisterMenuItem () dataRefs.cmdLT[CR_LABELS_TOGGLE]); XPLMCheckMenuItem(menuID,aMenuItems[MENU_ID_TOGGLE_LABELS], dataRefs.ShallDrawLabels() ? xplm_Menu_Checked : xplm_Menu_Unchecked); + + // Toggle visibility of aircraft ahead + aMenuItems[MENU_ID_TOGGLE_AC_AHEAD] = + AppendMenuItem(menuID, MENU_TOGGLE_AC_AHEAD, (void *)MENU_ID_TOGGLE_AC_AHEAD, + dataRefs.cmdLT[CR_TOGGLE_AC_AHEAD]); + // Separator XPLMAppendMenuSeparator(menuID); @@ -379,6 +410,7 @@ struct cmdMenuMap { { CR_AC_DISPLAYED, MENU_ID_TOGGLE_AIRCRAFT }, { CR_AC_TCAS_CONTROLLED, MENU_ID_HAVE_TCAS }, { CR_LABELS_TOGGLE, MENU_ID_TOGGLE_LABELS }, + { CR_TOGGLE_AC_AHEAD, MENU_ID_TOGGLE_AC_AHEAD }, { CR_SETTINGS_UI, MENU_ID_SETTINGS_UI }, }; diff --git a/docs/readme.html b/docs/readme.html index 107f98f..9c47c08 100755 --- a/docs/readme.html +++ b/docs/readme.html @@ -160,6 +160,12 @@

v3.5.1

historic timestamp when modifying timestamp again. +
  • + Added command to toggle visibility of aircraft ahead, + available as joystick button or keyboard assignment + "LiveTraffic/Aircrafts/Toggle_Ahead" + and as new menu item "Hide aircraft ahead". +
  • OpenSky Master File: Removal of no longer used database files.