aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarisa-Chan2014-11-08 13:02:48 +0600
committerMarisa-Chan2014-11-08 13:02:48 +0600
commit44eeb4027250a2989a9e34a303383fa8533a7a84 (patch)
tree580117246e0b9f265d2bf371a51116669f9e389d
parent66d2cb46989537d80855952cff2c0be1b5d6c320 (diff)
downloadscummvm-rg350-44eeb4027250a2989a9e34a303383fa8533a7a84.tar.gz
scummvm-rg350-44eeb4027250a2989a9e34a303383fa8533a7a84.tar.bz2
scummvm-rg350-44eeb4027250a2989a9e34a303383fa8533a7a84.zip
ZVISION: Implement action:menu_bar_enable
-rw-r--r--engines/zvision/core/menu.h4
-rw-r--r--engines/zvision/scripting/actions.cpp13
-rw-r--r--engines/zvision/scripting/actions.h8
-rw-r--r--engines/zvision/scripting/scr_file_handling.cpp2
-rw-r--r--engines/zvision/zvision.cpp5
-rw-r--r--engines/zvision/zvision.h2
6 files changed, 33 insertions, 1 deletions
diff --git a/engines/zvision/core/menu.h b/engines/zvision/core/menu.h
index cc802ee5f5..7e6acf325c 100644
--- a/engines/zvision/core/menu.h
+++ b/engines/zvision/core/menu.h
@@ -48,6 +48,10 @@ public:
virtual void onMouseDown(const Common::Point &Pos) {};
virtual void onMouseUp(const Common::Point &Pos) {};
virtual void process(uint32 deltaTimeInMillis) {};
+
+ void setEnable(uint16 flags) {
+ menu_bar_flag = flags;
+ }
protected:
uint16 menu_bar_flag;
ZVision *_engine;
diff --git a/engines/zvision/scripting/actions.cpp b/engines/zvision/scripting/actions.cpp
index 42b71ea5cc..fbf887f779 100644
--- a/engines/zvision/scripting/actions.cpp
+++ b/engines/zvision/scripting/actions.cpp
@@ -374,6 +374,19 @@ bool ActionKill::execute() {
return true;
}
+//////////////////////////////////////////////////////////////////////////////
+// ActionMenuBarEnable
+//////////////////////////////////////////////////////////////////////////////
+
+ActionMenuBarEnable::ActionMenuBarEnable(ZVision *engine, int32 slotkey, const Common::String &line) :
+ ResultAction(engine, slotkey) {
+ sscanf(line.c_str(), "%hu", &_menus);
+}
+
+bool ActionMenuBarEnable::execute() {
+ _engine->menuBarEnable(_menus);
+ return true;
+}
//////////////////////////////////////////////////////////////////////////////
// ActionMusic
diff --git a/engines/zvision/scripting/actions.h b/engines/zvision/scripting/actions.h
index c03238571c..fed620926d 100644
--- a/engines/zvision/scripting/actions.h
+++ b/engines/zvision/scripting/actions.h
@@ -248,6 +248,14 @@ private:
uint32 _type;
};
+class ActionMenuBarEnable : public ResultAction {
+public:
+ ActionMenuBarEnable(ZVision *engine, int32 slotkey, const Common::String &line);
+ bool execute();
+private:
+ uint16 _menus;
+};
+
class ActionMusic : public ResultAction {
public:
ActionMusic(ZVision *engine, int32 slotkey, const Common::String &line, bool global);
diff --git a/engines/zvision/scripting/scr_file_handling.cpp b/engines/zvision/scripting/scr_file_handling.cpp
index a4d127f6f9..ca92890b19 100644
--- a/engines/zvision/scripting/scr_file_handling.cpp
+++ b/engines/zvision/scripting/scr_file_handling.cpp
@@ -252,7 +252,7 @@ void ScriptManager::parseResults(Common::SeekableReadStream &stream, Common::Lis
} else if (act.matchString("kill", true)) {
actionList.push_back(new ActionKill(_engine, slot, args));
} else if (act.matchString("menu_bar_enable", true)) {
- // TODO: Implement ActionMenuBarEnable
+ actionList.push_back(new ActionMenuBarEnable(_engine, slot, args));
} else if (act.matchString("music", true)) {
actionList.push_back(new ActionMusic(_engine, slot, args, false));
} else if (act.matchString("pan_track", true)) {
diff --git a/engines/zvision/zvision.cpp b/engines/zvision/zvision.cpp
index 79f7d74a8d..4f05edaefd 100644
--- a/engines/zvision/zvision.cpp
+++ b/engines/zvision/zvision.cpp
@@ -454,4 +454,9 @@ void ZVision::rotateTo(int16 _toPos, int16 _time) {
_clock.start();
}
+void ZVision::menuBarEnable(uint16 menus) {
+ if (_menu)
+ _menu->setEnable(menus);
+}
+
} // End of namespace ZVision
diff --git a/engines/zvision/zvision.h b/engines/zvision/zvision.h
index e2bde7bd9e..def9bbbdfb 100644
--- a/engines/zvision/zvision.h
+++ b/engines/zvision/zvision.h
@@ -185,6 +185,8 @@ public:
void loadSettings();
void saveSettings();
+ void menuBarEnable(uint16 menus);
+
private:
void initialize();
void initFonts();