mirror of
https://github.com/sp-tarkov/modules.git
synced 2025-02-13 09:50:43 -05:00
Should make the BTR work again. I've also switched named methods to use "nameof" where it made sense. And removed an unnecessary method call and fixed an incorrect async on one of my patches Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com> Reviewed-on: SPT-AKI/Modules#59 Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com> Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
36 lines
1.1 KiB
C#
36 lines
1.1 KiB
C#
using Aki.Reflection.Patching;
|
|
using Comfort.Common;
|
|
using EFT;
|
|
using HarmonyLib;
|
|
using System.Reflection;
|
|
|
|
namespace Aki.Debugging.BTR.Patches
|
|
{
|
|
// The BTRManager MapPathsConfiguration loading depends on the game state being set to Starting
|
|
// so set it to Starting while the method is running, then reset it afterwards
|
|
public class BTRPathLoadPatch : ModulePatch
|
|
{
|
|
private static PropertyInfo _statusProperty;
|
|
private static GameStatus originalStatus;
|
|
protected override MethodBase GetTargetMethod()
|
|
{
|
|
_statusProperty = AccessTools.Property(typeof(AbstractGame), nameof(AbstractGame.Status));
|
|
|
|
return AccessTools.Method(typeof(BTRControllerClass), "method_1");
|
|
}
|
|
|
|
[PatchPrefix]
|
|
public static void PatchPrefix()
|
|
{
|
|
originalStatus = Singleton<AbstractGame>.Instance.Status;
|
|
_statusProperty.SetValue(Singleton<AbstractGame>.Instance, GameStatus.Starting);
|
|
}
|
|
|
|
[PatchPostfix]
|
|
public static void PatchPostfix()
|
|
{
|
|
_statusProperty.SetValue(Singleton<AbstractGame>.Instance, originalStatus);
|
|
}
|
|
}
|
|
}
|