diff options
-rw-r--r-- | engines/cryomni3d/cryomni3d.cpp | 14 | ||||
-rw-r--r-- | engines/cryomni3d/versailles/engine.cpp | 18 |
2 files changed, 18 insertions, 14 deletions
diff --git a/engines/cryomni3d/cryomni3d.cpp b/engines/cryomni3d/cryomni3d.cpp index 49347a2cd9..e663e5d995 100644 --- a/engines/cryomni3d/cryomni3d.cpp +++ b/engines/cryomni3d/cryomni3d.cpp @@ -366,8 +366,11 @@ void CryOmni3DEngine::fadeOutPalette() { palOut[i] = palWork[i] >> 8; } setPalette(palOut, 0, 256); - g_system->updateScreen(); - g_system->delayMillis(50); + // Wait 50ms between each steps but refresh screen every 10ms + for(unsigned int i = 0; i < 5; i++) { + g_system->updateScreen(); + g_system->delayMillis(10); + } } setBlackPalette(); } @@ -390,8 +393,11 @@ void CryOmni3DEngine::fadeInPalette(const byte *palette) { palOut[i] = palWork[i] >> 8; } setPalette(palOut, 0, 256); - g_system->updateScreen(); - g_system->delayMillis(50); + // Wait 50ms between each steps but refresh screen every 10ms + for(unsigned int i = 0; i < 5; i++) { + g_system->updateScreen(); + g_system->delayMillis(10); + } } setPalette(palette, 0, 256); g_system->updateScreen(); diff --git a/engines/cryomni3d/versailles/engine.cpp b/engines/cryomni3d/versailles/engine.cpp index 912425a74a..3192aa6182 100644 --- a/engines/cryomni3d/versailles/engine.cpp +++ b/engines/cryomni3d/versailles/engine.cpp @@ -1099,6 +1099,9 @@ int CryOmni3DEngine_Versailles::handleWarp() { xDelta >>= -_omni3dSpeed; yDelta >>= -_omni3dSpeed; } + // This correction factor is to slow down movements for modern CPUs + xDelta /= 5; + yDelta /= 5; leftButtonPressed = (getCurrentMouseButton() == 1); Common::Point mouseRev = _omni3dMan.mapMouseCoords(mouse); @@ -1149,9 +1152,6 @@ int CryOmni3DEngine_Versailles::handleWarp() { g_system->updateScreen(); } } - if (!exit && !leftButtonPressed) { - g_system->delayMillis(50); - } } g_system->showMouse(false); return actionId; @@ -1225,15 +1225,17 @@ void CryOmni3DEngine_Versailles::animateWarpTransition(const Transition *transit } else if (deltaAlpha < 0) { deltaAlpha += 2.*M_PI; } + + // We devide by 5 to slow down movement for modern CPUs int deltaAlphaI; if (deltaAlpha < M_PI) { - deltaAlphaI = -(deltaAlpha * 512.); + deltaAlphaI = -(deltaAlpha * 512. / 5.); } else { - deltaAlphaI = (2.*M_PI - deltaAlpha) * 512.; + deltaAlphaI = (2.*M_PI - deltaAlpha) * 512. / 5.; } double deltaBeta = -srcBeta - _omni3dMan.getBeta(); - int deltaBetaI = -(deltaBeta * 512.); + int deltaBetaI = -(deltaBeta * 512. / 5.); if (_omni3dSpeed > 0) { deltaAlphaI <<= 2; @@ -1259,10 +1261,6 @@ void CryOmni3DEngine_Versailles::animateWarpTransition(const Transition *transit if (pollEvents() && checkKeysPressed(2, Common::KEYCODE_ESCAPE, Common::KEYCODE_SPACE)) { exit = true; } - - if (!exit) { - g_system->delayMillis(50); - } } } |