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

sylvaintv at users.sourceforge.net sylvaintv at users.sourceforge.net
Sat Jan 29 23:15:59 CET 2011


Revision: 55626
          http://scummvm.svn.sourceforge.net/scummvm/?rev=55626&view=rev
Author:   sylvaintv
Date:     2011-01-29 22:15:57 +0000 (Sat, 29 Jan 2011)

Log Message:
-----------
TOON: Add workarounds in transformed barn scene

Drew does not disappear anymore in the barn when filling his can.
Slowed down the talk animations a bit

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

Modified: scummvm/trunk/engines/toon/script_func.cpp
===================================================================
--- scummvm/trunk/engines/toon/script_func.cpp	2011-01-29 20:59:46 UTC (rev 55625)
+++ scummvm/trunk/engines/toon/script_func.cpp	2011-01-29 22:15:57 UTC (rev 55626)
@@ -256,7 +256,16 @@
 
 	int32 arg1 = stackPos(0);
 	int32 arg2 = stackPos(1);
+	int32 arg3 = stackPos(2);
 
+	// WORKAROUND: In scene 19 (transformed barn), Drew disappears when it shouldn't. It seems like a script bug
+	//				even if the game works correctly at this point
+	//				We need a special case for it then.
+	if (_vm->state()->_currentScene == 19 && arg3 == 1 && arg1 < 0) {
+		arg1 = 1;
+	}
+
+
 	if (arg2 > -1)
 		_vm->getDrew()->forceFacing(arg2);
 
@@ -266,7 +275,6 @@
 		_vm->getDrew()->setVisible(true);
 		_vm->getDrew()->playStandingAnim();
 	}
-
 	return 0;
 }
 
@@ -900,7 +908,6 @@
 
 	if (sceneId >= 0 && sceneId < 40) {
 		int32 nextTicks = waitTicks + _vm->getSceneAnimationScript(sceneId)->_lastTimer;
-		//debugC(0,0xff, "sw : assigining %d to lasttimer of %d (current tick %d old milli %d) ",nextTicks, sceneId , _vm->getSystem()->getMillis(), _vm->getOldMilli());
 		if (nextTicks < _vm->getOldMilli())
 			_vm->getSceneAnimationScript(sceneId)->_lastTimer = _vm->getOldMilli() + waitTicks;
 		else
@@ -1014,6 +1021,10 @@
 		}
 	}
 
+	if (_vm->state()->_currentScene == 19 && _vm->getCurrentUpdatingSceneAnimation() == 0 ) {
+		_vm->pauseSceneAnimationScript(_vm->getCurrentUpdatingSceneAnimation(), 6);
+	}
+
 	if (_vm->state()->_currentScene == 29) {
 		if (animId == 16 || animId == 26 || animId == 36)
 			_vm->pauseSceneAnimationScript(_vm->getCurrentUpdatingSceneAnimation(), 2);


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