diff options
author | Vladimir Menshakov | 2011-06-13 11:35:58 +0400 |
---|---|---|
committer | Alyssa Milburn | 2011-06-15 17:34:40 +0200 |
commit | 308fcf0953ab4974d997710debdaa72b0b44ed3e (patch) | |
tree | de551c82f619c4974b4ae1a2023d08f60e1696b1 | |
parent | 92a11ea59d36e46a2a0cc0beaeac98310efed433 (diff) | |
download | scummvm-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 :)
-rw-r--r-- | engines/dreamweb/dreamweb.cpp | 21 | ||||
-rw-r--r-- | engines/dreamweb/dreamweb.h | 4 |
2 files changed, 21 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(); diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h index 33a88e0408..50d2779327 100644 --- a/engines/dreamweb/dreamweb.h +++ b/engines/dreamweb/dreamweb.h @@ -104,6 +104,8 @@ private: void keyPressed(uint16 ascii); + void setSpeed(uint speed); + const DreamWebGameDescription *_gameDescription; Common::RandomSource _rnd; @@ -111,6 +113,8 @@ private: Common::OutSaveFile *_outSaveFile; Common::InSaveFile *_inSaveFile; + uint _speed; + dreamgen::Context _context; }; |