diff --git a/WuchangFF/dllmain.cpp b/WuchangFF/dllmain.cpp index 45a8733..2f2446d 100644 --- a/WuchangFF/dllmain.cpp +++ b/WuchangFF/dllmain.cpp @@ -236,8 +236,6 @@ static void ProcessEvent() { } if (object && func) { std::string funcName = func->GetName(); - if (funcName == "Construct") TrackWidgetConstruct((UUserWidget*)object); - if (funcName == "Destruct") TrackWidgetDestruct((UUserWidget*)object); if (funcName == "Construct" || funcName == "Destruct") { // Right HUD elements auto HandleWidget = [&](auto* typedWidget, auto*& gWidgetPtr) { // Lambda to initialize pointers on Construct and nullify them on Destruct @@ -264,7 +262,6 @@ static void ProcessEvent() { auto* HUDWidget = static_cast(object); if (funcName == "Construct") { g_UIScale = SDK::UWidgetLayoutLibrary::GetViewportScale(HUDWidget); - //SetLogger(logger); if (HUDWidget->WB_PlayerState) playerState = reinterpret_cast(HUDWidget->WB_PlayerState); if (HUDWidget->WB_KeyTipPanel_47) tipPanel = reinterpret_cast(HUDWidget->WB_KeyTipPanel_47); if (HUDWidget->WB_ActiveSlots) activeSlots = reinterpret_cast(HUDWidget->WB_ActiveSlots); @@ -342,22 +339,21 @@ static void UltraWideFixEnabled(GameFixes fix) { } static void CameraDistanceFixEnabled() { - if (g_fix_enabled && g_Camera_fix_enabled && CameraDistanceaddress) { + if (!CameraDistanceaddress) return; + if (g_fix_enabled && g_Camera_fix_enabled) { if (!CameraHook) { // Hook only once CameraHook = safetyhook::create_mid(CameraDistanceaddress, [](SafetyHookContext& ctx) { g_CameraIn = ctx.xmm0.f32[0]; - ctx.xmm0.f32[0] *= g_CameraMultiplier; + ctx.xmm0.f32[0] *= g_fix_enabled && g_Camera_fix_enabled ? g_CameraMultiplier : 1.f; g_CameraOut = ctx.xmm0.f32[0]; }); } else CameraHook.enable(); - logger->info("Camera distance fix enabled"); - } - if (!(g_fix_enabled && g_Camera_fix_enabled) && CameraDistanceaddress) { - if (CameraHook) CameraHook.disable(); - logger->info("Camera distance fix disabled"); } + else if (CameraHook) CameraHook.disable(); + + logger->info("Camera distance fix {}", g_fix_enabled && g_Camera_fix_enabled ? "enabled" : "disabled"); } // -- Cheats -- @@ -435,47 +431,39 @@ static void EnableCheats(Cheat cheat) { // Memory patch fixes static void DOFFixEnabled() { - if (g_fix_enabled && g_DOF_fix_enabled && DOFaddress) { + if (!DOFaddress) return; + if (g_fix_enabled && g_DOF_fix_enabled) Memory::PatchBytes(DOFaddress + 0x3, "\x31\xFF\x90", 3); // xor edi,edi r.DepthOfFieldQuality = 0 - logger->info("Depth of field fix enabled"); - } - if (!(g_fix_enabled && g_DOF_fix_enabled) && DOFaddress) { - Memory::RestoreBytes(DOFaddress + 0x3); - logger->info("Depth of field fix disabled"); - } + else Memory::RestoreBytes(DOFaddress + 0x3); + + logger->info("Depth of field fix {}", g_fix_enabled && g_DOF_fix_enabled ? "enabled" : "disabled"); } static void CAFixEnabled() { - if (g_fix_enabled && g_CA_fix_enabled && CAaddress) { + if (!CAaddress) return; + if (g_fix_enabled && g_CA_fix_enabled) Memory::PatchBytes(CAaddress, "\x90\x90", 2); // NOP x 2 r.SceneColorFringeQuality = 0 - logger->info("Chromatics aberrations fix enabled"); - } - if (!(g_fix_enabled && g_CA_fix_enabled) && CAaddress) { - Memory::RestoreBytes(CAaddress); - logger->info("Chromatics aberrations fix disabled"); - } + else Memory::RestoreBytes(CAaddress); + + logger->info("Chromatics aberrations fix {}", g_fix_enabled && g_CA_fix_enabled ? "enabled" : "disabled"); } static void VignettingFixEnabled() { - if (g_fix_enabled && g_Vignetting_fix_enabled && Vignettingaddress) { + if (!Vignettingaddress) return; + if (g_fix_enabled && g_Vignetting_fix_enabled) Memory::PatchBytes(Vignettingaddress, "\x31\xC9", 2); // xor ecx,ecx r.Tonemapper.Quality=0 - logger->info("Vignetting fix enabled"); - } - if (!(g_fix_enabled && g_Vignetting_fix_enabled) && Vignettingaddress) { - Memory::RestoreBytes(Vignettingaddress); - logger->info("Vignetting fix disabled"); - } + else Memory::RestoreBytes(Vignettingaddress); + + logger->info("Vignetting fix {}", g_fix_enabled && g_Vignetting_fix_enabled ? "enabled" : "disabled"); } static void FogFixEnabled() { - if (g_fix_enabled && g_Fog_fix_enabled && Fogaddress) { + if (!Fogaddress) return; + if (g_fix_enabled && g_Fog_fix_enabled) Memory::PatchBytes(Fogaddress, "\xEB", 1); // jmp -> r.Fog 0 - logger->info("Fog fix enabled"); - } - if (!(g_fix_enabled && g_Fog_fix_enabled) && Fogaddress) { - Memory::RestoreBytes(Fogaddress); - logger->info("Fog fix disabled"); - } + else Memory::RestoreBytes(Fogaddress); + + logger->info("Fog fix {}", g_fix_enabled && g_Fog_fix_enabled ? "enabled" : "disabled"); } // UE Console creation static void EnableConsole() {