static AssetBundle MM_Detour(byte[] binary, uint crc) { AssetBundle result; var parameters = new AssetBundleLoadingParameters(binary, null, crc, 0, AssetBundleLoadType.LoadFromMemory); var context = ResourceRedirection.Hook_AssetBundleLoading_Prefix(parameters, out result); var p = context.Parameters; if (!context.SkipOriginalCall) { result = _original(p.Binary, p.Crc); } if (!context.SkipAllPostfixes) { ResourceRedirection.Hook_AssetBundleLoaded_Postfix(parameters, ref result); } if (result != null && p.Path != null) // should only be null if loaded through non-hooked methods { var ext = result.GetOrCreateExtensionData <AssetBundleExtensionData>(); ext.Path = p.Path; } return(result); }
static AssetBundleCreateRequest MM_Detour(string path, uint crc, ulong offset) { AssetBundleCreateRequest result; var parameters = new AssetBundleLoadingParameters(null, path, crc, offset, AssetBundleLoadType.LoadFromFile); var context = ResourceRedirection.Hook_AssetBundleLoading_Prefix(parameters, out result); if (!context.SkipOriginalCall) { var p = context.Parameters; result = _original(p.Path, p.Crc, p.Offset); } ResourceRedirection.Hook_AssetBundleLoading_Postfix(context, result); return(result); }
static AssetBundleCreateRequest MM_Detour(byte[] binary, uint crc) { AssetBundleCreateRequest result; var parameters = new AssetBundleLoadingParameters(binary, null, crc, 0, AssetBundleLoadType.LoadFromMemory); var context = ResourceRedirection.Hook_AssetBundleLoading_Prefix(parameters, out result); if (!context.SkipOriginalCall) { var p = context.Parameters; result = _original(p.Binary, p.Crc); } ResourceRedirection.Hook_AssetBundleLoading_Postfix(context, result); return(result); }
static AssetBundleCreateRequest MM_Detour(Stream stream, uint crc, uint managedReadBufferSize) { AssetBundleCreateRequest result; var parameters = new AssetBundleLoadingParameters(null, null, crc, 0, stream, managedReadBufferSize, AssetBundleLoadType.LoadFromMemory); var context = ResourceRedirection.Hook_AssetBundleLoading_Prefix(parameters, out result); if (!context.SkipOriginalCall) { var p = context.Parameters; result = _original(p.Stream, p.Crc, p.ManagedReadBufferSize); } ResourceRedirection.Hook_AssetBundleLoading_Postfix(context, result); return(result); }