diff options
Diffstat (limited to 'engines/titanic/pet_control')
-rw-r--r-- | engines/titanic/pet_control/pet_sound.cpp | 18 | ||||
-rw-r--r-- | engines/titanic/pet_control/pet_sound.h | 12 |
2 files changed, 30 insertions, 0 deletions
diff --git a/engines/titanic/pet_control/pet_sound.cpp b/engines/titanic/pet_control/pet_sound.cpp index a22b743782..e4fac34ee8 100644 --- a/engines/titanic/pet_control/pet_sound.cpp +++ b/engines/titanic/pet_control/pet_sound.cpp @@ -109,6 +109,24 @@ bool CPetSound::reset() { return false; } +void CPetSound::setSliders() { + CPetControl *pet = getPetControl(); + CGameManager *gameMan = pet ? pet->getGameManager() : nullptr; + + if (gameMan) { + CSoundManager &soundMan = gameMan->_sound._soundManager; + uint masterVol = soundMan.getModeVolume(VOL_NORMAL); + uint musicVol = soundMan.getMusicVolume(); + uint parrotVol = soundMan.getParrotVolume(); + uint speechVol = soundMan.getSpeechVolume(); + + _masterVolume.setSliderOffset(masterVol * 0.01); + _musicVolume.setSliderOffset(musicVol * 0.01); + _parrotVolume.setSliderOffset(parrotVol * 0.01); + _speechVolume.setSliderOffset(speechVol * 0.01); + } +} + void CPetSound::draw2(CScreenManager *screenManager) { _element.draw(screenManager); diff --git a/engines/titanic/pet_control/pet_sound.h b/engines/titanic/pet_control/pet_sound.h index 8e9795d00e..9365b31ee0 100644 --- a/engines/titanic/pet_control/pet_sound.h +++ b/engines/titanic/pet_control/pet_sound.h @@ -50,6 +50,11 @@ private: SliderType _draggingSliderNum; private: /** + * Sets the positions of the volume sliders + */ + void setSliders(); + + /** * Called when a slider has changed */ void sliderChanged(double offset, SliderType sliderNum); @@ -97,6 +102,13 @@ public: virtual bool MouseButtonUpMsg(const Point &pt); /** + * Highlight any currently highlighted element + */ + virtual void highlightCurrent(const Point &pt) { + setSliders(); + } + + /** * Returns the tooltip text for when the glyph is selected */ virtual void getTooltip(CTextControl *text); |