chore(game-screen): extract toast manager from game screen

- refactor: move toast UI logic into new `ToastManager` component
- add toast_manager.hpp + toast_manager.cpp
- update game_screen.hpp + game_screen.cpp to use `ToastManager`
- adjust app initialization in application.cpp
- keep root CMake target in CMakeLists.txt updated
This commit is contained in:
Paul 2026-03-31 09:18:17 +03:00
parent 0f1cd5fe9a
commit 9764286cae
6 changed files with 1462 additions and 1367 deletions

View file

@ -2928,7 +2928,7 @@ void Application::setupUICallbacks() {
// Level-up callback — play sound, cheer emote, and trigger UI ding overlay + 3D effect
gameHandler->setLevelUpCallback([this](uint32_t newLevel) {
if (uiManager) {
uiManager->getGameScreen().triggerDing(newLevel);
uiManager->getGameScreen().toastManager().triggerDing(newLevel);
}
if (renderer) {
renderer->triggerLevelUpEffect(renderer->getCharacterPosition());
@ -2938,7 +2938,7 @@ void Application::setupUICallbacks() {
// Achievement earned callback — show toast banner
gameHandler->setAchievementEarnedCallback([this](uint32_t achievementId, const std::string& name) {
if (uiManager) {
uiManager->getGameScreen().triggerAchievementToast(achievementId, name);
uiManager->getGameScreen().toastManager().triggerAchievementToast(achievementId, name);
}
});