diff options
| -rw-r--r-- | lure/events.cpp | 2 | ||||
| -rw-r--r-- | lure/game.cpp | 8 | ||||
| -rw-r--r-- | lure/menu.cpp | 3 | 
3 files changed, 10 insertions, 3 deletions
| diff --git a/lure/events.cpp b/lure/events.cpp index 2a920965b0..1d8ce03b42 100644 --- a/lure/events.cpp +++ b/lure/events.cpp @@ -99,6 +99,7 @@ void Mouse::waitForRelease() {  	do {  		e.pollEvent(); +		_system.delayMillis(10);  	} while (!e.quitFlag && (lButton() || rButton()));  } @@ -153,6 +154,7 @@ void Events::waitForPress() {  				_mouse.waitForRelease();				  			}  		} +		_system.delayMillis(10);  	}  } diff --git a/lure/game.cpp b/lure/game.cpp index d86b4a7bb3..2cc3e39b42 100644 --- a/lure/game.cpp +++ b/lure/game.cpp @@ -95,8 +95,9 @@ void Game::execute() {  		}  		res.delayList().tick();  		r.update(); +		system.delayMillis(10); -		if (events.pollEvent()) { +		while (events.pollEvent()) {  			if (events.type() == OSystem::EVENT_KEYDOWN) {  				uint16 roomNum = r.roomNumber(); @@ -170,7 +171,7 @@ void Game::execute() {  			// This code eventually needs to be moved into the main loop so that,  			// amongst other things, the tick handlers controlling animation can work  			while (!events.quitFlag && !mouse.lButton() && !mouse.rButton()) { -				if (events.pollEvent()) { +				while (events.pollEvent()) {  					if ((events.type() == OSystem::EVENT_KEYDOWN) &&   						(events.event().kbd.ascii == 27))  						events.quitFlag = true; @@ -184,6 +185,7 @@ void Game::execute() {  				}  				res.delayList().tick();  				r.update(); +				system.delayMillis(10);  			}  			fields.setField(NEW_ROOM_NUMBER, 0); @@ -373,6 +375,7 @@ void Game::doShowCredits() {  }  void Game::doQuit() { +	OSystem &system = System::getReference();  	Mouse &mouse = Mouse::getReference();  	Events &events = Events::getReference();  	Screen &screen = Screen::getReference(); @@ -390,6 +393,7 @@ void Game::doQuit() {  				if ((key >= 'A') && (key <= 'Z')) key += 'a' - 'A';  			}  		} +		system.delayMillis(10);  	} while (((uint8) key != 27) && (key != 'y') && (key != 'n'));  	events.quitFlag = key == 'y'; diff --git a/lure/menu.cpp b/lure/menu.cpp index b1fbd4a5b4..752b11f339 100644 --- a/lure/menu.cpp +++ b/lure/menu.cpp @@ -105,7 +105,7 @@ uint8 Menu::execute() {  	_selectedIndex = 0;  	while (_mouse.lButton()) { -		if (_events.pollEvent()) { +		while (_events.pollEvent()) {  			// handle events  		} @@ -147,6 +147,7 @@ uint8 Menu::execute() {  			_selectedIndex = index;  			if (_selectedIndex != 0) toggleHighlightItem(_selectedIndex);  		} +		_system.delayMillis(10);  	}  	if (_surfaceMenu) delete _surfaceMenu; | 
