From 853976f56d6d19e01aa777db6c46410e2b12d80a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matt=C3=A9o=20Delabre?= Date: Fri, 29 Apr 2016 02:57:23 +0200 Subject: [PATCH] =?UTF-8?q?Correction=20m=C3=A0j=20ic=C3=B4ne=20musique?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/states/level.hpp | 1 + src/states/level.cpp | 21 ++++++++++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/include/states/level.hpp b/include/states/level.hpp index 9f3b4c2..ffb5f6f 100644 --- a/include/states/level.hpp +++ b/include/states/level.hpp @@ -38,6 +38,7 @@ private: std::vector zone; sfg::Button::Ptr mute_button; + bool previously_muted_state; protected: ActionToolbar action_toolbar; diff --git a/src/states/level.cpp b/src/states/level.cpp index 941519f..1ba4903 100644 --- a/src/states/level.cpp +++ b/src/states/level.cpp @@ -49,7 +49,8 @@ namespace { } Level::Level(Manager& manager) : State(manager), - gravity_direction(Utility::Direction::SOUTH) { + gravity_direction(Utility::Direction::SOUTH), + previously_muted_state(!ResourceManager::get().isMuted()) { // métadonnées par défaut setName(sf::String("Nouveau niveau")); @@ -282,12 +283,18 @@ void Level::frame() { sf::Vector2i window_size = (sf::Vector2i) window.getSize(); // mise à jour de l'icône du mute en fonction de l'état - if (ResourceManager::get().isMuted()) { - std::static_pointer_cast(mute_button->GetChild()) - ->SetImage(*ResourceManager::get().getImage("no_music.tga")); - } else { - std::static_pointer_cast(mute_button->GetChild()) - ->SetImage(*ResourceManager::get().getImage("music.tga")); + if (previously_muted_state != ResourceManager::get().isMuted()) { + if (ResourceManager::get().isMuted()) { + previously_muted_state = true; + mute_button->SetImage(sfg::Image::Create( + *ResourceManager::get().getImage("no_music.tga") + )); + } else { + previously_muted_state = false; + mute_button->SetImage(sfg::Image::Create( + *ResourceManager::get().getImage("music.tga") + )); + } } // positionnement de la barre d'actions