Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Load() [2/2]

void Terraria.Achievements.AchievementManager.Load ( string path,
bool cloud )
inlineprivate

Definition at line 110 of file AchievementManager.cs.

111 {
112 //IL_0055: Unknown result type (might be due to invalid IL or missing references)
113 //IL_005c: Expected O, but got Unknown
114 bool flag = false;
115 lock (_ioLock)
116 {
117 if (!FileUtilities.Exists(path, cloud))
118 {
119 return;
120 }
121 byte[] buffer = FileUtilities.ReadAllBytes(path, cloud);
123 try
124 {
128 try
129 {
130 dictionary = JsonSerializer.Create(_serializerSettings).Deserialize<Dictionary<string, StoredAchievement>>((JsonReader)(object)val);
131 }
132 finally
133 {
134 ((IDisposable)val)?.Dispose();
135 }
136 }
137 catch (Exception)
138 {
139 FileUtilities.Delete(path, cloud);
140 return;
141 }
142 if (dictionary == null)
143 {
144 return;
145 }
147 {
149 {
150 _achievements[item.Key].Load(item.Value.Conditions);
151 }
152 }
153 if (SocialAPI.Achievements != null)
154 {
155 foreach (KeyValuePair<string, Achievement> achievement in _achievements)
156 {
157 if (achievement.Value.IsCompleted && !SocialAPI.Achievements.IsAchievementCompleted(achievement.Key))
158 {
159 flag = true;
160 achievement.Value.ClearProgress();
161 }
162 }
163 }
164 }
165 if (flag)
166 {
167 Save();
168 }
169 }
Dictionary< string, Achievement > _achievements
readonly JsonSerializerSettings _serializerSettings
static Terraria.Social.Base.AchievementsSocialModule Achievements
Definition SocialAPI.cs:16
static bool Exists(string path, bool cloud)
static byte[] ReadAllBytes(string path, bool cloud)
static void Delete(string path, bool cloud, bool forceDeleteFile=false)

References Terraria.Achievements.AchievementManager._achievements, Terraria.Achievements.AchievementManager._cryptoKey, Terraria.Achievements.AchievementManager._ioLock, Terraria.Achievements.AchievementManager._serializerSettings, Terraria.Social.SocialAPI.Achievements, System.buffer, System.Collections.Generic.Dictionary< TKey, TValue >.ContainsKey(), Terraria.Utilities.FileUtilities.Delete(), System.dictionary, Terraria.Utilities.FileUtilities.Exists(), System.item, Terraria.Utilities.FileUtilities.ReadAllBytes(), Terraria.Achievements.AchievementManager.Save(), and System.stream.