diff options
| -rw-r--r-- | engines/cryomni3d/versailles/engine.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/engines/cryomni3d/versailles/engine.cpp b/engines/cryomni3d/versailles/engine.cpp index 46d308fe89..eb3f030bac 100644 --- a/engines/cryomni3d/versailles/engine.cpp +++ b/engines/cryomni3d/versailles/engine.cpp @@ -966,7 +966,7 @@ void CryOmni3DEngine_Versailles::executeTransition(unsigned int nextPlaceId) { _nextPlaceId = nextPlaceId; - Common::String animation = transition->animations[animationId]; + Common::String animation = animationId == -1u ? "" : transition->animations[animationId]; animation.toUppercase(); debug("Transition animation: %s", animation.c_str()); if (animation.hasPrefix("NOT_FLI")) { @@ -1015,7 +1015,7 @@ void CryOmni3DEngine_Versailles::executeTransition(unsigned int nextPlaceId) { unsigned int nextNextPlaceId = nextPlace->transitions[transitionNum].dstId; animationId = determineTransitionAnimation(nextPlaceId, nextNextPlaceId, &transition); - animation = transition->animations[animationId]; + animation = animationId == -1u ? "" : transition->animations[animationId]; animation.toUppercase(); if (animation.hasPrefix("NOT_FLI")) { @@ -1074,7 +1074,11 @@ unsigned int CryOmni3DEngine_Versailles::determineTransitionAnimation(unsigned i error("Invalid dst state"); } - if (animsNum <= 1) { + if (animsNum == 0) { + return -1; + } + + if (animsNum == 1) { return 0; } |
