[Scummvm-git-logs] scummvm master -> 27f51565c3046015110fa5ca4ff16036972348dc

dreammaster dreammaster at scummvm.org
Fri Jul 28 03:18:42 CEST 2017


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:
27f51565c3 TITANIC: Fix handling of Gondolier sliders when arms are used on them


Commit: 27f51565c3046015110fa5ca4ff16036972348dc
    https://github.com/scummvm/scummvm/commit/27f51565c3046015110fa5ca4ff16036972348dc
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2017-07-27T21:18:35-04:00

Commit Message:
TITANIC: Fix handling of Gondolier sliders when arms are used on them

Changed paths:
    engines/titanic/game/gondolier/gondolier_base.cpp
    engines/titanic/game/gondolier/gondolier_mixer.cpp
    engines/titanic/game/gondolier/gondolier_slider.cpp


diff --git a/engines/titanic/game/gondolier/gondolier_base.cpp b/engines/titanic/game/gondolier/gondolier_base.cpp
index f5f9791..174d8b5 100644
--- a/engines/titanic/game/gondolier/gondolier_base.cpp
+++ b/engines/titanic/game/gondolier/gondolier_base.cpp
@@ -61,10 +61,10 @@ void CGondolierBase::load(SimpleFile *file) {
 	_puzzleSolved = file->readNumber();
 	_volume1 = file->readNumber();
 	_slider1 = file->readNumber();
-	_rightSliderHooked = file->readNumber();
+	_leftSliderHooked = file->readNumber();
 	_volume2 = file->readNumber();
 	_slider2 = file->readNumber();
-	_leftSliderHooked = file->readNumber();
+	_rightSliderHooked = file->readNumber();
 	_priorLeftSliderHooked = file->readNumber();
 	_priorRightSliderHooked = file->readNumber();
 
diff --git a/engines/titanic/game/gondolier/gondolier_mixer.cpp b/engines/titanic/game/gondolier/gondolier_mixer.cpp
index 4b8bd88..e71562f 100644
--- a/engines/titanic/game/gondolier/gondolier_mixer.cpp
+++ b/engines/titanic/game/gondolier/gondolier_mixer.cpp
@@ -144,7 +144,7 @@ bool CGondolierMixer::SignalObject(CSignalObject *msg) {
 		if (msg->_strValue == "Fly") {
 			_slider1 = CLIP(msg->_numValue, 0, 10);
 
-			if (!_leftSliderHooked) {
+			if (!_rightSliderHooked) {
 				_slider2 = 10 - _slider1;
 				CStatusChangeMsg statusMsg;
 				statusMsg._newStatus = _slider2;
@@ -155,7 +155,7 @@ bool CGondolierMixer::SignalObject(CSignalObject *msg) {
 		if (msg->_strValue == "Tos") {
 			_slider2 = CLIP(msg->_numValue, 0, 10);
 
-			if (!_rightSliderHooked) {
+			if (!_leftSliderHooked) {
 				_slider1 = 10 - _slider2;
 				CStatusChangeMsg statusMsg;
 				statusMsg._newStatus = _slider1;
@@ -163,7 +163,7 @@ bool CGondolierMixer::SignalObject(CSignalObject *msg) {
 			}
 		}
 
-		if (!_slider1 && !_slider2 && _rightSliderHooked && _leftSliderHooked) {
+		if (!_slider1 && !_slider2 && _leftSliderHooked && _rightSliderHooked) {
 			_puzzleSolved = true;
 			CStatusChangeMsg statusMsg;
 			statusMsg._newStatus = 1;
diff --git a/engines/titanic/game/gondolier/gondolier_slider.cpp b/engines/titanic/game/gondolier/gondolier_slider.cpp
index b5edac5..9478920 100644
--- a/engines/titanic/game/gondolier/gondolier_slider.cpp
+++ b/engines/titanic/game/gondolier/gondolier_slider.cpp
@@ -79,14 +79,14 @@ void CGondolierSlider::load(SimpleFile *file) {
 bool CGondolierSlider::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
 	if (!_chestOpen)
 		return false;
-	if (_sliderNum ? _rightSliderHooked : _leftSliderHooked)
+	if (_sliderNum ? _leftSliderHooked : _rightSliderHooked)
 		return false;
 
 	return _thumbRect.contains(msg->_mousePos);
 }
 
 bool CGondolierSlider::MouseDragMoveMsg(CMouseDragMoveMsg *msg) {
-	if (!(_sliderNum ? _rightSliderHooked : _leftSliderHooked)) {
+	if (!(_sliderNum ? _leftSliderHooked : _rightSliderHooked)) {
 		int minVal = 0x7FFFFFFF;
 		int foundIndex = -1;
 		int yp = (_defaultThumbRect.top + _defaultThumbRect.bottom) / 2
@@ -120,7 +120,7 @@ bool CGondolierSlider::EnterViewMsg(CEnterViewMsg *msg) {
 bool CGondolierSlider::MouseDragStartMsg(CMouseDragStartMsg *msg) {
 	if (!_chestOpen)
 		return false;
-	if (_sliderNum ? _rightSliderHooked : _leftSliderHooked)
+	if (_sliderNum ? _leftSliderHooked : _rightSliderHooked)
 		return false;
 
 	_dragging = checkStartDragging(msg);
@@ -143,7 +143,7 @@ bool CGondolierSlider::MouseDragEndMsg(CMouseDragEndMsg *msg) {
 }
 
 bool CGondolierSlider::IsHookedOnMsg(CIsHookedOnMsg *msg) {
-	if (_sliderNum ? _rightSliderHooked : _leftSliderHooked)
+	if (_sliderNum ? _leftSliderHooked : _rightSliderHooked)
 		return false;
 
 	if (!_thumbRect.intersects(msg->_rect)) {
@@ -152,9 +152,9 @@ bool CGondolierSlider::IsHookedOnMsg(CIsHookedOnMsg *msg) {
 	} else {
 		_armName = msg->_armName;
 		if (_sliderNum) {
-			_rightSliderHooked = _priorLeftSliderHooked = true;
+			_leftSliderHooked = _priorLeftSliderHooked = true;
 		} else {
-			_leftSliderHooked = _priorRightSliderHooked = true;
+			_rightSliderHooked = _priorRightSliderHooked = true;
 		}
 
 		msg->_isHooked = true;
@@ -164,7 +164,7 @@ bool CGondolierSlider::IsHookedOnMsg(CIsHookedOnMsg *msg) {
 }
 
 bool CGondolierSlider::FrameMsg(CFrameMsg *msg) {
-	if (_sliderNum ? _rightSliderHooked : _leftSliderHooked) {
+	if (_sliderNum ? _leftSliderHooked : _rightSliderHooked) {
 		if (_sliderIndex < 10) {
 			++_sliderIndex;
 			CSignalObject signalMsg;
@@ -182,6 +182,7 @@ bool CGondolierSlider::FrameMsg(CFrameMsg *msg) {
 		}
 	} else if (_sliderNum ? _priorRightSliderHooked : _priorLeftSliderHooked) {
 		if (!_dragging && !_puzzleSolved && _sliderIndex > 0) {
+			--_sliderIndex;
 			CSignalObject signalMsg;
 			signalMsg.execute(this);
 		}
@@ -208,11 +209,11 @@ bool CGondolierSlider::SignalObject(CSignalObject *msg) {
 bool CGondolierSlider::ActMsg(CActMsg *msg) {
 	if (msg->_action == "Unhook") {
 		if (_sliderNum) {
-			_rightSliderHooked = _priorLeftSliderHooked = false;
-			_priorRightSliderHooked = _leftSliderHooked;
+			_leftSliderHooked = _priorLeftSliderHooked = false;
+			_priorRightSliderHooked = _rightSliderHooked;
 		} else {
-			_leftSliderHooked = _priorRightSliderHooked = false;
-			_priorLeftSliderHooked = _rightSliderHooked;
+			_rightSliderHooked = _priorRightSliderHooked = false;
+			_priorLeftSliderHooked = _leftSliderHooked;
 		}
 	}
 





More information about the Scummvm-git-logs mailing list