[Scummvm-cvs-logs] SF.net SVN: scummvm:[53543] scummvm/trunk/engines/toon

sylvaintv at users.sourceforge.net sylvaintv at users.sourceforge.net
Sat Oct 16 19:06:10 CEST 2010


Revision: 53543
          http://scummvm.svn.sourceforge.net/scummvm/?rev=53543&view=rev
Author:   sylvaintv
Date:     2010-10-16 17:06:10 +0000 (Sat, 16 Oct 2010)

Log Message:
-----------
TOON: Fix bugs #3085967 and #3085969 about guards dance

Bug #3085969: "TOON: Missing dialogue for Palace guards dance"
Bug #3085969: "TOON: Missing dialogue for Palace Guards sequence"

Modified Paths:
--------------
    scummvm/trunk/engines/toon/script_func.cpp
    scummvm/trunk/engines/toon/toon.cpp
    scummvm/trunk/engines/toon/toon.h

Modified: scummvm/trunk/engines/toon/script_func.cpp
===================================================================
--- scummvm/trunk/engines/toon/script_func.cpp	2010-10-16 15:55:11 UTC (rev 53542)
+++ scummvm/trunk/engines/toon/script_func.cpp	2010-10-16 17:06:10 UTC (rev 53543)
@@ -618,10 +618,7 @@
 
 int32 ScriptFunc::sys_Cmd_Character_Talking(EMCState *state) {
 	int32 characterId = stackPos(0);
-	Character *character = _vm->getCharacterById(characterId);
-	if (character)
-		return (character->getFlag() & 4) && (character->getFlag() & 8);
-	return 0;
+	return (_vm->getCurrentCharacterTalking() == characterId);
 }
 
 int32 ScriptFunc::sys_Cmd_Set_Flux_Facing_Point(EMCState *state) {
@@ -873,6 +870,12 @@
 		_vm->setSceneAnimationScriptUpdate(false);
 	}
 
+	// WORKAROUND : Slow down just a little the guards dance animation so that the voices don't cut
+	if (_vm->state()->_currentScene == 2 && (sceneId == 2 || sceneId == 3)) {
+		waitTicks = 7;
+		_vm->setSceneAnimationScriptUpdate(false);
+	}
+
 	waitTicks *= _vm->getTickLength();
 
 	if (sceneId >= 0 && sceneId < 40) {

Modified: scummvm/trunk/engines/toon/toon.cpp
===================================================================
--- scummvm/trunk/engines/toon/toon.cpp	2010-10-16 15:55:11 UTC (rev 53542)
+++ scummvm/trunk/engines/toon/toon.cpp	2010-10-16 17:06:10 UTC (rev 53543)
@@ -915,6 +915,8 @@
 		addItemToInventory(_gameState->_mouseState);
 
 	_gameState->_mouseState = -1;
+	_mouseButton = 0;
+	_lastMouseButton = 0x3;
 
 
 	// load package
@@ -1795,9 +1797,11 @@
 
 int32 ToonEngine::characterTalk(int32 dialogid, bool blocking) {
 	if (blocking == false && _audioManager->voiceStillPlaying()) {
-		// someone is already talking, and this voice is not important
-		// skip it
-		return 0;
+		if (_currentTextLineCharacterId == 0 || _currentTextLineCharacterId == 1) {
+			// Drew or Flux is already talking, and this voice is not important
+			// skip it
+			return 0;
+		}
 	}
 
 	int32 myId = 0;

Modified: scummvm/trunk/engines/toon/toon.h
===================================================================
--- scummvm/trunk/engines/toon/toon.h	2010-10-16 15:55:11 UTC (rev 53542)
+++ scummvm/trunk/engines/toon/toon.h	2010-10-16 17:06:10 UTC (rev 53543)
@@ -253,6 +253,10 @@
 		return _currentTextLineId;
 	}
 
+	int32 getCurrentCharacterTalking() {
+		return _currentTextLineCharacterId;
+	}
+
 	CharacterDrew *getDrew() {
 		return (CharacterDrew *)_drew;
 	}


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list