diff options
-rw-r--r-- | engines/cine/gfx.cpp | 2 | ||||
-rw-r--r-- | engines/cine/main_loop.cpp | 19 | ||||
-rw-r--r-- | engines/cine/main_loop.h | 2 |
3 files changed, 15 insertions, 8 deletions
diff --git a/engines/cine/gfx.cpp b/engines/cine/gfx.cpp index ea078aafe3..7e29e8ca0b 100644 --- a/engines/cine/gfx.cpp +++ b/engines/cine/gfx.cpp @@ -316,8 +316,6 @@ void gfxFlipRawPage(uint8 *frontBuffer) { } g_system->copyRectToScreen(screenBuffer, 320, 0, 0, 320, 200); - g_system->updateScreen(); - g_system->delayMillis(100); } void drawSpriteRaw(uint8 *spritePtr, uint8 *maskPtr, int16 width, int16 height, diff --git a/engines/cine/main_loop.cpp b/engines/cine/main_loop.cpp index 1a90a1af9f..24227f169c 100644 --- a/engines/cine/main_loop.cpp +++ b/engines/cine/main_loop.cpp @@ -41,7 +41,7 @@ uint16 mouseLeft = 0; uint16 mouseUpdateStatus; uint16 dummyU16; -void manageEvents(void) { +void manageEvents(int count) { OSystem::Event event; while (g_system->pollEvent(event)) { @@ -64,11 +64,20 @@ void manageEvents(void) { } } - mouseData.left = mouseLeft; - mouseData.right = mouseRight; + if (count) { + mouseData.left = mouseLeft; + mouseData.right = mouseRight; + mouseLeft = 0; + mouseRight = 0; + } + + int i; - mouseLeft = 0; - mouseRight = 0; + for (i = 0; i < count; i++) { + g_system->updateScreen(); + g_system->delayMillis(10); + manageEvents(0); + } } void getMouseData(uint16 param, uint16 *pButton, uint16 *pX, uint16 *pY) { diff --git a/engines/cine/main_loop.h b/engines/cine/main_loop.h index 0091808ea6..5cad29870c 100644 --- a/engines/cine/main_loop.h +++ b/engines/cine/main_loop.h @@ -28,7 +28,7 @@ namespace Cine { void mainLoop(int bootScriptIdx); -void manageEvents(void); +void manageEvents(int count = 10); } // End of namespace Cine |