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
FastRandom.cs
Go to the documentation of this file.
1using System;
4
5namespace Terraria.Utilities
6{
7 // Token: 0x020004F8 RID: 1272
8 public struct FastRandom
9 {
10 // Token: 0x17000614 RID: 1556
11 // (get) Token: 0x060030C1 RID: 12481 RVA: 0x000021DB File Offset: 0x000003DB
12 // (set) Token: 0x060030C2 RID: 12482 RVA: 0x001F6EC0 File Offset: 0x001F50C0
13 public ulong Seed
14 {
16 readonly get
17 {
18 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
19 }
21 private set
22 {
24 }
25 }
26
27 // Token: 0x060030C3 RID: 12483 RVA: 0x001F6ED4 File Offset: 0x001F50D4
28 public FastRandom(ulong seed)
29 {
30 this.<Seed>k__BackingField = seed;
31 }
32
33 // Token: 0x060030C4 RID: 12484 RVA: 0x001F6EE8 File Offset: 0x001F50E8
34 public FastRandom(int seed)
35 {
36 }
37
38 // Token: 0x060030C5 RID: 12485 RVA: 0x001F6EF8 File Offset: 0x001F50F8
40 {
41 return ref this;
42 }
43
44 // Token: 0x060030C6 RID: 12486 RVA: 0x001F6F08 File Offset: 0x001F5108
45 public FastRandom WithModifier(int x, int y)
46 {
47 return ref this;
48 }
49
50 // Token: 0x060030C7 RID: 12487 RVA: 0x001F6F18 File Offset: 0x001F5118
52 {
53 /*
54An exception occurred when decompiling this method (060030C7)
55
56ICSharpCode.Decompiler.DecompilerException: Error decompiling Terraria.Utilities.FastRandom Terraria.Utilities.FastRandom::CreateWithRandomSeed()
57
58 ---> System.Exception: Basic block has to end with unconditional control flow.
59{
60 Block_0:
61 stloc:int32(var_1_0C, call:int32(Guid::GetHashCode, call:Guid[exp:valuetype [mscorlib]System.Guid&](Guid::NewGuid)))
62}
63
64 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
65 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
66 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
67 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
68 --- End of inner exception stack trace ---
69 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
70 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
71*/;
72 }
73
74 // Token: 0x060030C8 RID: 12488 RVA: 0x001F6F34 File Offset: 0x001F5134
75 public void NextSeed()
76 {
77 }
78
79 // Token: 0x060030C9 RID: 12489 RVA: 0x001F6F44 File Offset: 0x001F5144
80 private int NextBits(int bits)
81 {
82 /*
83An exception occurred when decompiling this method (060030C9)
84
85ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.Utilities.FastRandom::NextBits(System.Int32)
86
87 ---> System.Exception: Basic block has to end with unconditional control flow.
88{
89 Block_0:
90 stloc:int64(var_0_05, ldc.i4:int64(58989))
91 stfld:uint64(FastRandom::<Seed>k__BackingField, ldloc:valuetype Terraria.Utilities.FastRandom&(this), ldloc:int64[exp:uint64](var_0_05))
92}
93
94 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
95 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
96 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
97 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
98 --- End of inner exception stack trace ---
99 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
100 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
101*/;
102 }
103
104 // Token: 0x060030CA RID: 12490 RVA: 0x001F6F60 File Offset: 0x001F5160
105 public float NextFloat()
106 {
107 /*
108An exception occurred when decompiling this method (060030CA)
109
110ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Single Terraria.Utilities.FastRandom::NextFloat()
111
112 ---> System.Exception: Basic block has to end with unconditional control flow.
113{
114 Block_0:
115 stloc:int64(var_0_05, ldc.i4:int64(58989))
116 stfld:uint64(FastRandom::<Seed>k__BackingField, ldloc:valuetype Terraria.Utilities.FastRandom&(this), ldloc:int64[exp:uint64](var_0_05))
117}
118
119 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
120 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
121 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
122 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
123 --- End of inner exception stack trace ---
124 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
125 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
126*/;
127 }
128
129 // Token: 0x060030CB RID: 12491 RVA: 0x001F6F7C File Offset: 0x001F517C
130 public double NextDouble()
131 {
132 /*
133An exception occurred when decompiling this method (060030CB)
134
135ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Double Terraria.Utilities.FastRandom::NextDouble()
136
137 ---> System.Exception: Basic block has to end with unconditional control flow.
138{
139 Block_0:
140 stloc:int64(var_0_05, ldc.i4:int64(58989))
141 stfld:uint64(FastRandom::<Seed>k__BackingField, ldloc:valuetype Terraria.Utilities.FastRandom&(this), ldloc:int64[exp:uint64](var_0_05))
142}
143
144 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
145 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
146 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
147 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
148 --- End of inner exception stack trace ---
149 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
150 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
151*/;
152 }
153
154 // Token: 0x060030CC RID: 12492 RVA: 0x000021DB File Offset: 0x000003DB
155 public int Next(int max)
156 {
157 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
158 }
159
160 // Token: 0x060030CD RID: 12493 RVA: 0x001F6F98 File Offset: 0x001F5198
161 public int Next(int min, int max)
162 {
163 return this.Next(min);
164 }
165
166 // Token: 0x060030CE RID: 12494 RVA: 0x000021DB File Offset: 0x000003DB
167 private static ulong NextSeed(ulong seed)
168 {
169 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
170 }
171
172 // Token: 0x04003AC8 RID: 15048
173 public const ulong RANDOM_MULTIPLIER = 25214903917UL;
174
175 // Token: 0x04003AC9 RID: 15049
176 public const ulong RANDOM_ADD = 11UL;
177
178 // Token: 0x04003ACA RID: 15050
179 public const ulong RANDOM_MASK = 281474976710655UL;
180
181 // Token: 0x04003ACB RID: 15051
183 private ulong <Seed>k__BackingField;
184 }
185}
class f__AnonymousType0<< Count > j__TPar
static FastRandom CreateWithRandomSeed()
Definition FastRandom.cs:51
static ulong NextSeed(ulong seed)
FastRandom WithModifier(int x, int y)
Definition FastRandom.cs:45
FastRandom WithModifier(ulong modifier)
Definition FastRandom.cs:39
int Next(int min, int max)