Refactor ldc_i4 to ldfld

This commit is contained in:
2024-08-22 11:22:49 +02:00
parent a5e5653add
commit ee2c825d04

View File

@@ -67,8 +67,12 @@ namespace CykaMod {
for (int i = 1; i < codes.Count; i++) {
if (previous.opcode == OpCodes.Ldsfld && codes[i].opcode == OpCodes.Callvirt) {
Console.WriteLine("Found Ldsfld and Callvirt");
codes.Insert(i + 1, new CodeInstruction(OpCodes.Ldc_I4, Main.playersAdded.Value));
codes.Insert(i + 2, new CodeInstruction(OpCodes.Add));
codes.Insert(i + 1,
new CodeInstruction(OpCodes.Ldsfld, AccessTools.Field(typeof(Main), "playersAdded")));
codes.Insert(i + 2,
new CodeInstruction(OpCodes.Call,
AccessTools.PropertyGetter(typeof(Main).GetField("playersAdded").FieldType, "Value")));
codes.Insert(i + 3, new CodeInstruction(OpCodes.Add));
}
previous = codes[i];