diff --git a/dll/base.cpp b/dll/base.cpp index ace010e2..57f29c07 100644 --- a/dll/base.cpp +++ b/dll/base.cpp @@ -41,6 +41,11 @@ std::string get_env_variable(std::string name) return utf8_encode(env_variable); } +bool set_env_variable(std::string name, std::string value) +{ + return SetEnvironmentVariableW(utf8_decode(name).c_str(), utf8_decode(value).c_str()); +} + #else static int fd = -1; @@ -81,6 +86,11 @@ std::string get_env_variable(std::string name) return std::string(env); } +bool set_env_variable(std::string name, std::string value) +{ + return setenv(name.c_str(), value.c_str(), 1) == 0; +} + #endif std::recursive_mutex global_mutex; diff --git a/dll/base.h b/dll/base.h index c7a2c58c..fe59cba3 100644 --- a/dll/base.h +++ b/dll/base.h @@ -25,6 +25,7 @@ extern std::recursive_mutex global_mutex; std::string get_env_variable(std::string name); +bool set_env_variable(std::string name, std::string value); bool check_timedout(std::chrono::high_resolution_clock::time_point old, double timeout); class CCallbackMgr diff --git a/dll/steam_client.cpp b/dll/steam_client.cpp index c3dce712..3dd0af54 100644 --- a/dll/steam_client.cpp +++ b/dll/steam_client.cpp @@ -60,6 +60,11 @@ Steam_Client::Steam_Client() PRINT_DEBUG("steam client init: id: %llu server id: %llu appid: %u port: %u \n", settings_client->get_local_steam_id().ConvertToUint64(), settings_server->get_local_steam_id().ConvertToUint64(), appid, settings_server->get_port()); + if (appid) { + set_env_variable("SteamAppId", std::to_string(appid)); + set_env_variable("SteamGameId", std::to_string(appid)); + } + steam_overlay = new Steam_Overlay(settings_client, callback_results_client, callbacks_client, run_every_runcb, network); steam_user = new Steam_User(settings_client, local_storage, network, callback_results_client, callbacks_client); @@ -159,6 +164,8 @@ void Steam_Client::setAppID(uint32 appid) settings_server->set_game_id(CGameID(appid)); local_storage->setAppId(appid); network->setAppID(appid); + set_env_variable("SteamAppId", std::to_string(appid)); + set_env_variable("SteamGameId", std::to_string(appid)); }