aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/zvision/graphics/render_manager.cpp5
-rw-r--r--engines/zvision/graphics/render_manager.h2
-rw-r--r--engines/zvision/scripting/actions.cpp14
-rw-r--r--engines/zvision/scripting/scr_file_handling.cpp2
4 files changed, 22 insertions, 1 deletions
diff --git a/engines/zvision/graphics/render_manager.cpp b/engines/zvision/graphics/render_manager.cpp
index 4d5bcf754b..8411f190a7 100644
--- a/engines/zvision/graphics/render_manager.cpp
+++ b/engines/zvision/graphics/render_manager.cpp
@@ -1053,4 +1053,9 @@ void RenderManager::markDirty() {
_bkgDirtyRect = Common::Rect(_bkgWidth, _bkgHeight);
}
+void RenderManager::bkgFill(uint8 r, uint8 g, uint8 b) {
+ _curBkg.fillRect(Common::Rect(_curBkg.w, _curBkg.h), _curBkg.format.RGBToColor(r, g, b));
+ markDirty();
+}
+
} // End of namespace ZVision
diff --git a/engines/zvision/graphics/render_manager.h b/engines/zvision/graphics/render_manager.h
index e0fc5c248c..ae24ce4f58 100644
--- a/engines/zvision/graphics/render_manager.h
+++ b/engines/zvision/graphics/render_manager.h
@@ -283,6 +283,8 @@ public:
Common::Rect bkgRectToScreen(const Common::Rect &src);
void markDirty();
+
+ void bkgFill(uint8 r, uint8 g, uint8 b);
};
} // End of namespace ZVision
diff --git a/engines/zvision/scripting/actions.cpp b/engines/zvision/scripting/actions.cpp
index 33add9f8fa..96411e2c3d 100644
--- a/engines/zvision/scripting/actions.cpp
+++ b/engines/zvision/scripting/actions.cpp
@@ -222,6 +222,20 @@ bool ActionDisplayMessage::execute() {
}
//////////////////////////////////////////////////////////////////////////////
+// ActionDissolve
+//////////////////////////////////////////////////////////////////////////////
+
+ActionDissolve::ActionDissolve(ZVision *engine) :
+ ResultAction(engine, 0) {
+}
+
+bool ActionDissolve::execute() {
+ // Cause black screen flick
+ // _engine->getRenderManager()->bkgFill(0, 0, 0);
+ return true;
+}
+
+//////////////////////////////////////////////////////////////////////////////
// ActionDistort
//////////////////////////////////////////////////////////////////////////////
diff --git a/engines/zvision/scripting/scr_file_handling.cpp b/engines/zvision/scripting/scr_file_handling.cpp
index c7268e6111..daec4f8f18 100644
--- a/engines/zvision/scripting/scr_file_handling.cpp
+++ b/engines/zvision/scripting/scr_file_handling.cpp
@@ -240,7 +240,7 @@ void ScriptManager::parseResults(Common::SeekableReadStream &stream, Common::Lis
} else if (act.matchString("display_message", true)) {
actionList.push_back(new ActionDisplayMessage(_engine, slot, args));
} else if (act.matchString("dissolve", true)) {
- // TODO: Implement ActionDissolve
+ actionList.push_back(new ActionDissolve(_engine));
} else if (act.matchString("distort", true)) {
actionList.push_back(new ActionDistort(_engine, slot, args));
} else if (act.matchString("enable_control", true)) {