diff options
author | Jaromir Wysoglad | 2019-05-29 18:02:26 +0200 |
---|---|---|
committer | Thierry Crozat | 2019-07-28 15:09:14 +0100 |
commit | b6b26bb6bbc34c8f81ef938d74f885efb3f11b6f (patch) | |
tree | c8d1f3f3bc704c563232fcd8d7c2451506dd88ac /engines/supernova2/state.cpp | |
parent | a86a397b261eceb2830a15f030e0aa5f50651343 (diff) | |
download | scummvm-rg350-b6b26bb6bbc34c8f81ef938d74f885efb3f11b6f.tar.gz scummvm-rg350-b6b26bb6bbc34c8f81ef938d74f885efb3f11b6f.tar.bz2 scummvm-rg350-b6b26bb6bbc34c8f81ef938d74f885efb3f11b6f.zip |
SUPERNOVA2: Add intro animation
Diffstat (limited to 'engines/supernova2/state.cpp')
-rw-r--r-- | engines/supernova2/state.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/engines/supernova2/state.cpp b/engines/supernova2/state.cpp index 24b86895d9..71adbf0af9 100644 --- a/engines/supernova2/state.cpp +++ b/engines/supernova2/state.cpp @@ -80,6 +80,7 @@ void GameManager::initState() { void GameManager::initRooms() { _rooms[INTRO] = new Intro(_vm, this); + _rooms[AIRPORT] = new Airport(_vm, this); } void GameManager::updateEvents() { @@ -167,6 +168,32 @@ void GameManager::wait(int ticks) { } while (g_system->getMillis() < end && !_vm->shouldQuit()); } +void GameManager::waitOnInput(int ticks) { + uint32 end = g_system->getMillis() + ticksToMsec(ticks); + do { + g_system->delayMillis(_vm->_delay); + updateEvents(); + g_system->updateScreen(); + } while (g_system->getMillis() < end && !_vm->shouldQuit() && !_keyPressed && !_mouseClicked); +} + +bool GameManager::waitOnInput(int ticks, Common::KeyCode &keycode) { + keycode = Common::KEYCODE_INVALID; + uint32 end = g_system->getMillis() + ticksToMsec(ticks); + do { + g_system->delayMillis(_vm->_delay); + updateEvents(); + g_system->updateScreen(); + if (_keyPressed) { + keycode = _key.keycode; + _key.reset(); + return true; + } else if (_mouseClicked) + return true; + } while (g_system->getMillis() < end && !_vm->shouldQuit()); + return false; +} + void GameManager::changeRoom(RoomId id) { _currentRoom = _rooms[id]; _newRoom = true; |