aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine
diff options
context:
space:
mode:
authorMax Horn2010-02-23 22:47:53 +0000
committerMax Horn2010-02-23 22:47:53 +0000
commit2e68de1e5ab333966adeafdc998433fe346c9815 (patch)
treef4681a123f1021c36f0efb3aa0c156dea8175d51 /engines/sci/engine
parent02201e937ab7a5d408b4804225affb7ce0251cce (diff)
downloadscummvm-rg350-2e68de1e5ab333966adeafdc998433fe346c9815.tar.gz
scummvm-rg350-2e68de1e5ab333966adeafdc998433fe346c9815.tar.bz2
scummvm-rg350-2e68de1e5ab333966adeafdc998433fe346c9815.zip
SCI: Turn kernel_sleep() into SciEvent::sleep()
svn-id: r48119
Diffstat (limited to 'engines/sci/engine')
-rw-r--r--engines/sci/engine/kernel.cpp20
-rw-r--r--engines/sci/engine/kmisc.cpp2
-rw-r--r--engines/sci/engine/state.cpp4
3 files changed, 3 insertions, 23 deletions
diff --git a/engines/sci/engine/kernel.cpp b/engines/sci/engine/kernel.cpp
index eaeb048353..bc84921367 100644
--- a/engines/sci/engine/kernel.cpp
+++ b/engines/sci/engine/kernel.cpp
@@ -721,26 +721,6 @@ bool kernel_matches_signature(SegManager *segMan, const char *sig, int argc, con
return false;
}
-void kernel_sleep(SciEvent *event, uint32 msecs) {
- uint32 time;
- const uint32 wakeup_time = g_system->getMillis() + msecs;
-
- while (true) {
- // let backend process events and update the screen
- event->get(SCI_EVENT_PEEK);
- // TODO: we need to call Cursor::refreshPosition() before each screen update to limit the mouse cursor position
- time = g_system->getMillis();
- if (time + 10 < wakeup_time) {
- g_system->delayMillis(10);
- } else {
- if (time < wakeup_time)
- g_system->delayMillis(wakeup_time - time);
- break;
- }
-
- }
-}
-
void Kernel::setDefaultKernelNames(Common::String gameId) {
_kernelNames = Common::StringList(sci_default_knames, SCI_KNAMES_DEFAULT_ENTRIES_NR);
diff --git a/engines/sci/engine/kmisc.cpp b/engines/sci/engine/kmisc.cpp
index 01aa1fe6f8..288f8b6387 100644
--- a/engines/sci/engine/kmisc.cpp
+++ b/engines/sci/engine/kmisc.cpp
@@ -77,7 +77,7 @@ reg_t kGameIsRestarting(EngineState *s, int argc, reg_t *argv) {
uint32 neededSleep = 30;
if (duration < neededSleep) {
- kernel_sleep(s->_event, neededSleep - duration);
+ s->_event->sleep(neededSleep - duration);
s->_throttleLastTime = g_system->getMillis();
} else {
s->_throttleLastTime = curTime;
diff --git a/engines/sci/engine/state.cpp b/engines/sci/engine/state.cpp
index 94ff57b330..2babdf4383 100644
--- a/engines/sci/engine/state.cpp
+++ b/engines/sci/engine/state.cpp
@@ -27,7 +27,7 @@
#include "sci/sci.h" // for INCLUDE_OLDGFX
#include "sci/debug.h" // for g_debug_sleeptime_factor
-#include "sci/event.h" // for kernel_sleep
+#include "sci/event.h"
#include "sci/engine/state.h"
#include "sci/engine/selector.h"
@@ -93,7 +93,7 @@ void EngineState::wait(int16 ticks) {
last_wait_time = time;
ticks *= g_debug_sleeptime_factor;
- kernel_sleep(_event, ticks * 1000 / 60);
+ _event->sleep(ticks * 1000 / 60);
}
uint16 EngineState::currentRoomNumber() const {