aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/scumm.h
diff options
context:
space:
mode:
authorMax Horn2007-06-30 18:22:21 +0000
committerMax Horn2007-06-30 18:22:21 +0000
commitfed38a794f8cd810e7b50f59d71b4c0fc581d6fc (patch)
tree39972f0dfb98966035fb999a520848c39ccc2aed /engines/scumm/scumm.h
parent6064b876259ce7beca2c32d1b48ea0817149136b (diff)
downloadscummvm-rg350-fed38a794f8cd810e7b50f59d71b4c0fc581d6fc.tar.gz
scummvm-rg350-fed38a794f8cd810e7b50f59d71b4c0fc581d6fc.tar.bz2
scummvm-rg350-fed38a794f8cd810e7b50f59d71b4c0fc581d6fc.zip
Added Engine::pauseEngine method (allows outside code, like the backend, to pause/resume the active engine); made the global 'confirm exit' dialog use that feature; implemented ScummEngine::pauseEngine
svn-id: r27797
Diffstat (limited to 'engines/scumm/scumm.h')
-rw-r--r--engines/scumm/scumm.h26
1 files changed, 17 insertions, 9 deletions
diff --git a/engines/scumm/scumm.h b/engines/scumm/scumm.h
index 3a5e9fb1ba..5c2249d198 100644
--- a/engines/scumm/scumm.h
+++ b/engines/scumm/scumm.h
@@ -406,9 +406,6 @@ class ScummEngine : public Engine {
friend class CharsetRenderer;
friend class ResourceManager;
- GUI::Debugger *getDebugger();
- void errorString(const char *buf_input, char *buf_output);
-
public:
/* Put often used variables at the top.
* That results in a shorter form of the opcode
@@ -437,17 +434,28 @@ public:
protected:
VirtualMachineState vm;
+
+ /**
+ * The pause level, 0 means 'running', a positive value indicates
+ * how often the engine has been paused (and hence how often it has
+ * to be un-paused before it resumes running). This makes it possible
+ * to nest code which pauses the engine.
+ */
+ int _pauseLevel;
+
+ bool _oldSoundsPaused;
public:
// Constructor / Destructor
ScummEngine(OSystem *syst, const DetectorResult &dr);
virtual ~ScummEngine();
- /** Startup function, main loop. */
- int go();
-
- // Init functions
- int init();
+ // Engine APIs
+ virtual int init();
+ virtual int go();
+ virtual void errorString(const char *buf_input, char *buf_output);
+ virtual GUI::Debugger *getDebugger();
+ virtual void pauseEngine(bool pause);
protected:
virtual void setupScumm();
@@ -638,7 +646,7 @@ protected:
void saveInfos(Common::OutSaveFile* file);
int32 _engineStartTime;
- int32 _dialogStartTime;
+ int32 _pauseStartTime;
protected:
/* Script VM - should be in Script class */