[Scummvm-git-logs] scummvm master -> 364ce377b45a7a8f44a081ab46a0e492f2edc68c

bluegr bluegr at gmail.com
Sat Jun 12 17:58:52 UTC 2021


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

Summary:
d0aee114cd TRECISION: Add a "position" command
03926135be TRECISION: Rename a variable
ea11955b4e TRECISION: Fix entering some rooms - bug #12627
364ce377b4 TRECISION: Clean up room entry code for the force field room (kRoom23A)


Commit: d0aee114cd903ecd6ed4915b6360a9206dffb7a5
    https://github.com/scummvm/scummvm/commit/d0aee114cd903ecd6ed4915b6360a9206dffb7a5
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2021-06-12T20:58:28+03:00

Commit Message:
TRECISION: Add a "position" command

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


diff --git a/engines/trecision/console.cpp b/engines/trecision/console.cpp
index ff3ec5dc41..61cc9eaadb 100644
--- a/engines/trecision/console.cpp
+++ b/engines/trecision/console.cpp
@@ -25,6 +25,7 @@
 
 #include "trecision/console.h"
 #include "trecision/dialog.h"
+#include "trecision/pathfinding3d.h"
 #include "trecision/scheduler.h"
 #include "trecision/text.h"
 #include "trecision/trecision.h"
@@ -38,6 +39,7 @@ Console::Console(TrecisionEngine *vm) : GUI::Debugger(), _vm(vm) {
 	registerCmd("dialog",		WRAP_METHOD(Console, Cmd_Dialog));
 	registerCmd("item",			WRAP_METHOD(Console, Cmd_Item));
 	registerCmd("say",			WRAP_METHOD(Console, Cmd_Say));
+	registerCmd("position",		WRAP_METHOD(Console, Cmd_Position));
 }
 
 Console::~Console() {
@@ -163,4 +165,16 @@ bool Console::Cmd_Say(int argc, const char **argv) {
 	return false;
 }
 
+bool Console::Cmd_Position(int argc, const char **argv) {
+	if (argc < 2) {
+		debugPrintf("Use %s <positionId> to set Joshua's position\n", argv[0]);
+		return true;
+	}
+
+	const uint16 positionId = (uint16)atoi(argv[1]);
+	_vm->_pathFind->setPosition(positionId);
+
+	return false;
+}
+
 } // End of namespace Trecision
diff --git a/engines/trecision/console.h b/engines/trecision/console.h
index 440c7ccc39..ce0f0813be 100644
--- a/engines/trecision/console.h
+++ b/engines/trecision/console.h
@@ -43,6 +43,7 @@ private:
 	bool Cmd_Dialog(int argc, const char **argv);
 	bool Cmd_Item(int argc, const char **argv);
 	bool Cmd_Say(int argc, const char **argv);
+	bool Cmd_Position(int argc, const char **argv);
 };
 
 } // End of namespace Trecision


Commit: 03926135be5a8a74d5645c4c9facb950bfd1f8e3
    https://github.com/scummvm/scummvm/commit/03926135be5a8a74d5645c4c9facb950bfd1f8e3
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2021-06-12T20:58:29+03:00

Commit Message:
TRECISION: Rename a variable

Changed paths:
    engines/trecision/trecision.cpp


diff --git a/engines/trecision/trecision.cpp b/engines/trecision/trecision.cpp
index 439f8ad59a..869e0b496b 100644
--- a/engines/trecision/trecision.cpp
+++ b/engines/trecision/trecision.cpp
@@ -298,7 +298,7 @@ void TrecisionEngine::checkSystem() {
 	eventLoop();
 }
 
