diff --git a/src/dllmain.cpp b/src/dllmain.cpp index 4a318dad..e3b1c325 100644 --- a/src/dllmain.cpp +++ b/src/dllmain.cpp @@ -3,11 +3,6 @@ #include "CET.h" #include "Options.h" -#include "RED4ext/Api/EMainReason.hpp" -#include "RED4ext/Api/PluginHandle.hpp" -#include "RED4ext/Api/Runtime.hpp" -#include "RED4ext/Api/Sdk.hpp" -#include "RED4ext/Api/Version.hpp" #include "scripting/GameHooks.h" @@ -21,7 +16,7 @@ static HANDLE s_modInstanceMutex = nullptr; using namespace std::chrono_literals; -static bool Initialize() +static void Initialize() { try { @@ -34,12 +29,12 @@ static bool Initialize() // single instance check s_modInstanceMutex = CreateMutex(nullptr, TRUE, TEXT("Cyber Engine Tweaks Module Instance")); if (s_modInstanceMutex == nullptr) - return false; + return; // initialize patches - //if (options.Patches.SkipStartMenu) - // StartScreenPatch(); + // if (options.Patches.SkipStartMenu) + // StartScreenPatch(); if (options.Patches.DisableIntroMovies) DisableIntroMoviesPatch(); @@ -50,17 +45,13 @@ static bool Initialize() if (options.Patches.DisableBoundaryTeleport) DisableBoundaryTeleportPatch(); - OptionsInitHook(); MH_EnableHook(nullptr); } catch (...) { - return false; } - - return true; } static void Shutdown() @@ -87,45 +78,16 @@ static void Shutdown() } } -RED4EXT_C_EXPORT bool RED4EXT_CALL Main(RED4ext::PluginHandle aHandle, RED4ext::EMainReason aReason, const RED4ext::Sdk* aSdk) +BOOL APIENTRY DllMain(HMODULE mod, DWORD ul_reason_for_call, LPVOID) { - RED4EXT_UNUSED_PARAMETER(aHandle); - RED4EXT_UNUSED_PARAMETER(aSdk); + DisableThreadLibraryCalls(mod); - switch (aReason) - { - case RED4ext::EMainReason::Load: - { - return Initialize(); - break; - } - case RED4ext::EMainReason::Unload: + switch (ul_reason_for_call) { - Shutdown(); - break; - } + case DLL_PROCESS_ATTACH: Initialize(); break; + case DLL_PROCESS_DETACH: Shutdown(); break; + default: break; } - return true; -} - -RED4EXT_C_EXPORT void RED4EXT_CALL Query(RED4ext::PluginInfo* aInfo) -{ - aInfo->name = L"Cyber Engine Tweaks"; - aInfo->author = L"Yamashi and Friends"; - - std::istringstream oss(CET_BUILD_COMMIT); - - char buffer; - uint32_t major, minor, patch; - oss >> buffer >> major >> buffer >> minor >> buffer >> patch; - - aInfo->version = RED4EXT_SEMVER(major, minor, patch); - aInfo->runtime = RED4EXT_RUNTIME_INDEPENDENT; - aInfo->sdk = RED4EXT_SDK_LATEST; -} - -RED4EXT_C_EXPORT uint32_t RED4EXT_CALL Supports() -{ - return RED4EXT_API_VERSION_LATEST; + return TRUE; } diff --git a/src/overlay/Overlay.cpp b/src/overlay/Overlay.cpp index 01734b65..a72fdd64 100644 --- a/src/overlay/Overlay.cpp +++ b/src/overlay/Overlay.cpp @@ -272,7 +272,7 @@ Overlay::Overlay(VKBindings& aBindings, Options& aOptions, PersistentState& aPer { Hook(); - GameMainThread::Get().AddInitializationTask( + GameMainThread::Get().AddBaseInitializationTask( [this] { PostInitialize(); diff --git a/src/reverse/Addresses.h b/src/reverse/Addresses.h index ac68dff1..648f00f4 100644 --- a/src/reverse/Addresses.h +++ b/src/reverse/Addresses.h @@ -5,7 +5,7 @@ namespace CyberEngineTweaks::AddressHashes { #pragma region CBaseInitializationState -constexpr uint32_t CBaseInitializationState_OnTick = 2529693960UL; +constexpr uint32_t CBaseInitializationState_OnTick = 4233370276UL; #pragma endregion #pragma region CGame diff --git a/vendor/RED4ext.SDK b/vendor/RED4ext.SDK index 2554a968..97c96d21 160000 --- a/vendor/RED4ext.SDK +++ b/vendor/RED4ext.SDK @@ -1 +1 @@ -Subproject commit 2554a96803b083e13383158e0cf3df45c8a3a279 +Subproject commit 97c96d2199445a6c4b4c904938e2bc8d84d51e03 diff --git a/vendor/asiloader/version.dll b/vendor/asiloader/version.dll index 3286f2b1..2fd77c93 100644 Binary files a/vendor/asiloader/version.dll and b/vendor/asiloader/version.dll differ diff --git a/xmake.lua b/xmake.lua index 467a2713..c8dedfe5 100644 --- a/xmake.lua +++ b/xmake.lua @@ -4,10 +4,9 @@ set_languages("cxx20") set_arch("x64") add_rules("mode.debug","mode.releasedbg", "mode.release") ---add_rules("plugin.vsxmake.autoupdate") add_rules("c.unity_build") -add_cxflags("/bigobj", "/MP", "/EHsc") +add_cxflags("/bigobj", "/MP") add_defines("RED4EXT_STATIC_LIB", "UNICODE", "_UNICODE", "_CRT_SECURE_NO_WARNINGS") local vsRuntime = "MD" @@ -66,10 +65,10 @@ target("RED4ext.SDK") on_install(function() end) target("cyber_engine_tweaks") - add_defines("WIN32_LEAN_AND_MEAN", "_SILENCE_STDEXT_ARR_ITERS_DEPRECATION_WARNING", "NOMINMAX", "WINVER=0x0601", "SOL_ALL_SAFETIES_ON", "SOL_LUAJIT=1", "SOL_EXCEPTIONS_SAFE_PROPAGATION", "SPDLOG_WCHAR_TO_UTF8_SUPPORT", "SPDLOG_WCHAR_FILENAMES", "SPDLOG_WCHAR_SUPPORT", "IMGUI_USER_CONFIG=\""..imguiUserConfig.."\"") -- WINVER=0x0601 == Windows 7xmake + add_defines("WIN32_LEAN_AND_MEAN", "NOMINMAX", "WINVER=0x0601", "SOL_ALL_SAFETIES_ON", "SOL_LUAJIT=1", "SOL_EXCEPTIONS_SAFE_PROPAGATION", "SPDLOG_WCHAR_TO_UTF8_SUPPORT", "SPDLOG_WCHAR_FILENAMES", "SPDLOG_WCHAR_SUPPORT", "IMGUI_USER_CONFIG=\""..imguiUserConfig.."\"") -- WINVER=0x0601 == Windows 7xmake set_pcxxheader("src/stdafx.h") set_kind("shared") - set_filename("cyber_engine_tweaks.dll") + set_filename("cyber_engine_tweaks.asi") add_files("src/**.cpp") add_headerfiles("src/**.h", "build/CETVersion.h") add_includedirs("src/", "build/") @@ -83,7 +82,7 @@ target("cyber_engine_tweaks") os.rm("package/*") - os.mkdir("package/red4ext/plugins/cyber_engine_tweaks/tweakdb") + os.mkdir("package/bin/x64/plugins/cyber_engine_tweaks/tweakdb") http.download("https://github.com/WolvenKit/WolvenKit/raw/main/WolvenKit.Common/Resources/usedhashes.kark", "package/bin/x64/plugins/cyber_engine_tweaks/tweakdb/usedhashes.kark") http.download("https://github.com/WolvenKit/WolvenKit/raw/main/WolvenKit.Common/Resources/tweakdbstr.kark", "package/bin/x64/plugins/cyber_engine_tweaks/tweakdb/tweakdbstr.kark") @@ -93,10 +92,12 @@ target("cyber_engine_tweaks") os.mkdir("package/bin/x64/plugins/cyber_engine_tweaks/fonts") os.cp("fonts/*", "package/bin/x64/plugins/cyber_engine_tweaks/fonts") - os.cp("LICENSE", "package/red4ext/plugins/cyber_engine_tweaks/") + os.cp("vendor/asiloader/*", "package/bin/x64/") + + os.cp("LICENSE", "package/bin/x64/") os.cp("ThirdParty_LICENSES", "package/bin/x64/plugins/cyber_engine_tweaks/ThirdParty_LICENSES") - os.cp(target:targetfile(), "package/red4ext/plugins/cyber_engine_tweaks/") + os.cp(target:targetfile(), "package/bin/x64/plugins/") end) on_install(function(target) cprint("${green bright}Installing Cyber Engine Tweaks ..") @@ -108,14 +109,14 @@ target("cyber_engine_tweaks") target("fake_cyber_engine_tweaks") set_kind("shared") set_group("yawn") - set_filename("cyber_engine_tweaks.asi") + set_filename("cyber_engine_tweaks.dll") add_files("yawn/dllmain.cpp") on_package(function(target) - os.cp(target:targetfile(), "package/bin/x64/plugins/") + os.cp(target:targetfile(), "package/red4ext/plugins/cyber_engine_tweaks/") end) option("installpath") set_default("installpath") set_showmenu(true) - set_description("Set the path to install cyber_engine_tweaks.asi to.", "e.g.", format("\t-xmake f --installpath=%s", [["C:\Program Files (x86)\Steam\steamapps\common\Cyberpunk 2077\bin\x64\plugins"]])) + set_description("Set the path to install cyber_engine_tweaks.asi to.", "e.g.", format("\t-xmake f --installpath=%s", [["C:\Program Files (x86)\Steam\steamapps\common\Cyberpunk 2077\bin\x64\plugins"]])) \ No newline at end of file