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
UnifiedRandom.cs
Go to the documentation of this file.
1using System;
2
3namespace Terraria.Utilities
4{
5 // Token: 0x02000508 RID: 1288
7 public class UnifiedRandom
8 {
9 // Token: 0x0600311C RID: 12572 RVA: 0x001F78F0 File Offset: 0x001F5AF0
11 {
13 }
14
15 // Token: 0x0600311D RID: 12573 RVA: 0x001F7908 File Offset: 0x001F5B08
16 public UnifiedRandom(int Seed)
17 {
18 this.SetSeed(Seed);
19 }
20
21 // Token: 0x0600311E RID: 12574 RVA: 0x001F7924 File Offset: 0x001F5B24
22 public void SetSeed(int Seed)
23 {
24 int[] seedArray = this.SeedArray;
25 }
26
27 // Token: 0x0600311F RID: 12575 RVA: 0x001F7958 File Offset: 0x001F5B58
28 protected double Sample()
29 {
30 /*
31An exception occurred when decompiling this method (0600311F)
32
33ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Double Terraria.Utilities.UnifiedRandom::Sample()
34
35 ---> System.Exception: Basic block has to end with unconditional control flow.
36{
37 Block_0:
38 stloc:int32(var_0_06, call:int32(UnifiedRandom::InternalSample, ldloc:UnifiedRandom(this)))
39}
40
41 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
42 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
43 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
44 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
45 --- End of inner exception stack trace ---
46 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
47 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
48*/;
49 }
50
51 // Token: 0x06003120 RID: 12576 RVA: 0x001F796C File Offset: 0x001F5B6C
52 private int InternalSample()
53 {
54 /*
55An exception occurred when decompiling this method (06003120)
56
57ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.Utilities.UnifiedRandom::InternalSample()
58
59 ---> System.Exception: Basic block has to end with unconditional control flow.
60{
61 Block_0:
62 stloc:int32(var_0_06, ldfld:int32(UnifiedRandom::inext, ldloc:UnifiedRandom(this)))
63 stloc:int32[](var_1_0D, ldfld:int32[](UnifiedRandom::SeedArray, ldloc:UnifiedRandom(this)))
64 stloc:int32[](var_2_14, ldfld:int32[](UnifiedRandom::SeedArray, ldloc:UnifiedRandom(this)))
65 stloc:int32(var_3_16, ldc.i4:int32(1))
66 stloc:int64(var_4_1C, ldc.i4:int64(2147483646))
67 stfld:int32(int32::m_value, ldloc:int32[exp:int32&](var_3_16), ldloc:int64[exp:int32](var_4_1C))
68 stfld:int32(UnifiedRandom::inext, ldloc:UnifiedRandom(this), ldloc:int32[][exp:int32](var_2_14))
69 stfld:int32[](UnifiedRandom::SeedArray, ldloc:UnifiedRandom(this), ldloc:int32[](var_1_0D))
70}
71
72 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
73 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
74 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
75 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
76 --- End of inner exception stack trace ---
77 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
78 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
79*/;
80 }
81
82 // Token: 0x06003121 RID: 12577 RVA: 0x001F79AC File Offset: 0x001F5BAC
83 public int Next()
84 {
85 return this.InternalSample();
86 }
87
88 // Token: 0x06003122 RID: 12578 RVA: 0x001F79C0 File Offset: 0x001F5BC0
89 private double GetSampleForLargeRange()
90 {
91 /*
92An exception occurred when decompiling this method (06003122)
93
94ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Double Terraria.Utilities.UnifiedRandom::GetSampleForLargeRange()
95
96 ---> System.Exception: Basic block has to end with unconditional control flow.
97{
98 Block_0:
99 stloc:int32(var_0_06, call:int32(UnifiedRandom::InternalSample, ldloc:UnifiedRandom(this)))
100 stloc:int32(var_1_0D, call:int32(UnifiedRandom::InternalSample, ldloc:UnifiedRandom(this)))
101}
102
103 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
104 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
105 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
106 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
107 --- End of inner exception stack trace ---
108 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
109 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
110*/;
111 }
112
113 // Token: 0x06003123 RID: 12579 RVA: 0x001F79DC File Offset: 0x001F5BDC
114 public int Next(int minValue, int maxValue)
115 {
117 return this.InternalSample();
118 }
119
120 // Token: 0x06003124 RID: 12580 RVA: 0x001F79F8 File Offset: 0x001F5BF8
121 public int Next(int maxValue)
122 {
123 return this.InternalSample();
124 }
125
126 // Token: 0x06003125 RID: 12581 RVA: 0x001F7A0C File Offset: 0x001F5C0C
127 public double NextDouble()
128 {
129 /*
130An exception occurred when decompiling this method (06003125)
131
132ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Double Terraria.Utilities.UnifiedRandom::NextDouble()
133
134 ---> System.Exception: Basic block has to end with unconditional control flow.
135{
136 Block_0:
137 stloc:int32(var_0_06, call:int32(UnifiedRandom::InternalSample, ldloc:UnifiedRandom(this)))
138}
139
140 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
141 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
142 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
143 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
144 --- End of inner exception stack trace ---
145 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
146 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
147*/;
148 }
149
150 // Token: 0x06003126 RID: 12582 RVA: 0x001F7A20 File Offset: 0x001F5C20
151 public void NextBytes(byte[] buffer)
152 {
153 int num = this.InternalSample();
154 }
155
156 // Token: 0x04003AF0 RID: 15088
157 private const int MBIG = 2147483647;
158
159 // Token: 0x04003AF1 RID: 15089
160 private const int MSEED = 161803398;
161
162 // Token: 0x04003AF2 RID: 15090
163 private const int MZ = 0;
164
165 // Token: 0x04003AF3 RID: 15091
166 private int inext;
167
168 // Token: 0x04003AF4 RID: 15092
169 private int inextp;
170
171 // Token: 0x04003AF5 RID: 15093
172 private int[] SeedArray;
173
174 // Token: 0x04003AF6 RID: 15094
175 public bool debug;
176 }
177}
class f__AnonymousType0<< Count > j__TPar
static int TickCount
int Next(int minValue, int maxValue)