public static void Postfix(Panel_Map __instance, String sceneName)
        {
            if (sceneName != SceneManager.GetActiveScene().name)
            {
                // not the current region -> don't add the current location to the map
                return;
            }

            Traverse panel_Map = Traverse.Create(__instance);
            Traverse worldPositionToMapPosition = panel_Map.Method("WorldPositionToMapPosition", new Type[] { typeof(String), typeof(Vector3) });
            Vector3  mapPosition = worldPositionToMapPosition.GetValue <Vector3>(new object[] { sceneName, GameManager.GetPlayerTransform().localPosition });

            MapElementSaveData mapElementSaveData = new MapElementSaveData();

            mapElementSaveData.m_LocationNameLocID     = "GAMEPLAY_Location";
            mapElementSaveData.m_SpriteName            = "ico_X";
            mapElementSaveData.m_BigSprite             = false;
            mapElementSaveData.m_IsDetail              = true;
            mapElementSaveData.m_NameIsKnown           = true;
            mapElementSaveData.m_PositionOnMap         = (Vector2)mapPosition;
            mapElementSaveData.m_ActiveMissionLocIDs   = new List <string>();
            mapElementSaveData.m_ActiveMissionTimerIDs = new List <string>();
            mapElementSaveData.m_ActiveMissionIDs      = new List <string>();

            Transform child = __instance.m_BigSpritePoolParent.GetChild(0);

            child.GetComponent <MapIcon>().DoSetup(mapElementSaveData, __instance.m_BigSpriteActiveObjects, 1000, MapIcon.MapIconType.TopIcon);

            Dictionary <Transform, MapElementSaveData> m_TransformToMapData = panel_Map.Field("m_TransformToMapData").GetValue <Dictionary <Transform, MapElementSaveData> >();

            m_TransformToMapData.Add(child, mapElementSaveData);
        }
Example #2
0
        public static void Prefix(Panel_Map __instance, string sceneName)
        {
            var currentScene = NormalizeSceneName(GameManager.m_ActiveScene);

            if (currentScene == sceneName)
            {
                ShowMapLocation.ShowLocationMarker();
            }
        }
Example #3
0
        internal static void Prefix(Panel_Map __instance, ref int opts)
        {
            if (GameManager.IsStoryMode())
            {
                return;
            }

            string mapName     = Traverse.Create(__instance).Method("GetMapNameOfCurrentScene").GetValue <string>();
            bool   canBeMapped = SceneCanBeMapped(mapName);

            if (!canBeMapped)
            {
                return;
            }

            int currentIndex  = Traverse.Create(__instance).Method("GetIndexOfCurrentScene").GetValue <int>();
            int selectedIndex = Traverse.Create(__instance).Field("m_RegionSelectedIndex").GetValue <int>();

            if (currentIndex == selectedIndex)
            {
                opts |= 4;
            }
        }
Example #4
0
        internal static void Prefix(Panel_Map __instance, ref Panel_Map.ResetOpts opts)
        {
            if (GameManager.IsStoryMode())
            {
                return;
            }

            string mapName     = __instance.GetMapNameOfCurrentScene();
            bool   canBeMapped = SceneCanBeMapped(mapName);

            if (!canBeMapped)
            {
                return;
            }

            int currentIndex  = __instance.GetIndexOfCurrentScene();
            int selectedIndex = __instance.m_RegionSelectedIndex;

            if (currentIndex == selectedIndex)
            {
                opts |= Panel_Map.ResetOpts.ShowPlayer;
            }
        }
        private static void Prefix(Panel_Map __instance)
        {
            MapDetailManager mapDetailManager = GameManager.GetMapDetailManager();
            var  mapDetails  = mapDetailManager.m_MapDetailObjects;
            bool startCalled = __instance.m_StartHasBeenCalled;

            if (startCalled)
            {
                // Grow detail pool if required
                Transform objectDetails   = __instance.m_DetailEntryPoolParent;
                int       detailsRequired = mapDetails.Count - objectDetails.childCount;

                if (detailsRequired > 0)
                {
                    Panel_Map.OBJECT_POOL_SIZE = 0;
                    Panel_Map.DETAIL_POOL_SIZE = detailsRequired;
                    __instance.CreateObjectPools();
                }
            }
            else
            {
                Panel_Map.DETAIL_POOL_SIZE = Math.Max(Panel_Map.DETAIL_POOL_SIZE, mapDetails.Count);
            }
        }
        private static void Prefix(Panel_Map __instance)
        {
            MapDetailManager mapDetailManager = GameManager.GetMapDetailManager();
            List <MapDetail> mapDetails       = Traverse.Create(mapDetailManager).Field("m_MapDetailObjects").GetValue <List <MapDetail> >();
            bool             startCalled      = Traverse.Create(__instance).Field("m_StartHasBeenCalled").GetValue <bool>();

            if (startCalled)
            {
                // Grow detail pool if required
                Transform objectDetails   = Traverse.Create(__instance).Field("m_DetailEntryPoolParent").GetValue <Transform>();
                int       detailsRequired = mapDetails.Count - objectDetails.childCount;

                if (detailsRequired > 0)
                {
                    Panel_Map.OBJECT_POOL_SIZE = 0;
                    Panel_Map.DETAIL_POOL_SIZE = detailsRequired;
                    AccessTools.Method(typeof(Panel_Map), "CreateObjectPools").Invoke(__instance, new object[0]);
                }
            }
            else
            {
                Panel_Map.DETAIL_POOL_SIZE = Math.Max(Panel_Map.DETAIL_POOL_SIZE, mapDetails.Count);
            }
        }