[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