aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Menshakov2011-06-13 11:35:58 +0400
committerAlyssa Milburn2011-06-15 17:34:40 +0200
commit308fcf0953ab4974d997710debdaa72b0b44ed3e (patch)
treede551c82f619c4974b4ae1a2023d08f60e1696b1
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 :)
-rw-r--r--engines/dreamweb/dreamweb.cpp21
-rw-r--r--engines/dreamweb/dreamweb.h4
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;
};