aboutsummaryrefslogtreecommitdiff
path: root/engines/toltecs/toltecs.cpp
diff options
context:
space:
mode:
authorBenjamin Haisch2010-10-31 20:03:54 +0000
committerWillem Jan Palenstijn2011-11-20 22:43:10 +0100
commit9698127c5d78c92f99032d55dec5fe1feb773ae4 (patch)
tree44c20447455601f948a42c1f7bb05c0c62695912 /engines/toltecs/toltecs.cpp
parentce7f9a088c03e502eaf0709b18c6c02937673f9f (diff)
downloadscummvm-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.cpp41
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;