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

sev- noreply at scummvm.org
Fri Feb 14 22:09:18 UTC 2025


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

Summary:
089c575352 COMMON: FORMATS: Add helper methods for getting QTVR components
2cb37eaea4 VIDEO: QTVR: Simplified hotspot lookup code
7438aedd99 VIDEO: QTVR: Implement hotspot cursors override
8565796281 TESTBED: Do not force video pixel format
b2fdfaefa0 VIDEO: QTVR: Implement link navigation
e0521b2b0b VIDEO: QTVR: Navigate through links only on mouseup event
2ad25492fd VIDEO: Put mouse coordinates in Common::Point
565254003e JANITORIAL: Cleanup disabled code
cac3898e2f VIDEO: QTVR: Do not navigate in mouse drag mode
dbd062312e VIDEO: QTVR: Dump panoramas only with --dump-scripts command line parameter


Commit: 089c575352c541ec4b6bbf4a82f0f6da550eb0af
    https://github.com/scummvm/scummvm/commit/089c575352c541ec4b6bbf4a82f0f6da550eb0af
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-02-14T23:08:58+01:00

Commit Message:
COMMON: FORMATS: Add helper methods for getting QTVR components

Changed paths:
    common/formats/quicktime.h


diff --git a/common/formats/quicktime.h b/common/formats/quicktime.h
index b81714144b9..89bff67b100 100644
--- a/common/formats/quicktime.h
+++ b/common/formats/quicktime.h
@@ -226,6 +226,14 @@ protected:
 
 	struct PanoHotSpotTable {
 		Array<PanoHotSpot> hotSpots;
+
+		PanoHotSpot *get(uint16 id) {
+			for (int i = 0; i < hotSpots.size(); i++)
+				if (hotSpots[i].id == id)
+					return &hotSpots[i];
+
+			return nullptr;
+		}
 	};
 
 	struct PanoStringTable {
@@ -249,6 +257,14 @@ protected:
 
 	struct PanoLinkTable {
 		Array<PanoLink> links;
+
+		PanoLink *get(uint16 id) {
+			for (int i = 0; i < links.size(); i++)
+				if (links[i].id == id)
+					return &links[i];
+
+			return nullptr;
+		}
 	};
 
 	struct PanoNavigation {
@@ -267,6 +283,14 @@ protected:
 
 	struct PanoNavigationTable {
 		Array<PanoNavigation> navs;
+
+		PanoNavigation *get(uint16 id) {
+			for (int i = 0; i < navs.size(); i++)
+				if (navs[i].id == id)
+					return &navs[i];
+
+			return nullptr;
+		}
 	};
 
 	struct PanoTrackSample {


Commit: 2cb37eaea4285428d593124472e4425043bffd70
    https://github.com/scummvm/scummvm/commit/2cb37eaea4285428d593124472e4425043bffd70
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-02-14T23:09:02+01:00

Commit Message:
VIDEO: QTVR: Simplified hotspot lookup code

Changed paths:
    video/qt_decoder.h
    video/qtvr_decoder.cpp


diff --git a/video/qt_decoder.h b/video/qt_decoder.h
index 1ea8f918b8c..bbaf7736a4b 100644
--- a/video/qt_decoder.h
+++ b/video/qt_decoder.h
@@ -175,7 +175,7 @@ private:
 	int _zoomState = kZoomNone;
 	bool _repeatTimerActive = false;
 
-	int _hotSpotIdx = -1;
+	const PanoHotSpot *_currentHotspot = nullptr;
 
 	Graphics::Surface *_scaledSurface;
 	void scaleSurface(const Graphics::Surface *src, Graphics::Surface *dst,
diff --git a/video/qtvr_decoder.cpp b/video/qtvr_decoder.cpp
index 730735c8d64..47cd28a548a 100644
--- a/video/qtvr_decoder.cpp
+++ b/video/qtvr_decoder.cpp
@@ -440,7 +440,8 @@ Graphics::Surface *QuickTimeDecoder::PanoTrackHandler::constructMosaic(VideoTrac
 }
 
 void QuickTimeDecoder::PanoTrackHandler::initPanorama() {
-	_decoder->goToNode(_decoder->_panoTrack->panoInfo.defNodeID);
+	//_decoder->goToNode(_decoder->_panoTrack->panoInfo.defNodeID);
+	_decoder->goToNode(2);
 }
 
 void QuickTimeDecoder::PanoTrackHandler::constructPanorama() {
@@ -1083,24 +1084,19 @@ void QuickTimeDecoder::updateQTVRCursor(int16 x, int16 y) {
 
 		PanoTrackHandler *track = (PanoTrackHandler *)getTrack(_panoTrack->targetTrack);
 
-		int hotspot = track->lookupHotspot(x, y);
+		int hotspotId = track->lookupHotspot(x, y);
 
-		if (hotspot && _currentSample != -1) {
-			if (_hotSpotIdx == -1 || _panoTrack->panoSamples[_currentSample].hotSpotTable.hotSpots[_hotSpotIdx].id != hotspot) {
-				for (int i = 0; i < _panoTrack->panoSamples[_currentSample].hotSpotTable.hotSpots.size(); i++) {
-					if (_panoTrack->panoSamples[_currentSample].hotSpotTable.hotSpots[i].id == hotspot) {
-						_hotSpotIdx = i;
-						break;
-					}
-				}
-			}
+		if (hotspotId && _currentSample != -1) {
+			if (!_currentHotspot || _currentHotspot->id != hotspotId)
+				_currentHotspot = _panoTrack->panoSamples[_currentSample].hotSpotTable.get(hotspotId);
 		} else {
-			_hotSpotIdx = -1;
+			_currentHotspot = nullptr;
 		}
 
 		HotSpotType hsType = HotSpotType::undefined;
-		if (_hotSpotIdx != -1)
-			hsType = _panoTrack->panoSamples[_currentSample].hotSpotTable.hotSpots[_hotSpotIdx].type;
+
+		if (_currentHotspot)
+			hsType = _currentHotspot->type;
 
 		int hsOver, hsDown, hsUp;
 
@@ -1121,7 +1117,7 @@ void QuickTimeDecoder::updateQTVRCursor(int16 x, int16 y) {
 		int sensitivity = 5;
 
 		if (!_isMouseButtonDown) {
-			setCursor(hotspot == 0 ? kCursorPano : hsOver);
+			setCursor(_currentHotspot ? hsOver : kCursorPano);
 		} else {
 			int res = 0;
 			PanoSampleDesc *desc = (PanoSampleDesc *)_panoTrack->sampleDescs[0];
@@ -1178,7 +1174,8 @@ void QuickTimeDecoder::updateQTVRCursor(int16 x, int16 y) {
 				res <<= 1;
 			}
 
-			setCursor(_cursorDirMap[res] ? _cursorDirMap[res] : hotspot == 0 ? kCursorPanoNav : hsDown);
+			(void)hsUp;
+			setCursor(_cursorDirMap[res] ? _cursorDirMap[res] : _currentHotspot ? hsDown : kCursorPanoNav);
 		}
 	}
 }


Commit: 7438aedd99b1b2f27d71386264c863970a9f3c1d
    https://github.com/scummvm/scummvm/commit/7438aedd99b1b2f27d71386264c863970a9f3c1d
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-02-14T23:09:02+01:00

Commit Message:
VIDEO: QTVR: Implement hotspot cursors override

Changed paths:
    video/qt_decoder.h
    video/qtvr_decoder.cpp


diff --git a/video/qt_decoder.h b/video/qt_decoder.h
index bbaf7736a4b..54d9736f25a 100644
--- a/video/qt_decoder.h
+++ b/video/qt_decoder.h
@@ -140,6 +140,7 @@ private:
 
 	void closeQTVR();
 	void updateAngles();
+	void lookupHotspot(int16 x, int16 y);
 	void updateQTVRCursor(int16 x, int16 y);
 	void setCursor(int curId);
 	void cleanupCursors();
diff --git a/video/qtvr_decoder.cpp b/video/qtvr_decoder.cpp
index 47cd28a548a..835e60f0c4f 100644
--- a/video/qtvr_decoder.cpp
+++ b/video/qtvr_decoder.cpp
@@ -836,6 +836,8 @@ void QuickTimeDecoder::handleObjectMouseMove(int16 x, int16 y) {
 void QuickTimeDecoder::handlePanoMouseMove(int16 x, int16 y) {
 	_prevMouseX = x;
 	_prevMouseY = y;
+
+	lookupHotspot(x, y);
 }
 
 #define REPEAT_DELAY 30000
@@ -892,6 +894,8 @@ void QuickTimeDecoder::handleObjectMouseButton(bool isDown, int16 x, int16 y, bo
 void QuickTimeDecoder::handlePanoMouseButton(bool isDown, int16 x, int16 y, bool repeat) {
 	_isMouseButtonDown = isDown;
 
+	lookupHotspot(x, y);
+
 	if (isDown && !repeat) {
 		_prevMouseX = x;
 		_prevMouseY = y;
@@ -966,6 +970,19 @@ void QuickTimeDecoder::handlePanoKey(Common::KeyState &state, bool down, bool re
 	}
 }
 
+void QuickTimeDecoder::lookupHotspot(int16 x, int16 y) {
+	PanoTrackHandler *track = (PanoTrackHandler *)getTrack(_panoTrack->targetTrack);
+
+	int hotspotId = track->lookupHotspot(x, y);
+
+	if (hotspotId && _currentSample != -1) {
+		if (!_currentHotspot || _currentHotspot->id != hotspotId)
+			_currentHotspot = _panoTrack->panoSamples[_currentSample].hotSpotTable.get(hotspotId);
+	} else {
+		_currentHotspot = nullptr;
+	}
+}
+
 enum {
 	kCurHand = 129,
 	kCurGrab = 130,
@@ -1082,17 +1099,7 @@ void QuickTimeDecoder::updateQTVRCursor(int16 x, int16 y) {
 			return;
 		}
 
-		PanoTrackHandler *track = (PanoTrackHandler *)getTrack(_panoTrack->targetTrack);
-
-		int hotspotId = track->lookupHotspot(x, y);
-
-		if (hotspotId && _currentSample != -1) {
-			if (!_currentHotspot || _currentHotspot->id != hotspotId)
-				_currentHotspot = _panoTrack->panoSamples[_currentSample].hotSpotTable.get(hotspotId);
-		} else {
-			_currentHotspot = nullptr;
-		}
-
+		// Get hotspot cursors
 		HotSpotType hsType = HotSpotType::undefined;
 
 		if (_currentHotspot)
@@ -1114,6 +1121,17 @@ void QuickTimeDecoder::updateQTVRCursor(int16 x, int16 y) {
 			break;
 		}
 
+		if (_currentHotspot) {
+			if (_currentHotspot->mouseOverCursorID)
+				hsOver = _currentHotspot->mouseOverCursorID;
+
+			if (_currentHotspot->mouseDownCursorID)
+				hsDown = _currentHotspot->mouseDownCursorID;
+
+			if (_currentHotspot->mouseUpCursorID)
+				hsUp = _currentHotspot->mouseUpCursorID;
+		}
+
 		int sensitivity = 5;
 
 		if (!_isMouseButtonDown) {


Commit: 8565796281af0da47cc1c601ceb582fc3b6e2c12
    https://github.com/scummvm/scummvm/commit/8565796281af0da47cc1c601ceb582fc3b6e2c12
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-02-14T23:09:02+01:00

Commit Message:
TESTBED: Do not force video pixel format

Changed paths:
    engines/testbed/video.cpp


diff --git a/engines/testbed/video.cpp b/engines/testbed/video.cpp
index dae7f7109e6..fa34c075f2f 100644
--- a/engines/testbed/video.cpp
+++ b/engines/testbed/video.cpp
@@ -80,11 +80,6 @@ Common::Error Videotests::videoTest(Common::SeekableReadStream *stream, const Co
 			pixelformat = Graphics::PixelFormat::createFormatCLUT8();
 		} else {
 			pixelformat = supportedFormatsList.front();
-
-			if (!video->setOutputPixelFormat(pixelformat)) {
-				// TODO: Search for the pixel format in supportedFormatsList?
-				warning("Format mismatch. Video will be converted");
-			}
 		}
 	}
 


Commit: b2fdfaefa0bb98cd5f3071fd4a2089c280795b40
    https://github.com/scummvm/scummvm/commit/b2fdfaefa0bb98cd5f3071fd4a2089c280795b40
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-02-14T23:09:02+01:00

Commit Message:
VIDEO: QTVR: Implement link navigation

Changed paths:
    video/qtvr_decoder.cpp


diff --git a/video/qtvr_decoder.cpp b/video/qtvr_decoder.cpp
index 835e60f0c4f..e1a1754d69c 100644
--- a/video/qtvr_decoder.cpp
+++ b/video/qtvr_decoder.cpp
@@ -408,6 +408,8 @@ Graphics::Surface *QuickTimeDecoder::PanoTrackHandler::constructMosaic(VideoTrac
 	Graphics::Surface *target = new Graphics::Surface();
 	target->create(w * framew, h * frameh, track->getPixelFormat());
 
+	warning("Pixel format: %s", track->getPixelFormat().toString().c_str());
+
 	Common::Rect srcRect(0, 0, framew, frameh);
 
 	for (uint y = 0; y < h; y++) {
@@ -415,7 +417,7 @@ Graphics::Surface *QuickTimeDecoder::PanoTrackHandler::constructMosaic(VideoTrac
 			const Graphics::Surface *frame = track->bufferNextFrame();
 
 			if (!frame) {
-				warning("QuickTimeDecoder::PanoTrackHandler::constructPanorama(): Out of frames at: %d, %d", x, y);
+				warning("QuickTimeDecoder::PanoTrackHandler::constructMosaic(): Out of frames at: %d, %d", x, y);
 				break;
 			}
 
@@ -448,6 +450,14 @@ void QuickTimeDecoder::PanoTrackHandler::constructPanorama() {
 	PanoSampleDesc *desc = (PanoSampleDesc *)_parent->sampleDescs[0];
 	PanoTrackSample *sample = &_parent->panoSamples[_decoder->_currentSample];
 
+	if (_constructedPano) {
+		_constructedPano->free();
+		delete _constructedPano;
+
+		_constructedHotspots->free();
+		delete _constructedHotspots;
+	}
+
 	warning("scene: %d (%d x %d) hotspots: %d (%d x %d)", desc->_sceneTrackID, desc->_sceneSizeX, desc->_sceneSizeY,
 			desc->_hotSpotTrackID, desc->_hotSpotSizeX, desc->_hotSpotSizeY);
 
@@ -904,6 +914,20 @@ void QuickTimeDecoder::handlePanoMouseButton(bool isDown, int16 x, int16 y, bool
 		_mouseDrag.y = y;
 	}
 
+	if (_currentHotspot && _currentHotspot->type == HotSpotType::link) {
+		PanoLink *link = _panoTrack->panoSamples[_currentSample].linkTable.get(_currentHotspot->typeData);
+
+		if (link) {
+			goToNode(link->toNodeID);
+
+			setPanAngle(link->toHPan);
+			setTiltAngle(link->toVPan);
+			setFOV(link->toZoom);
+		}
+	}
+
+	// Further we have simulated mouse button which are generated by timer, e.g. those
+	// are used for dragging
 	if (!repeat)
 		return;
 


Commit: e0521b2b0b2dde26e80326bcb59bb0fb77f8066f
    https://github.com/scummvm/scummvm/commit/e0521b2b0b2dde26e80326bcb59bb0fb77f8066f
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-02-14T23:09:02+01:00

Commit Message:
VIDEO: QTVR: Navigate through links only on mouseup event

Changed paths:
    video/qtvr_decoder.cpp


diff --git a/video/qtvr_decoder.cpp b/video/qtvr_decoder.cpp
index e1a1754d69c..13c83c1aeff 100644
--- a/video/qtvr_decoder.cpp
+++ b/video/qtvr_decoder.cpp
@@ -914,7 +914,7 @@ void QuickTimeDecoder::handlePanoMouseButton(bool isDown, int16 x, int16 y, bool
 		_mouseDrag.y = y;
 	}
 
-	if (_currentHotspot && _currentHotspot->type == HotSpotType::link) {
+	if (!repeat && !isDown && _currentHotspot && _currentHotspot->type == HotSpotType::link) {
 		PanoLink *link = _panoTrack->panoSamples[_currentSample].linkTable.get(_currentHotspot->typeData);
 
 		if (link) {


Commit: 2ad25492fd92618ead7bd8e6b21c63b2b39cb992
    https://github.com/scummvm/scummvm/commit/2ad25492fd92618ead7bd8e6b21c63b2b39cb992
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-02-14T23:09:02+01:00

Commit Message:
VIDEO: Put mouse coordinates in Common::Point

Changed paths:
    video/qt_decoder.cpp
    video/qt_decoder.h
    video/qtvr_decoder.cpp


diff --git a/video/qt_decoder.cpp b/video/qt_decoder.cpp
index a327f103686..1d8de5f26ef 100644
--- a/video/qt_decoder.cpp
+++ b/video/qt_decoder.cpp
@@ -57,7 +57,6 @@ QuickTimeDecoder::QuickTimeDecoder() {
 	_scaledSurface = 0;
 	_width = _height = 0;
 	_enableEditListBoundsCheckQuirk = false;
-	_prevMouseX = _prevMouseY = 0;
 	_isMouseButtonDown = false;
 	_isVR = false;
 
diff --git a/video/qt_decoder.h b/video/qt_decoder.h
index 54d9736f25a..44a9883d228 100644
--- a/video/qt_decoder.h
+++ b/video/qt_decoder.h
@@ -150,7 +150,7 @@ private:
 
 public:
 	int _currentSample = -1;
-	uint16 _prevMouseX, _prevMouseY;
+	Common::Point _prevMouse;
 	bool _isMouseButtonDown;
 	Common::Point _mouseDrag;
 
diff --git a/video/qtvr_decoder.cpp b/video/qtvr_decoder.cpp
index 13c83c1aeff..41d1d10249d 100644
--- a/video/qtvr_decoder.cpp
+++ b/video/qtvr_decoder.cpp
@@ -808,8 +808,8 @@ void QuickTimeDecoder::handleObjectMouseMove(int16 x, int16 y) {
 	const int sensitivity = 10;
 	const float speedFactor = 0.1f;
 
-	int16 mouseDeltaX = x - _prevMouseX;
-	int16 mouseDeltaY = y - _prevMouseY;
+	int16 mouseDeltaX = x - _prevMouse.x;
+	int16 mouseDeltaY = y - _prevMouse.y;
 
 	float speedX = (float)mouseDeltaX * speedFactor;
 	float speedY = (float)mouseDeltaY * speedFactor;
@@ -838,14 +838,14 @@ void QuickTimeDecoder::handleObjectMouseMove(int16 x, int16 y) {
 	}
 
 	if (changed) {
-		_prevMouseX = x;
-		_prevMouseY = y;
+		_prevMouse.x = x;
+		_prevMouse.y = y;
 	}
 }
 
 void QuickTimeDecoder::handlePanoMouseMove(int16 x, int16 y) {
-	_prevMouseX = x;
-	_prevMouseY = y;
+	_prevMouse.x = x;
+	_prevMouse.y = y;
 
 	lookupHotspot(x, y);
 }
@@ -859,7 +859,7 @@ static void repeatCallback(void *data) {
 		decoder->handleKey(decoder->_lastKey, true, true);
 
 	if (decoder->_isMouseButtonDown)
-		decoder->handleMouseButton(true, decoder->_prevMouseX, decoder->_prevMouseY, true);
+		decoder->handleMouseButton(true, decoder->_prevMouse.x, decoder->_prevMouse.y, true);
 }
 
 void QuickTimeDecoder::handleMouseButton(bool isDown, int16 x, int16 y, bool repeat) {
@@ -893,8 +893,8 @@ void QuickTimeDecoder::handleObjectMouseButton(bool isDown, int16 x, int16 y, bo
 		} else if (x > _curBbox.right) {
 			setCurrentColumn((getCurrentColumn() - 1 + _nav.columns) % _nav.columns);
 		} else {
-			_prevMouseX = x;
-			_prevMouseY = y;
+			_prevMouse.x = x;
+			_prevMouse.y = y;
 		}
 	}
 
@@ -907,8 +907,8 @@ void QuickTimeDecoder::handlePanoMouseButton(bool isDown, int16 x, int16 y, bool
 	lookupHotspot(x, y);
 
 	if (isDown && !repeat) {
-		_prevMouseX = x;
-		_prevMouseY = y;
+		_prevMouse.x = x;
+		_prevMouse.y = y;
 
 		_mouseDrag.x = x;
 		_mouseDrag.y = y;
@@ -970,7 +970,7 @@ void QuickTimeDecoder::handleKey(Common::KeyState &state, bool down, bool repeat
 		}
 	}
 
-	updateQTVRCursor(_prevMouseX, _prevMouseY);
+	updateQTVRCursor(_prevMouse.x, _prevMouse.y);
 }
 
 void QuickTimeDecoder::handleObjectKey(Common::KeyState &state, bool down, bool repeat) {


Commit: 565254003e0f4c3dd18e6f45e462238b57580a11
    https://github.com/scummvm/scummvm/commit/565254003e0f4c3dd18e6f45e462238b57580a11
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-02-14T23:09:02+01:00

Commit Message:
JANITORIAL: Cleanup disabled code

Changed paths:
    video/qt_decoder.cpp


diff --git a/video/qt_decoder.cpp b/video/qt_decoder.cpp
index 1d8de5f26ef..f8057d7f915 100644
--- a/video/qt_decoder.cpp
+++ b/video/qt_decoder.cpp
@@ -537,21 +537,6 @@ uint32 QuickTimeDecoder::VideoTrackHandler::getNextFrameStartTime() const {
 }
 
 const Graphics::Surface *QuickTimeDecoder::VideoTrackHandler::decodeNextFrame() {
-#if 0
-	if (_decoder->_qtvrType == QTVRType::PANORAMA) {
-		if (!_isPanoConstructed)
-			return nullptr;
-
-		if (_projectedPano) {
-			_projectedPano->free();
-			delete _projectedPano;
-		}
-
-		projectPanorama();
-		return _projectedPano;
-	}
-#endif
-
 	if (endOfTrack())
 		return 0;
 


Commit: cac3898e2ffe349ed6d17050b0de1735b15d86f1
    https://github.com/scummvm/scummvm/commit/cac3898e2ffe349ed6d17050b0de1735b15d86f1
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-02-14T23:09:02+01:00

Commit Message:
VIDEO: QTVR: Do not navigate in mouse drag mode

Changed paths:
    video/qtvr_decoder.cpp


diff --git a/video/qtvr_decoder.cpp b/video/qtvr_decoder.cpp
index 41d1d10249d..b8e42a0e999 100644
--- a/video/qtvr_decoder.cpp
+++ b/video/qtvr_decoder.cpp
@@ -914,7 +914,7 @@ void QuickTimeDecoder::handlePanoMouseButton(bool isDown, int16 x, int16 y, bool
 		_mouseDrag.y = y;
 	}
 
-	if (!repeat && !isDown && _currentHotspot && _currentHotspot->type == HotSpotType::link) {
+	if (!repeat && !isDown && _currentHotspot && _currentHotspot->type == HotSpotType::link && _prevMouse == _mouseDrag) {
 		PanoLink *link = _panoTrack->panoSamples[_currentSample].linkTable.get(_currentHotspot->typeData);
 
 		if (link) {


Commit: dbd062312ebc4c2efc48096ea12bcaa98642e4dd
    https://github.com/scummvm/scummvm/commit/dbd062312ebc4c2efc48096ea12bcaa98642e4dd
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-02-14T23:09:02+01:00

Commit Message:
VIDEO: QTVR: Dump panoramas only with --dump-scripts command line parameter

Changed paths:
    video/qtvr_decoder.cpp


diff --git a/video/qtvr_decoder.cpp b/video/qtvr_decoder.cpp
index b8e42a0e999..a38519cd15e 100644
--- a/video/qtvr_decoder.cpp
+++ b/video/qtvr_decoder.cpp
@@ -33,6 +33,7 @@
 #include "audio/audiostream.h"
 
 #include "common/archive.h"
+#include "common/config-manager.h"
 #include "common/debug.h"
 #include "common/file.h"
 #include "common/keyboard.h"
@@ -425,18 +426,20 @@ Graphics::Surface *QuickTimeDecoder::PanoTrackHandler::constructMosaic(VideoTrac
 		}
 	}
 
-	Common::Path path = Common::Path(fname);
+	if (ConfMan.getBool("dump_scripts")) {
+		Common::Path path = Common::Path(fname);
 
-	Common::DumpFile bitmapFile;
-	if (!bitmapFile.open(path, true)) {
-		warning("Cannot dump panorama into file '%s'", path.toString().c_str());
-		return nullptr;
-	}
+		Common::DumpFile bitmapFile;
+		if (!bitmapFile.open(path, true)) {
+			warning("Cannot dump panorama into file '%s'", path.toString().c_str());
+			return nullptr;
+		}
 
-	Image::writePNG(bitmapFile, *target, track->getPalette());
-	bitmapFile.close();
+		Image::writePNG(bitmapFile, *target, track->getPalette());
+		bitmapFile.close();
 
-	debug(0, "Dumped panorama %s of %d x %d", path.toString().c_str(), target->w, target->h);
+		debug(0, "Dumped panorama %s of %d x %d", path.toString().c_str(), target->w, target->h);
+	}
 
 	return target;
 }




More information about the Scummvm-git-logs mailing list