[Scummvm-git-logs] scummvm master -> 25d508cf12f3adb257cbc67e3e458f41aa835d22
whiterandrek
whiterandrek at gmail.com
Wed Jul 18 20:56:51 CEST 2018
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
e1460103e1 GRAPHICS: MACGUI: added WMModalMenuMode
a053a19ca2 PINK: fixed pausing of engine when menu appears
25d508cf12 PINK: removed game screen drawing when menu is active
Commit: e1460103e195d788dfa0e0cf8bbe57f0afae466f
https://github.com/scummvm/scummvm/commit/e1460103e195d788dfa0e0cf8bbe57f0afae466f
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2018-07-18T21:47:22+03:00
Commit Message:
GRAPHICS: MACGUI: added WMModalMenuMode
Changed paths:
graphics/macgui/macmenu.cpp
graphics/macgui/macwindowmanager.cpp
graphics/macgui/macwindowmanager.h
diff --git a/graphics/macgui/macmenu.cpp b/graphics/macgui/macmenu.cpp
index 9ab92a8..499f0b9 100644
--- a/graphics/macgui/macmenu.cpp
+++ b/graphics/macgui/macmenu.cpp
@@ -556,6 +556,9 @@ bool MacMenu::mouseMove(int x, int y) {
return true;
} else if ((_wm->_mode & kWMModeAutohideMenu) && !_bbox.contains(x, y)) {
_isVisible = false;
+ if ((_wm->_mode & kWMModalMenuMode) && _wm->_pauseEngineCallback) {
+ _wm->_pauseEngineCallback(_wm->_engine, false);
+ }
}
return false;
diff --git a/graphics/macgui/macwindowmanager.cpp b/graphics/macgui/macwindowmanager.cpp
index bde17b6..17c0395 100644
--- a/graphics/macgui/macwindowmanager.cpp
+++ b/graphics/macgui/macwindowmanager.cpp
@@ -158,6 +158,8 @@ MacWindowManager::MacWindowManager() {
_menuDelay = 0;
_menuTimerActive = false;
+ _pauseEngineCallback = nullptr;
+
_colorBlack = 0;
_colorWhite = 2;
@@ -332,8 +334,12 @@ void MacWindowManager::draw() {
static void menuTimerHandler(void *refCon) {
MacWindowManager *wm = (MacWindowManager *)refCon;
- if (wm->_menuHotzone.contains(wm->_lastMousePos))
+ if (wm->_menuHotzone.contains(wm->_lastMousePos)) {
wm->activateMenu();
+ if ((wm->_mode & kWMModalMenuMode) && wm->_pauseEngineCallback) {
+ wm->_pauseEngineCallback(wm->_engine, true);
+ }
+ }
wm->_menuTimerActive = false;
diff --git a/graphics/macgui/macwindowmanager.h b/graphics/macgui/macwindowmanager.h
index a220b73..1b450d9 100644
--- a/graphics/macgui/macwindowmanager.h
+++ b/graphics/macgui/macwindowmanager.h
@@ -59,7 +59,8 @@ enum {
enum {
kWMModeNone = 0,
kWMModeNoDesktop = (1 << 0),
- kWMModeAutohideMenu = (1 << 1)
+ kWMModeAutohideMenu = (1 << 1),
+ kWMModalMenuMode = (1 << 2)
};
}
@@ -223,6 +224,9 @@ public:
int _colorBlack, _colorWhite;
+ void *_engine;
+ void (*_pauseEngineCallback)(void *engine, bool pause);
+
private:
void drawDesktop();
Commit: a053a19ca258dc4d344bc2345b5faa1bf2b0183e
https://github.com/scummvm/scummvm/commit/a053a19ca258dc4d344bc2345b5faa1bf2b0183e
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2018-07-18T21:48:54+03:00
Commit Message:
PINK: fixed pausing of engine when menu appears
Changed paths:
engines/pink/director.cpp
engines/pink/pink.cpp
engines/pink/pink.h
diff --git a/engines/pink/director.cpp b/engines/pink/director.cpp
index cbf4448..09af376 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 f18df01..25c8f88 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 9017178..faed498 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:
Commit: 25d508cf12f3adb257cbc67e3e458f41aa835d22
https://github.com/scummvm/scummvm/commit/25d508cf12f3adb257cbc67e3e458f41aa835d22
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2018-07-18T21:54:00+03:00
Commit Message:
PINK: removed game screen drawing when menu is active
Changed paths:
engines/pink/director.cpp
engines/pink/director.h
diff --git a/engines/pink/director.cpp b/engines/pink/director.cpp
index 09af376..97df174 100644
--- a/engines/pink/director.cpp
+++ b/engines/pink/director.cpp
@@ -88,9 +88,9 @@ Director::Director()
}
void Director::update() {
- if (isMenuActive()) {
+ if (_wm.isMenuActive()) {
_wm.draw();
- draw();
+ g_system->updateScreen();
return;
}
@@ -112,10 +112,6 @@ bool Director::processEvent(Common::Event &event) {
return _wm.processEvent(event);
}
-bool Director::isMenuActive() {
- return _wm.isMenuActive();
-}
-
void Director::setPalette(const byte *palette) {
g_system->getPaletteManager()->setPalette(palette, 0, 256);
diff --git a/engines/pink/director.h b/engines/pink/director.h
index 127bdbf..842330c 100644
--- a/engines/pink/director.h
+++ b/engines/pink/director.h
@@ -62,8 +62,6 @@ public:
void pause(bool pause);
- bool isMenuActive();
-
void saveStage();
void loadStage();
More information about the Scummvm-git-logs
mailing list