update presence

This commit is contained in:
2023-06-02 13:34:01 +02:00
parent bbfe341d23
commit c54017c7be
3 changed files with 30 additions and 2 deletions

View File

@@ -52,7 +52,7 @@ public:
const Team& GetTeam(TeamColor team) const { return m_Teams[static_cast<std::uint8_t>(team)]; } const Team& GetTeam(TeamColor team) const { return m_Teams[static_cast<std::uint8_t>(team)]; }
GameState GetGameState() const { return m_GameState; } GameState GetGameState() const { return m_GameState; }
void SetGameState(GameState gameState) { m_GameState = gameState; }; virtual void SetGameState(GameState gameState) { m_GameState = gameState; };
const World* GetWorld() const { return m_World; } const World* GetWorld() const { return m_World; }
World* GetWorld() { return m_World; } World* GetWorld() { return m_World; }

View File

@@ -39,6 +39,8 @@ public:
render::Renderer* GetRenderer() const { return m_Renderer; } render::Renderer* GetRenderer() const { return m_Renderer; }
WorldClient& GetWorldClient() { return m_WorldClient; } WorldClient& GetWorldClient() { return m_WorldClient; }
void SetGameState(game::GameState gameState) override;
virtual void HandlePacket(const protocol::ConnexionInfoPacket* packet) override; virtual void HandlePacket(const protocol::ConnexionInfoPacket* packet) override;
virtual void HandlePacket(const protocol::PlayerJoinPacket* packet) override; virtual void HandlePacket(const protocol::PlayerJoinPacket* packet) override;
virtual void HandlePacket(const protocol::PlayerLeavePacket* packet) override; virtual void HandlePacket(const protocol::PlayerLeavePacket* packet) override;

View File

@@ -1,6 +1,7 @@
#include "game/client/ClientGame.h" #include "game/client/ClientGame.h"
#include "protocol/PacketDispatcher.h" #include "protocol/PacketDispatcher.h"
#include "game/client/Client.h" #include "game/client/Client.h"
#include "misc/DiscordRPC.h"
namespace td { namespace td {
namespace client { namespace client {
@@ -97,7 +98,7 @@ void ClientGame::HandlePacket(const protocol::UpdateExpPacket* packet) {
} }
void ClientGame::HandlePacket(const protocol::DisconnectPacket* packet) { void ClientGame::HandlePacket(const protocol::DisconnectPacket* packet) {
m_GameState = game::GameState::Disconnected; SetGameState(game::GameState::Disconnected);
m_Renderer->SetBackgroundColor({ 0, 0, 0 }); m_Renderer->SetBackgroundColor({ 0, 0, 0 });
} }
@@ -114,5 +115,30 @@ void ClientGame::RenderWorld() {
} }
} }
void ClientGame::SetGameState(game::GameState newState) {
game::Game::SetGameState(newState);
// Update Discord presence
switch (newState) {
case game::GameState::Lobby:
utils::UpdateDiscordPresence("In Lobby", "Normal Mode", true);
break;
case game::GameState::Game:
utils::UpdateDiscordPresence("In Game", "Normal Mode", true);
break;
case game::GameState::Closed:
case game::GameState::Disconnected:
utils::UpdateDiscordPresence("In Main Menu", "Normal Mode", true);
break;
case game::GameState::EndGame:
utils::UpdateDiscordPresence("In End Game", "Normal Mode", true);
break;
}
}
} // namespace client } // namespace client
} // namespace td } // namespace td