mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-15 14:28:28 +00:00
SCI: kAnimate now delays the first few calls less, otherwise sq3 will remove details graphicwise. Walter please check, if this creates a regression with lsl3.
svn-id: r45173
This commit is contained in:
parent
620fa7c641
commit
2ada85b6cc
@ -941,9 +941,17 @@ reg_t kAnimate(EngineState *s, int argc, reg_t *argv) {
|
||||
// Do some speed throttling to calm down games that rely on counting cycles
|
||||
uint32 curTime = g_system->getMillis();
|
||||
uint32 duration = curTime - s->_lastAnimateTime;
|
||||
uint32 neededSleep = 40;
|
||||
|
||||
if (duration < 40) {
|
||||
gfxop_sleep(s->gfx_state, 40-duration);
|
||||
// We are doing this, so that games like sq3 dont think we are running too slow and will remove details (like
|
||||
// animated sierra logo at the beginning). Hopefully this wont cause regressions with pullups in lsl3 (FIXME?)
|
||||
if (s->_lastAnimateCounter < 10) {
|
||||
s->_lastAnimateCounter++;
|
||||
neededSleep = 8;
|
||||
}
|
||||
|
||||
if (duration < neededSleep) {
|
||||
gfxop_sleep(s->gfx_state, neededSleep - duration);
|
||||
s->_lastAnimateTime = g_system->getMillis();
|
||||
} else {
|
||||
s->_lastAnimateTime = curTime;
|
||||
|
@ -106,6 +106,7 @@ EngineState::EngineState(ResourceManager *res, Kernel *kernel, Vocabulary *voc,
|
||||
|
||||
successor = 0;
|
||||
|
||||
_lastAnimateCounter = 0;
|
||||
_lastAnimateTime = 0;
|
||||
|
||||
_setCursorType = SCI_VERSION_AUTODETECT;
|
||||
|
@ -178,6 +178,7 @@ public:
|
||||
uint32 game_start_time; /**< The time at which the interpreter was started */
|
||||
uint32 last_wait_time; /**< The last time the game invoked Wait() */
|
||||
|
||||
uint32 _lastAnimateCounter; /**< total times kAnimate was invoked */
|
||||
uint32 _lastAnimateTime; /**< last time kAnimate was invoked */
|
||||
|
||||
/* Kernel File IO stuff */
|
||||
|
Loading…
x
Reference in New Issue
Block a user