From f90b57ef85e4e45cc4a7b00aef997a71d0549723 Mon Sep 17 00:00:00 2001 From: alxpnv Date: Thu, 4 Mar 2021 16:05:44 +0300 Subject: [PATCH] ASYLUM: set the current cd number. This unbreaks chapter 4 --- engines/asylum/asylum.cpp | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/engines/asylum/asylum.cpp b/engines/asylum/asylum.cpp index 964976ea4e4..897648067ca 100644 --- a/engines/asylum/asylum.cpp +++ b/engines/asylum/asylum.cpp @@ -193,7 +193,35 @@ void AsylumEngine::startGame(ResourcePackId sceneId, StartGameType type) { _scene = new Scene(this); _handler = _scene; - // Original checks for the current cd (we have all data files on disc, so this is not needed) + // Set the current cd number (necessary for proper SharedSound resource pack initialization) + switch (sceneId) { + default: + _resource->setCdNumber(-1); + break; + + case kResourcePackTowerCells: + case kResourcePackInnocentAbandoned: + case kResourcePackCourtyardAndChapel: + _resource->setCdNumber(1); + break; + + case kResourcePackCircusOfFools: + case kResourcePackCave: + case kResourcePackMansion: + case kResourcePackLaboratory: + case kResourcePackHive: + _resource->setCdNumber(2); + break; + + case kResourcePackMorgueAndCemetery: + case kResourcePackLostVillage: + case kResourcePackMaze: + case kResourcePackGauntlet: + case kResourcePackMorgansLastGame: + _resource->setCdNumber(3); + break; + } + switch (type) { default: error("[AsylumEngine::startGame] Invalid start game type!");