diff options
author | Andrei Prykhodko | 2018-07-18 21:48:54 +0300 |
---|---|---|
committer | Andrei Prykhodko | 2018-07-18 21:48:54 +0300 |
commit | a053a19ca258dc4d344bc2345b5faa1bf2b0183e (patch) | |
tree | 5f89c6f8f0a2c51e2c42c1021562e49128e1ae14 | |
parent | e1460103e195d788dfa0e0cf8bbe57f0afae466f (diff) | |
download | scummvm-rg350-a053a19ca258dc4d344bc2345b5faa1bf2b0183e.tar.gz scummvm-rg350-a053a19ca258dc4d344bc2345b5faa1bf2b0183e.tar.bz2 scummvm-rg350-a053a19ca258dc4d344bc2345b5faa1bf2b0183e.zip |
PINK: fixed pausing of engine when menu appears
-rw-r--r-- | engines/pink/director.cpp | 2 | ||||
-rw-r--r-- | engines/pink/pink.cpp | 12 | ||||
-rw-r--r-- | engines/pink/pink.h | 2 |
3 files changed, 12 insertions, 4 deletions
diff --git a/engines/pink/director.cpp b/engines/pink/director.cpp index cbf44484a9..09af376fbc 100644 --- a/engines/pink/director.cpp +++ b/engines/pink/director.cpp @@ -79,7 +79,7 @@ static const Graphics::MacMenuData menuSubItems[] = { Director::Director() : _surface(640, 480) { _wm.setScreen(&_surface); - _wm.setMode(Graphics::kWMModeNoDesktop | Graphics::kWMModeAutohideMenu); + _wm.setMode(Graphics::kWMModeNoDesktop | Graphics::kWMModeAutohideMenu | Graphics::kWMModalMenuMode); _wm.setMenuHotzone(Common::Rect(0, 0, 640, 23)); _wm.setMenuDelay(250000); diff --git a/engines/pink/pink.cpp b/engines/pink/pink.cpp index f18df012ed..25c8f8818e 100644 --- a/engines/pink/pink.cpp +++ b/engines/pink/pink.cpp @@ -75,6 +75,9 @@ Common::Error PinkEngine::init() { _console = new Console(this); _director = new Director(); + _director->getWndManager()._engine = this; + _director->getWndManager()._pauseEngineCallback = &pauseEngine; + Common::String orbName; Common::String broName; if (isPeril()) { @@ -147,9 +150,7 @@ Common::Error Pink::PinkEngine::run() { } } - if (!_director->isMenuActive()) - _actor->update(); - + _actor->update(); _director->update(); _system->delayMillis(10); } @@ -157,6 +158,11 @@ Common::Error Pink::PinkEngine::run() { return Common::kNoError; } +void PinkEngine::pauseEngine(void *engine, bool pause) { + PinkEngine *vm = (PinkEngine*)engine; + vm->pauseEngineIntern(pause); +} + void PinkEngine::load(Archive &archive) { archive.readString(); archive.readString(); diff --git a/engines/pink/pink.h b/engines/pink/pink.h index 901717890d..faed498a8f 100644 --- a/engines/pink/pink.h +++ b/engines/pink/pink.h @@ -92,6 +92,8 @@ public: Common::Error saveGameState(int slot, const Common::String &desc) override; bool canSaveGameStateCurrently() override; + static void pauseEngine(void *engine, bool pause); // for MacWndMgr + friend class Console; protected: |