aboutsummaryrefslogtreecommitdiff
path: root/engines/dreamweb/dreamweb.cpp
diff options
context:
space:
mode:
authorVladimir Menshakov2011-06-13 11:35:58 +0400
committerAlyssa Milburn2011-06-15 17:34:40 +0200
commit308fcf0953ab4974d997710debdaa72b0b44ed3e (patch)
treede551c82f619c4974b4ae1a2023d08f60e1696b1 /engines/dreamweb/dreamweb.cpp
parent92a11ea59d36e46a2a0cc0beaeac98310efed433 (diff)
downloadscummvm-rg350-308fcf0953ab4974d997710debdaa72b0b44ed3e.tar.gz
scummvm-rg350-308fcf0953ab4974d997710debdaa72b0b44ed3e.tar.bz2
scummvm-rg350-308fcf0953ab4974d997710debdaa72b0b44ed3e.zip
DREAMWEB: added setSpeed, CTRL-F shortcut and removed erik's comment because it's good idea :)
Diffstat (limited to 'engines/dreamweb/dreamweb.cpp')
-rw-r--r--engines/dreamweb/dreamweb.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index ecab4337c1..b3bae38d24 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -66,6 +66,7 @@ DreamWebEngine::DreamWebEngine(OSystem *syst, const DreamWebGameDescription *gam
DebugMan.addDebugChannel(kDebugSaveLoad, "SaveLoad", "Track Save/Load Function");
_outSaveFile = 0;
_inSaveFile = 0;
+ _speed = 1;
}
DreamWebEngine::~DreamWebEngine() {
@@ -73,10 +74,6 @@ DreamWebEngine::~DreamWebEngine() {
delete _console;
}
-// Let's see if it's a good idea to emulate VSYNC interrupts with a timer like
-// this. There's a chance we'll miss interrupts, which could be countered by
-// counting them instead of just flagging them, but we'll see...
-
static void vSyncInterrupt(void *refCon) {
DreamWebEngine *vm = (DreamWebEngine *)refCon;
@@ -126,6 +123,15 @@ void DreamWebEngine::processEvents() {
keyHandled = true;
}
break;
+ case Common::KEYCODE_f:
+ if (event.kbd.flags & Common::KBD_CTRL) {
+ if (_speed != 10)
+ setSpeed(10);
+ else
+ setSpeed(1);
+ keyHandled = true;
+ }
+ break;
default:
break;
}
@@ -166,6 +172,13 @@ Common::Error DreamWebEngine::run() {
return Common::kNoError;
}
+void DreamWebEngine::setSpeed(uint speed) {
+ debug(0, "setting speed %u", speed);
+ _speed = speed;
+ getTimerManager()->removeTimerProc(vSyncInterrupt);
+ getTimerManager()->installTimerProc(vSyncInterrupt, 1000000 / 70 / speed, this);
+}
+
void DreamWebEngine::openFile(const Common::String &name) {
processEvents();
closeFile();