[Scummvm-git-logs] scummvm master -> e4c3c690902e546f2a093815cfe2ae6ec19e6c67
sev-
sev at scummvm.org
Thu Oct 3 14:16:45 CEST 2019
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
b5573c8e2a GRAPHICS: MACGUI: Fix nested menus command processing
e4c3c69090 GRAPHICS: MACGUI: Fix nested menus parsing
Commit: b5573c8e2af74079cbe2583f75f5dfe3220a4376
https://github.com/scummvm/scummvm/commit/b5573c8e2af74079cbe2583f75f5dfe3220a4376
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2019-10-03T14:00:15+02:00
Commit Message:
GRAPHICS: MACGUI: Fix nested menus command processing
Changed paths:
graphics/macgui/macmenu.cpp
diff --git a/graphics/macgui/macmenu.cpp b/graphics/macgui/macmenu.cpp
index 114f56a..917e1ff 100644
--- a/graphics/macgui/macmenu.cpp
+++ b/graphics/macgui/macmenu.cpp
@@ -922,13 +922,13 @@ bool MacMenu::mouseRelease(int x, int y) {
g_system->copyRectToScreen(_wm->_screenCopy->getBasePtr(0, 0), _wm->_screenCopy->pitch, 0, 0, _wm->_screenCopy->w, _wm->_screenCopy->h);
}
- if (_activeItem != -1 && _activeSubItem != -1 && _items[_activeItem]->submenu->subitems[_activeSubItem]->enabled) {
- if (_items[_activeItem]->submenu->subitems[_activeSubItem]->unicode) {
- (*_unicodeccallback)(_items[_activeItem]->submenu->subitems[_activeSubItem]->action,
- _items[_activeItem]->submenu->subitems[_activeSubItem]->unicodeText, _cdata);
+ if (_activeItem != -1 && _activeSubItem != -1 && _menustack.back()->subitems[_activeSubItem]->enabled) {
+ if (_menustack.back()->subitems[_activeSubItem]->unicode) {
+ (*_unicodeccallback)(_menustack.back()->subitems[_activeSubItem]->action,
+ _menustack.back()->subitems[_activeSubItem]->unicodeText, _cdata);
} else {
- (*_ccallback)(_items[_activeItem]->submenu->subitems[_activeSubItem]->action,
- _items[_activeItem]->submenu->subitems[_activeSubItem]->text, _cdata);
+ (*_ccallback)(_menustack.back()->subitems[_activeSubItem]->action,
+ _menustack.back()->subitems[_activeSubItem]->text, _cdata);
}
}
Commit: e4c3c690902e546f2a093815cfe2ae6ec19e6c67
https://github.com/scummvm/scummvm/commit/e4c3c690902e546f2a093815cfe2ae6ec19e6c67
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2019-10-03T14:14:57+02:00
Commit Message:
GRAPHICS: MACGUI: Fix nested menus parsing
Changed paths:
graphics/macgui/macmenu.cpp
diff --git a/graphics/macgui/macmenu.cpp b/graphics/macgui/macmenu.cpp
index 917e1ff..3bcfdcc 100644
--- a/graphics/macgui/macmenu.cpp
+++ b/graphics/macgui/macmenu.cpp
@@ -225,12 +225,12 @@ MacMenu *MacMenu::createMenuFromPEexe(Common::PEResources &exe, MacWindowManager
MacMenu *menu = wm->addMenu();
Common::Stack<MacMenuSubMenu *> menus;
+ Common::Stack<bool> popups;
int depth = 0;
int curMenuItemId = 0;
int action = 0;
bool lastPopUp = false;
- bool lastPopUpCopy = false; // no more than 2 level menu for now
while (depth >= 0) {
uint16 flags = menuData->readUint16LE();
if (flags & kPopUp) {
@@ -244,12 +244,10 @@ MacMenu *MacMenu::createMenuFromPEexe(Common::PEResources &exe, MacWindowManager
MacMenuSubMenu *submenu = menu->addSubMenu(menus.size() ? menus.top() : nullptr);
menus.push(submenu);
-
- if (lastPopUp) {
- lastPopUpCopy = lastPopUp;
- }
+ popups.push(lastPopUp);
lastPopUp = (flags & kEndMenu) != 0;
+
depth++;
} else {
menuData->readUint16LE(); // menu id
@@ -262,17 +260,19 @@ MacMenu *MacMenu::createMenuFromPEexe(Common::PEResources &exe, MacWindowManager
}
if (flags & kEndMenu) {
menus.pop();
+ depth--;
- if (lastPopUp)
- depth -= 2;
- else
+ if (lastPopUp) {
depth--;
+ if (menus.size())
+ menus.pop();
+ }
+
if (depth == 0)
curMenuItemId++;
- lastPopUp = lastPopUpCopy;
- lastPopUpCopy = false;
+ lastPopUp = popups.pop();
}
}
}
More information about the Scummvm-git-logs
mailing list