@@ -13,6 +13,7 @@ namespace MenuAPI
1313 public class MenuController : BaseScript
1414 {
1515 public static List < Menu > Menus { get ; protected set ; } = new List < Menu > ( ) ;
16+ internal static HashSet < Menu > VisibleMenus { get ; } = new HashSet < Menu > ( ) ;
1617#if FIVEM
1718 public const string _texture_dict = "commonmenu" ;
1819 public const string _header_texture = "interaction_bgd" ;
@@ -52,11 +53,11 @@ public class MenuController : BaseScript
5253 public static float ScreenHeight => 1080 ;
5354 public static bool DisableMenuButtons { get ; set ; } = false ;
5455#if FIVEM
55- public static bool AreMenuButtonsEnabled => Menus . Any ( ( m ) => m . Visible ) && ! Game . IsPaused && CitizenFX . Core . UI . Screen . Fading . IsFadedIn && ! IsPlayerSwitchInProgress ( ) && ! DisableMenuButtons && ! Game . Player . IsDead ;
56+ public static bool AreMenuButtonsEnabled => IsAnyMenuOpen ( ) && ! Game . IsPaused && CitizenFX . Core . UI . Screen . Fading . IsFadedIn && ! IsPlayerSwitchInProgress ( ) && ! DisableMenuButtons && ! Game . Player . IsDead ;
5657#endif
5758#if REDM
5859 public static bool AreMenuButtonsEnabled =>
59- Menus . Any ( ( m ) => m . Visible ) &&
60+ IsAnyMenuOpen ( ) &&
6061 ! Call < bool > ( IS_PAUSE_MENU_ACTIVE ) &&
6162 Call < bool > ( IS_SCREEN_FADED_IN ) &&
6263 ! DisableMenuButtons &&
@@ -268,16 +269,16 @@ private static void UnloadAssets()
268269 /// <returns></returns>
269270 public static Menu GetCurrentMenu ( )
270271 {
271- if ( Menus . Any ( ( m ) => m . Visible ) )
272- return Menus . Find ( ( m ) => m . Visible ) ;
272+ if ( IsAnyMenuOpen ( ) )
273+ return VisibleMenus . FirstOrDefault ( ) ;
273274 return null ;
274275 }
275276
276277 /// <summary>
277278 /// Returns true if any menu is currently open.
278279 /// </summary>
279280 /// <returns></returns>
280- public static bool IsAnyMenuOpen ( ) => Menus . Any ( ( m ) => m . Visible ) ;
281+ public static bool IsAnyMenuOpen ( ) => VisibleMenus . Count > 0 ;
281282
282283
283284 #region Process Menu Buttons
0 commit comments