[Scummvm-git-logs] scummvm master -> 1da70b92478a0f0253250712bf6661a53a6d3e51

bluegr bluegr at gmail.com
Thu Jul 15 00:06:31 UTC 2021


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
b882ef646b TRECISION: Use animation defines in patchAnimTab()
1da70b9247 TRECISION: Move the code that toggles object states when changing rooms


Commit: b882ef646b9fd3b63dd9397585ba398e7d19a46f
    https://github.com/scummvm/scummvm/commit/b882ef646b9fd3b63dd9397585ba398e7d19a46f
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2021-07-15T03:06:09+03:00

Commit Message:
TRECISION: Use animation defines in patchAnimTab()

Changed paths:
    engines/trecision/video.cpp


diff --git a/engines/trecision/video.cpp b/engines/trecision/video.cpp
index 9668cbcc16..c7b25200b3 100644
--- a/engines/trecision/video.cpp
+++ b/engines/trecision/video.cpp
@@ -617,8 +617,8 @@ void AnimManager::loadAnimTab(Common::SeekableReadStreamEndian *stream) {
 }
 
 void AnimManager::patchAnimTab() {
-	_animTab[22]._lim[3].left = 308;  // Patch the brazier animation rect in kRoom28 - bug #12628
-	_animTab[34]._lim[0].right = 200;	// Patch the terrorist animation rect in kRoom35
+	_animTab[aBKG28]._lim[3].left = 308; // Patch the brazier animation rect in kRoom28 - bug #12628
+	_animTab[aBKG35]._lim[0].right = 200; // Patch the terrorist animation rect in kRoom35
 }
 
 } // namespace Trecision


Commit: 1da70b92478a0f0253250712bf6661a53a6d3e51
    https://github.com/scummvm/scummvm/commit/1da70b92478a0f0253250712bf6661a53a6d3e51
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2021-07-15T03:06:09+03:00

Commit Message:
TRECISION: Move the code that toggles object states when changing rooms

Changed paths:
    engines/trecision/logic.cpp
    engines/trecision/logic.h


diff --git a/engines/trecision/logic.cpp b/engines/trecision/logic.cpp
index e3d109fb8f..adaa84ad69 100644
--- a/engines/trecision/logic.cpp
+++ b/engines/trecision/logic.cpp
@@ -378,59 +378,51 @@ bool LogicManager::startPlayDialog() {
 	return dialogHandled;
 }
 
