aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/scene.h
diff options
context:
space:
mode:
authorPeter Kohaut2016-10-28 22:34:04 +0200
committerPeter Kohaut2016-10-28 22:34:04 +0200
commit1b40c5bf55c24a090632765335d871c198004120 (patch)
treec8b40484c403a2192b6fddda343df896f8ab732d /engines/bladerunner/scene.h
parentebf173b9ce4305a373c0e24171ed7dec51093c5e (diff)
downloadscummvm-rg350-1b40c5bf55c24a090632765335d871c198004120.tar.gz
scummvm-rg350-1b40c5bf55c24a090632765335d871c198004120.tar.bz2
scummvm-rg350-1b40c5bf55c24a090632765335d871c198004120.zip
BLADERUNNER: fixed memory leaks & overflows
fixed few memory leaks fixed overflows prepared more logic for looping but its not yet working correctly - still figuring out original code for vqadecoder
Diffstat (limited to 'engines/bladerunner/scene.h')
-rw-r--r--engines/bladerunner/scene.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/engines/bladerunner/scene.h b/engines/bladerunner/scene.h
index 6a34fcd249..5bc25fc6fc 100644
--- a/engines/bladerunner/scene.h
+++ b/engines/bladerunner/scene.h
@@ -44,10 +44,10 @@ public:
VQAPlayer *_vqaPlayer;
int _defaultLoop;
- int _defaultLoopSet;
- int _field_20_loop_stuff;
+ bool _defaultLoopSet;
int _specialLoopMode;
int _specialLoop;
+ bool _specialLoopAtEnd;
int _introFinished;
int _nextSetId;
int _nextSceneId;
@@ -83,9 +83,7 @@ public:
delete _set;
delete _regions;
delete _exits;
- if (_vqaPlayer != nullptr) {
- delete _vqaPlayer;
- }
+ delete _vqaPlayer;
}
bool open(int setId, int sceneId, bool isLoadingGame);
@@ -109,6 +107,10 @@ public:
void objectSetIsObstacleAll(bool isObstacle, bool sceneLoaded);
void objectSetIsTarget(int objectId, bool isTarget, bool sceneLoaded);
const char *objectGetName(int objectId);
+
+private:
+ void loopEnded(int frame, int loopId);
+ static void loopEndedStatic(void* data, int frame, int loopId);
};
} // End of namespace BladeRunner