Skip to content

Commit

Permalink
BLADERUNNER: Added "clue" debugger command
Browse files Browse the repository at this point in the history
  • Loading branch information
peterkohaut committed Jan 19, 2019
1 parent e45aad9 commit f775401
Showing 1 changed file with 37 additions and 0 deletions.
37 changes: 37 additions & 0 deletions engines/bladerunner/debugger.cpp
Expand Up @@ -71,6 +71,7 @@ Debugger::Debugger(BladeRunnerEngine *vm) : GUI::Debugger() {
registerCmd("say", WRAP_METHOD(Debugger, cmdSay));
registerCmd("scene", WRAP_METHOD(Debugger, cmdScene));
registerCmd("var", WRAP_METHOD(Debugger, cmdVariable));
registerCmd("clue", WRAP_METHOD(Debugger, cmdClue));
registerCmd("load", WRAP_METHOD(Debugger, cmdLoad));
registerCmd("save", WRAP_METHOD(Debugger, cmdSave));
}
Expand Down Expand Up @@ -490,6 +491,42 @@ bool Debugger::cmdVariable(int argc, const char **argv) {
return true;
}

bool Debugger::cmdClue(int argc, const char **argv) {
if (argc != 3 && argc != 4) {
debugPrintf("Get or changes clue for an actor.\n");
debugPrintf("Usage: %s <actorId> <clueId> [<value>]\n", argv[0]);
return true;
}

int actorId = atoi(argv[1]);

Actor *actor = nullptr;
if ((actorId >= 0 && actorId < (int)_vm->_gameInfo->getActorCount()) || (actorId == kActorVoiceOver)) {
actor = _vm->_actors[actorId];
}

if (actor == nullptr) {
debugPrintf("Unknown actor %i\n", actorId);
return true;
}

int clueId = atoi(argv[2]);

// TODO: check clueId

if (argc == 4) {
int value = atoi(argv[3]);
if (value != 0) {
actor->acquireClue(clueId, true, -1);
} else {
actor->loseClue(clueId);
}
}
debugPrintf("actorClue(%i, %i) = %i\n", actorId, clueId, actor->hasClue(clueId));

return true;
}

bool Debugger::cmdLoad(int argc, const char **argv) {
if (argc != 2) {
debugPrintf("Loads a save game from original format.\n");
Expand Down

0 comments on commit f775401

Please sign in to comment.