[Scummvm-cvs-logs] SF.net SVN: scummvm: [31245] scummvm/trunk/engines/kyra/script_v2.cpp

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Wed Mar 26 20:58:33 CET 2008


Revision: 31245
          http://scummvm.svn.sourceforge.net/scummvm/?rev=31245&view=rev
Author:   lordhoto
Date:     2008-03-26 12:58:33 -0700 (Wed, 26 Mar 2008)

Log Message:
-----------
Added a simple hack which adds delay between animation frames of some scene animations, this prevents some animations from running too fast. See for example bug #1923638 "HoF: Marco missing animation frames".

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/script_v2.cpp

Modified: scummvm/trunk/engines/kyra/script_v2.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script_v2.cpp	2008-03-26 19:29:33 UTC (rev 31244)
+++ scummvm/trunk/engines/kyra/script_v2.cpp	2008-03-26 19:58:33 UTC (rev 31245)
@@ -1087,6 +1087,19 @@
 int KyraEngine_v2::o2_updateSceneAnim(ScriptState *script) {
 	debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v2::o2_updateSceneAnim(%p) (%d, %d)", (const void *)script, stackPos(0), stackPos(1));
 	updateSceneAnim(stackPos(0), stackPos(1));
+
+	// HACK: Some animations are really too fast because of missing delay times.
+	// Notice that the delay time is purely subjective set here, it could look
+	// slower or maybe faster in the original, but at least this looks OK for
+	// LordHoto.
+	//
+	// We know currently of two different animations where this happens.
+	// - One is where Marco is dangling from the flesh-eating plant (see bug #1923638 "HoF: Marco missing animation frames").
+	// - The other one is after giving the ticket to the captain. He would move very fast (barely noticeable) onto the ship
+	//   without this delay.
+	if ((stackPos(0) == 2 && _mainCharacter.sceneId == 3) || (stackPos(0) == 3 && _mainCharacter.sceneId == 33))
+		_sceneSpecialScriptsTimer[_lastProcessedSceneScript] = _system->getMillis() + _tickLength * 2;
+
 	_specialSceneScriptRunFlag = false;
 	return 0;
 }


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