From 324058a640866f4c72244c3617a96083c150fd55 Mon Sep 17 00:00:00 2001 From: Ted John Date: Sat, 11 Nov 2017 23:44:03 +0000 Subject: [PATCH] Delay presence refresh to 5s interval --- src/openrct2/network/DiscordService.cpp | 18 ++++++++++++++++-- src/openrct2/network/DiscordService.h | 9 +++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/openrct2/network/DiscordService.cpp b/src/openrct2/network/DiscordService.cpp index eb96d29a86..cb0dcddb62 100644 --- a/src/openrct2/network/DiscordService.cpp +++ b/src/openrct2/network/DiscordService.cpp @@ -17,18 +17,19 @@ #ifdef __ENABLE_DISCORD__ #include +#include "../Context.h" #include "../core/Console.hpp" #include "../core/Memory.hpp" #include "../core/String.hpp" #include "../localisation/localisation.h" #include "../OpenRCT2.h" -#include "../scenario/scenario.h" #include "../world/park.h" #include "DiscordService.h" #include "network.h" constexpr const char * APPLICATION_ID = "378612438200877056"; constexpr const char * STEAM_APP_ID = nullptr; +constexpr const uint32 REFRESH_INTERVAL = 5 * GAME_UPDATE_FPS; // 5 seconds static void OnReady() { @@ -71,6 +72,19 @@ void DiscordService::Update() { Discord_RunCallbacks(); + if (_ticksSinceLastRefresh >= REFRESH_INTERVAL) + { + _ticksSinceLastRefresh = 0; + RefreshPresence(); + } + else + { + _ticksSinceLastRefresh++; + } +} + +void DiscordService::RefreshPresence() +{ DiscordRichPresence discordPresence; Memory::Set(&discordPresence, 0, sizeof(discordPresence)); discordPresence.largeImageKey = "logo"; @@ -110,7 +124,7 @@ void DiscordService::Update() details = "In Track Designer"; break; case SCREEN_FLAGS_TRACK_MANAGER: - details = "In Track Manager"; + details = "In Track Designs Manager"; break; } diff --git a/src/openrct2/network/DiscordService.h b/src/openrct2/network/DiscordService.h index 8117bb8f20..8197ef1c6b 100644 --- a/src/openrct2/network/DiscordService.h +++ b/src/openrct2/network/DiscordService.h @@ -18,13 +18,22 @@ #ifdef __ENABLE_DISCORD__ +#include "../common.h" +#include + class DiscordService { +private: + uint32 _ticksSinceLastRefresh = std::numeric_limits::max(); + public: DiscordService(); ~DiscordService(); void Update(); + +private: + void RefreshPresence(); }; #endif