TITANIC: Cleanup and enum for CPetSound

This commit is contained in:
Paul Gilbert 2017-09-04 15:38:38 -04:00
parent 9a0798f387
commit 50e7a7eb3f
3 changed files with 28 additions and 25 deletions

View File

@ -89,7 +89,7 @@ double CPetSlider::getOffsetPixels() const {
if (minVal == maxVal)
return 0.0;
return _sliderOffset / (maxVal - minVal);
return (double)_sliderOffset / (maxVal - minVal);
}
void CPetSlider::setSliderOffset(double offset) {

View File

@ -27,7 +27,7 @@
namespace Titanic {
CPetSound::CPetSound() : CPetGlyph(), _draggingSlider(nullptr), _draggingSliderNum(0) {
CPetSound::CPetSound() : CPetGlyph(), _draggingSlider(nullptr), _draggingSliderNum(MASTER_SLIDER) {
}
bool CPetSound::setup(CPetControl *petControl, CPetGlyphs *owner) {
@ -142,7 +142,7 @@ bool CPetSound::MouseButtonDownMsg(const Point &pt) {
rectRight.translate(567, 378);
CPetSlider *sliders[4] = { &_masterVolume, &_musicVolume, &_parrotVolume, &_speechVolume };
for (int idx = 0; idx < 4; ++idx) {
for (int idx = MASTER_SLIDER; idx <= SPEECH_SLIDER; ++idx) {
CPetSlider *slider = sliders[idx];
bool isLeft = rectLeft.contains(pt);
bool isRight = rectRight.contains(pt);
@ -157,7 +157,7 @@ bool CPetSound::MouseButtonDownMsg(const Point &pt) {
}
if (isLeft || isRight) {
sliderChanged(offset, idx);
sliderChanged(offset, (SliderType)idx);
return true;
}
@ -169,7 +169,7 @@ bool CPetSound::MouseButtonDownMsg(const Point &pt) {
return false;
}
void CPetSound::sliderChanged(double offset, int sliderNum) {
void CPetSound::sliderChanged(double offset, SliderType sliderNum) {
CPetControl *pet = getPetControl();
if (!pet)
return;
@ -182,16 +182,16 @@ void CPetSound::sliderChanged(double offset, int sliderNum) {
double percent = offset * 100.0;
switch (sliderNum) {
case 0:
case MASTER_SLIDER:
soundManager.setMasterPercent(percent);
break;
case 1:
case MUSIC_SLIDER:
soundManager.setMusicPercent(percent);
break;
case 2:
case PARROT_SLIDER:
soundManager.setParrotPercent(percent);
break;
case 3:
case SPEECH_SLIDER:
soundManager.setSpeechPercent(percent);
break;
default:
@ -200,25 +200,25 @@ void CPetSound::sliderChanged(double offset, int sliderNum) {
}
bool CPetSound::MouseDragStartMsg(CMouseDragStartMsg *msg) {
if (_musicVolume.resetThumbFocus()) {
if (_masterVolume.resetThumbFocus()) {
_draggingSlider = &_masterVolume;
getOwner()->startDragging(this, msg);
_draggingSliderNum = MASTER_SLIDER;
return true;
} else if (_musicVolume.resetThumbFocus()) {
_draggingSlider = &_musicVolume;
getOwner()->startDragging(this, msg);
_draggingSliderNum = 0;
return true;
} else if (_masterVolume.resetThumbFocus()) {
_draggingSlider = &_masterVolume;
getOwner()->startDragging(this, msg);
_draggingSliderNum = 1;
_draggingSliderNum = MUSIC_SLIDER;
return true;
} else if (_parrotVolume.resetThumbFocus()) {
_draggingSlider = &_parrotVolume;
getOwner()->startDragging(this, msg);
_draggingSliderNum = 2;
_draggingSliderNum = PARROT_SLIDER;
return true;
} else if (_speechVolume.resetThumbFocus()) {
_draggingSlider = &_speechVolume;
getOwner()->startDragging(this, msg);
_draggingSliderNum = 3;
_draggingSliderNum = SPEECH_SLIDER;
return true;
}
@ -251,20 +251,20 @@ bool CPetSound::MouseDragEndMsg(CMouseDragEndMsg *msg) {
}
bool CPetSound::MouseButtonUpMsg(const Point &pt) {
int sliderNum = 0;
SliderType sliderNum = MASTER_SLIDER;
CPetSlider *slider = nullptr;
if (_musicVolume.MouseButtonUpMsg(pt)) {
sliderNum = 0;
sliderNum = MASTER_SLIDER;
slider = &_musicVolume;
} else if (_masterVolume.MouseButtonUpMsg(pt)) {
sliderNum = 1;
sliderNum = MUSIC_SLIDER;
slider = &_masterVolume;
} else if (_parrotVolume.MouseButtonUpMsg(pt)) {
sliderNum = 2;
sliderNum = PARROT_SLIDER;
slider = &_parrotVolume;
} else if (_speechVolume.MouseButtonUpMsg(pt)) {
sliderNum = 3;
sliderNum = SPEECH_SLIDER;
slider = &_speechVolume;
} else {
return false;

View File

@ -33,6 +33,9 @@ namespace Titanic {
class CPetRealLife;
class CPetSound : public CPetGlyph {
enum SliderType {
MASTER_SLIDER = 0, MUSIC_SLIDER = 1, PARROT_SLIDER = 2, SPEECH_SLIDER = 3
};
private:
CPetGfxElement _element;
CPetSoundSlider _masterVolume;
@ -44,12 +47,12 @@ private:
CTextControl _textParrotVolume;
CTextControl _textSpeechVolume;
CPetSlider *_draggingSlider;
int _draggingSliderNum;
SliderType _draggingSliderNum;
private:
/**
* Called when a slider has changed
*/
void sliderChanged(double offset, int sliderNum);
void sliderChanged(double offset, SliderType sliderNum);
public:
CPetSound();