From 250a1a915a6645baa5586aebfe5978730bca9b5b Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Mon, 6 Jul 2009 11:33:28 +0000 Subject: When a song isn't found, send a "stop handle" event so that the engine won't wait forever (e.g. in SQ4CD, perhaps others) svn-id: r42172 --- engines/sci/engine/ksound.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'engines/sci') diff --git a/engines/sci/engine/ksound.cpp b/engines/sci/engine/ksound.cpp index d6369cfcd1..17f085028f 100644 --- a/engines/sci/engine/ksound.cpp +++ b/engines/sci/engine/ksound.cpp @@ -809,7 +809,10 @@ reg_t kDoSound_SCI1(EngineState *s, int funct_nr, int argc, reg_t *argv) { if (!GET_SEL32V(obj, nodePtr) && obj.segment) { if (!s->resmgr->testResource(ResourceId(kResourceTypeSound, number))) { warning("Could not open song number %d", number); - return NULL_REG; + // Send a "stop handle" event so that the engine won't wait forever here + s->_sound.sfx_song_set_status(handle, SOUND_STATUS_STOPPED); + PUT_SEL32V(obj, signal, -1); + return s->r_acc; } debugC(2, kDebugLevelSound, "Initializing song number %d\n", number); -- cgit v1.2.3