SHA256
Resolve Audio Clips From Level Files
This commit is contained in:
1 parent
35606d6e58
commit
7ea2d8fe3f
5 files changed
+149
-7
No files matched your search
@@ -1,11 +1,31 @@
|
||||
using System;
|
||||
using ADOFAIRenderer.Core;
|
||||
using ADOFAIRenderer.Util.Audio.Clip;
|
||||
using HarmonyLib;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Audio;
|
||||
|
||||
namespace ADOFAIRenderer.Patch.Engine;
|
||||
|
||||
/// <summary>
|
||||
/// Records the file path of each external clip the game loads (always active, also outside rendering,
|
||||
/// because levels load their song and PlaySound files before a render starts).
|
||||
/// FindOrLoadAudioClipExternal returns the clip already in audioLib when its key exists, so the path is recorded
|
||||
/// only when the key is missing and the file is about to be loaded.
|
||||
/// </summary>
|
||||
[HarmonyPatch(typeof(AudioManager), nameof(AudioManager.FindOrLoadAudioClipExternal))]
|
||||
public static class AudioManagerFindOrLoadAudioClipExternalPatch
|
||||
{
|
||||
[HarmonyPrefix]
|
||||
// ReSharper disable once InconsistentNaming
|
||||
public static void Prefix(AudioManager __instance, string path)
|
||||
{
|
||||
if (string.IsNullOrEmpty(path)) return;
|
||||
if (__instance.audioLib.ContainsKey(AudioClipPaths.KeyOf(path))) return;
|
||||
AudioClipPaths.Record(path);
|
||||
}
|
||||
}
|
||||
|
||||
[HarmonyPatch(typeof(AudioManager), "_Play")]
|
||||
public static class AudioManagerPlayPatch
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user