terraria-cpp2il-methodrecon v1.4.4.9
Terraria mobile dump, with reconstructed method body. Dump with CallAnalysis: https://infinitynichto.github.io/terraria-cpp2il
Loading...
Searching...
No Matches
Achievement.cs
Go to the documentation of this file.
1using System;
8
10{
11 // Token: 0x02000690 RID: 1680
13 public class Achievement
14 {
15 // Token: 0x170006C9 RID: 1737
16 // (get) Token: 0x0600381F RID: 14367 RVA: 0x00224F6C File Offset: 0x0022316C
18 {
19 get
20 {
21 return this._category;
22 }
23 }
24
25 // Token: 0x14000041 RID: 65
26 // (add) Token: 0x06003820 RID: 14368 RVA: 0x00224F80 File Offset: 0x00223180
27 // (remove) Token: 0x06003821 RID: 14369 RVA: 0x00224FA4 File Offset: 0x002231A4
29 {
31 add
32 {
33 if (Delegate.Combine(this.OnCompleted, value) != null)
34 {
35 }
36 }
38 remove
39 {
40 if (Delegate.Remove(this.OnCompleted, value) != null)
41 {
42 }
43 }
44 }
45
46 // Token: 0x170006CA RID: 1738
47 // (get) Token: 0x06003822 RID: 14370 RVA: 0x00224FC8 File Offset: 0x002231C8
48 public bool HasTracker
49 {
50 get
51 {
52 /*
53An exception occurred when decompiling this method (06003822)
54
55ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.Achievements.Achievement::get_HasTracker()
56
57 ---> System.Exception: Basic block has to end with unconditional control flow.
58{
59 Block_0:
60 stloc:IAchievementTracker(var_0_06, ldfld:IAchievementTracker(Achievement::_tracker, ldloc:Achievement(this)))
61}
62
63 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
64 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
65 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
66 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
67 --- End of inner exception stack trace ---
68 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
69 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1683
70*/;
71 }
72 }
73
74 // Token: 0x06003823 RID: 14371 RVA: 0x00224FDC File Offset: 0x002231DC
76 {
77 return this._tracker;
78 }
79
80 // Token: 0x170006CB RID: 1739
81 // (get) Token: 0x06003824 RID: 14372 RVA: 0x00224FF0 File Offset: 0x002231F0
82 public bool IsCompleted
83 {
84 get
85 {
86 /*
87An exception occurred when decompiling this method (06003824)
88
89ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.Achievements.Achievement::get_IsCompleted()
90
91 ---> System.Exception: Basic block has to end with unconditional control flow.
92{
93 Block_0:
94 stloc:class [mscorlib]System.Collections.Generic.Dictionary`2<string, class Terraria.Achievements.AchievementCondition>(var_0_06, ldfld:class [mscorlib]System.Collections.Generic.Dictionary`2<string, class Terraria.Achievements.AchievementCondition>(Achievement::_conditions, ldloc:Achievement(this)))
95 stloc:int32(var_1_0D, ldfld:int32(Achievement::_completedCount, ldloc:Achievement(this)))
96}
97
98 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
99 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
100 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
101 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
102 --- End of inner exception stack trace ---
103 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
104 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1683
105*/;
106 }
107 }
108
109 // Token: 0x06003825 RID: 14373 RVA: 0x0022500C File Offset: 0x0022320C
110 public Achievement(string name)
111 {
112 this.Name = name;
113 LocalizedText text = Language.GetText("Achievements." + name + "_Name");
115 LocalizedText text2 = Language.GetText("Achievements." + name + "_Description");
116 this.Description = text2;
117 }
118
119 // Token: 0x06003826 RID: 14374 RVA: 0x00225060 File Offset: 0x00223260
120 public void ClearProgress()
121 {
123 }
124
125 // Token: 0x06003827 RID: 14375 RVA: 0x00225094 File Offset: 0x00223294
126 public void Shutdown()
127 {
129 }
130
131 // Token: 0x06003828 RID: 14376 RVA: 0x002250BC File Offset: 0x002232BC
137
138 // Token: 0x06003829 RID: 14377 RVA: 0x002251FC File Offset: 0x002233FC
139 public void AddCondition(AchievementCondition condition)
140 {
142 string name = condition.Name;
143 }
144
145 // Token: 0x0600382A RID: 14378 RVA: 0x00225218 File Offset: 0x00223418
147 {
150 if (this._tracker == null && conditions != null)
151 {
152 string name = this.Name;
153 }
155 IntPtr invoke_impl;
156 if (onCompleted != null)
157 {
158 invoke_impl = onCompleted.invoke_impl;
159 IntPtr method_code = onCompleted.method_code;
160 IntPtr method = onCompleted.method;
161 }
162 bool flag = this.Name == "MARATHON_MEDALIST";
163 if (onCompleted == null)
164 {
165 }
167 if (invoke_impl == 0)
168 {
169 }
171 if (localUser != null)
172 {
174 if (invoke_impl != 0)
175 {
176 }
177 return;
178 }
179 }
180
181 // Token: 0x0600382B RID: 14379 RVA: 0x002252D8 File Offset: 0x002234D8
183 {
184 string name = this.Name;
185 string text = "STAT_" + name;
186 }
187
188 // Token: 0x0600382C RID: 14380 RVA: 0x00225300 File Offset: 0x00223500
190 {
192 this.UseTracker(conditionTracker);
193 }
194
195 // Token: 0x0600382D RID: 14381 RVA: 0x0022531C File Offset: 0x0022351C
200
201 // Token: 0x0600382E RID: 14382 RVA: 0x00225344 File Offset: 0x00223544
206
207 // Token: 0x0600382F RID: 14383 RVA: 0x0022535C File Offset: 0x0022355C
208 public void ClearTracker()
209 {
210 }
211
212 // Token: 0x06003830 RID: 14384 RVA: 0x0022536C File Offset: 0x0022356C
214 {
215 /*
216An exception occurred when decompiling this method (06003830)
217
218ICSharpCode.Decompiler.DecompilerException: Error decompiling Terraria.Achievements.IAchievementTracker Terraria.Achievements.Achievement::GetConditionTracker(System.String)
219
220 ---> System.Exception: Basic block has to end with unconditional control flow.
221{
222 Block_0:
223 stfld:int32(Dictionary`2::_count, ldloc:class [mscorlib]System.Collections.Generic.Dictionary`2<string, class Terraria.Achievements.AchievementCondition>[exp:Dictionary`2](var_0_06), ldloc:class [mscorlib]System.Collections.Generic.Dictionary`2<string, class Terraria.Achievements.AchievementCondition>[exp:int32](var_0_06))
224}
225
226 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
227 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
228 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
229 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
230 --- End of inner exception stack trace ---
231 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
232 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1683
233*/;
234 }
235
236 // Token: 0x06003831 RID: 14385 RVA: 0x00225390 File Offset: 0x00223590
237 public void AddConditions(params AchievementCondition[] conditions)
238 {
240 this.AddCondition(conditions);
241 }
242
243 // Token: 0x06003832 RID: 14386 RVA: 0x002253B0 File Offset: 0x002235B0
245 {
246 /*
247An exception occurred when decompiling this method (06003832)
248
249ICSharpCode.Decompiler.DecompilerException: Error decompiling Terraria.Achievements.AchievementCondition Terraria.Achievements.Achievement::GetCondition(System.String)
250
251 ---> System.Exception: Basic block has to end with unconditional control flow.
252{
253 Block_0:
254 stloc:class [mscorlib]System.Collections.Generic.Dictionary`2<string, class Terraria.Achievements.AchievementCondition>(var_0_06, ldfld:class [mscorlib]System.Collections.Generic.Dictionary`2<string, class Terraria.Achievements.AchievementCondition>(Achievement::_conditions, ldloc:Achievement(this)))
255}
256
257 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
258 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
259 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
260 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
261 --- End of inner exception stack trace ---
262 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
263 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1683
264*/;
265 }
266
267 // Token: 0x06003833 RID: 14387 RVA: 0x002253C4 File Offset: 0x002235C4
268 public void SetCategory(AchievementCategory category)
269 {
270 this._category = category;
271 }
272
273 // Token: 0x04007911 RID: 30993
274 private static int _totalAchievements;
275
276 // Token: 0x04007912 RID: 30994
277 public readonly string Name;
278
279 // Token: 0x04007913 RID: 30995
281
282 // Token: 0x04007914 RID: 30996
284
285 // Token: 0x04007915 RID: 30997
286 public readonly int Id;
287
288 // Token: 0x04007916 RID: 30998
290
291 // Token: 0x04007917 RID: 30999
293
294 // Token: 0x04007918 RID: 31000
297
298 // Token: 0x04007919 RID: 31001
299 [JsonProperty("Conditions")]
301
302 // Token: 0x0400791A RID: 31002
303 private int _completedCount;
304
305 // Token: 0x02000691 RID: 1681
307 {
308 // Token: 0x06003834 RID: 14388 RVA: 0x002253D8 File Offset: 0x002235D8
309 public AchievementCompleted(object @object, IntPtr method)
310 {
312 this.m_target = @object;
314 this.method_code = this;
315 }
316
317 // Token: 0x06003835 RID: 14389 RVA: 0x00225438 File Offset: 0x00223638
319 {
322 IntPtr method = this.method;
323 }
324
325 // Token: 0x06003836 RID: 14390 RVA: 0x000021DB File Offset: 0x000003DB
327 {
328 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
329 }
330
331 // Token: 0x06003837 RID: 14391 RVA: 0x0022545C File Offset: 0x0022365C
332 public void EndInvoke(IAsyncResult result)
333 {
334 }
335 }
336 }
337}
class f__AnonymousType0<< Count > j__TPar
IPlatformAwardNotifier PlatformAwards
Definition LocalUser.cs:220
static Delegate Combine(Delegate a, Delegate b)
Definition Delegate.cs:255
IntPtr method_code
Definition Delegate.cs:386
IntPtr invoke_impl
Definition Delegate.cs:371
static Delegate Remove(Delegate source, Delegate value)
Definition Delegate.cs:278
IAsyncResult BeginInvoke(Achievement achievement, AsyncCallback callback, object @object)
AchievementCompleted(object @object, IntPtr method)
Achievement.AchievementCompleted OnCompleted
void AddConditions(params AchievementCondition[] conditions)
void UseConditionsCompletedTracker(params string[] conditions)
void SetCategory(AchievementCategory category)
IAchievementTracker GetConditionTracker(string name)
void OnConditionComplete(AchievementCondition condition)
readonly LocalizedText Description
readonly LocalizedText FriendlyName
AchievementCondition GetCondition(string conditionName)
void Load(Dictionary< string, JObject > conditions)
void UseTrackerFromCondition(string conditionName)
void AddCondition(AchievementCondition condition)
IAchievementTracker GetTracker()
void UseTracker(IAchievementTracker tracker)
Dictionary< string, AchievementCondition > _conditions
static LocalizedText GetText(string key)
Definition Language.cs:44
static Player LocalPlayer
Definition Main.cs:5267
static LocalUser FindLocalUserByPlayer(Player player)