-void LogicManager::endChangeRoom() {
-	//	Specific management of magnetic fields
-	if (_vm->_curRoom == kRoom2E && _vm->isObjectVisible(oPULSANTEADS2D)) {
-		_vm->_animMgr->_animTab[aBKG2E].toggleAnimArea(1, false);
-		_vm->setObjectVisible(oCAMPO2E, false);
-		_vm->setObjectVisible(oCARTELLOA2E, false);
-		_vm->setObjectVisible(oCARTELLOS2E, true);
-	} else if (_vm->_curRoom == kRoom2E && _vm->isObjectVisible(oPULSANTEADA2D)) {
-		_vm->_animMgr->_animTab[aBKG2E].toggleAnimArea(1, true);
-		_vm->setObjectVisible(oCAMPO2E, true);
-		_vm->setObjectVisible(oCARTELLOA2E, true);
-		_vm->setObjectVisible(oCARTELLOS2E, false);
-	}
-
-	if (_vm->_curRoom == kRoom2C && _vm->isObjectVisible(oPULSANTEACS2D)) {
-		_vm->_animMgr->_animTab[aBKG2C].toggleAnimArea(1, false);
-		_vm->setObjectVisible(oCAMPO2C, false);
-		_vm->setObjectVisible(oCARTELLOA2C, false);
-		_vm->setObjectVisible(oCARTELLOS2C, true);
-	} else if (_vm->_curRoom == kRoom2C && _vm->isObjectVisible(oPULSANTEACA2D)) {
-		_vm->_animMgr->_animTab[aBKG2C].toggleAnimArea(1, true);
-		_vm->setObjectVisible(oCAMPO2C, true);
-		_vm->setObjectVisible(oCARTELLOS2C, false);
-		_vm->setObjectVisible(oCARTELLOA2C, true);
-	}
-
-	if (_vm->_curRoom == kRoom28 && _vm->isObjectVisible(oPULSANTEBBS2D)) {
-		_vm->_animMgr->_animTab[aBKG28].toggleAnimArea(2, false);
-		_vm->setObjectAnim(oCESPUGLIO28, a283);
-		_vm->setObjectVisible(oSERPENTETM28, true);
-		_vm->setObjectVisible(oSERPENTEAM28, true);
-	} else if (_vm->_curRoom == kRoom28 && _vm->isObjectVisible(oPULSANTEBBA2D)) {
-		_vm->_animMgr->_animTab[aBKG28].toggleAnimArea(2, true);
-		_vm->setObjectAnim(oCESPUGLIO28, a282);
-		_vm->setObjectVisible(oSERPENTETM28, false);
-		_vm->setObjectVisible(oSERPENTEAM28, false);
+void LogicManager::handleChangeRoomObjects() {
+	switch (_vm->_curRoom) {
+	case kRoom2E:
+		if (_vm->isObjectVisible(oPULSANTEADS2D) || _vm->isObjectVisible(oPULSANTEADA2D)) {
+			const bool flag = _vm->isObjectVisible(oPULSANTEADS2D);
+			_vm->_animMgr->_animTab[aBKG2E].toggleAnimArea(1, !flag);
+			_vm->setObjectVisible(oCAMPO2E, !flag);
+			_vm->setObjectVisible(oCARTELLOA2E, !flag);
+			_vm->setObjectVisible(oCARTELLOS2E, flag);
+		}
+		break;
+	case kRoom2C:
+		if (_vm->isObjectVisible(oPULSANTEACS2D) || _vm->isObjectVisible(oPULSANTEACA2D)) {
+			const bool flag = _vm->isObjectVisible(oPULSANTEACS2D);
+			_vm->_animMgr->_animTab[aBKG2C].toggleAnimArea(1, !flag);
+			_vm->setObjectVisible(oCAMPO2C, !flag);
+			_vm->setObjectVisible(oCARTELLOA2C, !flag);
+			_vm->setObjectVisible(oCARTELLOS2C, flag);
+		}
+		break;
+	case kRoom28:
+		if (_vm->isObjectVisible(oPULSANTEBBS2D) || _vm->isObjectVisible(oPULSANTEBBA2D)) {
+			const bool flag = _vm->isObjectVisible(oPULSANTEBBS2D);
+			_vm->_animMgr->_animTab[aBKG28].toggleAnimArea(2, !flag);
+			_vm->setObjectAnim(oCESPUGLIO28, flag ? a283 : a282);
+			_vm->setObjectVisible(oSERPENTETM28, flag);
+			_vm->setObjectVisible(oSERPENTEAM28, flag);
+		}
+
+		if (_vm->isObjectVisible(oPULSANTEABS2D) || _vm->isObjectVisible(oPULSANTEABA2D)) {
+			const bool flag = _vm->isObjectVisible(oPULSANTEABS2D);
+			_vm->_animMgr->_animTab[aBKG28].toggleAnimArea(1, !flag);
+			_vm->_animMgr->_animTab[aBKG28].toggleAnimArea(3, !flag);
+			_vm->setObjectVisible(oCAMPO28, !flag);
+			_vm->setObjectVisible(oCARTELLOA28, !flag);
+			_vm->setObjectVisible(oCARTELLOS28, flag);
+			if (flag)
+				_vm->read3D("282.3d");
+		}
+		break;
 	}
+}
 
-	if (_vm->_curRoom == kRoom28 && _vm->isObjectVisible(oPULSANTEABS2D)) {
-		_vm->_animMgr->_animTab[aBKG28].toggleAnimArea(1, false);
-		_vm->_animMgr->_animTab[aBKG28].toggleAnimArea(3, false);
-		_vm->setObjectVisible(oCAMPO28, false);
-		_vm->setObjectVisible(oCARTELLOA28, false);
-		_vm->setObjectVisible(oCARTELLOS28, true);
-		_vm->read3D("282.3d");
-	} else if (_vm->_curRoom == kRoom28 && _vm->isObjectVisible(oPULSANTEABA2D)) {
-		_vm->_animMgr->_animTab[aBKG28].toggleAnimArea(1, true);
-		_vm->_animMgr->_animTab[aBKG28].toggleAnimArea(3, true);
-		_vm->setObjectVisible(oCAMPO28, true);
-		_vm->setObjectVisible(oCARTELLOA28, true);
-		_vm->setObjectVisible(oCARTELLOS28, false);
-	}
-	// End of specific management for the magnetic fields
+void LogicManager::endChangeRoom() {
+	handleChangeRoomObjects();
 
 	// Actions
 	startCharacterAnimations();
diff --git a/engines/trecision/logic.h b/engines/trecision/logic.h
index 18a3462e9b..0f334e0e8e 100644
--- a/engines/trecision/logic.h
+++ b/engines/trecision/logic.h
@@ -95,6 +95,7 @@ private:
 	void handleClickCloseup();
 	void handleClickGameArea();
 	void handleClickInventoryArea();
+	void handleChangeRoomObjects();
 };
 // end of class
 




More information about the Scummvm-git-logs mailing list