diff --git a/engines/zvision/scripting/actions.cpp b/engines/zvision/scripting/actions.cpp index fbf887f77919..1e1b3b2862ab 100644 --- a/engines/zvision/scripting/actions.cpp +++ b/engines/zvision/scripting/actions.cpp @@ -473,6 +473,27 @@ bool ActionPanTrack::execute() { return true; } +////////////////////////////////////////////////////////////////////////////// +// ActionPreferences +////////////////////////////////////////////////////////////////////////////// + +ActionPreferences::ActionPreferences(ZVision *engine, int32 slotkey, const Common::String &line) : + ResultAction(engine, slotkey) { + if (line.compareToIgnoreCase("save") == 0) + _save = true; + else + _save = false; +} + +bool ActionPreferences::execute() { + if (_save) + _engine->saveSettings(); + else + _engine->loadSettings(); + + return true; +} + ////////////////////////////////////////////////////////////////////////////// // ActionPreloadAnimation ////////////////////////////////////////////////////////////////////////////// diff --git a/engines/zvision/scripting/actions.h b/engines/zvision/scripting/actions.h index fed620926d0b..dd771c107863 100644 --- a/engines/zvision/scripting/actions.h +++ b/engines/zvision/scripting/actions.h @@ -334,6 +334,15 @@ class ActionPreloadAnimation : public ResultAction { int32 _framerate; }; +class ActionPreferences : public ResultAction { +public: + ActionPreferences(ZVision *engine, int32 slotkey, const Common::String &line); + bool execute(); + +private: + bool _save; +}; + class ActionQuit : public ResultAction { public: ActionQuit(ZVision *engine, int32 slotkey) : ResultAction(engine, slotkey) {} diff --git a/engines/zvision/scripting/scr_file_handling.cpp b/engines/zvision/scripting/scr_file_handling.cpp index ca92890b192b..06354feaaebd 100644 --- a/engines/zvision/scripting/scr_file_handling.cpp +++ b/engines/zvision/scripting/scr_file_handling.cpp @@ -260,7 +260,7 @@ void ScriptManager::parseResults(Common::SeekableReadStream &stream, Common::Lis } else if (act.matchString("playpreload", true)) { actionList.push_back(new ActionPlayPreloadAnimation(_engine, slot, args)); } else if (act.matchString("preferences", true)) { - // TODO: Implement ActionPreferences + actionList.push_back(new ActionPreferences(_engine, slot, args)); } else if (act.matchString("quit", true)) { actionList.push_back(new ActionQuit(_engine, slot)); } else if (act.matchString("random", true)) {