maint: disable some Steam integration features

This commit is contained in:
Jack Back 2024-02-15 11:00:16 +01:00
parent c0b5c769e2
commit 94a290358e
3 changed files with 24 additions and 9 deletions

View File

@ -77,6 +77,11 @@ newoption {
description = "Enable development builds of the client." description = "Enable development builds of the client."
} }
newoption {
trigger = "steam-overlay",
description = "Enable the Steam Overlay."
}
newaction { newaction {
trigger = "version", trigger = "version",
description = "Returns the version string for the current commit of the source code.", description = "Returns the version string for the current commit of the source code.",
@ -241,7 +246,11 @@ warnings "Extra"
characterset "ASCII" characterset "ASCII"
if _OPTIONS["dev-build"] then if _OPTIONS["dev-build"] then
defines {"DEV_BUILD"} defines "DEV_BUILD"
end
if _OPTIONS["steam-overlay"] then
defines "LOAD_STEAM_OVERLAY"
end end
if os.getenv("CI") then if os.getenv("CI") then

View File

@ -72,14 +72,18 @@ namespace steam_proxy
} }
} }
#ifdef LOAD_STEAM_OVERLAY
[[nodiscard]] const utils::nt::library& get_overlay_module() const [[nodiscard]] const utils::nt::library& get_overlay_module() const
{ {
return steam_overlay_module_; return steam_overlay_module_;
} }
#endif
private: private:
utils::nt::library steam_client_module_{}; utils::nt::library steam_client_module_{};
#ifdef LOAD_STEAM_OVERLAY
utils::nt::library steam_overlay_module_{}; utils::nt::library steam_overlay_module_{};
#endif
steam::interface client_engine_{}; steam::interface client_engine_{};
steam::interface client_user_{}; steam::interface client_user_{};
@ -109,7 +113,9 @@ namespace steam_proxy
utils::nt::library::load(steam_path / "tier0_s64.dll"); utils::nt::library::load(steam_path / "tier0_s64.dll");
utils::nt::library::load(steam_path / "vstdlib_s64.dll"); utils::nt::library::load(steam_path / "vstdlib_s64.dll");
#ifdef LOAD_STEAM_OVERLAY
this->steam_overlay_module_ = utils::nt::library::load(steam_path / "gameoverlayrenderer64.dll"); this->steam_overlay_module_ = utils::nt::library::load(steam_path / "gameoverlayrenderer64.dll");
#endif
this->steam_client_module_ = utils::nt::library::load(steam_path / "steamclient64.dll"); this->steam_client_module_ = utils::nt::library::load(steam_path / "steamclient64.dll");
if (!this->steam_client_module_) return; if (!this->steam_client_module_) return;

View File

@ -82,6 +82,9 @@ namespace steam
result_handlers_[result.call]->run(result.data, false, result.call); result_handlers_[result.call]->run(result.data, false, result.call);
} }
// Reportedly this can cause issues and crashes. Considering the great lack of any Steam features in this client disabling this
// shouldn't be a problem
#if 0
for (const auto& callback : callback_list_) for (const auto& callback : callback_list_)
{ {
if (callback && callback->get_i_callback() == result.type) if (callback && callback->get_i_callback() == result.type)
@ -89,10 +92,11 @@ namespace steam
callback->run(result.data, false, 0); callback->run(result.data, false, 0);
} }
} }
#endif
if (result.data) if (result.data)
{ {
free(result.data); std::free(result.data);
} }
} }
@ -149,14 +153,12 @@ namespace steam
} }
HKEY reg_key; HKEY reg_key;
if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, "Software\\WOW6432Node\\Valve\\Steam", 0, KEY_QUERY_VALUE, if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, "Software\\WOW6432Node\\Valve\\Steam", 0, KEY_QUERY_VALUE, &reg_key) == ERROR_SUCCESS)
&reg_key) ==
ERROR_SUCCESS)
{ {
char path[MAX_PATH] = { 0 }; char path[MAX_PATH]{};
DWORD length = sizeof(path); DWORD length = sizeof(path);
RegQueryValueExA(reg_key, "InstallPath", nullptr, nullptr, reinterpret_cast<BYTE*>(path), RegQueryValueExA(reg_key, "InstallPath", nullptr, nullptr, reinterpret_cast<BYTE*>(path),
&length); &length);
RegCloseKey(reg_key); RegCloseKey(reg_key);
install_path = path; install_path = path;
@ -165,7 +167,6 @@ namespace steam
return install_path.data(); return install_path.data();
} }
bool SteamGameServer_Init() bool SteamGameServer_Init()
{ {
return true; return true;
@ -179,7 +180,6 @@ namespace steam
{ {
} }
friends* SteamFriends() friends* SteamFriends()
{ {
static friends friends; static friends friends;