diff options
Diffstat (limited to 'engines/kyra')
-rw-r--r-- | engines/kyra/script_v2.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/engines/kyra/script_v2.cpp b/engines/kyra/script_v2.cpp index 0d086c491f..0655da0744 100644 --- a/engines/kyra/script_v2.cpp +++ b/engines/kyra/script_v2.cpp @@ -1087,6 +1087,19 @@ int KyraEngine_v2::o2_defineSceneAnim(ScriptState *script) { 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; } |