[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