private IEnumerator InitPortalStatusImpl(Action onComplete) { LoadingQueue loadQueue = new LoadingQueue(this); UIntKeyTable <LoadObject> loadTextures = new UIntKeyTable <LoadObject>(); for (int k = 0; k < locations.Length; k++) { FieldMapTable.FieldMapTableData tableData = locations[k].tableData; if (tableData != null && tableData.hasChildRegion && loadTextures.Get(tableData.iconId) == null) { loadTextures.Add(tableData.iconId, loadQueue.Load(RESOURCE_CATEGORY.DUNGEON_ICON, ResourceName.GetDungeonIcon(tableData.iconId), false)); } } if (loadQueue.IsLoading()) { yield return((object)loadQueue.Wait()); } for (int j = 0; j < locations.Length; j++) { FieldMapTable.FieldMapTableData tableData2 = locations[j].tableData; if (tableData2 != null && tableData2.hasChildRegion) { locations[j].icon = (loadTextures.Get(tableData2.iconId).loadedObject as Texture2D); } } for (int i = 0; i < portals.Length; i++) { RegionMapPortal portal = portals[i]; if (portal.IsVisited()) { portal.Open(); } } onComplete?.Invoke(); }
private void CreateVisitedLocationSpot() { OutGameSettingsManager.QuestMap questMap = MonoBehaviourSingleton <OutGameSettingsManager> .I.questMap; MonoBehaviourSingleton <FilterManager> .I.StopBlur(questMap.cameraMoveTime, 0f); for (int i = 0; i < regionMapRoot.locations.Length; i++) { RegionMapLocation regionMapLocation = regionMapRoot.locations[i]; FieldMapTable.FieldMapTableData fieldMapData = Singleton <FieldMapTable> .I.GetFieldMapData((uint)regionMapLocation.mapId); if ((fieldMapData != null || regionMapLocation.mapId == 0) && (fieldMapData == null || FieldManager.IsShowPortal(fieldMapData.jumpPortalID))) { if (fieldMapData != null && !MonoBehaviourSingleton <FieldManager> .I.CanJumpToMap(fieldMapData)) { CreateLocationSpot(regionMapLocation, SpotManager.ICON_TYPE.NOT_OPENED, false); } else if (regionMapLocation.mapId == newMapData.mapID && !eventData.IsOnlyCameraMoveEvent() && !eventData.IsEnterDungeon() && !eventData.IsQuestToField()) { CreateLocationSpot(regionMapLocation, SpotManager.ICON_TYPE.NOT_OPENED, false); } else { SpotManager.ICON_TYPE iCON_TYPE = SpotManager.ICON_TYPE.CLEARED; if (regionMapLocation.portal.Length > 0) { for (int j = 0; j < regionMapLocation.portal.Length; j++) { RegionMapPortal regionMapPortal = regionMapLocation.portal[j]; if (!regionMapPortal.IsVisited() && regionMapPortal.IsShow()) { iCON_TYPE = SpotManager.ICON_TYPE.NEW; break; } } } if (fieldMapData != null) { if (FieldManager.IsToHardPortal(fieldMapData.jumpPortalID)) { iCON_TYPE = SpotManager.ICON_TYPE.HARD; if (iCON_TYPE == SpotManager.ICON_TYPE.NEW) { iCON_TYPE = SpotManager.ICON_TYPE.HARD_NEW; } } if (fieldMapData.hasChildRegion && fieldMapData.childRegionId != regionId) { iCON_TYPE = SpotManager.ICON_TYPE.CHILD_REGION; } } CreateLocationSpot(regionMapLocation, iCON_TYPE, false); } } } }