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
DropOneByOne.cs
Go to the documentation of this file.
1using System;
5
7{
8 // Token: 0x02000885 RID: 2181
10 {
11 // Token: 0x170007DC RID: 2012
12 // (get) Token: 0x0600442B RID: 17451 RVA: 0x0024F504 File Offset: 0x0024D704
13 // (set) Token: 0x0600442C RID: 17452 RVA: 0x0024F518 File Offset: 0x0024D718
15 {
17 get
18 {
19 return this.<ChainedRules>k__BackingField;
20 }
22 private set
23 {
25 }
26 }
27
28 // Token: 0x0600442D RID: 17453 RVA: 0x0024F52C File Offset: 0x0024D72C
30 {
31 int chanceNumerator = parameters.ChanceNumerator;
32 int chanceDenominator = parameters.ChanceDenominator;
34 }
35
36 // Token: 0x0600442E RID: 17454 RVA: 0x0024F554 File Offset: 0x0024D754
38 {
39 /*
40An exception occurred when decompiling this method (0600442E)
41
42ICSharpCode.Decompiler.DecompilerException: Error decompiling Terraria.GameContent.ItemDropRules.ItemDropAttemptResult Terraria.GameContent.ItemDropRules.DropOneByOne::TryDroppingItem(Terraria.GameContent.ItemDropRules.DropAttemptInfo)
43
44 ---> System.Exception: Basic block has to end with unconditional control flow.
45{
46 Block_0:
47 stloc:Player(var_1_08, ldfld:Player(DropAttemptInfo::player, ldloc:DropAttemptInfo[exp:valuetype Terraria.GameContent.ItemDropRules.DropAttemptInfo&](info)))
48 stloc:int32(var_2_14, ldfld:int32(Parameters::ChanceDenominator, ldfld:Parameters[exp:valuetype Terraria.GameContent.ItemDropRules.DropOneByOne/Parameters&](DropOneByOne::parameters, ldloc:DropOneByOne(this))))
49 stloc:int32(var_3_1C, call:int32(Player::RollLuck, ldloc:Player(var_1_08), ldloc:int32(var_2_14)))
50 stloc:int32(var_4_28, ldfld:int32(Parameters::MinimumItemDropsCount, ldfld:Parameters[exp:valuetype Terraria.GameContent.ItemDropRules.DropOneByOne/Parameters&](DropOneByOne::parameters, ldloc:DropOneByOne(this))))
51 stloc:int32(var_5_35, ldfld:int32(Parameters::MinimumStackPerChunkBase, ldfld:Parameters[exp:valuetype Terraria.GameContent.ItemDropRules.DropOneByOne/Parameters&](DropOneByOne::parameters, ldloc:DropOneByOne(this))))
52 stloc:UnifiedRandom(var_6_3D, ldfld:UnifiedRandom(DropAttemptInfo::rng, ldloc:DropAttemptInfo[exp:valuetype Terraria.GameContent.ItemDropRules.DropAttemptInfo&](info)))
53 stloc:int32(var_8_4A, ldfld:int32(Parameters::BonusMinDropsPerChunkPerPlayer, ldfld:Parameters[exp:valuetype Terraria.GameContent.ItemDropRules.DropOneByOne/Parameters&](DropOneByOne::parameters, ldloc:DropOneByOne(this))))
54 stloc:int32(var_9_57, ldfld:int32(Parameters::MinimumStackPerChunkBase, ldfld:Parameters[exp:valuetype Terraria.GameContent.ItemDropRules.DropOneByOne/Parameters&](DropOneByOne::parameters, ldloc:DropOneByOne(this))))
55 stloc:int32(var_10_64, ldfld:int32(Parameters::BonusMinDropsPerChunkPerPlayer, ldfld:Parameters[exp:valuetype Terraria.GameContent.ItemDropRules.DropOneByOne/Parameters&](DropOneByOne::parameters, ldloc:DropOneByOne(this))))
56 stloc:UnifiedRandom(var_11_6C, ldfld:UnifiedRandom(DropAttemptInfo::rng, ldloc:DropAttemptInfo[exp:valuetype Terraria.GameContent.ItemDropRules.DropAttemptInfo&](info)))
57 stloc:int32(var_12_74, ldfld:int32(DropOneByOne::itemId, ldloc:DropOneByOne(this)))
58}
59
60 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
61 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
62 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
63 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
64 --- End of inner exception stack trace ---
65 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
66 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
67*/;
68 }
69
70 // Token: 0x0600442F RID: 17455 RVA: 0x000021DB File Offset: 0x000003DB
72 {
73 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
74 }
75
76 // Token: 0x06004430 RID: 17456 RVA: 0x0024F5DC File Offset: 0x0024D7DC
78 {
79 return true;
80 }
81
82 // Token: 0x040081D6 RID: 33238
83 public int itemId;
84
85 // Token: 0x040081D7 RID: 33239
87
88 // Token: 0x040081D8 RID: 33240
91
92 // Token: 0x02000886 RID: 2182
93 public struct Parameters
94 {
95 // Token: 0x06004431 RID: 17457 RVA: 0x0024F5EC File Offset: 0x0024D7EC
96 public float GetPersonalDropRate()
97 {
98 /*
99An exception occurred when decompiling this method (06004431)
100
101ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Single Terraria.GameContent.ItemDropRules.DropOneByOne/Parameters::GetPersonalDropRate()
102
103 ---> System.Exception: Basic block has to end with unconditional control flow.
104{
105 Block_0:
106 stloc:int32(var_0_06, ldfld:int32(Parameters::ChanceNumerator, ldloc:valuetype Terraria.GameContent.ItemDropRules.DropOneByOne/Parameters&(this)))
107 stloc:int32(var_1_0D, ldfld:int32(Parameters::ChanceDenominator, ldloc:valuetype Terraria.GameContent.ItemDropRules.DropOneByOne/Parameters&(this)))
108}
109
110 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
111 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
112 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
113 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
114 --- End of inner exception stack trace ---
115 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
116 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
117*/;
118 }
119
120 // Token: 0x040081D9 RID: 33241
121 public int ChanceNumerator;
122
123 // Token: 0x040081DA RID: 33242
125
126 // Token: 0x040081DB RID: 33243
128
129 // Token: 0x040081DC RID: 33244
131
132 // Token: 0x040081DD RID: 33245
134
135 // Token: 0x040081DE RID: 33246
137
138 // Token: 0x040081DF RID: 33247
140
141 // Token: 0x040081E0 RID: 33248
143 }
144 }
145}
class f__AnonymousType0<< Count > j__TPar
DropOneByOne(int itemId, DropOneByOne.Parameters parameters)
ItemDropAttemptResult TryDroppingItem(DropAttemptInfo info)
List< IItemDropRuleChainAttempt >< ChainedRules > k__BackingField
List< IItemDropRuleChainAttempt > ChainedRules
void ReportDroprates(List< DropRateInfo > drops, DropRateInfoChainFeed ratesInfo)