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
PortalHelper.cs
Go to the documentation of this file.
1using System;
8
10{
11 // Token: 0x020007B1 RID: 1969
12 public class PortalHelper
13 {
14 // Token: 0x06004022 RID: 16418 RVA: 0x0024231C File Offset: 0x0024051C
15 static PortalHelper()
16 {
17 }
18
19 // Token: 0x06004023 RID: 16419 RVA: 0x00242354 File Offset: 0x00240554
20 public static void UpdatePortalPoints()
21 {
22 }
23
24 // Token: 0x06004024 RID: 16420 RVA: 0x00242378 File Offset: 0x00240578
25 public static void TryGoingThroughPortals(Entity ent)
26 {
27 int num = 1;
28 if (num == 0)
29 {
30 }
31 if (num != 0)
32 {
33 int width = ent.width;
34 int height = ent.height;
35 if (ent != null)
36 {
37 }
38 int num2 = 1;
39 if (num2 == 0)
40 {
41 }
42 if (num2 == 0)
43 {
44 }
45 if (ent != null)
46 {
47 }
48 float x = ent.position.X;
49 float y = ent.position.Y;
50 float x2 = ent.velocity.X;
51 float y2 = ent.velocity.Y;
52 Vector2 size = ent.Size;
53 if (16384 == 0)
54 {
55 }
56 Rectangle hitbox = ent.Hitbox;
57 Vector2 size2 = ent.Size;
58 int num3 = 1;
59 if (num3 == 0)
60 {
61 }
62 if (num3 == 0)
63 {
64 }
65 if (num3 == 0)
66 {
67 }
68 int num4 = 1;
69 if (num4 == 0)
70 {
71 }
72 if (num4 == 0)
73 {
74 }
75 return;
76 }
77 }
78
79 // Token: 0x06004025 RID: 16421 RVA: 0x002425AC File Offset: 0x002407AC
81 {
82 if (!true)
83 {
84 }
85 int num = 16896;
86 if (num == 0)
87 {
88 }
89 if (num == 0)
90 {
91 }
92 int num2 = 8;
93 int num3 = 8;
94 if (num2 == 0)
95 {
96 }
97 int num4 = 2;
98 if (num4 == 0)
99 {
100 }
101 if (num4 == 0)
102 {
103 }
104 if (num3 == 0)
105 {
106 }
107 if (num4 == 0)
108 {
109 }
110 if (num4 == 0)
111 {
112 }
113 if (num3 == 0)
114 {
115 }
116 if (num4 == 0)
117 {
118 }
119 int num5 = 32640;
120 if (num5 == 0)
121 {
122 }
123 if (num3 == 0)
124 {
125 }
126 if (num5 == 0)
127 {
128 }
129 int num6;
130 return num6;
131 }
132
133 // Token: 0x06004026 RID: 16422 RVA: 0x00242630 File Offset: 0x00240830
134 private static bool FindValidLine(Point position, int xOffset, int yOffset, [Out] Point bestPosition)
135 {
136 int num = 1;
137 if (num == 0)
138 {
139 }
140 if (num == 0)
141 {
142 }
143 bool flag;
144 return flag;
145 }
146
147 // Token: 0x06004027 RID: 16423 RVA: 0x00242658 File Offset: 0x00240858
148 private static bool IsValidLine(Point position, int xOffset, int yOffset)
149 {
150 /*
151An exception occurred when decompiling this method (06004027)
152
153ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.GameContent.PortalHelper::IsValidLine(Microsoft.Xna.Framework.Point,System.Int32,System.Int32)
154
155 ---> System.Exception: Basic block has to end with unconditional control flow.
156{
157 IL_0003:
158 stloc:bool(var_9_0A, call:bool(PortalHelper::CanPlacePortalOn, ldloc:Tile(var_7)))
159}
160
161 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
162 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
163 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
164 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
165 --- End of inner exception stack trace ---
166 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
167 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
168*/;
169 }
170
171 // Token: 0x06004028 RID: 16424 RVA: 0x00242678 File Offset: 0x00240878
172 private static bool CanPlacePortalOn(Tile t)
173 {
174 bool flag;
175 return flag;
176 }
177
178 // Token: 0x06004029 RID: 16425 RVA: 0x000021DB File Offset: 0x000003DB
179 private static bool DoesTileTypeSupportPortals(ushort tileType)
180 {
181 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
182 }
183
184 // Token: 0x0600402A RID: 16426 RVA: 0x00242688 File Offset: 0x00240888
185 private static bool BlockPortals(Tile t)
186 {
187 int num = 1;
188 if (num == 0)
189 {
190 }
191 if (num == 0)
192 {
193 if (num == 0)
194 {
195 }
196 if (num != 0)
197 {
198 }
199 }
200 if (num == 0)
201 {
202 }
203 while (num == 0)
204 {
205 }
206 }
207
208 // Token: 0x0600402B RID: 16427 RVA: 0x002426B0 File Offset: 0x002408B0
209 private static Vector2 FindCollision(Vector2 startPosition, Vector2 stopPosition)
210 {
211 if (!true)
212 {
213 return;
214 }
215 }
216
217 // Token: 0x0600402C RID: 16428 RVA: 0x002426C4 File Offset: 0x002408C4
218 private static int AddPortal(Projectile sourceProjectile, Vector2 position, float angle, int form, int direction)
219 {
220 int num = 1;
221 if (num == 0)
222 {
223 }
224 if (num == 0)
225 {
226 }
227 if (num == 0)
228 {
229 }
230 int myPlayer = Main.myPlayer;
231 int num2;
232 return num2;
233 }
234
235 // Token: 0x0600402D RID: 16429 RVA: 0x002426EC File Offset: 0x002408EC
236 private static void RemoveMyOldPortal(int form)
237 {
238 int num = 1;
239 if (num == 0)
240 {
241 }
242 if (num != 0)
243 {
244 if (num == 0)
245 {
246 }
247 int myPlayer = Main.myPlayer;
248 }
249 }
250
251 // Token: 0x0600402E RID: 16430 RVA: 0x00242710 File Offset: 0x00240910
252 private static void RemoveIntersectingPortals(Vector2 position, float angle)
253 {
254 int num = 1;
255 if (num == 0)
256 {
257 }
258 if (num == 0)
259 {
260 }
261 int myPlayer = Main.myPlayer;
263 }
264
265 // Token: 0x0600402F RID: 16431 RVA: 0x00242748 File Offset: 0x00240948
266 public static Color GetPortalColor(int colorIndex)
267 {
268 /*
269An exception occurred when decompiling this method (0600402F)
270
271ICSharpCode.Decompiler.DecompilerException: Error decompiling Microsoft.Xna.Framework.Graphics.Color Terraria.GameContent.PortalHelper::GetPortalColor(System.Int32)
272
273 ---> System.Exception: Basic block has to end with unconditional control flow.
274{
275 IL_0000:
276 brtrue(IL_0000, ldc.i4:bool(1))
277}
278
279 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
280 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
281 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
282 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
283 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
284 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
285 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
286 --- End of inner exception stack trace ---
287 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
288 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
289*/;
290 }
291
292 // Token: 0x06004030 RID: 16432 RVA: 0x00242758 File Offset: 0x00240958
293 public static Color GetPortalColor(int player, int portal)
294 {
295 /*
296An exception occurred when decompiling this method (06004030)
297
298ICSharpCode.Decompiler.DecompilerException: Error decompiling Microsoft.Xna.Framework.Graphics.Color Terraria.GameContent.PortalHelper::GetPortalColor(System.Int32,System.Int32)
299
300 ---> System.Exception: Basic block has to end with unconditional control flow.
301{
302 IL_000F:
303 brtrue(IL_000F, ldloc:int32[exp:bool](portal))
304}
305
306 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
307 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
308 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
309 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
310 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
311 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
312 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
313 --- End of inner exception stack trace ---
314 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
315 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
316*/;
317 }
318
319 // Token: 0x06004031 RID: 16433 RVA: 0x00242778 File Offset: 0x00240978
320 private static void GetPortalEdges(Vector2 position, float angle, [Out] Vector2 start, [Out] Vector2 end)
321 {
322 if (!true)
323 {
324 }
325 Vector2 vector = angle.ToRotationVector2();
326 if (!true)
327 {
328 }
329 }
330
331 // Token: 0x06004032 RID: 16434 RVA: 0x002427A0 File Offset: 0x002409A0
333 {
334 /*
335An exception occurred when decompiling this method (06004032)
336
337ICSharpCode.Decompiler.DecompilerException: Error decompiling Microsoft.Xna.Framework.Vector2 Terraria.GameContent.PortalHelper::GetPortalOutingPoint(Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2,System.Single,System.Int32,System.Int32)
338
339 ---> System.Exception: Basic block has to end with unconditional control flow.
340{
341 IL_002F:
342 stfld:float32(Vector2::X, ldloc:Vector2[exp:valuetype Microsoft.Xna.Framework.Vector2&](portalPosition), ldloc:int32[exp:float32](var_6))
343 stloc:int32(var_7_38, ldc.i4:int32(1))
344 stfld:float32(Vector2::X, ldloc:Vector2[exp:valuetype Microsoft.Xna.Framework.Vector2&](portalPosition), ldloc:int32[exp:float32](var_7_38))
345}
346
347 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
348 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
349 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
350 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
351 --- End of inner exception stack trace ---
352 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
353 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
354*/;
355 }
356
357 // Token: 0x06004033 RID: 16435 RVA: 0x002427F0 File Offset: 0x002409F0
359 {
360 int num = 1;
361 if (num == 0)
362 {
363 }
364 if (num != 0)
365 {
366 if (num == 0)
367 {
368 }
369 int num2 = 32640;
370 int sectionY = Netplay.GetSectionY(Netplay.GetSectionX(-1073741824));
371 if (num2 == 0)
372 {
373 }
374 return;
375 }
376 }
377
378 // Token: 0x06004034 RID: 16436 RVA: 0x0024282C File Offset: 0x00240A2C
380 {
381 int num = 1;
382 if (num == 0)
383 {
384 }
385 if (num != 0)
386 {
387 long num2 = 0L;
388 RemoteClient.CheckSection(int.MinValue, portalPosition, (int)num2);
389 }
390 }
391
392 // Token: 0x06004035 RID: 16437 RVA: 0x00242854 File Offset: 0x00240A54
394 {
395 int num = 1;
396 if (num == 0)
397 {
398 }
400 if (num == 0)
401 {
402 }
403 return false;
404 }
405
406 // Token: 0x06004036 RID: 16438 RVA: 0x00242964 File Offset: 0x00240B64
407 private static bool SupportedSlope(int x, int y, int slope)
408 {
409 /*
410An exception occurred when decompiling this method (06004036)
411
412ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.GameContent.PortalHelper::SupportedSlope(System.Int32,System.Int32,System.Int32)
413
414 ---> System.Exception: Basic block has to end with unconditional control flow.
415{
416 IL_001E:
417 brtrue(IL_001E, logicnot:bool(ldloc:int32[exp:bool](var_0_01)))
418}
419
420 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
421 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
422 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
423 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
424 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
425 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
426 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
427 --- End of inner exception stack trace ---
428 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
429 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
430*/;
431 }
432
433 // Token: 0x06004037 RID: 16439 RVA: 0x00242994 File Offset: 0x00240B94
434 private static bool SupportedHalfbrick(int x, int y)
435 {
436 /*
437An exception occurred when decompiling this method (06004037)
438
439ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.GameContent.PortalHelper::SupportedHalfbrick(System.Int32,System.Int32)
440
441 ---> System.Exception: Basic block has to end with unconditional control flow.
442{
443 IL_001E:
444 brtrue(IL_001E, logicnot:bool(ldloc:int32[exp:bool](var_0_01)))
445}
446
447 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
448 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
449 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
450 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
451 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
452 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
453 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
454 --- End of inner exception stack trace ---
455 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
456 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
457*/;
458 }
459
460 // Token: 0x06004038 RID: 16440 RVA: 0x002429C4 File Offset: 0x00240BC4
461 private static bool SupportedNormal(int x, int y)
462 {
463 /*
464An exception occurred when decompiling this method (06004038)
465
466ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.GameContent.PortalHelper::SupportedNormal(System.Int32,System.Int32)
467
468 ---> System.Exception: Basic block has to end with unconditional control flow.
469{
470 IL_0024:
471 brtrue(IL_0024, ldloc:int32[exp:bool](var_0_01))
472}
473
474 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
475 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
476 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
477 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
478 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
479 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
480 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
481 --- End of inner exception stack trace ---
482 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
483 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
484*/;
485 }
486
487 // Token: 0x06004039 RID: 16441 RVA: 0x002429F8 File Offset: 0x00240BF8
489 {
490 }
491
492 // Token: 0x04007E01 RID: 32257
493 private static int[,] FoundPortals;
494
495 // Token: 0x04007E02 RID: 32258
496 private static int[] PortalCooldownForPlayers;
497
498 // Token: 0x04007E03 RID: 32259
499 private static int[] PortalCooldownForNPCs;
500
501 // Token: 0x04007E04 RID: 32260
502 private static bool anyPortalAtAll;
503
504 // Token: 0x04007E05 RID: 32261
505 public const int PORTALS_PER_PERSON = 2;
506
507 // Token: 0x04007E06 RID: 32262
508 private static readonly Vector2[] EDGES;
509
510 // Token: 0x04007E07 RID: 32263
511 private static readonly Vector2[] SLOPE_EDGES;
512
513 // Token: 0x04007E08 RID: 32264
514 private static readonly Point[] SLOPE_OFFSETS;
515
516 // Token: 0x020007B2 RID: 1970
518 private sealed class <>c__DisplayClass17_0
519 {
520 // Token: 0x0600403A RID: 16442 RVA: 0x00242A0C File Offset: 0x00240C0C
522 {
523 }
524
525 // Token: 0x0600403B RID: 16443 RVA: 0x00242A20 File Offset: 0x00240C20
526 internal bool <FindCollision>b__0(int x, int y)
527 {
528 this.lastX = x;
529 if (!true)
530 {
531 }
532 return WorldGen.SolidOrSlopedTile(x, y);
533 }
534
535 // Token: 0x04007E09 RID: 32265
536 public int lastX;
537
538 // Token: 0x04007E0A RID: 32266
539 public int lastY;
540 }
541 }
542}
class f__AnonymousType0<< Count > j__TPar
static float WrapAngle(float angle)
static void RemoveMyOldPortal(int form)
static readonly Point[] SLOPE_OFFSETS
static bool DoesTileTypeSupportPortals(ushort tileType)
static Color GetPortalColor(int player, int portal)
static Color GetPortalColor(int colorIndex)
static int AddPortal(Projectile sourceProjectile, Vector2 position, float angle, int form, int direction)
static bool FindValidLine(Point position, int xOffset, int yOffset, [Out] Point bestPosition)
static void SyncPortalsOnPlayerJoin(int plr, int fluff, List< Point > dontInclude, [Out] List< Point > portalSections)
static bool SupportedHalfbrick(int x, int y)
static int TryPlacingPortal(Projectile theBolt, Vector2 velocity, Vector2 theCrashVelocity)
static bool CanPlacePortalOn(Tile t)
static bool SupportedSlope(int x, int y, int slope)
static Vector2 GetPortalOutingPoint(Vector2 objectSize, Vector2 portalPosition, float portalAngle, [Out] int bonusX, [Out] int bonusY)
static void RemoveIntersectingPortals(Vector2 position, float angle)
static Vector2 FindCollision(Vector2 startPosition, Vector2 stopPosition)
static readonly Vector2[] EDGES
static bool IsValidLine(Point position, int xOffset, int yOffset)
static void SyncPortalSections(Vector2 portalPosition, int fluff)
static void TryGoingThroughPortals(Entity ent)
static void GetPortalEdges(Vector2 position, float angle, [Out] Vector2 start, [Out] Vector2 end)
static bool SupportedTilesAreFine(Vector2 portalCenter, float portalAngle)
static bool SupportedNormal(int x, int y)
static readonly Vector2[] SLOPE_EDGES
static bool LogicClient
Definition Main.cs:5513
static int myPlayer
Definition Main.cs:2337
static int GetSectionX(int x)
Definition Netplay.cs:487
static int GetSectionY(int y)
Definition Netplay.cs:493
static void CheckSection(int playerIndex, Vector2 position, int fluff=1)
static bool SolidOrSlopedTile(Tile tile)