public List <ActorPreloadTab> AnalyseAgeRefAssets(Dictionary <long, Dictionary <object, AssetRefType> > refAssetsDict) { List <ActorPreloadTab> list = new List <ActorPreloadTab>(); Dictionary <long, Dictionary <object, AssetRefType> > .Enumerator enumerator = refAssetsDict.GetEnumerator(); while (enumerator.MoveNext()) { KeyValuePair <long, Dictionary <object, AssetRefType> > current = enumerator.get_Current(); long key = current.get_Key(); int num = (int)(key >> 32); int num2 = (int)(key & (long)((ulong)-1)); KeyValuePair <long, Dictionary <object, AssetRefType> > current2 = enumerator.get_Current(); Dictionary <object, AssetRefType> value = current2.get_Value(); ActorPreloadTab actorPreloadTab = new ActorPreloadTab(); actorPreloadTab.ageActions = new List <AssetLoadBase>(); actorPreloadTab.parPrefabs = new List <AssetLoadBase>(); actorPreloadTab.mesPrefabs = new List <AssetLoadBase>(); actorPreloadTab.spritePrefabs = new List <AssetLoadBase>(); actorPreloadTab.soundBanks = new List <AssetLoadBase>(); actorPreloadTab.behaviorXml = new List <AssetLoadBase>(); actorPreloadTab.MarkID = num; actorPreloadTab.theActor.ConfigId = num2; list.Add(actorPreloadTab); Dictionary <object, AssetRefType> .Enumerator enumerator2 = value.GetEnumerator(); while (enumerator2.MoveNext()) { KeyValuePair <object, AssetRefType> current3 = enumerator2.get_Current(); AssetRefType value2 = current3.get_Value(); KeyValuePair <object, AssetRefType> current4 = enumerator2.get_Current(); object key2 = current4.get_Key(); switch (value2) { case AssetRefType.Action: { AssetLoadBase assetLoadBase = default(AssetLoadBase); assetLoadBase.assetPath = (key2 as string); string checkerKey = this.GetCheckerKey(assetLoadBase.assetPath, num); if (!this.ageCheckerSet.ContainsKey(checkerKey)) { actorPreloadTab.ageActions.Add(assetLoadBase); this.ageCheckerSet.Add(checkerKey, true); } break; } case AssetRefType.SkillID: { KeyValuePair <object, AssetRefType> current5 = enumerator2.get_Current(); ulong num3 = (ulong)current5.get_Key(); int skillID = (int)(num3 & (ulong)-1); this.AnalyseSkill(ref actorPreloadTab, skillID); break; } case AssetRefType.SkillCombine: { KeyValuePair <object, AssetRefType> current6 = enumerator2.get_Current(); ulong num4 = (ulong)current6.get_Key(); int combineId = (int)(num4 & (ulong)-1); this.AnalyseSkillCombine(ref actorPreloadTab, combineId); break; } case AssetRefType.Prefab: { AssetLoadBase assetLoadBase2 = default(AssetLoadBase); assetLoadBase2.assetPath = (key2 as string); actorPreloadTab.mesPrefabs.Add(assetLoadBase2); if (num != 0) { for (int i = 0; i < 3; i++) { AssetLoadBase assetLoadBase3 = default(AssetLoadBase); assetLoadBase3.assetPath = SkinResourceHelper.GetSkinResourceName(num2, num, assetLoadBase2.assetPath, i); actorPreloadTab.mesPrefabs.Add(assetLoadBase3); } } break; } case AssetRefType.Particle: { AssetLoadBase assetLoadBase4 = default(AssetLoadBase); KeyValuePair <object, AssetRefType> current7 = enumerator2.get_Current(); assetLoadBase4.assetPath = (current7.get_Key() as string); actorPreloadTab.parPrefabs.Add(assetLoadBase4); if (num != 0) { for (int j = 0; j < 3; j++) { AssetLoadBase assetLoadBase5 = default(AssetLoadBase); assetLoadBase5.assetPath = SkinResourceHelper.GetSkinResourceName(num2, num, assetLoadBase4.assetPath, j); actorPreloadTab.parPrefabs.Add(assetLoadBase5); } } break; } case AssetRefType.MonsterConfigId: { KeyValuePair <object, AssetRefType> current8 = enumerator2.get_Current(); ulong num5 = (ulong)current8.get_Key(); int configId = (int)(num5 & (ulong)-1); ActorMeta actorMeta = default(ActorMeta); actorMeta.ActorType = ActorTypeDef.Actor_Type_Monster; actorMeta.ConfigId = configId; actorMeta.ActorCamp = COM_PLAYERCAMP.COM_PLAYERCAMP_MID; this.AddPreloadActor(ref list, ref actorMeta, 0f, 0); break; } case AssetRefType.CallActorConfigId: { KeyValuePair <object, AssetRefType> current9 = enumerator2.get_Current(); ulong num6 = (ulong)current9.get_Key(); int configId2 = (int)(num6 & (ulong)-1); ActorMeta actorMeta2 = default(ActorMeta); actorMeta2.ActorType = ActorTypeDef.Actor_Type_Hero; actorMeta2.ConfigId = configId2; actorMeta2.ActorCamp = COM_PLAYERCAMP.COM_PLAYERCAMP_MID; this.AddPreloadActor(ref list, ref actorMeta2, 0f, 0); break; } } } } return(list); }