[Scummvm-git-logs] scummvm master -> f7c61f31de4e53b5d68df1054460c5b37c7ee31a

whoozle noreply at scummvm.org
Tue Mar 10 21:41:04 UTC 2026


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

Summary:
f7c61f31de PHOENIXVR: unlock mouse during movie playback


Commit: f7c61f31de4e53b5d68df1054460c5b37c7ee31a
    https://github.com/scummvm/scummvm/commit/f7c61f31de4e53b5d68df1054460c5b37c7ee31a
Author: Vladimir Menshakov (vladimir.menshakov at gmail.com)
Date: 2026-03-10T21:40:46Z

Commit Message:
PHOENIXVR: unlock mouse during movie playback

Changed paths:
    engines/phoenixvr/phoenixvr.cpp


diff --git a/engines/phoenixvr/phoenixvr.cpp b/engines/phoenixvr/phoenixvr.cpp
index a2cc6a82a8f..1140ee4ae47 100644
--- a/engines/phoenixvr/phoenixvr.cpp
+++ b/engines/phoenixvr/phoenixvr.cpp
@@ -476,51 +476,53 @@ void PhoenixVREngine::playMovie(const Common::String &movie) {
 
 	Common::ScopedPtr<Common::SeekableReadStream> stream(open(movie));
 	if (!stream) {
-		warning("can't load movie %s", movie.c_str());
+		warning("can't open movie %s", movie.c_str());
+		return;
+	}
+	if (!dec->loadStream(stream.release())) {
+		warning("loading movie stream %s failed", movie.c_str());
 		return;
 	}
 
 	_mixer->pauseAll(true);
+	_system->lockMouse(false);
+	dec->start();
+
+	bool playing = true;
 	Common::ScopedPtr<Graphics::Palette> palette;
-	if (dec->loadStream(stream.release())) {
-		dec->start();
-
-		bool playing = true;
-		while (!shouldQuit() && playing && !dec->endOfVideo()) {
-			Common::Event event;
-			while (g_system->getEventManager()->pollEvent(event)) {
-				switch (event.type) {
-				case Common::EVENT_KEYDOWN: {
-					if (event.kbd.ascii == ' ') {
-						playing = false;
-					}
-					break;
+	while (!shouldQuit() && playing && !dec->endOfVideo()) {
+		Common::Event event;
+		while (g_system->getEventManager()->pollEvent(event)) {
+			switch (event.type) {
+			case Common::EVENT_KEYDOWN: {
+				if (event.kbd.ascii == ' ') {
+					playing = false;
 				}
+				break;
+			}
 
-				default:
-					break;
-				}
+			default:
+				break;
 			}
-			if (dec->needsUpdate()) {
-				auto *s = dec->decodeNextFrame();
-				if (dec->hasDirtyPalette()) {
-					palette.reset(new Graphics::Palette(dec->getPalette(), 256));
-				}
-				if (s) {
-					if (!s->format.isCLUT8() || palette)
-						_screen->simpleBlitFrom(*s, Graphics::FLIP_NONE, false, 0xff, palette.get());
-				}
+		}
+		if (dec->needsUpdate()) {
+			auto *s = dec->decodeNextFrame();
+			if (dec->hasDirtyPalette()) {
+				palette.reset(new Graphics::Palette(dec->getPalette(), 256));
+			}
+			if (s) {
+				if (!s->format.isCLUT8() || palette)
+					_screen->simpleBlitFrom(*s, Graphics::FLIP_NONE, false, 0xff, palette.get());
 			}
-
-			// Delay for a bit. All events loops should have a delay
-			// to prevent the system being unduly loaded
-			_frameLimiter.delayBeforeSwap();
-			_screen->update();
-			_frameLimiter.startFrame();
 		}
-	} else {
-		warning("playMovie %s failed", movie.c_str());
+
+		// Delay for a bit. All events loops should have a delay
+		// to prevent the system being unduly loaded
+		_frameLimiter.delayBeforeSwap();
+		_screen->update();
+		_frameLimiter.startFrame();
 	}
+	_system->lockMouse(_vr.isVR());
 	_mixer->pauseAll(false);
 }
 




More information about the Scummvm-git-logs mailing list