diff options
author | Sven Hesse | 2012-06-14 23:39:33 +0200 |
---|---|---|
committer | Sven Hesse | 2012-06-14 23:40:18 +0200 |
commit | 3b8b3c4caffc8a19a7ad4c4fa55bad712f0e5fce (patch) | |
tree | 50daa05b07c4efe95e5a276a2309cf0638345fa7 | |
parent | acaf8f762382f1aa886d4a3f5b0b8b662863f01c (diff) | |
download | scummvm-rg350-3b8b3c4caffc8a19a7ad4c4fa55bad712f0e5fce.tar.gz scummvm-rg350-3b8b3c4caffc8a19a7ad4c4fa55bad712f0e5fce.tar.bz2 scummvm-rg350-3b8b3c4caffc8a19a7ad4c4fa55bad712f0e5fce.zip |
GOB: Fix a failed assert in Litte Red Riding Hood
-rw-r--r-- | engines/gob/inter_v1.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/engines/gob/inter_v1.cpp b/engines/gob/inter_v1.cpp index 6fc472a0ac..3652637e32 100644 --- a/engines/gob/inter_v1.cpp +++ b/engines/gob/inter_v1.cpp @@ -1584,14 +1584,13 @@ void Inter_v1::o1_waitEndPlay(OpFuncParams ¶ms) { } void Inter_v1::o1_playComposition(OpFuncParams ¶ms) { - int16 composition[50]; - int16 dataVar; - int16 freqVal; + int16 dataVar = _vm->_game->_script->readVarIndex(); + int16 freqVal = _vm->_game->_script->readValExpr(); - dataVar = _vm->_game->_script->readVarIndex(); - freqVal = _vm->_game->_script->readValExpr(); + int16 composition[50]; + int maxEntries = MIN<int>(50, (_variables->getSize() - dataVar) / 4); for (int i = 0; i < 50; i++) - composition[i] = (int16) VAR_OFFSET(dataVar + i * 4); + composition[i] = (i < maxEntries) ? ((int16) VAR_OFFSET(dataVar + i * 4)) : -1; _vm->_sound->blasterPlayComposition(composition, freqVal); } |