private static void PatchFuncEnumBool(MaidChangeType tag, MethodDefinition target, MethodDefinition hook)
{
MethodReference hookRef = target.Module.Import(hook);
FieldReference maidFieldRef = target.Module.Import(target.DeclaringType.GetField("maid_"));
Instruction start = target.Body.Instructions[0];
ILProcessor il = target.Body.GetILProcessor();
il.InsertBefore(start, il.Create(OpCodes.Ldc_I4, (int) tag));
il.InsertBefore(start, il.Create(OpCodes.Ldarg_0));
il.InsertBefore(start, il.Create(OpCodes.Ldflda, maidFieldRef));
il.InsertBefore(start, il.Create(OpCodes.Ldarg_1));
il.InsertBefore(start, il.Create(OpCodes.Ldarg_2));
il.InsertBefore(start, il.Create(OpCodes.Call, hookRef));
}