public static IEnumerable<CodeInstruction> Transpiler(MethodBase original, IEnumerable<CodeInstruction> instructions) { try { var codes = TranspilerUtils.ToCodeList(instructions); CheckNodeFlagsCommons.PatchCheckFlags(codes, original, occuranceCheckFlags: 1, counterGetSegment: 2); //DC CheckNodeFlagsCommons.PatchCheckFlags(codes, original, occuranceCheckFlags: 2, counterGetSegment: 2); //DC // CS has copy pasted code. CheckNodeFlagsCommons.PatchCheckFlags(codes, original, occuranceCheckFlags: 3, counterGetSegment: 1); //Junction CheckNodeFlagsCommons.PatchCheckFlags(codes, original, occuranceCheckFlags: 4, counterGetSegment: 0); //End // Bend node -> segment.Checkflags (does not use info flags.) CheckNodeFlagsCommons.PatchCheckFlags(codes, original, occuranceCheckFlags: 5, counterGetSegment: 0); //DC Bend Log.Info($"{ReflectionHelpers.ThisMethod} patched {original} successfully!"); return codes; } catch (Exception e) { Log.Error(e.ToString()); throw e; } }
public static IEnumerable<CodeInstruction> Transpiler(MethodBase original, IEnumerable<CodeInstruction> instructions) { try { var codes = TranspilerUtils.ToCodeList(instructions); CheckNodeFlagsCommons.PatchCheckFlags(codes, original, occuranceCheckFlags: 1, counterGetSegment: 2, true); //DC CheckNodeFlagsCommons.PatchCheckFlags(codes, original, occuranceCheckFlags: 2, counterGetSegment: 2, true); //DC // Unlike RenderInstance and CalculateGroupData, counterGetSegment for PopulateGroupData Junction is 2: CheckNodeFlagsCommons.PatchCheckFlags(codes, original, occuranceCheckFlags: 3, counterGetSegment: 2); //Junction CheckNodeFlagsCommons.PatchCheckFlags(codes, original, occuranceCheckFlags: 4, counterGetSegment: 0); // End // End - BEND -> segment.Checkflags (does not use info flags.) // Bend node -> segment.Checkflags (does not use info flags.) CheckNodeFlagsCommons.PatchCheckFlags(codes, original, occuranceCheckFlags: 5, counterGetSegment: 0, true); //DC Bend Log.Info($"{ReflectionHelpers.ThisMethod} patched {original} successfully!"); return codes; } catch (Exception e) { Log.Error(e.ToString()); throw e; } }