aboutsummaryrefslogtreecommitdiff
path: root/engines/supernova2/state.cpp
diff options
context:
space:
mode:
authorJaromir Wysoglad2019-05-29 18:02:26 +0200
committerThierry Crozat2019-07-28 15:09:14 +0100
commitb6b26bb6bbc34c8f81ef938d74f885efb3f11b6f (patch)
treec8d1f3f3bc704c563232fcd8d7c2451506dd88ac /engines/supernova2/state.cpp
parenta86a397b261eceb2830a15f030e0aa5f50651343 (diff)
downloadscummvm-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.cpp27
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;