Fixed a bug where camera distance would not be triggered

This commit is contained in:
2025-09-09 07:29:18 +02:00
parent e8bb910427
commit 71ecb7c1c4

View File

@@ -39,7 +39,7 @@ static bool g_Vignetting_fix_enabled = false;
static bool g_Fog_fix_enabled = false;
static bool g_cam_distance_fix_enabled = false;
static int g_AdditionalFOVValue = 0;
static float g_cameraDistanceMultiplier = 0.f;
static float g_cameraDistanceMultiplier = 1.f;
// Shared values
static float g_FOV_In = 0;
@@ -168,6 +168,11 @@ extern "C" __declspec(dllexport) void SetFixEnabled(bool enabled, bool init)
if (CameraDistanceaddress == nullptr) {
constexpr auto CamDistanceStringObfuscated = make_obfuscated<0x4A>("E8 ?? ?? ?? ?? F2 0F ?? ?? ?? ?? 48 8D ?? ?? F3 0F ?? ?? ?? ?? ?? ?? 48 8D ?? ?? ?? ?? ?? 0F");
CameraDistanceaddress = Memory::AOBScan(gameExecutable, CamDistanceStringObfuscated.decrypt(), PAGE_EXECUTE_READ);
//"Cronos-Win64-Shipping.exe" + 55E908F - F2 0F 10 44 24 68 - movsd xmm0, [rsp + 68]
//"Cronos-Win64-Shipping.exe" + 55E9095 - 48 8D 55 D8 - lea rdx, [rbp - 28]
//"Cronos-Win64-Shipping.exe" + 55E9099 - F3 0F 10 8F 30 02 00 00 - movss xmm1, [rdi + 00000230]
//"Cronos-Win64-Shipping.exe" + 55E90A1 - 48 8D 8D B0 02 00 00 - lea rcx, [rbp + 000002B0]
//"Cronos-Win64-Shipping.exe" + 55E90A8 - 0F5A C9 - cvtps2pd xmm1, xmm1
if (!CameraDistanceaddress)
logger->warn("Camera distance signature not found. Maybe your game has been updated and is no more compatible with this plugin.");
@@ -177,7 +182,7 @@ extern "C" __declspec(dllexport) void SetFixEnabled(bool enabled, bool init)
}
}
if (FOVaddress && Aspectaddress && DOFaddress && Vignettingaddress && Fogaddress) {
if (FOVaddress && Aspectaddress && DOFaddress && Vignettingaddress && Fogaddress && CameraDistanceaddress) {
logger->info("All AOB signatures found. Ready to patch...");
AOBScanDone = true;
}
@@ -191,7 +196,7 @@ extern "C" __declspec(dllexport) void SetFixEnabled(bool enabled, bool init)
if (DOFaddress) DOFFixEnabled(g_DOF_fix_enabled);
if (Vignettingaddress) VignettingFixEnabled(g_Vignetting_fix_enabled);
if (Fogaddress) FogFixEnabled(g_Fog_fix_enabled);
if (CameraDistanceaddress) CameraDistanceFixEnabled(g_cameraDistanceMultiplier);
if (CameraDistanceaddress) CameraDistanceFixEnabled(g_cam_distance_fix_enabled);
//ProcessEvent();
}
else {