aboutsummaryrefslogtreecommitdiff
path: root/engines/sherlock/scene.cpp
diff options
context:
space:
mode:
authorTorbjörn Andersson2015-06-05 08:17:47 +0200
committerTorbjörn Andersson2015-06-05 08:17:47 +0200
commit766b4fdde65d8592c00df8cce9e52f4964a2d061 (patch)
tree96d9ef9cd99c6216c59553d6bacce436d6a23165 /engines/sherlock/scene.cpp
parentfb8e745e11a196ab345559740d70df248e127443 (diff)
downloadscummvm-rg350-766b4fdde65d8592c00df8cce9e52f4964a2d061.tar.gz
scummvm-rg350-766b4fdde65d8592c00df8cce9e52f4964a2d061.tar.bz2
scummvm-rg350-766b4fdde65d8592c00df8cce9e52f4964a2d061.zip
SHERLOCK: Scalpel and Rose Tattoo have different SCENE_COUNT
Though at the moment, the SCENE_COUNT for Rose Tattoo is just a guess.
Diffstat (limited to 'engines/sherlock/scene.cpp')
-rw-r--r--engines/sherlock/scene.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/engines/sherlock/scene.cpp b/engines/sherlock/scene.cpp
index abcf0d9d52..c377ab7f64 100644
--- a/engines/sherlock/scene.cpp
+++ b/engines/sherlock/scene.cpp
@@ -161,8 +161,16 @@ Scene *Scene::init(SherlockEngine *vm) {
}
Scene::Scene(SherlockEngine *vm): _vm(vm) {
- for (int idx = 0; idx < SCENES_COUNT; ++idx)
- Common::fill(&_sceneStats[idx][0], &_sceneStats[idx][65], false);
+ // TODO: _savedStats isn't ever used?
+ _sceneStats = new bool *[SCENES_COUNT];
+ _savedStats = new bool *[SCENES_COUNT];
+ _sceneStats[0] = new bool[SCENES_COUNT * 65];
+ _savedStats[0] = new bool[SCENES_COUNT * 9];
+ Common::fill(&_sceneStats[0][0], &_sceneStats[0][SCENES_COUNT * 65], false);
+ for (int idx = 1; idx < SCENES_COUNT; ++idx) {
+ _sceneStats[idx] = _sceneStats[idx - 1] + 65;
+ _savedStats[idx] = _savedStats[idx - 1] + 9;
+ }
_currentScene = -1;
_goToScene = -1;
_loadingSavedGame = false;
@@ -180,6 +188,10 @@ Scene::Scene(SherlockEngine *vm): _vm(vm) {
Scene::~Scene() {
freeScene();
+ delete[] _sceneStats[0];
+ delete[] _sceneStats;
+ delete[] _savedStats[0];
+ delete[] _savedStats;
}
void Scene::selectScene() {