using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Logging;
using Microsoft.CodeAnalysis;
using MonoMod.RuntimeDetour;
using RoR2;
using UnityEngine;
using UnityEngine.AddressableAssets;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("SoundFixer")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("SoundFixer")]
[assembly: AssemblyTitle("SoundFixer")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
[module: UnverifiableCode]
namespace Microsoft.CodeAnalysis
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace System.Runtime.CompilerServices
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
internal sealed class RefSafetyRulesAttribute : Attribute
{
public readonly int Version;
public RefSafetyRulesAttribute(int P_0)
{
Version = P_0;
}
}
}
namespace SoundFixer
{
[BepInPlugin("pseudopulse.SoundFixer", "SoundFixer", "1.0.0")]
public class Main : BaseUnityPlugin
{
public delegate void orig_UnloadBank(AkBank self, GameObject obj);
public const string PluginGUID = "pseudopulse.SoundFixer";
public const string PluginAuthor = "pseudopulse";
public const string PluginName = "SoundFixer";
public const string PluginVersion = "1.0.0";
public static ManualLogSource ModLogger;
public static string[] wwisePaths = new string[71]
{
"Wwise/055650B5-96A9-45AF-830B-64187ED3518B.asset", "Wwise/07769409-30BB-4088-9B1E-AA7213A00149.asset", "Wwise/07DA1E19-1C80-462D-B28E-D62601B8F49B.asset", "Wwise/0909BCAA-E33C-4BBD-BD88-779D95E05ABE.asset", "Wwise/0B452669-9C5F-4345-A9BA-6DCF4A2765B1.asset", "Wwise/0C0AC47D-89CA-492D-AB24-31D384AAA12D.asset", "Wwise/0EE3B06D-E3B3-4DB4-A1F4-D9C937660485.asset", "Wwise/12364C84-F36A-4AB9-8588-1A2AF5386BE0.asset", "Wwise/23E9504C-6CDA-464B-BF72-F2A787E33BE3.asset", "Wwise/27399508-C5F2-4096-A12E-97CF2CD1B57B.asset",
"Wwise/2E628CDA-8570-49AB-99B2-8CEC7DAE132B.asset", "Wwise/2E6A846E-45FD-4AE9-9A02-64AADAD130E6.asset", "Wwise/32355375-6BD6-4EEF-B0AE-6494DCC755D0.asset", "Wwise/32BFA22D-816E-476C-8032-9BA24B28A4F1.asset", "Wwise/3BC92C12-361A-41A6-92A4-2C4FA18AD1F0.asset", "Wwise/3C06638C-D538-419F-8128-92BCEF1CAC28.asset", "Wwise/3FABE5CC-B67C-46A3-A0C3-A3BAB05C51A4.asset", "Wwise/40474CC9-57BE-42A2-8D39-3EF42AC7E68A.asset", "Wwise/41B59E6B-581C-42BD-9BA9-F19B9E37E52B.asset", "Wwise/44B10011-FBC3-4CF7-932F-804B9F801079.asset",
"Wwise/453365B1-2806-4048-B120-8870A0D3EFE2.asset", "Wwise/4ECBA947-1F51-4E63-A595-00D0DE70E2E4.asset", "Wwise/5636433D-44A5-47C2-AAB0-22B4E33AAA88.asset", "Wwise/5E7822B3-0929-4E8D-BEFC-6EDD3AC1A4C0.asset", "Wwise/5EA35CA7-EDF2-4B27-87FB-E7C9DBA9EDDC.asset", "Wwise/6CF8274E-2830-45C3-831D-9A6385C9FD9D.asset", "Wwise/70251B3F-AA30-408F-923A-82310CEC2881.asset", "Wwise/72BEC02F-348B-4771-A6F1-A2A477809B58.asset", "Wwise/738E996C-E821-4C57-B241-2ADDDC9DCB30.asset", "Wwise/741435E3-0A4D-4603-94EF-4F5427DACCFB.asset",
"Wwise/7B278032-0D4C-4123-84B8-978FBA460C68.asset", "Wwise/7D273362-1126-4354-AE9F-95430C72F95E.asset", "Wwise/81D803C9-D953-4E93-B987-257B1ED7CCDB.asset", "Wwise/84916AC0-C142-4F9A-AD46-0FC95E1557B7.asset", "Wwise/84982A1A-8597-414E-A8F5-179B7E1ABA0B.asset", "Wwise/887A3B12-055B-4402-92A6-CD83925216E2.asset", "Wwise/88E33265-EA45-4136-A0CE-C7CC9EDA35BE.asset", "Wwise/8AC8A9CB-604F-43BC-A864-873DC735786F.asset", "Wwise/8FA838F7-8A94-408A-AF51-8AF38D526565.asset", "Wwise/92D47E5A-E97E-4005-8C0B-2105C01564AF.asset",
"Wwise/954BD5B1-8D3C-4B5C-882B-7BCEBA5C86E9.asset", "Wwise/98B5A81C-8B79-4574-A60F-918BF9708656.asset", "Wwise/9E7B57A1-342A-428D-816B-DB6BE48206A0.asset", "Wwise/9F2D3BE9-092B-4BC2-90FC-E74203BFE650.asset", "Wwise/A1158731-C2AE-416E-9A87-9AE3D7F7570D.asset", "Wwise/A43812C1-F0D4-4E09-9B74-9FB68B82406D.asset", "Wwise/A7A2FA07-3290-4D75-8819-CCA97EEE288D.asset", "Wwise/A7B36467-3773-4C3A-AD60-8D54EDD49648.asset", "Wwise/A8886A7E-30C5-4C69-BE28-AF7E78D300D0.asset", "Wwise/B270D7D4-62B1-4D60-8E9D-388F04FAB0A0.asset",
"Wwise/B3099A00-993A-4AD4-86FD-EBD151F09FB5.asset", "Wwise/B73E9197-EFD9-4993-91B7-280325775098.asset", "Wwise/BC3EA74D-E374-4DF5-A391-D72787459471.asset", "Wwise/BFB70DEC-8703-438F-8518-B3D0E318CADB.asset", "Wwise/C0265C0A-D806-46D5-8C03-233A1DE0DF9A.asset", "Wwise/C7AF581C-ED49-4C09-A111-94EF04B6D7EB.asset", "Wwise/CD00105A-AA3B-43F5-882A-C29812E886C8.asset", "Wwise/CE49984B-9B23-4D51-BFE7-8C2C92A59275.asset", "Wwise/CEB5BEB2-8F06-4CBF-9A35-0D4214F4AEF7.asset", "Wwise/D1631F3D-8BCF-4E1B-BD20-C9ACBF9E2C11.asset",
"Wwise/E2260D6E-A4E1-435D-90DF-F9357AEB1803.asset", "Wwise/E439D5AC-C0D3-4C2D-BF47-BD5A1D2E4405.asset", "Wwise/E7A652C0-86AC-43A1-8EEE-F9A03FFBE77C.asset", "Wwise/E925DE37-300D-46A0-A4A1-B3CE1EE6B43F.asset", "Wwise/EDDEA630-E136-4096-BE32-11DBCF56B0CE.asset", "Wwise/EE618B0A-7DD0-4C01-A0E2-CBF8FC6FC644.asset", "Wwise/F251A0D4-61C3-425E-BCCA-D4963DBCB927.asset", "Wwise/F4E88EE6-5FFD-449D-804F-359A5F109481.asset", "Wwise/F52B3389-11F9-4C22-94CD-BEEE203F56FD.asset", "Wwise/F54619A5-B2FF-4A5D-9FF0-AF79758BDD1D.asset",
"Wwise/F8D4A340-6896-4E58-A2A9-521AF61E2888.asset"
};
public static List<uint> banks = new List<uint>();
public static GameObject BankHolder;
public void Awake()
{
//IL_0056: Unknown result type (might be due to invalid IL or missing references)
//IL_005c: Expected O, but got Unknown
ModLogger = ((BaseUnityPlugin)this).Logger;
RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, new Action(OnLoad));
Hook val = new Hook((MethodBase)typeof(AkBank).GetMethod("UnloadBank", (BindingFlags)(-1)), typeof(Main).GetMethod("DenyUnload", (BindingFlags)(-1)));
}
private void OnLoad()
{
//IL_000f: Unknown result type (might be due to invalid IL or missing references)
//IL_0014: Unknown result type (might be due to invalid IL or missing references)
for (int i = 0; i < wwisePaths.Length; i++)
{
string text = wwisePaths[i];
WwiseBankReference val = Addressables.LoadAssetAsync<WwiseBankReference>((object)text).WaitForCompletion();
banks.Add(((WwiseObjectReference)val).Id);
AkBankManager.LoadBank(((WwiseObjectReference)val).objectName, false, false);
}
}
public static void DenyUnload(orig_UnloadBank orig, AkBank self, GameObject obj)
{
if (!banks.Contains(((WwiseObjectReference)self.data.WwiseObjectReference).Id))
{
orig(self, obj);
}
}
}
}