diff options
author | Benjamin Haisch | 2010-10-31 20:03:54 +0000 |
---|---|---|
committer | Willem Jan Palenstijn | 2011-11-20 22:43:10 +0100 |
commit | 9698127c5d78c92f99032d55dec5fe1feb773ae4 (patch) | |
tree | 44c20447455601f948a42c1f7bb05c0c62695912 /engines/toltecs/toltecs.cpp | |
parent | ce7f9a088c03e502eaf0709b18c6c02937673f9f (diff) | |
download | scummvm-rg350-9698127c5d78c92f99032d55dec5fe1feb773ae4.tar.gz scummvm-rg350-9698127c5d78c92f99032d55dec5fe1feb773ae4.tar.bz2 scummvm-rg350-9698127c5d78c92f99032d55dec5fe1feb773ae4.zip |
TOLTECS: - Undef menu test code (oops)
- Rename updateScreen to drawScreen
- Move code from sfUpdateScreen to engine updateScreen
- Use better screen sync code to get closer to the original game's speed
Diffstat (limited to 'engines/toltecs/toltecs.cpp')
-rw-r--r-- | engines/toltecs/toltecs.cpp | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/engines/toltecs/toltecs.cpp b/engines/toltecs/toltecs.cpp index 93d43250db..7fde696732 100644 --- a/engines/toltecs/toltecs.cpp +++ b/engines/toltecs/toltecs.cpp @@ -154,7 +154,7 @@ Common::Error ToltecsEngine::run() { setupSysStrings(); -#define TEST_MENU +//#define TEST_MENU #ifdef TEST_MENU _screen->registerFont(0, 0x0D); _screen->registerFont(1, 0x0E); @@ -254,6 +254,45 @@ void ToltecsEngine::loadScene(uint resIndex) { void ToltecsEngine::updateScreen() { + _sound->updateSpeech(); + + _screen->updateShakeScreen(); + + // TODO: Set quit flag + if (shouldQuit()) + return; + + if (!_movieSceneFlag) + updateInput(); + else + _mouseButton = 0; + + // TODO? Check keyb + + _counter01--; + if (_counter01 <= 0) { + _counter01 = MIN(_counter02, 30); + _counter02 = 0; + drawScreen(); + _flag01 = 1; + _counter02 = 1; + } else { + _screen->clearSprites(); + _flag01 = 0; + } + + static uint32 prevUpdateTime = 0; + uint32 currUpdateTime; + do { + currUpdateTime = _system->getMillis(); + _counter02 = (currUpdateTime - prevUpdateTime) / 13; + } while (_counter02 == 0); + prevUpdateTime = currUpdateTime; + +} + +void ToltecsEngine::drawScreen() { + // FIXME: Quick hack, sometimes cameraY was negative (the code in updateCamera was at fault) if (_cameraY < 0) _cameraY = 0; |