aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/debugger.cpp
diff options
context:
space:
mode:
authorPeter Kohaut2019-02-04 19:18:18 +0100
committerPeter Kohaut2019-02-05 22:02:02 +0100
commit49c5069324e1c45a399f4dcf2a32ce53be840377 (patch)
tree85197419d004d5f1c38d7a1dd469b12cd2fc9431 /engines/bladerunner/debugger.cpp
parentcafc76dcfe9adbd92ac77feca78417c81c4c7c83 (diff)
downloadscummvm-rg350-49c5069324e1c45a399f4dcf2a32ce53be840377.tar.gz
scummvm-rg350-49c5069324e1c45a399f4dcf2a32ce53be840377.tar.bz2
scummvm-rg350-49c5069324e1c45a399f4dcf2a32ce53be840377.zip
BLADERUNNER: Added debugger command "friend"
It can be used for querying and changing friendliness between actors.
Diffstat (limited to 'engines/bladerunner/debugger.cpp')
-rw-r--r--engines/bladerunner/debugger.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/engines/bladerunner/debugger.cpp b/engines/bladerunner/debugger.cpp
index db31c76cfe..49abdfc4c2 100644
--- a/engines/bladerunner/debugger.cpp
+++ b/engines/bladerunner/debugger.cpp
@@ -84,6 +84,7 @@ Debugger::Debugger(BladeRunnerEngine *vm) : GUI::Debugger() {
registerCmd("var", WRAP_METHOD(Debugger, cmdVariable));
registerCmd("clue", WRAP_METHOD(Debugger, cmdClue));
registerCmd("timer", WRAP_METHOD(Debugger, cmdTimer));
+ registerCmd("friend", WRAP_METHOD(Debugger, cmdFriend));
registerCmd("load", WRAP_METHOD(Debugger, cmdLoad));
registerCmd("save", WRAP_METHOD(Debugger, cmdSave));
}
@@ -623,6 +624,47 @@ bool Debugger::cmdTimer(int argc, const char **argv) {
return true;
}
+bool Debugger::cmdFriend(int argc, const char **argv) {
+ if (argc != 3 && argc != 4) {
+ debugPrintf("Get or changes friendliness for an actor towards another actor.\n");
+ debugPrintf("Usage: %s <actorId> <otherActorId> [<value>]\n", argv[0]);
+ return true;
+ }
+
+ int actorId = atoi(argv[1]);
+
+ Actor *actor = nullptr;
+ if (actorId >= 0 && actorId < (int)_vm->_gameInfo->getActorCount()) {
+ actor = _vm->_actors[actorId];
+ }
+
+ if (actor == nullptr) {
+ debugPrintf("Unknown actor %i\n", actorId);
+ return true;
+ }
+
+ int otherActorId = atoi(argv[2]);
+
+ if (otherActorId < 0 && otherActorId >= (int)_vm->_gameInfo->getActorCount()) {
+ debugPrintf("Unknown actor %i\n", otherActorId);
+ }
+
+ if (argc == 4) {
+ int value = atoi(argv[3]);
+
+ if (value < 0 || value > 100) {
+ debugPrintf("Value must be [0..100]");
+ return true;
+ }
+
+ actor->setFriendlinessToOther(otherActorId, value);
+ }
+
+ debugPrintf("actorFriendliness(%i, %i) = %i\n", actorId, otherActorId, actor->getFriendlinessToOther(otherActorId));
+
+ return true;
+}
+
bool Debugger::cmdLoad(int argc, const char **argv) {
if (argc != 2) {
debugPrintf("Loads a save game from original format.\n");