aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/core
diff options
context:
space:
mode:
authorPaul Gilbert2016-08-14 14:57:23 -0400
committerPaul Gilbert2016-08-14 14:57:23 -0400
commit7e3d91cd46426e8091032010f36f86ee467a899c (patch)
treeed494c2b05d2ae963544cc29a308162bb9fe1d21 /engines/titanic/core
parent54a6ec5c074bfb2d83f1841c5775ac606dbd9d90 (diff)
downloadscummvm-rg350-7e3d91cd46426e8091032010f36f86ee467a899c.tar.gz
scummvm-rg350-7e3d91cd46426e8091032010f36f86ee467a899c.tar.bz2
scummvm-rg350-7e3d91cd46426e8091032010f36f86ee467a899c.zip
TITANIC: Implemented CTitania class
Diffstat (limited to 'engines/titanic/core')
-rw-r--r--engines/titanic/core/game_object.cpp14
-rw-r--r--engines/titanic/core/game_object.h5
2 files changed, 19 insertions, 0 deletions
diff --git a/engines/titanic/core/game_object.cpp b/engines/titanic/core/game_object.cpp
index 9a524e57a9..12d4c5603a 100644
--- a/engines/titanic/core/game_object.cpp
+++ b/engines/titanic/core/game_object.cpp
@@ -668,6 +668,20 @@ void CGameObject::playRandomClip(const char *const *names, uint flags) {
playClip(name, flags);
}
+void CGameObject::playCutscene(uint startFrame, uint endFrame) {
+ if (!_surface) {
+ if (!_resource.empty())
+ loadResource(_resource);
+ _resource.clear();
+ }
+
+ if (_surface && _surface->loadIfReady() && _surface->_movie) {
+ disableMouse();
+ _surface->_movie->playCutscene(_bounds, startFrame, endFrame);
+ enableMouse();
+ }
+}
+
void CGameObject::savePosition() {
_savedPos = _bounds;
}
diff --git a/engines/titanic/core/game_object.h b/engines/titanic/core/game_object.h
index f853a63bbb..cdb5f6906a 100644
--- a/engines/titanic/core/game_object.h
+++ b/engines/titanic/core/game_object.h
@@ -350,6 +350,11 @@ protected:
void playClip(uint startFrame, uint endFrame);
/**
+ * Play a cutscene
+ */
+ void playCutscene(uint startFrame, uint endFrame);
+
+ /**
* Play a clip randomly from a passed list of names
*/
void playRandomClip(const char *const *names, uint flags);