From 8051ceaa43b21e62e5a0769a912b9d04105a41b8 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Thu, 6 Jun 2024 18:06:15 +0200 Subject: [PATCH] Add a basic achievements manager. --- profiler/CMakeLists.txt | 1 + profiler/src/profiler/TracyAchievements.cpp | 32 +++++++++++++++++++++ profiler/src/profiler/TracyAchievements.hpp | 26 +++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 profiler/src/profiler/TracyAchievements.cpp create mode 100644 profiler/src/profiler/TracyAchievements.hpp diff --git a/profiler/CMakeLists.txt b/profiler/CMakeLists.txt index 50a2d10c..8cdb5449 100644 --- a/profiler/CMakeLists.txt +++ b/profiler/CMakeLists.txt @@ -22,6 +22,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/../cmake/vendor.cmake) include(${CMAKE_CURRENT_LIST_DIR}/../cmake/server.cmake) set(SERVER_FILES + TracyAchievements.cpp TracyBadVersion.cpp TracyColor.cpp TracyEventDebug.cpp diff --git a/profiler/src/profiler/TracyAchievements.cpp b/profiler/src/profiler/TracyAchievements.cpp new file mode 100644 index 00000000..e2e629c4 --- /dev/null +++ b/profiler/src/profiler/TracyAchievements.cpp @@ -0,0 +1,32 @@ +#include + +#include "TracyAchievements.hpp" + +namespace tracy +{ + +AchievementsMgr::AchievementsMgr() +{ + m_queue.emplace_back( "Discover achievements!" ); + m_queue.emplace_back( "Achievements are fun!" ); + m_queue.emplace_back( "The new beginnings are always the best!" ); +} + +const std::string* AchievementsMgr::GetNextQueue() +{ + if( m_queue.empty() ) return nullptr; + return &m_queue.front(); +} + +void AchievementsMgr::PopQueue() +{ + assert( !m_queue.empty() ); + m_queue.erase( m_queue.begin() ); +} + +bool AchievementsMgr::NeedsUpdates() const +{ + return !m_queue.empty(); +} + +} diff --git a/profiler/src/profiler/TracyAchievements.hpp b/profiler/src/profiler/TracyAchievements.hpp new file mode 100644 index 00000000..3130cf5a --- /dev/null +++ b/profiler/src/profiler/TracyAchievements.hpp @@ -0,0 +1,26 @@ +#ifndef __TRACYACHIEVEMENTS_HPP__ +#define __TRACYACHIEVEMENTS_HPP__ + +#include +#include + +namespace tracy +{ + +class AchievementsMgr +{ +public: + AchievementsMgr(); + + const std::string* GetNextQueue(); + void PopQueue(); + + bool NeedsUpdates() const; + +private: + std::vector m_queue; +}; + +} + +#endif