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
NPCPortraitInfoElement.cs
Go to the documentation of this file.
1using System;
6using Terraria.UI;
7
9{
10 // Token: 0x02000969 RID: 2409
12 {
13 // Token: 0x06004821 RID: 18465 RVA: 0x0025FDD4 File Offset: 0x0025DFD4
18
19 // Token: 0x06004822 RID: 18466 RVA: 0x0025FDF0 File Offset: 0x0025DFF0
21 {
22 if (17120 == 0)
23 {
24 }
25 long num = 0L;
26 long value = num.m_value;
27 long value2 = num.m_value;
28 long value3 = num.m_value;
29 while (num == 0L)
30 {
31 }
32 long value4 = num.m_value;
33 long num2;
34 int num3;
35 if (num == 0L)
36 {
37 num2 = 0L;
38 num3 = 6;
39 if (num == 0L)
40 {
41 goto IL_0045;
42 }
43 }
44 long value5 = num.m_value;
45 IL_0045:
46 if (num2 == 0L && num3 == 0)
47 {
48 if (info != null)
49 {
50 BestiaryEntry ownerEntry = info.OwnerEntry;
52 while (info == null)
53 {
54 }
55 BestiaryEntry ownerEntry2 = info.OwnerEntry;
57 }
58 while (info == null)
59 {
60 }
61 BestiaryEntry ownerEntry3 = info.OwnerEntry;
63 while (info == null)
64 {
65 }
67 }
68 throw new OutOfMemoryException();
69 }
70
71 // Token: 0x06004823 RID: 18467 RVA: 0x0025FEB4 File Offset: 0x0025E0B4
72 public int GetStarCount()
73 {
74 /*
75An exception occurred when decompiling this method (06004823)
76
77ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.GameContent.Bestiary.NPCPortraitInfoElement::GetStarCount()
78
79 ---> System.Exception: Basic block has to end with unconditional control flow.
80{
81 IL_0000:
82 brtrue(IL_0000, logicnot:bool(ldfld:valuetype [mscorlib]System.Nullable`1<int32>[exp:bool](NPCPortraitInfoElement::_filledStarsCount, ldloc:NPCPortraitInfoElement(this))))
83}
84
85 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
86 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
87 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
88 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
89 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
90 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
91 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
92 --- End of inner exception stack trace ---
93 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
94 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
95*/;
96 }
97
98 // Token: 0x06004824 RID: 18468 RVA: 0x0025FEC8 File Offset: 0x0025E0C8
100 {
101 /*
102An exception occurred when decompiling this method (06004824)
103
104ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Single Terraria.GameContent.Bestiary.NPCPortraitInfoElement::GetSortingValueForElement(Terraria.GameContent.Bestiary.IBestiaryInfoElement)
105
106 ---> System.Exception: Basic block has to end with unconditional control flow.
107{
108 IL_0000:
109 brtrue(IL_0000, logicnot:bool(ldloc:IBestiaryInfoElement[exp:bool](element)))
110}
111
112 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
113 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
114 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
115 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
116 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
117 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
118 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
119 --- End of inner exception stack trace ---
120 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
121 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
122*/;
123 }
124
125 // Token: 0x06004825 RID: 18469 RVA: 0x0025FED8 File Offset: 0x0025E0D8
127 {
128 /*
129An exception occurred when decompiling this method (06004825)
130
131ICSharpCode.Decompiler.DecompilerException: Error decompiling Terraria.UI.UIElement Terraria.GameContent.Bestiary.NPCPortraitInfoElement::CreateStarsContainer()
132
133 ---> System.Exception: Basic block has to end with unconditional control flow.
134{
135 Block_0:
136 stloc:int32(var_0_01, ldc.i4:int32(5))
137 stloc:int32(var_1_03, ldc.i4:int32(5))
138 stloc:int32(var_2_0B, call:int32(Math::Min, ldloc:int32(var_0_01), ldloc:int32(var_1_03)))
139}
140
141 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
142 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
143 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
144 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
145 --- End of inner exception stack trace ---
146 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
147 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
148*/;
149 }
150
151 // Token: 0x040083AD RID: 33709
152 private int? _filledStarsCount;
153
154 // Token: 0x0200096A RID: 2410
156 private sealed class <>c__DisplayClass2_0
157 {
158 // Token: 0x06004826 RID: 18470 RVA: 0x0025FEF8 File Offset: 0x0025E0F8
160 {
161 }
162
163 // Token: 0x06004827 RID: 18471 RVA: 0x0025FF0C File Offset: 0x0025E10C
165 {
166 bool flag;
167 return flag;
168 }
169
170 // Token: 0x040083AE RID: 33710
172 }
173
174 // Token: 0x0200096B RID: 2411
176 private sealed class <>c__DisplayClass2_1
177 {
178 // Token: 0x06004828 RID: 18472 RVA: 0x0025FF1C File Offset: 0x0025E11C
180 {
181 }
182
183 // Token: 0x06004829 RID: 18473 RVA: 0x0025FF30 File Offset: 0x0025E130
184 internal bool <ProvideUIElement>b__2(IPreferenceProviderElement preference)
185 {
186 /*
187An exception occurred when decompiling this method (06004829)
188
189ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.GameContent.Bestiary.NPCPortraitInfoElement/<>c__DisplayClass2_1::<ProvideUIElement>b__2(Terraria.GameContent.Bestiary.IPreferenceProviderElement)
190
191 ---> System.Exception: Basic block has to end with unconditional control flow.
192{
193 Block_0:
194 stloc:IBestiaryBackgroundImagePathAndColorProvider(var_0_06, ldfld:IBestiaryBackgroundImagePathAndColorProvider('<>c__DisplayClass2_1'::provider, ldloc:'<>c__DisplayClass2_1'(this)))
195}
196
197 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
198 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
199 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
200 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
201 --- End of inner exception stack trace ---
202 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
203 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
204*/;
205 }
206
207 // Token: 0x040083AF RID: 33711
208 public IBestiaryBackgroundImagePathAndColorProvider provider;
209 }
210
211 // Token: 0x0200096C RID: 2412
213 [Serializable]
214 private sealed class <>c
215 {
216 // Token: 0x0600482A RID: 18474 RVA: 0x0025FF44 File Offset: 0x0025E144
217 // Note: this type is marked as 'beforefieldinit'.
218 static <>c()
219 {
220 }
221
222 // Token: 0x0600482B RID: 18475 RVA: 0x0025FF54 File Offset: 0x0025E154
223 public <>c()
224 {
225 }
226
227 // Token: 0x0600482C RID: 18476 RVA: 0x000021DB File Offset: 0x000003DB
228 internal IBestiaryBackgroundOverlayAndColorProvider <ProvideUIElement>b__2_1(IBestiaryInfoElement x)
229 {
230 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
231 }
232
233 // Token: 0x040083B0 RID: 33712
234 public static readonly NPCPortraitInfoElement.<>c <>9;
235
236 // Token: 0x040083B1 RID: 33713
238 }
239 }
240}
class f__AnonymousType0<< Count > j__TPar
UIElement ProvideUIElement(BestiaryUICollectionInfo info)
float GetSortingValueForElement(IBestiaryInfoElement element)