[Scummvm-git-logs] scummvm master -> 7cc0e833f27a3a3555e3a2bf0e711c50fae2d77e

whiterandrek whiterandrek at gmail.com
Sat Jul 21 14:12:41 CEST 2018


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
7cc0e833f2 PINK: implemented creating menu from executable


Commit: 7cc0e833f27a3a3555e3a2bf0e711c50fae2d77e
    https://github.com/scummvm/scummvm/commit/7cc0e833f27a3a3555e3a2bf0e711c50fae2d77e
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2018-07-21T15:12:23+03:00

Commit Message:
PINK: implemented creating menu from executable

Changed paths:
    engines/pink/director.cpp
    engines/pink/director.h
    engines/pink/pink.cpp
    engines/pink/pink.h


diff --git a/engines/pink/director.cpp b/engines/pink/director.cpp
index 97df174..4d16709 100644
--- a/engines/pink/director.cpp
+++ b/engines/pink/director.cpp
@@ -76,15 +76,15 @@ static const Graphics::MacMenuData menuSubItems[] = {
 };
 
 
-Director::Director()
+Director::Director(Common::PEResources &exe)
 	: _surface(640, 480) {
 	_wm.setScreen(&_surface);
 	_wm.setMode(Graphics::kWMModeNoDesktop | Graphics::kWMModeAutohideMenu | Graphics::kWMModalMenuMode);
 	_wm.setMenuHotzone(Common::Rect(0, 0, 640, 23));
 	_wm.setMenuDelay(250000);
 
-	_menu = _wm.addMenu();
-	_menu->addStaticMenus(menuSubItems);
+	_menu = Graphics::MacMenu::createMenuFromPEexe(exe, &_wm);
+	_menu->calcDimensions();
 }
 
 void Director::update() {
diff --git a/engines/pink/director.h b/engines/pink/director.h
index 842330c..e2526ad 100644
--- a/engines/pink/director.h
+++ b/engines/pink/director.h
@@ -30,6 +30,10 @@
 #include "graphics/macgui/macwindowmanager.h"
 #include "graphics/screen.h"
 
+namespace Common {
+	class PEResources;
+}
+
 namespace Graphics {
 	class MacMenu;
 }
@@ -42,7 +46,7 @@ class ActionSound;
 
 class Director {
 public:
-	Director();
+	Director(Common::PEResources &exe);
 
 	void update();
 	bool processEvent(Common::Event &event);
diff --git a/engines/pink/pink.cpp b/engines/pink/pink.cpp
index 73c6f5e..4f7e84f 100644
--- a/engines/pink/pink.cpp
+++ b/engines/pink/pink.cpp
@@ -72,8 +72,13 @@ Common::Error PinkEngine::init() {
 
 	initGraphics(640, 480);
 
+	Common::PEResources exeResources;
+	Common::String fileName = isPeril() ? "pptp.exe" : "hpp.exe";
+	exeResources.loadFromEXE(fileName);
+
+
 	_console = new Console(this);
-	_director = new Director();
+	_director = new Director(exeResources);
 
 	_director->getWndManager().setEnginePauseCallback(this, &pauseEngine);
 
@@ -90,7 +95,7 @@ Common::Error PinkEngine::init() {
 	if (!_orb.open(orbName) || (_bro && !_bro->open(broName) && _orb.getTimestamp() == _bro->getTimestamp()))
 		return Common::kNoGameDataFoundError;
 
-	if (!loadCursors())
+	if (!loadCursors(exeResources))
 		return Common::kNoGameDataFoundError;
 
 	setCursor(kLoadingCursor);
@@ -229,12 +234,8 @@ bool PinkEngine::checkValueOfVariable(Common::String &variable, Common::String &
 	return _variables[variable] == value;
 }
 
-bool PinkEngine::loadCursors() {
-	Common::PEResources exeResources;
+bool PinkEngine::loadCursors(Common::PEResources &exeResources) {
 	bool isPokus = !isPeril();
-	Common::String fileName = isPokus ? "hpp.exe" : "pptp.exe";
-	if (!exeResources.loadFromEXE(fileName))
-		return false;
 
 	_cursors.reserve(kCursorsCount);
 
diff --git a/engines/pink/pink.h b/engines/pink/pink.h
index faed498..ac70e1b 100644
--- a/engines/pink/pink.h
+++ b/engines/pink/pink.h
@@ -122,7 +122,7 @@ public:
 private:
 	Common::Error init();
 
-	bool loadCursors();
+	bool loadCursors(Common::PEResources &exeResources);
 
 	void initModule(const Common::String &moduleName, const Common::String &pageName, Archive *saveFile);
 	void addModule(const Common::String &moduleName);





More information about the Scummvm-git-logs mailing list