From 2de38e3469e85e56b6401a9c3cd97ead2249f67e Mon Sep 17 00:00:00 2001 From: johndoe123 Date: Fri, 4 Dec 2015 23:23:38 +0100 Subject: ILLUSIONS: DUCKMAN: Extract trigger cause sound playing to method --- engines/illusions/duckman/illusions_duckman.cpp | 22 ++++++++++++---------- engines/illusions/duckman/illusions_duckman.h | 1 + 2 files changed, 13 insertions(+), 10 deletions(-) (limited to 'engines/illusions/duckman') diff --git a/engines/illusions/duckman/illusions_duckman.cpp b/engines/illusions/duckman/illusions_duckman.cpp index c9233ae6d1..289a3d80b4 100644 --- a/engines/illusions/duckman/illusions_duckman.cpp +++ b/engines/illusions/duckman/illusions_duckman.cpp @@ -1086,8 +1086,19 @@ uint32 IllusionsEngine_Duckman::runTriggerCause(uint32 verbId, uint32 objectId2, if (!getTriggerCause(verbId, objectId2, objectId, triggerThreadId)) return 0; + + playTriggerCauseSound(verbId, objectId2, objectId); - // TODO Extract sound effect playing to method + uint32 tempThreadId = newTempThreadId(); + debug(1, "Starting cause thread %08X with triggerThreadId %08X", tempThreadId, triggerThreadId); + CauseThread_Duckman *causeThread = new CauseThread_Duckman(this, tempThreadId, 0, 0, + triggerThreadId); + _threads->startThread(causeThread); + + return tempThreadId; +} + +void IllusionsEngine_Duckman::playTriggerCauseSound(uint32 verbId, uint32 objectId2, uint32 objectId) { bool soundWasPlayed = false; if (_scriptResource->_properties.get(0x000E003C)) { if (verbId == 7 && objectId == 0x40003) { @@ -1103,7 +1114,6 @@ uint32 IllusionsEngine_Duckman::runTriggerCause(uint32 verbId, uint32 objectId2, soundWasPlayed = true; } } - if (!soundWasPlayed) { if (objectId == 0x40003) { playSoundEffect(14); @@ -1123,14 +1133,6 @@ uint32 IllusionsEngine_Duckman::runTriggerCause(uint32 verbId, uint32 objectId2, playSoundEffect(5); } } - - uint32 tempThreadId = newTempThreadId(); - debug(1, "Starting cause thread %08X with triggerThreadId %08X", tempThreadId, triggerThreadId); - CauseThread_Duckman *causeThread = new CauseThread_Duckman(this, tempThreadId, 0, 0, - triggerThreadId); - _threads->startThread(causeThread); - - return tempThreadId; } bool IllusionsEngine_Duckman::loadSavegameFromScript(int16 slotNum, uint32 callingThreadId) { diff --git a/engines/illusions/duckman/illusions_duckman.h b/engines/illusions/duckman/illusions_duckman.h index 1825123e5c..f19a659ac3 100644 --- a/engines/illusions/duckman/illusions_duckman.h +++ b/engines/illusions/duckman/illusions_duckman.h @@ -186,6 +186,7 @@ public: void playSoundEffect(int index); bool getTriggerCause(uint32 verbId, uint32 objectId2, uint32 objectId, uint32 &outThreadId); uint32 runTriggerCause(uint32 verbId, uint32 objectId2, uint32 objectId); + void playTriggerCauseSound(uint32 verbId, uint32 objectId2, uint32 objectId); bool loadSavegameFromScript(int16 slotNum, uint32 callingThreadId); bool saveSavegameFromScript(int16 slotNum, uint32 callingThreadId); -- cgit v1.2.3