From d3648232fdce6a851470ce57b135b38e66bfe0bc Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Tue, 3 Apr 2018 22:04:20 +0200 Subject: BLADERUNNER: Implement scene jumping via bootparams. Specify bootparam in form CTTTSSS, where C is chapter, TTT is set and SSS is scene number. So, for RC02 it is 1016079. --- engines/bladerunner/bladerunner.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'engines') diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp index ab8ad36979..a48042e39d 100644 --- a/engines/bladerunner/bladerunner.cpp +++ b/engines/bladerunner/bladerunner.cpp @@ -75,6 +75,7 @@ #include "bladerunner/zbuffer.h" #include "common/array.h" +#include "common/config-manager.h" #include "common/error.h" #include "common/events.h" #include "common/savefile.h" @@ -475,8 +476,20 @@ void BladeRunnerEngine::initChapterAndScene() { _actors[i]->movementTrackNext(true); } - _settings->setChapter(1); - _settings->setNewSetAndScene(_gameInfo->getInitialSetId(), _gameInfo->getInitialSceneId()); + if (ConfMan.hasKey("boot_param")) { + int param = ConfMan.getInt("boot_param"); // CTTTSSS + int chapter = param / 1000000; + param -= chapter * 1000000; + int set = param / 1000; + param -= set * 1000; + int scene = param; + + _settings->setChapter(chapter); + _settings->setNewSetAndScene(set, scene); + } else { + _settings->setChapter(1); + _settings->setNewSetAndScene(_gameInfo->getInitialSetId(), _gameInfo->getInitialSceneId()); + } } void BladeRunnerEngine::shutdown() { -- cgit v1.2.3