aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/pink/director.cpp6
-rw-r--r--engines/pink/director.h6
-rw-r--r--engines/pink/pink.cpp15
-rw-r--r--engines/pink/pink.h2
4 files changed, 17 insertions, 12 deletions
diff --git a/engines/pink/director.cpp b/engines/pink/director.cpp
index 97df17436a..4d16709357 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 842330c1f0..e2526adfc2 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 73c6f5ec5a..4f7e84f595 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 faed498a8f..ac70e1bca7 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);