From 49c5069324e1c45a399f4dcf2a32ce53be840377 Mon Sep 17 00:00:00 2001 From: Peter Kohaut Date: Mon, 4 Feb 2019 19:18:18 +0100 Subject: BLADERUNNER: Added debugger command "friend" It can be used for querying and changing friendliness between actors. --- engines/bladerunner/debugger.cpp | 42 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'engines/bladerunner/debugger.cpp') 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 []\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"); -- cgit v1.2.3