-void TrecisionEngine::startCharacterAction(uint16 action, uint16 newRoom, uint8 newPos, uint16 sent) {
+void TrecisionEngine::startCharacterAction(uint16 action, uint16 newRoom, uint8 newPos, uint16 textId) {
 	_scheduler->initCharacterQueue();
 
 	_flagInventoryLocked = false;
@@ -316,8 +316,8 @@ void TrecisionEngine::startCharacterAction(uint16 action, uint16 newRoom, uint8
 		_pathFind->nextStep();
 	}
 
-	if (sent)
-		_textMgr->characterSayInAction(sent);
+	if (textId)
+		_textMgr->characterSayInAction(textId);
 	else
 		_textMgr->clearLastText();
 }


Commit: ea11955b4e2fcb9e022a550ae79a3670692167df
    https://github.com/scummvm/scummvm/commit/ea11955b4e2fcb9e022a550ae79a3670692167df
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2021-06-12T20:58:29+03:00

Commit Message:
TRECISION: Fix entering some rooms - bug #12627

Changed paths:
    engines/trecision/script.cpp


diff --git a/engines/trecision/script.cpp b/engines/trecision/script.cpp
index dacccbb6f6..c521906416 100644
--- a/engines/trecision/script.cpp
+++ b/engines/trecision/script.cpp
@@ -391,8 +391,18 @@ void TrecisionEngine::changeRoom(uint16 room, uint16 action, byte position) {
 
 	_logicMgr->endChangeRoom();
 
+	// WORKAROUND: Set position *again*. Fixes entering some rooms
+	// (e.g. kRoom23A, kRoom2D, kRoom28).
+	// The first two checks have been duplicated from endChangeRoom()
+	if (_curRoom == kRoom31 && !_room[kRoom31].isDone())
+		_pathFind->setPosition(14);
+	else if (_oldRoom == kRoom41D && _inventoryObj[kItemPositioner].isFlagExtra())
+		_pathFind->setPosition(30);
+	else
+		_pathFind->setPosition(position);
+
 	_room[_curRoom].setDone(true);            // Visited
-	_renderer->drawCharacter(CALCPOINTS);    // for right _actorPos entrance
+	_renderer->drawCharacter(CALCPOINTS);     // for right _actorPos entrance
 }
 
 void TrecisionEngine::doIdle() {


Commit: 364ce377b45a7a8f44a081ab46a0e492f2edc68c
    https://github.com/scummvm/scummvm/commit/364ce377b45a7a8f44a081ab46a0e492f2edc68c
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2021-06-12T20:58:29+03:00

Commit Message:
TRECISION: Clean up room entry code for the force field room (kRoom23A)

Changed paths:
    engines/trecision/logic.cpp


diff --git a/engines/trecision/logic.cpp b/engines/trecision/logic.cpp
index 321209e3e4..fff427ca09 100644
--- a/engines/trecision/logic.cpp
+++ b/engines/trecision/logic.cpp
@@ -311,7 +311,7 @@ void LogicManager::startCharacterAnimations() {
 	else if (_vm->_curRoom == kRoom2B && (_vm->_oldRoom == kRoom2A))
 		_vm->startCharacterAction(a2B2ESCEPOZZO, 0, 2, 0);
 	else if (_vm->_curRoom == kRoom23A && (_vm->_oldRoom == kRoom21) && _vm->_room[kRoom23A].isDone())
-		_vm->startCharacterAction(aWALKIN, 0, 0, 0);
+		_vm->startCharacterAction(aWALKIN, 0, 0, _vm->_room[kRoom23A].isDone() ? 0 : 361);
 	else if (_vm->_curRoom == kRoom33 && _vm->_oldRoom == kRoom32) {
 		const uint16 roofAction = _vm->isObjectVisible(oBRUCIATURA33) ? a3311SALESCALE : a3313CHIUDEBOTOLA;
 		_vm->startCharacterAction(roofAction, 0, 0, 0);
@@ -437,11 +437,9 @@ void LogicManager::endChangeRoom() {
 		_vm->_flagInventoryLocked = true;
 	} else if (_vm->_curRoom == kRoom31P || _vm->_curRoom == kRoom35P) { // Screens with inventory
 		_vm->_flagShowCharacter = false;
-	} else if (_vm->_curRoom == kRoom23A && (_vm->_oldRoom == kRoom21) && !_vm->_room[kRoom23A].isDone())
-		_vm->_flagShowCharacter = false;
-	else if (_vm->_curRoom == kRoom31 && !_vm->_room[kRoom31].isDone())
+	} else if (_vm->_curRoom == kRoom31 && !_vm->_room[kRoom31].isDone())
 		_vm->_pathFind->setPosition(14);
-	else if ((_vm->_oldRoom == kRoom41D) && _vm->_inventoryObj[kItemPositioner].isFlagExtra()) {
+	else if (_vm->_oldRoom == kRoom41D && _vm->_inventoryObj[kItemPositioner].isFlagExtra()) {
 		_vm->_pathFind->setPosition(30);
 		_vm->_renderer->drawCharacter(CALCPOINTS);
 	}
@@ -471,9 +469,6 @@ void LogicManager::endChangeRoom() {
 	} else if (_vm->_curRoom == kRoom13CU) {
 		const uint16 closeupObjectId = _vm->isObjectVisible(oLETTERA13) ? oLETTERA13 : oPENPADA13;
 		_vm->_textMgr->characterSay(_vm->_obj[closeupObjectId]._examine);
-	}  else if (_vm->_curRoom == kRoom23A && (_vm->_oldRoom == kRoom21) && !_vm->_room[kRoom23A].isDone()) {
-		_vm->_flagShowCharacter = true;
-		_vm->startCharacterAction(aWALKIN, 0, 0, 361);
 	} else if (_vm->_curRoom == kRoom24 && !_vm->_room[kRoom24].isDone())
 		_vm->_textMgr->characterSay(381);
 	else if (_vm->_curRoom == kRoom2G && !_vm->_room[kRoom2G].isDone())




More information about the Scummvm-git-logs mailing list