[Scummvm-git-logs] scummvm master -> 5ea555bcdd030b5f6402d8f9065b4a6d4c3ba189
eriktorbjorn
noreply at scummvm.org
Mon Dec 20 11:37:33 UTC 2021
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
5ea555bcdd SHERLOCK: Refactor Rose Tattoo slider drawing
Commit: 5ea555bcdd030b5f6402d8f9065b4a6d4c3ba189
https://github.com/scummvm/scummvm/commit/5ea555bcdd030b5f6402d8f9065b4a6d4c3ba189
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2021-12-20T12:37:10+01:00
Commit Message:
SHERLOCK: Refactor Rose Tattoo slider drawing
Changed paths:
engines/sherlock/tattoo/widget_options.cpp
engines/sherlock/tattoo/widget_options.h
diff --git a/engines/sherlock/tattoo/widget_options.cpp b/engines/sherlock/tattoo/widget_options.cpp
index 4963207d2f..7db0c97a0c 100644
--- a/engines/sherlock/tattoo/widget_options.cpp
+++ b/engines/sherlock/tattoo/widget_options.cpp
@@ -298,27 +298,9 @@ void WidgetOptions::render(OptionRenderMode mode) {
str = Common::String::format("%s %s", FIXED(Music), OFF_ON[music._musicOn]);
break;
- case 3: {
- int num = (_surface.fontHeight() + 4) & 0xfe;
- int sliderY = yp + num / 2 - 8;
-
- _surface.fillRect(Common::Rect(4, sliderY - (num - 6) / 2, _surface.width() - 5,
- sliderY - (num - 6) / 2 + num - 1), TRANSPARENCY);
- _surface.fillRect(Common::Rect(_surface.widestChar(), sliderY + 2,
- _surface.width() - _surface.widestChar() - 1, sliderY + 4), INFO_MIDDLE);
- drawDialogRect(Common::Rect(_surface.widestChar(), sliderY, _surface.width() - _surface.widestChar(), sliderY + 6));
-
- _surface.fillRect(Common::Rect(_midiSliderX - 1, sliderY - (num - 6) / 2 + 2,
- _midiSliderX + 2, sliderY - (num - 6) / 2 + num - 2), INFO_MIDDLE);
- drawDialogRect(Common::Rect(_midiSliderX - 3, sliderY - (num - 6) / 2,
- _midiSliderX + 4, sliderY - (num - 6) / 2 + num));
-
- if (_midiSliderX - 4 > _surface.widestChar())
- _surface.fillRect(Common::Rect(_midiSliderX - 4, sliderY, _midiSliderX - 3, sliderY + 4), INFO_BOTTOM);
- if (_midiSliderX + 4 < _surface.width() - _surface.widestChar())
- _surface.fillRect(Common::Rect(_midiSliderX + 4, sliderY, _midiSliderX + 5, sliderY + 4), INFO_BOTTOM);
+ case 3:
+ drawSlider(yp, _midiSliderX);
break;
- }
case 4:
str = Common::String::format("%s %s", FIXED(SoundEffects), OFF_ON[sound._digitized]);
@@ -328,27 +310,9 @@ void WidgetOptions::render(OptionRenderMode mode) {
str = Common::String::format("%s %s", FIXED(Voices), OFF_ON[sound._speechOn]);
break;
- case 6: {
- int num = (_surface.fontHeight() + 4) & 0xfe;
- int sliderY = yp + num / 2 - 8;
-
- _surface.fillRect(Common::Rect(4, sliderY - (num - 6) / 2, _surface.width() - 5,
- sliderY - (num - 6) / 2 + num - 1), TRANSPARENCY);
- _surface.fillRect(Common::Rect(_surface.widestChar(), sliderY + 2,
- _surface.width() - _surface.widestChar() - 1, sliderY + 4), INFO_MIDDLE);
- drawDialogRect(Common::Rect(_surface.widestChar(), sliderY, _surface.width() - _surface.widestChar(), sliderY + 6));
-
- _surface.fillRect(Common::Rect(_digiSliderX - 1, sliderY - (num - 6) / 2 + 2,
- _digiSliderX + 2, sliderY - (num - 6) / 2 + num - 2), INFO_MIDDLE);
- drawDialogRect(Common::Rect(_digiSliderX - 3, sliderY - (num - 6) / 2,
- _digiSliderX + 4, sliderY - (num - 6) / 2 + num));
-
- if (_digiSliderX - 4 > _surface.widestChar())
- _surface.fillRect(Common::Rect(_digiSliderX - 4, sliderY, _digiSliderX - 3, sliderY + 4), INFO_BOTTOM);
- if (_digiSliderX + 4 < _surface.width() - _surface.widestChar())
- _surface.fillRect(Common::Rect(_digiSliderX + 4, sliderY, _digiSliderX + 5, sliderY + 4), INFO_BOTTOM);
+ case 6:
+ drawSlider(yp, _digiSliderX);
break;
- }
case 7:
if (!sound._voices) {
@@ -384,6 +348,27 @@ void WidgetOptions::render(OptionRenderMode mode) {
}
}
+void WidgetOptions::drawSlider(int yp, int sliderX) {
+ int num = (_surface.fontHeight() + 4) & 0xfe;
+ int sliderY = yp + num / 2 - 8;
+
+ _surface.fillRect(Common::Rect(4, sliderY - (num - 6) / 2, _surface.width() - 5,
+ sliderY - (num - 6) / 2 + num - 1), TRANSPARENCY);
+ _surface.fillRect(Common::Rect(_surface.widestChar(), sliderY + 2,
+ _surface.width() - _surface.widestChar() - 1, sliderY + 4), INFO_MIDDLE);
+ drawDialogRect(Common::Rect(_surface.widestChar(), sliderY, _surface.width() - _surface.widestChar(), sliderY + 6));
+
+ _surface.fillRect(Common::Rect(sliderX - 1, sliderY - (num - 6) / 2 + 2,
+ sliderX + 2, sliderY - (num - 6) / 2 + num - 2), INFO_MIDDLE);
+ drawDialogRect(Common::Rect(sliderX - 3, sliderY - (num - 6) / 2,
+ sliderX + 4, sliderY - (num - 6) / 2 + num));
+
+ if (sliderX - 4 > _surface.widestChar())
+ _surface.fillRect(Common::Rect(sliderX - 4, sliderY, sliderX - 3, sliderY + 4), INFO_BOTTOM);
+ if (sliderX + 4 < _surface.width() - _surface.widestChar())
+ _surface.fillRect(Common::Rect(sliderX + 4, sliderY, sliderX + 5, sliderY + 4), INFO_BOTTOM);
+}
+
} // End of namespace Tattoo
} // End of namespace Sherlock
diff --git a/engines/sherlock/tattoo/widget_options.h b/engines/sherlock/tattoo/widget_options.h
index 8661541c5d..24a655cb72 100644
--- a/engines/sherlock/tattoo/widget_options.h
+++ b/engines/sherlock/tattoo/widget_options.h
@@ -47,6 +47,11 @@ private:
* Render the contents of the dialog onto the widget's surface
*/
void render(OptionRenderMode mode = OP_ALL);
+
+ /**
+ * Draw a slider on the widget's surface
+ */
+ void drawSlider(int yp, int sliderX);
public:
WidgetOptions(SherlockEngine *vm);
~WidgetOptions() override {}
More information about the Scummvm-git-logs
mailing list