Example #1
0
        public static void FixUILayoutHeightIL(ILContext il)
        {
            Console.WriteLine(il.ToString());

            ILCursor c = new ILCursor(il);

            c.GotoNext(MoveType.After,
                       x => x.MatchStfld(typeof(Program).GetField("uiLayoutHeight")),
                       x => x.MatchLdarg(0),
                       x => x.MatchLdfld(typeof(Program).GetField("uiLayoutHeight")),
                       x => x.MatchLdcI4(0x438)
                       );
            c.Goto(c.Prev);
            //Console.WriteLine(c.ToString());

            //c.GotoPrev();
            //c.Remove();
            c.Remove();
            c.Emit(OpCodes.Ldc_I4, 5000);

            c.GotoNext(MoveType.After,
                       x => x.MatchLdarg(0),
                       x => x.MatchLdcI4(0x438)
                       );
            c.Goto(c.Prev);
            //Console.WriteLine(c.ToString());
            c.Remove();
            c.Emit(OpCodes.Ldc_I4, 5000);


            //Console.WriteLine(il.ToString());
        }
        private static void VirtualJoystickOnCheckBinds(ILContext il)
        {
            ILCursor ilCursor = new ILCursor(il);

            LogUtil.Log(il.ToString());
            while (ilCursor.TryGotoNext(
                       ins => ins.MatchLdcR4(0.05f)
                       ))
            {
                ilCursor.Remove().Emit(OpCodes.Ldc_R4, 0f);
            }
        }