[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