From d7ff84d317f7b4e05eecf5f75dfcaec2ce1ef5ab Mon Sep 17 00:00:00 2001 From: Martin Gerhardy Date: Sun, 24 Jan 2021 16:54:30 +0100 Subject: [PATCH] TWINE: draw holomap trajectory on scene change --- engines/twine/scene/scene.cpp | 5 ++++- engines/twine/scene/scene.h | 2 ++ engines/twine/script/script_life_v1.cpp | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/engines/twine/scene/scene.cpp b/engines/twine/scene/scene.cpp index efb1e8ce3eb..60fdedbee23 100644 --- a/engines/twine/scene/scene.cpp +++ b/engines/twine/scene/scene.cpp @@ -311,7 +311,10 @@ void Scene::changeScene() { initScene(needChangeScene); - // TODO: treat holomap trajectories + if (holomapTrajectory != -1) { + _engine->_holomap->drawHolomapTrajectory(holomapTrajectory); + holomapTrajectory = -1; + } if (needChangeScene == LBA1SceneId::Citadel_Island_end_sequence_1 || needChangeScene == LBA1SceneId::Citadel_Island_end_sequence_2) { sceneTextBank = TextBankId::Tippet_Island; diff --git a/engines/twine/scene/scene.h b/engines/twine/scene/scene.h index 36fe2388e3b..b11d92322c1 100644 --- a/engines/twine/scene/scene.h +++ b/engines/twine/scene/scene.h @@ -309,6 +309,8 @@ public: int32 currentSceneIdx = LBA1SceneId::Citadel_Island_Prison; int32 previousSceneIdx = LBA1SceneId::Citadel_Island_Prison; + int32 holomapTrajectory = -1; + int32 sceneTextBank = TextBankId::None; int32 alphaLight = ANGLE_0; int32 betaLight = ANGLE_0; diff --git a/engines/twine/script/script_life_v1.cpp b/engines/twine/script/script_life_v1.cpp index 0b929313a29..a5b8496ad7a 100644 --- a/engines/twine/script/script_life_v1.cpp +++ b/engines/twine/script/script_life_v1.cpp @@ -1640,7 +1640,7 @@ static int32 lANIM_SET(TwinEEngine *engine, LifeScriptContext &ctx) { * @note Opcode @c 0x60 */ static int32 lHOLOMAP_TRAJ(TwinEEngine *engine, LifeScriptContext &ctx) { - engine->_holomap->drawHolomapTrajectory(ctx.stream.readByte()); + engine->_scene->holomapTrajectory = ctx.stream.readByte(); return 0; }