Browse Source

Fix bg2 regression for users below v1.48

MM MenuDataBase is not populated with menu files prior to version 1.48
habeebweeb 3 years ago
parent
commit
5aa3f3c810
1 changed files with 19 additions and 1 deletions
  1. 19 1
      MultipleMaids/CM3D2/MultipleMaids/Plugin/MultipleMaids.Gui.cs

+ 19 - 1
MultipleMaids/CM3D2/MultipleMaids/Plugin/MultipleMaids.Gui.cs

@@ -1167,6 +1167,24 @@ namespace CM3D2.MultipleMaids.Plugin
             {
                 if (itemDataList.Count == 0)
                 {
+                    if (GameUty.MenuFiles?.Length > 0)
+                    {
+                        HashSet<string> modMenus = null;
+                        if (!modItemsOnly) modMenus = new HashSet<string>(GameUty.ModOnlysMenuFiles);
+
+                        string[] menuFiles = modItemsOnly ? GameUty.ModOnlysMenuFiles : GameUty.MenuFiles;
+                        foreach (string menuFile in menuFiles)
+                        {
+                            ItemData item = new ItemData()
+                            {
+                                menu = menuFile,
+                                isMod = modItemsOnly || modMenus.Contains(menuFile)
+                            };
+                            if (ParseMenuFile(menuFile, item)) itemDataList.Add(item);
+                        }
+                    }
+                    else
+                    {
                     if (!modItemsOnly)
                     {
                         for (int i = 0; i < GameMain.Instance.MenuDataBase.GetDataSize(); i++)
@@ -1175,7 +1193,6 @@ namespace CM3D2.MultipleMaids.Plugin
                             if (ParseNativeMenuFile(i, item)) itemDataList.Add(item);
                         }
                             }
-
                     foreach (string modMenuFile in GameUty.ModOnlysMenuFiles)
                     {
                         ItemData item = new ItemData()
@@ -1185,6 +1202,7 @@ namespace CM3D2.MultipleMaids.Plugin
                         };
                         if (ParseMenuFile(modMenuFile, item)) itemDataList.Add(item);
                     }
+                    }
 
                     foreach (string modFile in Menu.GetModFiles())
                     {