aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2016-10-29 07:54:52 -0400
committerPaul Gilbert2016-10-29 07:54:52 -0400
commitfe2ab0f3b77cb8f0b0f648c82680587e35bf9103 (patch)
tree3123f721c68f35e8e7f64e26c492c9f752e99661 /engines
parent4740f16b7f2b964d9c7cde2e0856f408c912ecdd (diff)
downloadscummvm-rg350-fe2ab0f3b77cb8f0b0f648c82680587e35bf9103.tar.gz
scummvm-rg350-fe2ab0f3b77cb8f0b0f648c82680587e35bf9103.tar.bz2
scummvm-rg350-fe2ab0f3b77cb8f0b0f648c82680587e35bf9103.zip
TITANIC: Fix infinite recursion loading object resources
Diffstat (limited to 'engines')
-rw-r--r--engines/titanic/core/game_object.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/engines/titanic/core/game_object.cpp b/engines/titanic/core/game_object.cpp
index a1b86e3520..92c7e948c8 100644
--- a/engines/titanic/core/game_object.cpp
+++ b/engines/titanic/core/game_object.cpp
@@ -403,8 +403,11 @@ void CGameObject::loadImage(const CString &name, bool pendingFlag) {
void CGameObject::loadFrame(int frameNumber) {
_frameNumber = -1;
- if (!_resource.empty())
+
+ if (!_surface && !_resource.empty()) {
loadResource(_resource);
+ _resource.clear();
+ }
if (_surface)
_surface->setMovieFrame(frameNumber);
@@ -612,9 +615,8 @@ void CGameObject::playMovie(uint flags) {
void CGameObject::playMovie(int startFrame, int endFrame, uint flags) {
_frameNumber = -1;
- if (!_surface) {
- if (!_resource.empty())
- loadResource(_resource);
+ if (!_surface && !_resource.empty()) {
+ loadResource(_resource);
_resource.clear();
}
@@ -630,9 +632,8 @@ void CGameObject::playMovie(int startFrame, int endFrame, uint flags) {
void CGameObject::playMovie(int startFrame, int endFrame, int initialFrame, uint flags) {
_frameNumber = -1;
- if (!_surface) {
- if (!_resource.empty())
- loadResource(_resource);
+ if (!_surface && !_resource.empty()) {
+ loadResource(_resource);
_resource.clear();
}