From 3b8b3c4caffc8a19a7ad4c4fa55bad712f0e5fce Mon Sep 17 00:00:00 2001 From: Sven Hesse Date: Thu, 14 Jun 2012 23:39:33 +0200 Subject: GOB: Fix a failed assert in Litte Red Riding Hood --- engines/gob/inter_v1.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'engines/gob/inter_v1.cpp') 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(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); } -- cgit v1.2.3