[Scummvm-cvs-logs] SF.net SVN: scummvm:[41307] scummvm/trunk/engines/gob

drmccoy at users.sourceforge.net drmccoy at users.sourceforge.net
Sat Jun 6 23:45:48 CEST 2009


Revision: 41307
          http://scummvm.svn.sourceforge.net/scummvm/?rev=41307&view=rev
Author:   drmccoy
Date:     2009-06-06 21:45:47 +0000 (Sat, 06 Jun 2009)

Log Message:
-----------
Fixing the demoplayer's auto double mode and added a REBASE0 option that sets the video's X and Y coordinates to 0,0

Modified Paths:
--------------
    scummvm/trunk/engines/gob/demos/demoplayer.cpp
    scummvm/trunk/engines/gob/demos/demoplayer.h
    scummvm/trunk/engines/gob/demos/scnplayer.cpp
    scummvm/trunk/engines/gob/videoplayer.cpp

Modified: scummvm/trunk/engines/gob/demos/demoplayer.cpp
===================================================================
--- scummvm/trunk/engines/gob/demos/demoplayer.cpp	2009-06-06 21:41:22 UTC (rev 41306)
+++ scummvm/trunk/engines/gob/demos/demoplayer.cpp	2009-06-06 21:45:47 UTC (rev 41307)
@@ -56,6 +56,7 @@
 
 DemoPlayer::DemoPlayer(GobEngine *vm) : _vm(vm) {
 	_doubleMode = false;
+	_rebase0 = false;
 }
 
 DemoPlayer::~DemoPlayer() {
@@ -149,15 +150,19 @@
 
 	debugC(1, kDebugDemo, "Playing video \"%s\"", file);
 
-	if (_vm->_vidPlayer->primaryOpen(file)) {
+	int16 x = _rebase0 ? 0 : -1;
+	int16 y = _rebase0 ? 0 : -1;
+	if (_vm->_vidPlayer->primaryOpen(file, x, y)) {
 		bool videoSupportsDouble =
 			((_vm->_vidPlayer->getFeatures() & Graphics::CoktelVideo::kFeaturesSupportsDouble) != 0);
 
 		if (_autoDouble) {
-			int16 width  = _vm->_vidPlayer->getWidth();
-			int16 height = _vm->_vidPlayer->getHeight();
+			int16 defX = _rebase0 ? 0 : _vm->_vidPlayer->getDefaultX();
+			int16 defY = _rebase0 ? 0 : _vm->_vidPlayer->getDefaultY();
+			int16 right  = defX + _vm->_vidPlayer->getWidth()  - 1;
+			int16 bottom = defY + _vm->_vidPlayer->getHeight() - 1;
 
-			_doubleMode = ((width <= 320) && (height <= 200));
+			_doubleMode = ((right < 320) && (bottom < 200));
 		}
 
 		if (_doubleMode) {
@@ -187,7 +192,9 @@
 	Common::String fileNameOpened = _vm->_vidPlayer->getFileName();
 	_vm->_vidPlayer->primaryClose();
 
-	if (_vm->_vidPlayer->primaryOpen(fileNameOpened.c_str(), 0, -1,
+	int16 x = _rebase0 ? 0 : -1;
+	int16 y = _rebase0 ? 0 : -1;
+	if (_vm->_vidPlayer->primaryOpen(fileNameOpened.c_str(), x, y,
 				VideoPlayer::kFlagScreenSurface)) {
 
 		for (int i = 0; i < _vm->_vidPlayer->getFramesCount(); i++) {

Modified: scummvm/trunk/engines/gob/demos/demoplayer.h
===================================================================
--- scummvm/trunk/engines/gob/demos/demoplayer.h	2009-06-06 21:41:22 UTC (rev 41306)
+++ scummvm/trunk/engines/gob/demos/demoplayer.h	2009-06-06 21:45:47 UTC (rev 41307)
@@ -46,6 +46,7 @@
 	GobEngine *_vm;
 	bool _doubleMode;
 	bool _autoDouble;
+	bool _rebase0;
 
 	virtual bool playStream(Common::SeekableReadStream &stream) = 0;
 

Modified: scummvm/trunk/engines/gob/demos/scnplayer.cpp
===================================================================
--- scummvm/trunk/engines/gob/demos/scnplayer.cpp	2009-06-06 21:41:22 UTC (rev 41306)
+++ scummvm/trunk/engines/gob/demos/scnplayer.cpp	2009-06-06 21:45:47 UTC (rev 41307)
@@ -62,6 +62,10 @@
 			playVideo(line.c_str() + 4);
 		} else if (lineStartsWith(line, "GOTO ")) {
 			gotoLabel(scn, labels, line.c_str() + 5);
+		} else if (lineStartsWith(line, "REBASE0:ON")) {
+			_rebase0 = true;
+		} else if (lineStartsWith(line, "REBASE0:OFF")) {
+			_rebase0 = false;
 		}
 
 		// Mind user input

Modified: scummvm/trunk/engines/gob/videoplayer.cpp
===================================================================
--- scummvm/trunk/engines/gob/videoplayer.cpp	2009-06-06 21:41:22 UTC (rev 41306)
+++ scummvm/trunk/engines/gob/videoplayer.cpp	2009-06-06 21:45:47 UTC (rev 41307)
@@ -274,8 +274,7 @@
 
 				surf = _vm->_video->initSurfDesc(_vm->_global->_videoMode,
 						_vm->_width, _vm->_height, 0);
-				_vm->_draw->_spritesArray[x] = surf;
-				x = 0;
+				_vm->_draw->_spritesArray[0] = surf;
 			} else {
 				_backSurf = ((flags & kFlagFrontSurface) == 0);
 				surf = _vm->_draw->_spritesArray[_backSurf ? 21 : 20];


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list