aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/titanic/pet_control/pet_sound.cpp18
-rw-r--r--engines/titanic/pet_control/pet_sound.h12
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);