using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using HarmonyLib;
using UnityEngine;
using UnityEngine.Rendering.PostProcessing;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("REPO_HD")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("REPO_HD")]
[assembly: AssemblyCopyright("Copyright © BlueAmulet 2025")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("a9533aec-df57-4f5d-80ac-8f782ee8883c")]
[assembly: AssemblyFileVersion("1.0.0")]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace REPO_HD
{
[BepInPlugin("BlueAmulet.REPO_HD", "REPO_HD", "1.0.0")]
public class REPO_HD : BaseUnityPlugin
{
internal const string Name = "REPO_HD";
internal const string Author = "BlueAmulet";
internal const string ID = "BlueAmulet.REPO_HD";
internal const string Version = "1.0.0";
internal static ManualLogSource Log;
public void Awake()
{
//IL_001b: Unknown result type (might be due to invalid IL or missing references)
//IL_0030: Unknown result type (might be due to invalid IL or missing references)
Log = ((BaseUnityPlugin)this).Logger;
Settings.InitConfig(((BaseUnityPlugin)this).Config);
Harmony val = new Harmony("BlueAmulet.REPO_HD");
((BaseUnityPlugin)this).Logger.LogInfo((object)"Applying Harmony patches");
val.PatchAll(Assembly.GetExecutingAssembly());
int num = 0;
foreach (MethodBase patchedMethod in val.GetPatchedMethods())
{
((BaseUnityPlugin)this).Logger.LogInfo((object)("Patched " + patchedMethod.DeclaringType.Name + "." + patchedMethod.Name));
num++;
}
((BaseUnityPlugin)this).Logger.LogInfo((object)(num + " patches applied"));
}
}
internal static class Settings
{
internal static ConfigEntry<bool> antialiasing;
public static void InitConfig(ConfigFile config)
{
antialiasing = config.Bind<bool>("REPO_HD", "AntiAliasing", true, "Apply TAA+SMAA antialiasing to the game");
}
}
}
namespace REPO_HD.Patches
{
[HarmonyPatch(typeof(GraphicsManager))]
internal static class GraphicsPatch
{
[HarmonyPrefix]
[HarmonyPatch("UpdateRenderSize")]
public static bool Prefix()
{
RenderTextureMain.instance.textureWidthOriginal = Screen.width;
RenderTextureMain.instance.textureHeightOriginal = Screen.height;
RenderTextureMain.instance.ResetResolution();
return false;
}
}
[HarmonyPatch(typeof(RenderTextureMain))]
internal static class RenderTexturePatch
{
[HarmonyPostfix]
[HarmonyPatch("Start")]
private static void Postfix(ref RenderTextureMain __instance)
{
//IL_0052: Unknown result type (might be due to invalid IL or missing references)
//IL_0034: Unknown result type (might be due to invalid IL or missing references)
if (!Settings.antialiasing.Value)
{
return;
}
for (int i = 0; i < __instance.cameras.Count; i++)
{
Camera val = __instance.cameras[i];
PostProcessLayer component = ((Component)val).GetComponent<PostProcessLayer>();
if ((Object)(object)component != (Object)null)
{
if (i == 0)
{
component.antialiasingMode = (Antialiasing)3;
REPO_HD.Log.LogInfo((object)$"Enabled TAA on {val}");
}
else
{
component.antialiasingMode = (Antialiasing)2;
REPO_HD.Log.LogInfo((object)$"Enabled SMAA on {val}");
}
}
}
}
}
}